File manager - Edit - /home/proidvn/me.proid.vn/wp-content/plugins/wp-html-mail/js/mailbuilder.js
Back
var haet_mailbuilder = haet_mailbuilder || {}; haet_mailbuilder.serialize_content = function () { var $ = jQuery; var content_array = {}; $("#mailbuilder-content .mb-contentelement").each(function () { var $contentelement = $(this); var element_content_array = $contentelement .find("input,select,textarea") .serializeArray(); var indexed_element_content_array = {}; for (var i = 0; i < element_content_array.length; i++) { indexed_element_content_array[element_content_array[i]["name"]] = element_content_array[i]["value"]; } content_array[$contentelement.attr("id")] = { id: $contentelement.attr("id"), type: $contentelement.data("type"), settings: JSON.parse( $contentelement.find(".mb-element-settings").val() ), content: indexed_element_content_array, }; }); $("#mailbuilder_json").val(JSON.stringify(content_array)); }; haet_mailbuilder.add_content_element = function ( type, element_id, content_array, settings, animate ) { var $ = jQuery; var $contentelement = $("#mailbuilder-templates .mb-contentelement-" + type) .clone() .attr("id", element_id) .appendTo("#mailbuilder-content"); if (animate) { var offset = $contentelement.offset(); $("html, body").animate( { scrollTop: offset.top - 120, }, 500 ); } if (haet_mailbuilder["create_content_" + type]) haet_mailbuilder["create_content_" + type]( $contentelement, element_id, content_array ); if (!settings || !settings.styles) { //console.log($contentelement.find('.mb-element-settings').val()); settings = JSON.parse( $contentelement.find(".mb-element-settings").val() ); } if (haet_mailbuilder["apply_element_settings_" + type]) haet_mailbuilder["apply_element_settings_" + type]( $contentelement, false, settings ); else haet_mailbuilder.apply_element_settings( $contentelement, false, settings ); }; haet_mailbuilder.read_serialized_content = function () { var $ = jQuery; var raw_content = $("#mailbuilder_json").val(); //console.log(raw_content); var content_array = []; if (raw_content.length) { // find an replace unescaped double quotes inside escaped quotes // especially for <a href=\"http://[ORDER_META field="my_field"]\" ... raw_content = raw_content.replace(/(\\"[^"]*[^\\])(")([^"]*[^\\])(")([^"]*[^"]*\\")/gmi, `$1'$3'$5`); try { content_array = JSON.parse(raw_content); } catch (e) { console.log(e); } } for (var i in content_array) { haet_mailbuilder.add_content_element( content_array[i]["type"], content_array[i]["id"], content_array[i]["content"], content_array[i]["settings"] ); } }; haet_mailbuilder.get_attachment_preview = function (attachment) { return ( '<div class="mb-attachment-preview">\ <img src="' + attachment.icon + '" class="icon">\ <div class="mb-attachment-details">\ <a href="' + attachment.url + '" target="_blank" class="filename">' + attachment.filename + '</a><br>\ <span class="filesize">' + attachment.filesizeHumanReadable + '</span>\ <a class="remove-attachment" data-id="' + attachment.id + '"><span class="dashicons dashicons-no"></span></a>\ </div>\ </div>' ); }; haet_mailbuilder.get_attachment_ids = function () { var $ = jQuery; var raw_attachments = $("#mailbuilder_attachments").val(); var attachment_ids = []; if (raw_attachments.length) attachment_ids = JSON.parse(raw_attachments); for (var i = 0; i < attachment_ids.length; i++) { if (attachment_ids[i] == "") { attachment_ids.splice(i, 1); i--; } } return attachment_ids; }; haet_mailbuilder.disable_singular_elements = function () { var $ = jQuery; $('.mb-add-types a[data-once="once"]').each(function () { var type = $(this).data("type"); if ($("#mailbuilder-content .mb-contentelement-" + type).length) $(this).addClass("disabled"); else $(this).removeClass("disabled"); }); }; haet_mailbuilder.padding_settings_init = function () { var $ = jQuery; $(".padding-settings").each(function () { var $padding_settings = $(this); $padding_settings.css( "border-top-width", parseInt($padding_settings.find(".padding-top").val()) / 3 ); $padding_settings.css( "border-right-width", parseInt($padding_settings.find(".padding-right").val()) / 3 ); $padding_settings.css( "border-bottom-width", parseInt($padding_settings.find(".padding-bottom").val()) / 3 ); $padding_settings.css( "border-left-width", parseInt($padding_settings.find(".padding-left").val()) / 3 ); $padding_settings.find("select").change(function () { var $padding_settings = $(this).parents(".padding-settings"); $padding_settings.css( "border-top-width", parseInt($padding_settings.find(".padding-top").val()) / 3 ); $padding_settings.css( "border-right-width", parseInt($padding_settings.find(".padding-right").val()) / 3 ); $padding_settings.css( "border-bottom-width", parseInt($padding_settings.find(".padding-bottom").val()) / 3 ); $padding_settings.css( "border-left-width", parseInt($padding_settings.find(".padding-left").val()) / 3 ); }); }); }; // this can be overridden by each element type using haet_mailbuilder.settings_dialog_<type> haet_mailbuilder.settings_dialog = function ( $contentelement, $settings_dialog, settings ) { var $ = jQuery; if (settings && settings.styles && settings.styles.desktop) { $settings_dialog .find(".mb-element-padding-desktop select") .each(function () { $(this).val(settings.styles.desktop[$(this).attr("class")]); }); $settings_dialog .find(".background-color") .val(settings.styles.desktop["background-color"]) .change(); } if (settings && settings.styles && settings.styles.mobile) { $settings_dialog .find(".mb-element-padding-mobile select") .each(function () { $(this).val(settings.styles.mobile[$(this).attr("class")]); }); } haet_mailbuilder.padding_settings_init(); }; // this can be overridden by each element type using haet_mailbuilder.apply_element_settings_<type> haet_mailbuilder.apply_element_settings = function ( $contentelement, $settings_dialog, old_settings ) { var $ = jQuery; var settings = old_settings; // refresh settings if dialog is set if ($settings_dialog) { $settings_dialog .find(".mb-element-padding-desktop select") .each(function () { settings.styles.desktop[$(this).attr("class")] = $(this).val(); }); $settings_dialog .find(".mb-element-padding-mobile select") .each(function () { settings.styles.mobile[$(this).attr("class")] = $(this).val(); }); settings.styles.desktop["background-color"] = $settings_dialog .find(".background-color") .val(); } $contentelement.find(".mb-element-settings").val(JSON.stringify(settings)); haet_mailbuilder.serialize_content(); $.each(settings.styles.desktop, function (selector, value) { $contentelement.css(selector, value); }); }; haet_mailbuilder.close_wysiwyg_sidebar = function ( $settings, $sidebar, $textarea, apply_changes ) { var $ = jQuery; $settings.removeClass("active"); $sidebar.find(".mb-add-wrap").addClass("active"); $sidebar.removeClass("sidebar-wide"); $settings.find(".mb-apply,.mb-cancel").off("click"); if (apply_changes) { mb_text.apply_content( $textarea, tinymce.editors["mb_wysiwyg_editor"].getContent() ); haet_mailbuilder.serialize_content(); } }; jQuery( function ($) { haet_mailbuilder.read_serialized_content(); $("#mailbuilder-content").sortable({ stop: function (event, ui) { haet_mailbuilder.serialize_content(); }, }); //the "add"-Menu haet_mailbuilder.disable_singular_elements(); // add content element $(".mb-add-types a").on("click", function (e) { e.preventDefault(); if (!$(this).hasClass("disabled")) { var type = $(this).data("type"); var element_id = "mb-" + Date.now(); haet_mailbuilder.add_content_element( type, element_id, {}, {}, true ); haet_mailbuilder.disable_singular_elements(); } }); // edit content element $("#mailbuilder-content").on("click", ".mb-edit-element", function (e) { e.preventDefault(); var $contentelement = $(this).parents(".mb-contentelement"); var settings = JSON.parse( $contentelement.find(".mb-element-settings").val() ); var type = $contentelement.data("type"); var $sidebar = $(".mailbuilder-settings-sidebar"); var $settings = $sidebar.find(".mb-element-settings-" + type); $sidebar.addClass("sidebar-wide"); $sidebar .find(".mailbuilder-sidebar-element.active") .removeClass("active"); $settings.addClass("active"); if (haet_mailbuilder["settings_dialog_" + type]) haet_mailbuilder["settings_dialog_" + type]( $contentelement, $settings, settings ); else haet_mailbuilder.settings_dialog( $contentelement, $settings, settings ); $settings.find(".mb-apply").one("click", function () { $settings.removeClass("active"); $sidebar.find(".mb-add-wrap").addClass("active"); $sidebar.removeClass("sidebar-wide"); if (haet_mailbuilder["apply_element_settings_" + type]) haet_mailbuilder["apply_element_settings_" + type]( $contentelement, $settings, settings ); else haet_mailbuilder.apply_element_settings( $contentelement, $settings, settings ); haet_mailbuilder.serialize_content(); }); $settings.find(".mb-cancel").one("click", function () { $settings.removeClass("active"); $sidebar.find(".mb-add-wrap").addClass("active"); $sidebar.removeClass("sidebar-wide"); }); }); // remove content element $("#mailbuilder-content").on("click", ".mb-remove-element", function (e) { e.preventDefault(); $(this) .parents(".mb-contentelement") .slideUp(500, function () { $(this).remove(); haet_mailbuilder.serialize_content(); haet_mailbuilder.disable_singular_elements(); }); }); // make content editable $("#mailbuilder-content").on( "click", ".mb-contentelement-content", function (e) { var $element_content = $(this); // WYSIWYG Editor $element_content.find(".mb-edit-wysiwyg").each(function () { var $settings = $("#mb-wysiwyg-edit"); var $sidebar = $(".mailbuilder-settings-sidebar"); // if somone didnt apply the changes to the previous element we do this here before we edit a new one if ($settings.hasClass("active")) { var $previous_textarea = $( "#mailbuilder-content .mb-contentelement-content.editing .mb-edit-wysiwyg textarea" ); mb_text.apply_content( $previous_textarea, tinymce.editors["mb_wysiwyg_editor"].getContent() ); haet_mailbuilder.serialize_content(); $settings.find(".mb-apply,.mb-cancel").off("click"); $( "#mailbuilder-content .mb-contentelement-content.editing" ).removeClass("editing"); } $element_content.addClass("editing"); var $textarea = $(this).find("textarea"); tinymce.editors["mb_wysiwyg_editor"].setContent( $textarea.val() ); $sidebar.addClass("sidebar-wide"); $sidebar .find(".mailbuilder-sidebar-element.active") .removeClass("active"); $settings.addClass("active"); $settings.find(".mb-apply").on("click", function () { haet_mailbuilder.close_wysiwyg_sidebar( $settings, $sidebar, $textarea, true ); $element_content.removeClass("editing"); }); $settings.find(".mb-cancel").on("click", function () { haet_mailbuilder.close_wysiwyg_sidebar( $settings, $sidebar, $textarea, false ); $element_content.removeClass("editing"); }); }); } ); // Uploading files var attachments_file_frame; $(".upload_attachment_button").on("click", function (event) { event.preventDefault(); // If the media frame already exists, reopen it. if (attachments_file_frame) { attachments_file_frame.open(); return; } // Create the media frame. attachments_file_frame = wp.media.frames.attachments_file_frame = wp.media( { title: jQuery(this).data("uploader_title"), button: { text: jQuery(this).data("uploader_button_text"), }, multiple: true, // Set to true to allow multiple files to be selected } ); // When an image is selected, run a callback. attachments_file_frame.on("select", function () { var attachment_ids = haet_mailbuilder.get_attachment_ids(); $.each( attachments_file_frame.state().get("selection").models, function (idx, attachment) { //console.log( attachment.attributes ); if ( attachment_ids.indexOf( attachment.attributes.id.toString() ) == -1 ) { attachment_ids.push( attachment.attributes.id.toString() ); $(".mb-preview-attachments").append( haet_mailbuilder.get_attachment_preview( attachment.attributes ) ); $("#mailbuilder_attachments").val( JSON.stringify(attachment_ids) ); } } ); }); // Finally, open the modal attachments_file_frame.open(); }); $(".mb-preview-attachments").on("click", ".remove-attachment", function ( e ) { e.preventDefault(); var $button = $(this); var attachment_id = $button.data("id"); $button.parents(".mb-attachment-preview").hide(400); var attachment_ids = haet_mailbuilder.get_attachment_ids(); attachment_index = attachment_ids.indexOf(attachment_id.toString()); if (attachment_index > -1) attachment_ids.splice(attachment_index, 1); $("#mailbuilder_attachments").val(JSON.stringify(attachment_ids)); }); // preview saved attachments var attachment_ids = haet_mailbuilder.get_attachment_ids(); if (attachment_ids.length) { $.each(attachment_ids, function (idx, id) { wp.media .attachment(id) .fetch() .then(function (data) { // preloading finished // after this you can use your attachment normally //wp.media.attachment(id).get('url'); $(".mb-preview-attachments").append( haet_mailbuilder.get_attachment_preview( wp.media.attachment(id).attributes ) ); // console.log(wp.media.attachment(id)); }); }); } // custom CSS $(".mailbuilder-custom-css-button").on('click',function (e) { e.preventDefault(); var $settings = $("#mb-css-edit"); var $sidebar = $(".mailbuilder-settings-sidebar"); $sidebar.addClass("sidebar-wide"); $sidebar .find(".mailbuilder-sidebar-element.active") .removeClass("active"); $settings.addClass("active"); $settings.find(".mb-apply").one("click", function () { $settings.removeClass("active"); $sidebar.find(".mb-add-wrap").addClass("active"); $sidebar.removeClass("sidebar-wide"); }); }); var mailbuilder_css_editor_desktop = wp.codeEditor.initialize( $(".mailbuilder-css-desktop"), { codemirror: { mode: "css", lineNumbers: true, }, } ); var mailbuilder_css_editor_mobile = wp.codeEditor.initialize( $(".mailbuilder-css-mobile"), { codemirror: { mode: "css", lineNumbers: true, }, } ); // Mailbuilder General Layout $(".post-type-wphtmlmail_mail #post-body") .removeClass("columns-2") .addClass("columns-1"); // if header metabox is invisible, click the toggle if ($("#header .inside:visible").length == 0) $("#header .handlediv").click(); // hide header or footer $( "#mailbuilder-header .mailbuilder-hide-button,#mailbuilder-footer .mailbuilder-hide-button" ).on('click',function (e) { e.preventDefault(); var $button = $(this); var $element = $button.parent(); $("#" + $button.data("status-field")).val( $element.hasClass("mailbuilder-hidden") ? 0 : 1 ); $element.toggleClass("mailbuilder-hidden"); }); });
| ver. 1.4 |
Github
|
.
| PHP 8.0.30 | Generation time: 0.12 |
proxy
|
phpinfo
|
Settings