Server IP : 172.24.0.40 / Your IP : 216.73.216.10 Web Server : Apache System : Linux dbweb26.ust.edu.ph 4.18.0-513.5.1.el8_9.x86_64 #1 SMP Fri Sep 29 05:21:10 EDT 2023 x86_64 User : apache ( 48) PHP Version : 8.2.18 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/medicine.dbweb26.goldcopy/public_html/wp-content/plugins/newsletter/admin/js/ |
Upload File : |
const TNPModal = function (options) { 'use strict' const _options = { title: '', content: '', contentSelector: '', showClose: true, onClose: null, closeWhenClickOutside: true, confirmText: 'CONFIRM', confirmClassName: 'button', showConfirm: false, onConfirm: null, clickConfirmOnPressEnter: false, style: null, ...options }; let _modalElement = null; let _modalContainer = null; let _closeElement = null; let _contentElement = null; let _isClosing = false; const open = () => { if (_modalElement === null) { //render element _render(); } return _contentElement; } const close = () => { if (!_isClosing) { _modalElement.addEventListener('animationend', function () { document.body.removeChild(_modalElement); destroyDOMElements(); _isClosing = false; }); _modalContainer.className = _modalContainer.className + ' on-close'; _modalElement.className = _modalElement.className + ' on-close'; if (_options.onClose) { _options.onClose(); } _isClosing = true; } } const destroyDOMElements = () => { if (_contentElement) { _contentElement.style.display = 'none'; document.body.appendChild(_contentElement); } _modalElement = null; _modalContainer = null; _closeElement = null; _contentElement = null; } const onConfirm = () => { if (_options.onConfirm) { _options.onConfirm(); } close(); } const _addTitle = (title) => { const titleElement = document.createElement('h2'); titleElement.className = 'tnp-modal-title'; titleElement.innerText = title; _modalContainer.appendChild(titleElement); } const _addCloseButton = () => { const closeEl = document.createElement('div'); closeEl.className = 'tnp-modal-close'; closeEl.innerText = '×'; _modalContainer.appendChild(closeEl); closeEl.addEventListener('click', function (e) { e.stopPropagation(); close(); }); } const _render = () => { _modalContainer = document.createElement('div'); _modalContainer.className = 'tnp-modal-container'; if (_options.title && _options.title.length > 0) { _addTitle(_options.title); } if (_options.content && _options.content.length > 0) { _contentElement = document.createElement('div'); _contentElement.className = 'tnp-modal-content'; _contentElement.innerHTML = _options.content; _modalContainer.appendChild(_contentElement); } else if (_options.contentSelector && _options.contentSelector.length > 0) { _contentElement = document.querySelector(_options.contentSelector); _contentElement.style.display = _contentElement.style.display === 'none' ? 'block' : _contentElement.style.display; _modalContainer.appendChild(_contentElement); } else { _contentElement = document.createElement('div'); _contentElement.className = 'tnp-modal-content'; _modalContainer.appendChild(_contentElement); } if (_options.showClose) { _addCloseButton(); } if (_options.showConfirm) { const confirmContainerEl = document.createElement('div'); confirmContainerEl.className = 'tnp-modal-confirm'; const confirmEl = document.createElement('button'); confirmEl.className = _options.confirmClassName || 'button-secondary'; confirmEl.innerText = _options.confirmText || 'CONFIRM'; confirmEl.addEventListener('click', onConfirm); if (_options.clickConfirmOnPressEnter) { document.addEventListener('keyup', function (event) { if (event.key === 'Enter') { event.preventDefault(); confirmEl.click(); } }) } confirmContainerEl.appendChild(confirmEl); _modalContainer.appendChild(confirmContainerEl); } if (_options.style) { for (const _styleProperty in _options.style) { if (_modalContainer.style && typeof (_modalContainer.style[_styleProperty]) !== "undefined") { _modalContainer.style[_styleProperty] = _options.style[_styleProperty]; } } } if (_options.backgroundColor) { _modalContainer.style.backgroundColor = _options.backgroundColor; } if (_options.height) { _modalContainer.style.height = _options.backgroundColor; } _modalElement = document.createElement('div'); _modalElement.className = 'tnp-modal open'; if (_options.closeWhenClickOutside) { //Close modal if clicked outside modal _modalElement.addEventListener('click', function (event) { if (!event.target.closest('.' + _modalContainer.className)) { close(); } }); } _modalElement.appendChild(_modalContainer); document.body.appendChild(_modalElement); } if (_options.triggerSelector && _options.triggerSelector.length > 0) { const _triggerElement = document.querySelector(_options.triggerSelector); _triggerElement.addEventListener('click', open); } return { open, close } }; jQuery(function() { window.TNPModal = TNPModal; }); const TNPModal2 = (function () { 'use strict' var modalClass = '.tnp-modal2'; var dataModalTriggerSelector = 'data-tnp-modal-target'; var dataCloseModalTriggerSelector = 'data-tnp-modal-close'; class TNPModalx { constructor() { var self = this; var triggers = document.querySelectorAll(`[${dataModalTriggerSelector}]`); //Inizializzo i trigger di apertura delle modali self._forEach(triggers, function (index, item) { var modalTriggerSelector = item.getAttribute(dataModalTriggerSelector); item.addEventListener('click', function (e) { self.open(modalTriggerSelector); }); }); //Inizializzo i trigger di chiusura delle modali var closeModalTriggersEl = document.querySelectorAll(`[${dataCloseModalTriggerSelector}]`); self._forEach(closeModalTriggersEl, function (index, closeTriggerEl) { closeTriggerEl.addEventListener('click', function (e) { self._closeModalElement(e.target.closest(modalClass)); }); }); } open(modalSelector) { var self = this; var modalEl = document.querySelector(modalSelector); const showModalEvent = new Event('show.tnp.modal'); modalEl.dispatchEvent(showModalEvent); modalEl.classList.add('open'); modalEl.addEventListener('click', function (e) { if (!e.target.closest('.tnp-modal2__content')) { self._closeModalElement(modalEl); } }); } close(modalSelector) { var modalEl = document.querySelector(modalSelector); this._closeModalElement(modalEl); } _closeModalElement(modal) { const hideModalEvent = new Event('hide.tnp.modal'); modal.dispatchEvent(hideModalEvent); modal.classList.add('on-close'); modal.addEventListener('animationend', function () { modal.classList.remove('open'); modal.classList.remove('on-close'); const hiddenModalEvent = new Event('hidden.tnp.modal'); modal.dispatchEvent(hiddenModalEvent); }, {once: true}); } _forEach(array, callback, scope) { for (var i = 0; i < array.length; i++) { callback.call(scope, i, array[i]); } } ; } return new TNPModalx(); }); jQuery(function() { window.TNPModal2 = TNPModal2(); }); jQuery.cookie = function (name, value, options) { if (typeof value != 'undefined') { // name and value given, set cookie options = options || {}; if (value === null) { value = ''; options.expires = -1; } var expires = ''; if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { var date; if (typeof options.expires == 'number') { date = new Date(); date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); } else { date = options.expires; } expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE } var path = options.path ? '; path=' + (options.path) : ''; var domain = options.domain ? '; domain=' + (options.domain) : ''; var secure = options.secure ? '; secure' : ''; document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); } else { // only name given, get cookie var cookieValue = null; if (document.cookie && document.cookie != '') { var cookies = document.cookie.split(';'); for (var i = 0; i < cookies.length; i++) { var cookie = jQuery.trim(cookies[i]); // Does this cookie string begin with the name we want? if (cookie.substring(0, name.length + 1) == (name + '=')) { cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); break; } } } return cookieValue; } }; jQuery(function ($) { $('.tnpc-default-text').click(function (e) { e.preventDefault(); e.stopPropagation(); return false; }); tnp_refresh_binds(); }); function tnp_refresh_binds() { jQuery('[data-bind]').each(function () { var id = this.dataset.bind; var v; if (id.substring(0, 1) === '!') { v = !document.getElementById(id.substring(1)).checked; } else { v = document.getElementById(this.dataset.bind).checked; } jQuery(this).toggle(v); }); } function tnp_toggle_schedule() { jQuery("#tnp-schedule-button").toggle(); jQuery("#tnp-schedule").toggle(); } function tnp_select_toggle(s, t) { if (s.value == 1) { jQuery("#options-" + t).show(); } else { jQuery("#options-" + t).hide(); } } /* * Used by the date field of NewsletterControls */ function tnp_date_onchange(field) { let id = field.id.substring(0, field.id.lastIndexOf('_')); let base_field = document.getElementById('options-' + id); let year = document.getElementById(id + '_year'); let month = document.getElementById(id + '_month'); let day = document.getElementById(id + '_day'); if (year.value === '' || month.value === '' || day.value === '') { base_field.value = 0; } else { base_field.value = new Date(year.value, month.value, day.value, 12, 0, 0).getTime() / 1000; } //this.form.elements['options[" . esc_attr($name) . "]'].value = new Date(document.getElementById('" . esc_attr($name) . "_year').value, document.getElementById('" . esc_attr($name) . "_month').value, document.getElementById('" . esc_attr($name) . "_day').value, 12, 0, 0).getTime()/1000"; } /** * Initialize the color pickers (is invoked on document load and on AJAX forms load in the composer. * https://seballot.github.io/spectrum/ */ function tnp_controls_init(config = {}) { NewsletterControls.initialized = true; //console.log("Controls init", config); jQuery(".tnpc-color").spectrum({ type: 'color', allowEmpty: true, showAlpha: false, showInput: true, preferredFormat: 'hex' }); jQuery("textarea.dynamic").focus(function () { jQuery("textarea.dynamic").css("height", "50px"); jQuery(this).css("height", "400px"); }); jQuery(".tnp-accordion").accordion({collapsible: true, heightStyle: "content"}); if (!config.nested) { tabs = jQuery("#tabs").tabs({ active: config.tab, activate: function (event, ui) { jQuery.cookie(config.tab_name, ui.newTab.index(), {expires: 1}); } }); jQuery(".tnp-tabs").tabs({ active: config.tab, activate: function (event, ui) { jQuery.cookie(config.tab_name, ui.newTab.index(), {expires: 1}); } }); } } function tnp_fields_media_mini_select(el) { event.preventDefault(); let name = jQuery(el).data("name"); let tnp_uploader = wp.media({ title: "Select an image", button: { text: "Select" }, multiple: false }).on("select", function () { let media = tnp_uploader.state().get("selection").first(); let $field = jQuery("#" + name + "_id"); $field.val(media.id); $field.trigger("change"); var img_url = media.attributes.url; if (typeof media.attributes.sizes.thumbnail !== "undefined") img_url = media.attributes.sizes.thumbnail.url; document.getElementById(name + "_img").src = img_url; }).open(); } function tnp_fields_url_select(el) { event.preventDefault(); let field_id = jQuery(el).data("field"); let tnp_uploader = wp.media({ title: "Select an image", button: { text: "Select" }, multiple: false }).on("select", function () { let media = tnp_uploader.state().get("selection").first(); let $field = jQuery("#" + field_id); $field.val(media.attributes.url); $field.trigger("change"); }).open(); } function tnp_fields_media_mini_remove(name) { event.preventDefault(); event.stopPropagation(); let $field = jQuery("#" + name + "_id"); $field.val(""); $field.trigger("change"); document.getElementById(name + "_img").src = ""; } function tnp_lists_toggle(e) { jQuery('#' + e.id + '-notes > div').hide(); jQuery('#' + e.id + '-notes .list_' + e.value).show(); } function newsletter_media(name) { var tnp_uploader = wp.media({ title: "Select an image", button: { text: "Select" }, multiple: false }).on("select", function () { var media = tnp_uploader.state().get("selection").first(); document.getElementById(name + "_id").value = media.id; jQuery("#" + name + "_id").trigger("change"); //console.log(media.attributes); if (media.attributes.url.substring(0, 0) == "/") { media.attributes.url = NewsletterControls.site_url + media.attributes.url; } document.getElementById(name + "_url").value = media.attributes.url; var img_url = media.attributes.url; if (typeof media.attributes.sizes.medium !== "undefined") img_url = media.attributes.sizes.medium.url; if (img_url.substring(0, 0) == "/") { img_url = NewsletterControls.site_url + img_url; } document.getElementById(name + "_img").src = img_url; var alt = document.getElementById("options-" + name + "_alt"); if (alt) { alt.value = media.attributes.alt; } }).open(); } function newsletter_media_remove(name) { if (confirm("Are you sure?")) { document.getElementById(name + "_id").value = ""; document.getElementById(name + "_url").value = ""; document.getElementById(name + "_img").src = NewsletterControls.newsletter_url + '/admin/images/nomedia.png'; var alt = document.getElementById("options-" + name + "_alt"); if (alt) { alt.value = ""; } } } function newsletter_textarea_preview(id, header, footer) { var d = document.getElementById(id + "-iframe").contentWindow.document; d.open(); if (templateEditor) { d.write(templateEditor.getValue()); } else { d.write(header + document.getElementById(id).value + footer); } d.close(); var d = document.getElementById(id + "-iframe-phone").contentWindow.document; d.open(); if (templateEditor) { d.write(templateEditor.getValue()); } else { d.write(header + document.getElementById(id).value + footer); } d.close(); //jQuery("#" + id + "-iframe-phone").toggle(); jQuery("#" + id + "-preview").toggle(); } function tnp_select_images(state) { if (!state.id) { return state.text; } var $state = jQuery("<span class=\"tnp-select2-option\"><img style=\"height: 20px!important; position: relative; top: 5px\" src=\"" + state.element.getAttribute("image") + "\"> " + state.text + "</span>"); return $state; } function tnp_select_images_selection(state) { if (!state.id) { return state.text; } var $state = jQuery("<span class=\"tnp-select2-option\"><img style=\"height: 20px!important; position: relative; top: 5px\" src=\"" + state.element.getAttribute("image") + "\"> " + state.text + "</span>"); return $state; } const TNP = { // Fields that control showing and hiding of other elements showable_controllers: [], toast: function (message) { Toastify({ text: message, duration: 2000, //destination: "https://github.com/apvarun/toastify-js", //newWindow: true, //close: true, offset: { x: 0, y: '3em' }, gravity: "top", // `top` or `bottom` position: "center", // `left`, `center` or `right` stopOnFocus: true, // Prevents dismissing of toast on hover style: { background: "linear-gradient(to right, var(--tnp-green), var(--tnp-green-dark))", 'min-width': '200px', 'text-align': 'center', }, //onClick: function () {} // Callback after click }).showToast(); }, init_showables: function () { document.querySelectorAll('[data-tnpshow]').forEach(el => { let parts = el.dataset.tnpshow.split(/([=><])/); //console.log('options-' + parts[0]); let controller = document.getElementById('options-' + parts[0]); TNP.process_showable(el, controller, parts[1], parts[2]); if (!TNP.showable_controllers.includes(controller.id)) { TNP.showable_controllers.push(controller.id); jQuery(controller).on('change', TNP.process_showables); } }); }, process_showables: function () { document.querySelectorAll('[data-tnpshow]').forEach(el => { let parts = el.dataset.tnpshow.split(/([=><])/); let controller = document.getElementById('options-' + parts[0]); TNP.process_showable(el, controller, parts[1], parts[2]); }); }, process_showable: function (el, controller, symbol, value) { if (!controller) { return; } cvalue = controller.value; if (cvalue === '') cvalue = '0'; // Patch for selects with the first entry set to an empty key if (controller.type === 'checkbox') { if (controller.checked) { jQuery(el).toggle(value == '1'); } else { jQuery(el).toggle(value == '0'); } } else { switch (symbol) { case '=': jQuery(el).toggle(cvalue == value); break; case '<': jQuery(el).toggle(!isNaN(cvalue) && parseInt(cvalue) < parseInt(value)); break; case '>': jQuery(el).toggle(!isNaN(cvalue) && parseInt(cvalue) > parseInt(value)); break; } } } } jQuery(function ($) { // jQuery modal library $.modal.defaults.fadeDuration = 250; TNP.init_showables(); });