$45 GRAYBYTE WORDPRESS FILE MANAGER $62

SERVER : vnpttt-amd7f72-h1.vietnix.vn #1 SMP Fri May 24 12:42:50 UTC 2024
SERVER IP : 103.200.23.149 | ADMIN IP 216.73.216.22
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/home/bqrcodec/contact.groupg.com.sg/wp-content/plugins/wp-html-mail/js/

HOME
Current File : /home/bqrcodec/contact.groupg.com.sg/wp-content/plugins/wp-html-mail/js//mailbuilder.js
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");
	});
});

Current_dir [ WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
6 Jun 2024 10.38 AM
bqrcodec / bqrcodec
0755
admin_script.js
6.805 KB
6 Jun 2024 10.38 AM
bqrcodec / bqrcodec
0644
contenttype-socialicons.js
1.239 KB
6 Jun 2024 10.38 AM
bqrcodec / bqrcodec
0644
contenttype-text.js
1.206 KB
6 Jun 2024 10.38 AM
bqrcodec / bqrcodec
0644
contenttype-twocol.js
1.197 KB
6 Jun 2024 10.38 AM
bqrcodec / bqrcodec
0644
mailbuilder.js
15.495 KB
6 Jun 2024 10.38 AM
bqrcodec / bqrcodec
0644
tinymce-code-button.min.js
1.616 KB
6 Jun 2024 10.38 AM
bqrcodec / bqrcodec
0644
tinymce-table.min.js
46.565 KB
6 Jun 2024 10.38 AM
bqrcodec / bqrcodec
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF