var email_push = (function ($, window, jQuery) { var _vars_ = {"event_attachment": {attachment: 123}}; return { "set_vars": function (options) { $.extend(_vars_, options || {}); }, "get_vars": function () { return _vars_; }, "_create" : { "modal" : function(){ app.modal.focusout_solution("on"); var _form = $("#emailPushForm"); bootbox.dialog({ "title": app.get_vars().email.title.add_email_push, "className" : "my-modal-with-small", "message": _form, "show": false /* We will show it manually later */, "buttons" : [ { "label": app.get_vars()._app.btn._close, "class": "btn btn-default", "callback": function () { } }, { "label": app.get_vars().email.btn.add_email_push, "class": "btn btn-success", "callback": function () { email_push._validate._init('add'); return false; } } ] }).on('shown.bs.modal', function() { email_push._typeheadjs._store._reset(); _form.show(); app._form._reset(this); //submit form on keypress or enter app._form._form_submit_on_keypress("emailPushForm", function(){ email_push._validate._init('add'); }); $(this).off('shown.bs.modal'); }).on('hide.bs.modal', function(e) { app._form._resetFormValidation("#emailPushForm"); app._form._reset(this); email_push._typeheadjs._store._reset(); $(this).data('bs.modal', null); app.modal.focusout_solution("off"); _form.hide().appendTo('body'); $(this).off('hidden.bs.modal'); }) .modal('show'); }, "save" : function(form){ $.ajax({ "url" : app.get_vars().baseurl+"add_email_push", "type" : "POST", "dataType": "json", "data" : email_push._prepare._data_to_server("add"), "success" : function(result){ if(app.isalive(result)) { app._notify(result.mtype, result.message); if (result.mtype == "success") { //reload grid bootbox.hideAll(); (email_push.get_vars()._email_push).ajax.reload( null, false ); //location.reload(); //window.setTimeout(function(){window.location.href = app.get_vars().baseurl+"email_push";},1000); } } } }); } }, "_update" : { "modal" : function(row){ app.modal.focusout_solution("on"); var rowData = (email_push.get_vars()._email_push).row(row).data(); var _form = $("#emailPushForm"); _form.data("email_push", rowData.action); bootbox.dialog({ "title": app.get_vars().email.title.update_email_push, "className" : "my-modal-with-small", "message": _form, "show": false /* We will show it manually later */, "buttons" : [ { "label": app.get_vars()._app.btn._close, "class": "btn btn-default", "callback": function () { } }, { "label": app.get_vars().email.btn.save_changes, "class": "btn btn-success", "callback": function () { email_push._validate._init('edit'); return false; } } ] }).on('shown.bs.modal', function() { _form.show(); app._form._reset(this); //jQuery('.selectpicker').selectpicker('removeDiv'); email_push._prepare._set_data(rowData); //submit form on keypress or enter app._form._form_submit_on_keypress("emailPushForm", function(){ email_push._validate._init('edit'); }); $(this).off('shown.bs.modal'); }).on('hide.bs.modal', function(e) { app._form._resetFormValidation("#emailPushForm"); app._form._reset(this); email_push._typeheadjs._store._reset(); $(this).data('bs.modal', null); app.modal.focusout_solution("off"); _form.hide().appendTo('body'); $(this).off('hidden.bs.modal'); }) .modal('show'); }, "save" : function(form){ $.ajax({ "url" : app.get_vars().baseurl+"update_email_push", type : "POST", dataType : "json", data : email_push._prepare._data_to_server("edit"), success : function(result){ //hide loder modal if(app.isalive(result)) { app._notify(result.mtype, result.message); if (result.mtype == "success") { //reload grid bootbox.hideAll(); (email_push.get_vars()._email_push).ajax.reload( null, false ); //window.setTimeout(function(){window.location.href = app.get_vars().baseurl+"email_push";},1000); //location.reload(); } } } }); } }, "_delete" : { "confirm" : function(email_custom_id){ app.modal.confirm_box({ "message" : app.get_vars().email.cmsg.delete_email_push+"

"+app.get_vars()._app.cma_msg.note+"", "_continue" : function() { email_push._delete.save(email_custom_id); }, "id" : "delete_confirm_box", "className" : "delete_confirm_box" }); }, "save" : function(email_custom_id){ $.ajax({ "url" : app.get_vars().baseurl+"delete_email_push/", "type" : "POST", "data" : { "email_custom_id" : email_custom_id }, "dataType" : "json", "success" : function(result){ if(app.isalive(result)) { app._notify(result.mtype, result.message); if (result.mtype == "success") { //reload grid bootbox.hideAll(); (email_push.get_vars()._email_push).ajax.reload(null, false); //window.setTimeout(function(){window.location.href = app.get_vars().baseurl+"email_push";},1000); } } } }); } }, "_typeheadjs" : { "_load" : function(model) { $('#'+model.store.store_ids).selectpicker({ actionsBox : model.actionsBox, liveSearch : true, multiple : true }).ajaxSelectPicker({ ajax: { url:app.get_vars().baseurl+ model.location, dataType: 'json', data: function () { var params = { search: '{{{q}}}' }; if(typeof model.initData != "undefined" && typeof model.initData =="function"){ params = $.extend(params, model.initData(model.store.store_ids)); } return params; } }, locale : { emptyTitle : "" }, preprocessData: function (data) { var i, l = data.length, arr = []; if (l) { for (i = 0; i < l; i++) { if (data[i].name.toLowerCase().indexOf(this.plugin.query) != -1 || data[i].name.toLowerCase().indexOf(this.plugin.query) != -1) { arr.push($.extend(true, data[i], { text: data[i].name, value: data[i].id, data: { subtext: data[i].name } })); } } } return arr; } }).on('changed.bs.select', function (e) { app._form._resetValidationByField(model.store.store_ids); if(typeof model.updateSubList != "undefined" && typeof model.updateSubList == "function"){ model.updateSubList(); } }).on('hide.bs.select', function (e) { //$("#emailPushForm").validate(); }); }, "_store" : { "_deleteItem" : function(_this, store_ids, store_values, deleteId){ var datastore = $("#"+store_ids), data = datastore.data(store_ids), ids = data[store_ids].split(", "), values = data[store_values].split(", "); $.map(ids, function(val, index){ if(deleteId == val){ ids.splice(index, 1); values.splice(index, 1); return false; } }); var data = new Object; data[store_ids] = ids.join(", "); data[store_values] = values.join(", "); datastore.data(store_ids, data); _this.remove(); //immediately reload subscribers list once a filter is removed if(store_ids != "subscriber_id"){ email_push.changFilterPar.updateSubList(); } }, "_reset":function(){ $('.city_location_id').val([]).prop("disabled", true).trigger('change.abs.preserveSelected').selectpicker("refresh"); $('.event_type_id').val([]).prop("disabled", true).trigger('change.abs.preserveSelected').selectpicker("refresh"); $('.subscriber_id').val([]).prop("disabled", true).trigger('change.abs.preserveSelected').selectpicker("refresh"); $('.email_filter_id').val([]).trigger('change.abs.preserveSelected').selectpicker("refresh"); $('.event_id').selectpicker('val',[]).trigger('change.abs.preserveSelected').selectpicker("refresh"); $("#email_custom_sendto").removeData("email_custom_sendto"); $("#subscription_date").val("").prop("disabled", true); $("div.custom-filters").hide(); $("div#subscriber_list").hide(); } } }, "_grid" : { "load" : function(){ var table = $('#email_push_list').DataTable({ "dom" : '<"top"l><"toolbar">rt<"bottom"ip><"clear">', "autoWidth": true, "responsive": true, "processing": true, //Feature control the processing indicator. "serverSide": true, //Feature control DataTables' server-side processing mode. "order": [[ 1, "desc" ]], //Initial no order. "oLanguage": fr_onload_lang.oLanguage, // Load data for the table's content from an Ajax source "ajax": { "url": app.get_vars().baseurl+"get_email_push_list/", "type": "POST" , "data" : function(d){ var da_ta = $("#custom_filter_search_form").serializeArray(); if(da_ta.length > 0) { var x=0; $.map(da_ta, function(val, index){ if(val.name != "custom_filter_search" && x==0){ d.keyname = val.name; x++; } d[val.name] = val.value; }); } } }, "columns": [ { "data": "event_order" }, { "data": "event_title" }, { "data": "event_filters" }, { "data": "email_subscribers" }, { "data": "email_sent" }, { "data": "email_onqueue" }, { "data": "action" , render : function(data, type, full, meta){ var action_btns = ""; if(parseInt(full.action.email_custom_status) == 0) { action_btns += app.grid.create_action_btn(app.get_vars()._app.action._edit, "pencil", "success", "email_push._update.modal("+meta.row+")"); } action_btns += app.grid.create_action_btn(app.get_vars()._app.action._delete, "trash", "danger", "email_push._delete.confirm("+full.action.email_custom_id +")"); return '
'+action_btns+'
'; }}, { "data": "email_push_date_created" }, { "data": "email_custom_author" } ], "fnDrawCallback": function() { app._tooltip._hide(); $('#email_push_list tbody tr td').each( function(x, y) { var _this = $(this); if(_this.hasClass('truncate-content-text')){ _this.css('max-width', '180px'); this.setAttribute( 'title', _this.text()); this.setAttribute( 'data-toggle',"tooltip"); } }); app._tooltip._pop(); }, //Set column definition initialisation properties. "columnDefs": [ { "targets": [0], "orderable": false}, { "targets": [1], className : "truncate-content-text custom-popover-tooltip"}, { "targets": [2], className : "truncate-content-text custom-popover-tooltip", "orderable": false}, { "targets": [3], "orderable": true, className : "truncate-content-text custom-popover-tooltip", "orderable": false}, { "targets": [4], "orderable": false}, { "targets": [5], "orderable": false}, { "targets": [8], "orderable": false}, { "targets": [6], "orderable": false} ], "initComplete": function(settings, json) { //run tooltip app._tooltip._hide(); app._tooltip._pop(); $("div#email_push_list_length").css({"width" : "20%", "float":"left"}); $("select[name='email_push_list_length']").css({"width" : "70px"}); //add custom button beside searchbox $("div.toolbar").html('
'); //fire search filter event } }); email_push.set_vars({_email_push : table}); } }, "_prepare" : { "_data_to_server" : function(action){ var _form = $("form#emailPushForm"), form_data = _form.serializeArray(), datastores = ["city_location_id[]", "event_type_id[]"], dataStoresIds = [], filters_val = {"city_location_id" : "city", "event_type_id" : "event_type"}, sdate = ""; $.map(form_data, function(x, t){ var getIndexOf = datastores.indexOf(x.name); if(getIndexOf != -1){ if(dataStoresIds.indexOf(x.name) == -1){ dataStoresIds.push(x.name); } } else if(x.name == "subscription_date") { var drange = (form_data[t].value).split(" - "); form_data.push({"name": "subscription_date_formatted", "value": moment(drange[0], 'DD/MM/YYYY', true).format("YYYY-MM-DD") + " - " + moment(drange[1], 'DD/MM/YYYY', true).format("YYYY-MM-DD")}); } }); $.map(dataStoresIds, function(selector, v){ var remBrackets = selector.replace("[]", ""); var text = ""; $.each($("select#"+remBrackets).find('option:selected'), function(){ text += $(this).text()+", "; }); form_data.push({"name": filters_val[remBrackets], "value": text.replace(/, $/, '')}); }); if(action == "edit"){ var _get_data = _form.data("email_push"); form_data.push({"name" : "email_custom_id", "value" : _get_data.email_custom_id}); } return form_data; }, "_set_data" : function(data){ var rawData = data.action; //custom status $("#email_custom_status").val(rawData.email_custom_status); $("#email_custom_sendto").val(rawData.email_custom_sendto); //set event var selectedFilters = []; $('select.event_id').html("") .selectpicker('val', rawData.event_id) .trigger('change.abs.preserveSelected') .selectpicker('refresh'); if(rawData.subscription_date != null){ var subscription_date = $("#subscription_date"); subscription_date.show().prop("disabled", false).val(rawData.subscription_date); selectedFilters.push(3); $(".custom-filters-3").show(); } if(rawData.city_location_id != null){ var city_location_id = $("select.city_location_id"); var city = (rawData.city).split(", "), cli=""; $.map((rawData.city_location_id).split(", "), function(x,y){ cli += ""; }); city_location_id.html(cli) .selectpicker('val', (rawData.city_location_id).split(", ")) .selectpicker('refresh'); email_push.changFilterPar.filterBy_1(); selectedFilters.push(1); } if(rawData.event_type_id != null){ var event_type_id = $("select.event_type_id"); var event_type = (rawData.event_type).split(", "), et=""; $.map((rawData.event_type_id).split(", "), function(x,y){ et += ""; }); event_type_id.html(et) .selectpicker('val', (rawData.event_type_id).split(", ")) .selectpicker('refresh'); email_push.changFilterPar.filterBy_2(); selectedFilters.push(2); } if(parseInt(rawData.email_custom_sendto) == 2) { //open subscriber field when selected "specific subscribers" if (rawData.subscriber_id != null) { var subscriber_id = $("select.subscriber_id"); var subnames = (data.email_subscribers).split(", "), subscribers=""; $.map((rawData.subscriber_id).split(", "), function(x,y){ subscribers += ""; }); subscriber_id.html(subscribers) .selectpicker('val', (rawData.subscriber_id).split(", ")) .trigger('change.abs.preserveSelected') .prop("disabled", false) .selectpicker('refresh'); } $('#subscriber_list').show(); }else { //selected all susbcribers email_push.changFilterPar.updateSubList(); } //select filters $('select.email_filter_id').selectpicker('val', selectedFilters) .trigger('change.abs.preserveSelected') .selectpicker('refresh'); $('select#email_filter_id').data("selectedFilters", selectedFilters); } }, "_validate" : { "_init": function (action) { var options = { boot_box : { "message": (action == "add") ? app.get_vars().email.cmsg.add_email_push : app.get_vars().email.cmsg.save_changes , "_continue": function () { var _form_ = $("form#emailPushForm"); (action == "add") ? email_push._create.save(_form_) : email_push._update.save(_form_) } }, "validation": { "custom": { "rules": { "check_event_id": { "_fnc": email_push._validate.check_event_id, msg: app.get_vars().email.val.email_event_req }, "checkLocation": { "_fnc": email_push._validate.checkLocation, msg: "This field is required!" }, "checkEventType": { "_fnc": email_push._validate.checkEventType, msg: "This field is required!" }, "invalid_date": { "_fnc": email_push._validate.check_subAgeDate, msg: app.get_vars().email.val.invlaid_date }, "check_subscribers": { "_fnc": email_push._validate.check_subscribers, msg: "Select at least one subscriber." }, "checkAllSubscribers": { "_fnc": email_push._validate.checkAllSubscribers, msg: "No subscribers found on this query." } } }, "form_id": "form#emailPushForm", "rules": { "event_id[]": { check_event_id: true }, "city_location_id[]": { checkLocation: true }, "event_type_id[]": { checkEventType: true }, "subscription_date": { "invalid_date" : true }, "email_filter_id[]": { "required": false }, "email_custom_sendto": { //"required": true, "checkAllSubscribers" : true }, "subscriber_id[]": { check_subscribers: { depends: email_push._validate.checkSubscribersIf } } } } }; app._form._validate(options); }, "checkAllSubscribers" : function(value, element, options) { var sendTo = $("select#email_custom_sendto:visible"), creation_status = parseInt($("#email_custom_status option:selected").val()); var sel = parseInt(sendTo.find("option:selected").val()); if(sel == 0 && creation_status == 1){ return false; } else if(sel == 1 && creation_status == 1) { var datastore = sendTo.data("email_custom_sendto"); if (typeof datastore == "undefined" || typeof datastore["email_custom_sendto"] == "undefined" || datastore["email_custom_sendto"].trim() == "") { return false; } } return true; }, "checkSubscribersIf" : function(value, element, options){ var validate = false; var sendTo = $("select#email_custom_sendto option:selected").val(), creation_status = parseInt($("#email_custom_status option:selected").val()); if (parseInt(sendTo) == 2 && creation_status ==1) { if (!email_push._validate.check_event_id(value, element, options)) { validate = true; } else if (!email_push._validate.checkLocation(value, element, options)) { validate = true; } else if (!email_push._validate.checkEventType(value, element, options)) { validate = true; } else if (!email_push._validate.check_subscribers(value, element, options)) { validate = true; } else if (!email_push._validate.check_subAgeDate(value, element, options)) { validate = true; } } return validate; }, "check_subAgeDate": function (value, element, options) { var subAGe = $("input#subscription_date:visible"), creation_status = parseInt($("#email_custom_status option:selected").val()); if (subAGe.length > 0 && creation_status == 1) { var dater = subAGe.val(); if(dater == ""){ return false; } else if(dater !=""){ var checkdrange = dater.split(" - "); if(checkdrange.length <=1){ return false; } else { var startdrange = moment(checkdrange[0], "DD/MM/YYYY", true), enddrange = moment(checkdrange[1], "DD/MM/YYYY", true); if (!startdrange.isValid() || !enddrange.isValid()) { return false; } else if(!moment(checkdrange[1], "DD/MM/YYYY").isSameOrAfter(moment(checkdrange[0], "DD/MM/YYYY"))){ return false; } } } } return true; }, "check_subscribers": function (value, element, options) { var sendTo = $("select#email_custom_sendto option:selected").val(), creation_status = parseInt($("#email_custom_status option:selected").val()); if (parseInt(sendTo) == 2 && creation_status ==1) { var datastore = $("select.subscriber_id:visible"), countOptions = datastore.val(); if (typeof countOptions == "undefined" || countOptions == null) { return false; } } return true; }, "check_event_id": function (value, element, options) { var event_id = $("select.event_id:visible"), countOptions = event_id.val(); if (typeof countOptions == "undefined" || countOptions == null || countOptions == "") { return false; } return true; }, "checkLocation": function (value, element, options) { var datastore = $("select.city_location_id:visible"), countOptions = datastore.val(), creation_status = parseInt($("#email_custom_status option:selected").val()); if(creation_status ==1) { if (typeof countOptions == "undefined" || countOptions == null) { return false; } } return true; }, "checkEventType": function (value, element, options) { var datastore = $("select.event_type_id:visible"), countOptions = datastore.val(), creation_status = parseInt($("#email_custom_status option:selected").val()); if(creation_status ==1) { if (typeof countOptions == "undefined" || countOptions == null) { return false; } } return true; } }, changFilterPar : { "_init" : function() { //reinstialize typeahead email_push._typeheadjs._load({ location: "list_email_push", actionsBox : false, id: "id", name: "name", store: { store_ids: "event_id" }, updateSubList: email_push.changFilterPar.updateSubList }); email_push._typeheadjs._load({ location: "list_email_recipient/", actionsBox : true, id: "id", name: "name", store: { store_ids: "subscriber_id" }, initData: function (store_ids) { return email_push.changFilterPar.filterSubscribers(store_ids); } }); email_push._typeheadjs._load({ location: "list_city_location/", actionsBox : true, id: "id", name: "name", store: { store_ids: "city_location_id" }, updateSubList: email_push.changFilterPar.updateSubList }); email_push._typeheadjs._load({ location: "list_event_type/", actionsBox : true, id: "id", name: "name", store: { store_ids: "event_type_id" }, updateSubList: email_push.changFilterPar.updateSubList }); moment.locale('fr'); $('#subscription_date_drange').daterangepicker({ locale: { format: 'DD/MM/YYYY', cancelLabel: "Annuler", applyLabel: "Appliquer", customRangeLabel: "Periode personnalisée", "daysOfWeek": 'di_lu_ma_me_je_ce_sa'.split('_'), "monthNames": 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_') }, "showDropdowns": true, "parentEl": "body", startDate: moment(), endDate: moment(), maxDate: moment(), ranges: { 'Revenir à aujourd\'hui': [moment(), moment()], 'Hier': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], //'Les 7 derniers jours': [moment().subtract(6, 'days'), moment()], //'Les 30 derniers jours': [moment().subtract(29, 'days'), moment()], //'Ce mois-ci': [moment().startOf('month'), moment().endOf('month')], 'Mois précédent': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')] } }, function (start, end, label) { $('#subscription_date').val(start.format('DD/MM/YYYY') + ' - ' + end.format('DD/MM/YYYY')); //check first if subscribers list are not empty app._form._resetValidationByField("subscription_date_drange"); email_push.changFilterPar.updateSubList(); }); }, "updateSubList" : function(){ //check first if subscribers list are not empty var sendTo = $("#email_custom_sendto:visible option:selected"), sendToVal = parseInt(sendTo.val()); if(sendToVal == 2) { var ids = $("select.subscriber_id option:selected").val(); if (typeof ids != "undefined" && ids != null) { email_push.changFilterPar.refresh_sublist({ "store_ids" : "subscriber_id" }, 2); } } else if(sendToVal == 1) { email_push.changFilterPar.refresh_sublist({ "store_ids" : "email_custom_sendto" }, 1); } }, "filterSubscribers" : function(store_ids){ var data = {}, filters = ["event_id","city_location_id", "event_type_id","subscription_date", "subscriber_id"], filters_val = {"city_location_id" : "city", "event_type_id" : "event_type"}; $.each(filters, function(index, val){ var _datastore = $("#"+val+":visible"); if(val != "subscription_date" && _datastore.val() != null && _datastore.length > 0){ var values = _datastore.val(); if(typeof values == "string"){ data[val] = values; } else { if(typeof filters_val[val] != "undefined"){ var val_text = ""; $.each(_datastore.find('option:selected'), function(){ val_text += $(this).text()+", "; }); data[filters_val[val]] = val_text.replace(/, $/, ''); } data[val] = values.join(", "); } } else if(val == "subscription_date"){ //date range var drange = $("input#subscription_date:visible"); if (email_push._validate.check_subAgeDate("", "", "") && drange.length > 0) { var drange = (drange.val()).split(" - "); data[val] = moment(drange[0], 'DD/MM/YYYY', true).format("YYYY-MM-DD") + " - " + moment(drange[1], 'DD/MM/YYYY', true).format("YYYY-MM-DD"); } } }); return data; }, "refresh_sublist" : function(store, subs){ //reload subscribers list var filterBy = (subs == 1)?"":"subscriber_id"; var data = email_push.changFilterPar.filterSubscribers(filterBy); data["email_custom_sendto"] = subs; $.ajax({ url : app.get_vars().baseurl+"refresh_sub_list/", data : data, type : "POST", success : function(result){ if(subs == 1) { var sub = $("#" + store.store_ids); sub.data(store.store_ids, result); } else { var subscriber_id = $("select.subscriber_id"); var subnames = (result.subscriber_id != "")?(result.subscriber_name).split(", "):[], subids = (result.subscriber_id != "")?(result.subscriber_id).split(", "):[], subscribers=""; $.map(subids, function(x,y){ subscribers += ""; }); subscriber_id.html(subscribers) .selectpicker('val', null) .selectpicker('refresh') .selectpicker('val', subids) .trigger('change.abs.preserveSelected') .selectpicker('refresh'); } //$("#emailPushForm").validate(); } }); }, //localisation filterBy_1 : function(reset_spicker){ $("#filtersByLocalisation").show(); app._form._resetValidationByField("city_location_id"); var field = $("select.city_location_id"); field.prop('disabled', false); field.trigger('change.abs.preserveSelected'); field.selectpicker("refresh"); }, filterBy_2 : function(reset_spicker){ $("#filterByInterest").show(); app._form._resetValidationByField("event_type_id"); var field = $("select.event_type_id"); field.prop('disabled', false); field.trigger('change.abs.preserveSelected'); field.selectpicker("refresh"); }, filterBy_3 : function(reset_spicker){ $("#filterBySubAge").show(); app._form._resetValidationByField("subscription_date"); var field = $("#subscription_date"); field.prop('disabled', false).val(""); } } };//end of return // Pass in jQuery. })(jQuery, this); $(function() { var options = []; $( '#emailFilter a, #emailFilter input' ).on( 'click', function( event ) { email_push.changFilterPar.selectFilters(event); return false; }); //load datatable email_push._grid.load(); //show search bar for specific subscribers $("#email_custom_sendto").on('change', function(){ var subscriber_id =$("select.subscriber_id"); if($('#email_custom_sendto :selected').val() == 2) { $("#subscriber_list").show(); subscriber_id.prop("disabled", false); subscriber_id.trigger('change.abs.preserveSelected'); subscriber_id.selectpicker("refresh"); } else { subscriber_id.prop("disabled", true); subscriber_id.val([]); subscriber_id.trigger('change.abs.preserveSelected'); subscriber_id.selectpicker("refresh"); app._form._resetValidationByField("subscriber_id"); $("#subscriber_list").hide(); $(this).removeData("email_custom_sendto"); email_push.changFilterPar.updateSubList(); } }); $('select#email_filter_id').selectpicker({ actionsBox : true, multiple : true }).on('changed.bs.select', function (e) { var optionsSelected = $(this).val(), os = $(this).val(), selectedFilters = (typeof $(this).data("selectedFilters") != "undefined")?$(this).data("selectedFilters"):[]; $.map(selectedFilters, function(x,y){ if(optionsSelected != null && optionsSelected.indexOf(x.toString()) == -1){ //hide filters when visible var parentDiv = $(".custom-filters-"+x); parentDiv.find(".filter-"+x).val([]).prop("disabled", true).trigger('change.abs.preserveSelected').selectpicker("refresh"); parentDiv.hide(); } else if(optionsSelected != null && optionsSelected.indexOf(x) != -1){ // keep selected items from the filter optionsSelected.splice(optionsSelected.indexOf(x), 1); } }); if(os == null) { // hide all filters var parentDiv = $(".custom-filters"); parentDiv.find(".selectpicker").val([]).prop("disabled", true).trigger('change.abs.preserveSelected').selectpicker("refresh"); parentDiv.hide(); } var optLength = (optionsSelected!= null)?optionsSelected.length:0; if(optLength > 0) { for (var x = 0; x < optLength; x++) { var reset_spicker = true; app._form._resetValidationByField("subscriber_id"); email_push.changFilterPar["filterBy_" + optionsSelected[x]](reset_spicker); } } //update list $("#email_custom_sendto").removeData("email_custom_sendto"); email_push.changFilterPar.updateSubList(); //update selected data $(this).data("selectedFilters", $(this).val()); }); //initialize selects email_push.changFilterPar._init(); });