1 line
2.1 KiB
JavaScript
1 line
2.1 KiB
JavaScript
!function(e){e(document).ready((function(){window.wu_initialize_selectizer=function(){jQuery("[data-selectize]").selectize(),e.each(e("[data-selectize-categories]"),(function(t,a){jQuery(e(a)).selectize({maxItems:e(a).data("max-items")||10,create:e=>({value:e,text:e})})})),e.each(e("[data-model]"),(function(t,a){wu_selector({el:a,valueField:e(a).data("value-field"),labelField:e(a).data("label-field"),searchField:e(a).data("search-field"),maxItems:e(a).data("max-items"),selected:e(a).data("selected"),options:[],data:{action:"wu_search",model:e(a).data("model"),number:10,exclude:e(a).data("exclude"),include:e(a).data("include")}})}))},wu_initialize_selectizer(),jQuery("body").on("wubox:load",(function(){wu_initialize_selectizer()}))})),window.wu_selector=function(e){if(e=_.defaults(e,{options:[],maxItems:1,templateName:!1,create:!1}),jQuery(e.el).data("init"))return;jQuery(e.el).data("__options",e);const t=jQuery(e.el).selectize({valueField:e.valueField,labelField:e.labelField,searchField:["text","name","display_name","domain","path","title","desc","code","post_title","reference_code"],options:e.options,maxItems:e.maxItems,create:e.create,render:{option(t){const a=e.templateName?e.templateName:e.data.model,l=jQuery("#wu-template-"+a).length?jQuery("#wu-template-"+a).html():jQuery("#wu-template-default").html();return _.template(l,{interpolate:/\{\{(.+?)\}\}/g})(t)}},load(t,l){if(!t.length)return l();const i=jQuery(e.el).data("__options");jQuery.ajax({url:wu_selectizer.ajaxurl,type:"POST",data:{...i.data,query:{search:"*"+t+"*"}},error(){l()},success(e){a.savedItems=e,l(e)}})}});jQuery(e.el).attr("data-init",1);const a=t[0].selectize;if(a.on("change",(function(e){const a=jQuery(t[0]),l=a.parents("[data-wu-app]").data("wu-app");l&&void 0!==window["wu_"+l]&&(window["wu_"+l][a.attr("name")]=e)})),a.on("item_add",(function(e){let t={url:null};jQuery.each(a.savedItems,(function(a,l){l.setting_id===e&&(t=l)})),t.url&&(window.location.href=t.url)})),e.selected){a.options=[],a.clearOptions();const t=_.isArray(e.selected)?e.selected:[e.selected];a.addOption(t);const l=_.isArray(e.selected)?_.pluck(e.selected,e.valueField):e.selected[e.valueField];a.setValue(l,!1)}}}(jQuery); |