123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- (function($, Drupal, drupalSettings) {
- Drupal.behaviors.status= {
- attach: function (context, settings) {
- Drupal.AjaxCommands.prototype.generatePreview = function(ajax, response, status) {
- if (validateUrl(response.url)) {
- var cleanUrl = response.url.replace(/^http(s?):\/\//i, "");
-
- $.ajax({
- type: 'POST',
- url: '/statusmessage/generate-preview/build' ,
- data: {'data': cleanUrl},
- success: function (response) {
-
- if (response.data != null) {
- var parser = new DOMParser();
-
- let markup = document.createElement('div');
- markup.innerHTML = response.data;
- let statusBlock = document.getElementById('block-statusblock');
- let oldPreviewIframe = document.querySelector('.statusmessage-preview-iframe');
- if (oldPreviewIframe !== null) {
- oldPreviewIframe.parentNode.removeChild(oldPreviewIframe);
- }
- previewIframe = document.createElement('iframe');
- previewIframe.classList.add('statusmessage-preview-iframe');
- statusBlock.appendChild(previewIframe);
- previewIframe.contentWindow.document.open();
- previewIframe.contentWindow.document.appendChild(markup);
- previewIframe.contentWindow.document.close();
- }
- }
- });
- }
- };
- function validateUrl(input) {
- if (null != null) {
- return input.match(new RegExp("([a-zA-Z0-9]+://)?([a-zA-Z0-9_]+:[a-zA-Z0-9_]+@)?([a-zA-Z0-9.-]+\\.[A-Za-z]{2,4})(:[0-9]+)?(/.*)?"));
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }
- };
- })(jQuery, Drupal, drupalSettings);
|