![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/DynamicContentBundle/Assets/js/ |
/** DynamicContentBundle **/ Mautic.toggleDwcFilters = function () { mQuery("#dwcFiltersTab, #slotNameDiv").toggleClass("hide"); if (mQuery("#dwcFiltersTab").hasClass('hide')) { mQuery('.nav-tabs a[href="#details"]').click(); } else { Mautic.dynamicContentOnLoad(); } }; Mautic.dynamicContentOnLoad = function (container, response) { if (typeof container !== 'object') { if (mQuery(container + ' #list-search').length) { Mautic.activateSearchAutocomplete('list-search', 'dynamicContent'); } } var availableFilters = mQuery('div.dwc-filter').find('select[data-mautic="available_filters"]'); Mautic.activateChosenSelect(availableFilters, false); Mautic.dynamicFiltersOnLoad('div.dwc-filter'); }; Mautic.dynamicFiltersOnLoad = function(container, response) { mQuery('#campaign-share-tab').hover(function () { if (Mautic.shareTableLoaded != true) { Mautic.loadAjaxColumn('campaign-share-stat', 'lead:getCampaignShareStats', 'afterStatsLoad'); Mautic.shareTableLoaded = true; } }) Mautic.afterStatsLoad = function () { Mautic.sortTableByColumn('#campaign-share-table', '.campaign-share-stat', true) } if (mQuery(container + ' #list-search').length) { Mautic.activateSearchAutocomplete('list-search', 'lead.list'); } var prefix = 'leadlist'; var parent = mQuery('.dynamic-content-filter, .dwc-filter'); if (parent.length) { prefix = parent.attr('id'); } if (mQuery('#' + prefix + '_filters').length) { mQuery('#available_filters').on('change', function() { if (mQuery(this).val()) { Mautic.addDwcFilter(mQuery(this).val(),mQuery('option:selected',this).data('field-object')); mQuery(this).val(''); mQuery(this).trigger('chosen:updated'); } }); mQuery('#' + prefix + '_filters .remove-selected').each( function (index, el) { mQuery(el).on('click', function () { mQuery(this).closest('.panel').animate( {'opacity': 0}, 'fast', function () { mQuery(this).remove(); Mautic.reorderSegmentFilters(); } ); if (!mQuery('#' + prefix + '_filters li:not(.placeholder)').length) { mQuery('#' + prefix + '_filters li.placeholder').removeClass('hide'); } else { mQuery('#' + prefix + '_filters li.placeholder').addClass('hide'); } }); }); var bodyOverflow = {}; mQuery('#' + prefix + '_filters').sortable({ items: '.panel', helper: function(e, ui) { ui.children().each(function() { if (mQuery(this).is(":visible")) { mQuery(this).width(mQuery(this).width()); } }); // Fix body overflow that messes sortable up bodyOverflow.overflowX = mQuery('body').css('overflow-x'); bodyOverflow.overflowY = mQuery('body').css('overflow-y'); mQuery('body').css({ overflowX: 'visible', overflowY: 'visible' }); return ui; }, scroll: true, axis: 'y', stop: function(e, ui) { // Restore original overflow mQuery('body').css(bodyOverflow); // First in the list should be an "and" ui.item.find('select.glue-select').first().val('and'); Mautic.reorderSegmentFilters(); } }); } // segment contact filters var segmentContactForm = mQuery('#segment-contact-filters'); if (segmentContactForm.length) { segmentContactForm.on('change', function() { segmentContactForm.submit(); }).on('keyup', function() { segmentContactForm.delay(200).submit(); }).on('submit', function(e) { e.preventDefault(); Mautic.refreshSegmentContacts(segmentContactForm); }); } }; Mautic.addDwcFilter = function (elId, elObj) { var filterId = '#available_' + elObj + '_' + elId; var filterOption = mQuery(filterId); var label = filterOption.text(); var alias = filterOption.val(); // Create a new filter var filterNum = parseInt(mQuery('.available-filters').data('index')); mQuery('.available-filters').data('index', filterNum + 1); var prototypeStr = mQuery('.available-filters').data('prototype'); var fieldType = filterOption.data('field-type'); var fieldObject = filterOption.data('field-object'); var isSpecial = (mQuery.inArray(fieldType, ['leadlist', 'campaign', 'device_type', 'device_brand', 'device_os', 'lead_email_received', 'lead_email_sent', 'tags', 'multiselect', 'boolean', 'select', 'country', 'timezone', 'region', 'stage', 'locale', 'globalcategory']) != -1); prototypeStr = prototypeStr.replace(/__name__/g, filterNum); prototypeStr = prototypeStr.replace(/__label__/g, label); // Convert to DOM prototype = mQuery(prototypeStr); var prefix = 'leadlist'; var parent = mQuery(filterId).parents('.dynamic-content-filter, .dwc-filter'); if (parent.length) { prefix = parent.attr('id'); } var filterBase = prefix + "[filters][" + filterNum + "]"; var filterIdBase = prefix + "_filters_" + filterNum + "_"; if (isSpecial) { var templateField = fieldType; if (fieldType == 'boolean' || fieldType == 'multiselect') { templateField = 'select'; } var template = mQuery('#templates .' + templateField + '-template').clone(); template.attr('name', mQuery(template).attr('name').replace(/__name__/g, filterNum)); template.attr('id', mQuery(template).attr('id').replace(/__name__/g, filterNum)); prototype.find('input[name="' + filterBase + '[filter]"]').replaceWith(template); } if (mQuery('#' + prefix + '_filters div.panel').length == 0) { // First filter so hide the glue footer prototype.find(".panel-heading").addClass('hide'); } if (fieldObject == 'company') { prototype.find(".object-icon").removeClass('ri-user-6-fill').addClass('ri-building-2-line'); } else { prototype.find(".object-icon").removeClass('ri-building-2-line').addClass('ri-user-6-fill'); } prototype.find(".inline-spacer").append(fieldObject); prototype.find("a.remove-selected").on('click', function() { mQuery(this).closest('.panel').animate( {'opacity': 0}, 'fast', function () { mQuery(this).remove(); Mautic.reorderSegmentFilters(); } ); }); prototype.find("input[name='" + filterBase + "[field]']").val(elId); prototype.find("input[name='" + filterBase + "[type]']").val(fieldType); prototype.find("input[name='" + filterBase + "[object]']").val(fieldObject); var filterEl = (isSpecial) ? "select[name='" + filterBase + "[filter]']" : "input[name='" + filterBase + "[filter]']"; prototype.appendTo('#' + prefix + '_filters'); var filter = mQuery('#' + filterIdBase + 'filter'); //activate fields if (isSpecial) { if (fieldType == 'select' || fieldType == 'multiselect' || fieldType == 'boolean' || fieldType == 'leadlist') { // Generate the options var fieldOptions = filterOption.data("field-list"); mQuery.each(fieldOptions, function(val, index) { if (mQuery.isPlainObject(index)) { var optGroup = index; mQuery.each(optGroup, function(value, index) { mQuery('<option class="' + optGroup + '">').val(index).text(value).appendTo(filterEl); }); mQuery('.' + index).wrapAll("<optgroup label='"+index+"' />"); } else { mQuery('<option>').val(index).text(val).appendTo(filterEl); } }); } } else if (fieldType == 'lookup') { var fieldCallback = filterOption.data("field-callback"); if (fieldCallback && typeof Mautic[fieldCallback] == 'function') { var fieldOptions = filterOption.data("field-list"); Mautic[fieldCallback](filterIdBase + 'filter', elId, fieldOptions); } else { filter.attr('data-target', alias); Mautic.activateLookupTypeahead(filter.parent()); } } else if (fieldType == 'datetime') { filter.datetimepicker({ format: 'Y-m-d H:i', lazyInit: true, validateOnBlur: false, allowBlank: true, scrollMonth: false, scrollInput: false }); } else if (fieldType == 'date') { filter.datetimepicker({ timepicker: false, format: 'Y-m-d', lazyInit: true, validateOnBlur: false, allowBlank: true, scrollMonth: false, scrollInput: false, closeOnDateSelect: true }); } else if (fieldType == 'time') { filter.datetimepicker({ datepicker: false, format: 'H:i', lazyInit: true, validateOnBlur: false, allowBlank: true, scrollMonth: false, scrollInput: false }); } else if (fieldType == 'lookup_id') { //switch the filter and display elements var oldFilter = mQuery(filterEl); var newDisplay = oldFilter.clone(); newDisplay.attr('name', filterBase + '[display]') .attr('id', filterIdBase + 'display'); var oldDisplay = prototype.find("input[name='" + filterBase + "[display]']"); var newFilter = mQuery(oldDisplay).clone(); newFilter.attr('name', filterBase + '[filter]'); newFilter.attr('id', filterIdBase + 'filter'); oldFilter.replaceWith(newFilter); oldDisplay.replaceWith(newDisplay); var fieldCallback = filterOption.data("field-callback"); if (fieldCallback && typeof Mautic[fieldCallback] == 'function') { var fieldOptions = filterOption.data("field-list"); Mautic[fieldCallback](filterIdBase + 'display', elId, fieldOptions); } } else { filter.attr('type', fieldType); } var operators = filterOption.data('field-operators'); mQuery('#' + filterIdBase + 'operator').html(''); mQuery.each(operators, function (label, value) { var newOption = mQuery('<option/>').val(value).text(label); newOption.appendTo(mQuery('#' + filterIdBase + 'operator')); }); // Convert based on first option in list Mautic.convertDwcFilterInput('#' + filterIdBase + 'operator'); // Reposition if applicable Mautic.updateFilterPositioning(mQuery('#' + filterIdBase + 'glue')); }; Mautic.convertDwcFilterInput = function(el) { var prefix = 'leadlist'; var parent = mQuery(el).parents('.dynamic-content-filter, .dwc-filter'); if (parent.length) { prefix = parent.attr('id'); } var operator = mQuery(el).val(); // Extract the filter number var regExp = /_filters_(\d+)_operator/; var matches = regExp.exec(mQuery(el).attr('id')); var filterNum = matches[1]; var filterId = '#' + prefix + '_filters_' + filterNum + '_filter'; // Reset has-error if (mQuery(filterId).parent().hasClass('has-error')) { mQuery(filterId).parent().find('div.help-block').hide(); mQuery(filterId).parent().removeClass('has-error'); } var disabled = (operator == 'empty' || operator == '!empty'); mQuery(filterId+', #' + prefix + '_filters_' + filterNum + '_display').prop('disabled', disabled); if (disabled) { mQuery(filterId).val(''); } var newName = ''; var lastPos; if (mQuery(filterId).is('select')) { var isMultiple = mQuery(filterId).attr('multiple'); var multiple = (operator == 'in' || operator == '!in'); var placeholder = mQuery(filterId).attr('data-placeholder'); if (multiple && !isMultiple) { mQuery(filterId).attr('multiple', 'multiple'); // Update the name newName = mQuery(filterId).attr('name') + '[]'; mQuery(filterId).attr('name', newName); placeholder = mauticLang['chosenChooseMore']; } else if (!multiple && isMultiple) { mQuery(filterId).removeAttr('multiple'); // Update the name newName = mQuery(filterId).attr('name'); lastPos = newName.lastIndexOf('[]'); newName = newName.substring(0, lastPos); mQuery(filterId).attr('name', newName); placeholder = mauticLang['chosenChooseOne']; } if (multiple) { // Remove empty option mQuery(filterId).find('option[value=""]').remove(); // Make sure none are selected mQuery(filterId + ' option:selected').removeAttr('selected'); } else { // Add empty option mQuery(filterId).prepend("<option value='' selected></option>"); } // Destroy the chosen and recreate Mautic.destroyChosen(mQuery(filterId)); mQuery(filterId).attr('data-placeholder', placeholder); Mautic.activateChosenSelect(mQuery(filterId)); } }; Mautic.standardDynamicContentUrl = function(options) { if (!options) { return; } var url = options.windowUrl; if (url) { var editDynamicContentKey = '/dwc/edit/dynamicContentId'; var previewDynamicContentKey = '/dwc/preview/dynamicContentId'; if (url.indexOf(editDynamicContentKey) > -1 || url.indexOf(previewDynamicContentKey) > -1) { options.windowUrl = url.replace('dynamicContentId', mQuery('#campaignevent_properties_dynamicContent').val()); } } return options; }; Mautic.disabledDynamicContentAction = function(opener) { if (typeof opener == 'undefined') { opener = window; } var dynamicContent = opener.mQuery('#campaignevent_properties_dynamicContent').val(); var disabled = dynamicContent === '' || dynamicContent === null; opener.mQuery('#campaignevent_properties_editDynamicContentButton').prop('disabled', disabled); }; if (typeof MauticIsDwcReady === 'undefined') { var MauticIsDwcReady = true; if ( document.readyState === "complete" || !(document.readyState === "loading" || document.documentElement.doScroll) ) { Mautic.dynamicContentOnLoad(); } else { document.addEventListener("DOMContentLoaded", Mautic.dynamicContentOnLoad); } }