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