/** 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('"); } else { mQuery('"); } // 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); } }