{combine_script id='LocalStorageCache' load='footer' path='admin/themes/default/js/LocalStorageCache.js'} {combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} {combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.default.css"} {footer_script} {* *} var categoriesCache = new LocalStorageCache({ key: 'categoriesAdminList', serverKey: '{$CACHE_KEYS.categories}', serverId: '{$CACHE_KEYS._hash}', loader: function(callback) { jQuery.getJSON('{$ROOT_URL}ws.php?format=json&method=pwg.categories.getAdminList', function(data) { callback(data.result.categories); }); } }); jQuery('[data-selectize=categories]').selectize({ valueField: 'id', labelField: 'fullname', sortField: 'fullname', searchField: ['fullname'], plugins: ['remove_button'] }); categoriesCache.get(function(categories) { categories.push({ id: 0, fullname: '------------' }); // remove itself and children categories = jQuery.grep(categories, function(cat) { return !(/\b{$CAT_ID}\b/.test(cat.uppercats)); }); categories.sort(function(a, b) { return a.fullname.localeCompare(b.fullname); }); jQuery('[data-selectize=categories]').each(function() { this.selectize.load(function(callback) { callback(categories); }); if (jQuery(this).data('value')) { this.selectize.setValue(jQuery(this).data('value')[0]); } // prevent empty value if (this.selectize.getValue() == '') { this.selectize.setValue(categories[0].id); } this.selectize.on('dropdown_close', function() { if (this.getValue() == '') { this.setValue(categories[0].id); } }); }); }); {/footer_script}