From ce8a29810abe6f7fdf82043b32ca87ba0f14220c Mon Sep 17 00:00:00 2001 From: mistic100 Date: Sat, 17 May 2014 15:33:37 +0000 Subject: feature 3077 : use Selectize with AJAX load/cache on cat_perm and batch_manager_unit git-svn-id: http://piwigo.org/svn/trunk@28496 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/themes/default/template/cat_perm.tpl | 108 +++++++++++++++++++---------- 1 file changed, 71 insertions(+), 37 deletions(-) (limited to 'admin/themes/default/template/cat_perm.tpl') diff --git a/admin/themes/default/template/cat_perm.tpl b/admin/themes/default/template/cat_perm.tpl index 0415c87a4..ba0813014 100644 --- a/admin/themes/default/template/cat_perm.tpl +++ b/admin/themes/default/template/cat_perm.tpl @@ -1,39 +1,75 @@ -{combine_script id='jquery.chosen' load='footer' path='themes/default/js/plugins/chosen.jquery.min.js'} -{combine_css path="themes/default/js/plugins/chosen.css"} - -{footer_script}{literal} -jQuery(document).ready(function() { - jQuery(".chzn-select").chosen(); - - function checkStatusOptions() { - if (jQuery("input[name=status]:checked").val() == "private") { - jQuery("#privateOptions, #applytoSubAction").show(); - } - else { - jQuery("#privateOptions, #applytoSubAction").hide(); - } - } - - checkStatusOptions(); - jQuery("#selectStatus").change(function() { - checkStatusOptions(); +{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} +(function(){ +{* *} +var groupsCache = new LocalStorageCache('groupsAdminList', 5*60, function(callback) { + jQuery.getJSON('{$ROOT_URL}ws.php?format=json&method=pwg.groups.getList&per_page=99999', function(data) { + callback(data.result.groups); }); +}); + +jQuery('[data-selectize=groups]').selectize({ + valueField: 'id', + labelField: 'name', + searchField: ['name'], + plugins: ['remove_button'] +}); + +groupsCache.get(function(groups) { + jQuery('[data-selectize=groups]').each(function() { + this.selectize.load(function(callback) { + callback(groups); + }); - jQuery("#indirectPermissionsDetailsShow").click(function(){ - jQuery("#indirectPermissionsDetailsShow").hide(); - jQuery("#indirectPermissionsDetailsHide").show(); - jQuery("#indirectPermissionsDetails").show(); - return false; + jQuery.each(jQuery(this).data('value'), jQuery.proxy(function(i, id) { + this.selectize.addItem(id); + }, this)); }); +}); + +{* *} +var usersCache = new LocalStorageCache('usersAdminList', 5*60, function(callback) { + var page = 0, + users = []; + + (function load(page){ + jQuery.getJSON('{$ROOT_URL}ws.php?format=json&method=pwg.users.getList&display=username&per_page=99999&page='+ page, function(data) { + users = users.concat(data.result.users); + + if (data.result.paging.count == data.result.paging.per_page) { + load(++page); + } + else { + callback(users); + } + }); + }(page)); +}); + +jQuery('[data-selectize=users]').selectize({ + valueField: 'id', + labelField: 'username', + searchField: ['username'], + plugins: ['remove_button'] +}); + +usersCache.get(function(users) { + jQuery('[data-selectize=users]').each(function() { + this.selectize.load(function(callback) { + callback(users); + }); - jQuery("#indirectPermissionsDetailsHide").click(function(){ - jQuery("#indirectPermissionsDetailsShow").show(); - jQuery("#indirectPermissionsDetailsHide").hide(); - jQuery("#indirectPermissionsDetails").hide(); - return false; + jQuery.each(jQuery(this).data('value'), jQuery.proxy(function(i, id) { + this.selectize.addItem(id); + }, this)); }); }); -{/literal}{/footer_script} +}()); +{/footer_script}

{$CATEGORIES_NAV} › {'Edit album'|@translate} {$TABSHEET_TITLE}

@@ -58,9 +94,8 @@ jQuery(document).ready(function() { {if count($groups) > 0} {'Permission granted for groups'|@translate}
- + {else} {'There is no group in this gallery.'|@translate} {'Group management'|@translate} {/if} @@ -69,12 +104,11 @@ jQuery(document).ready(function() {

{'Permission granted for users'|@translate}
- +

-{if isset($nb_users_granted_indirect)} +{if isset($nb_users_granted_indirect) && $nb_users_granted_indirect>0}

{'%u users have automatic permission because they belong to a granted group.'|@translate:$nb_users_granted_indirect} -- cgit v1.2.3