From af5c4258439341fd2153a951fb871269bd754e58 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 12 Feb 2018 17:18:45 +0100 Subject: [permissionmanager] Tweak style, fix role filtering (and make it AND), minor cleanups --- .../permissionmanager/clientscript.js | 45 +++++++--------------- 1 file changed, 13 insertions(+), 32 deletions(-) (limited to 'modules-available/permissionmanager/clientscript.js') diff --git a/modules-available/permissionmanager/clientscript.js b/modules-available/permissionmanager/clientscript.js index 4770fa6a..90d66688 100644 --- a/modules-available/permissionmanager/clientscript.js +++ b/modules-available/permissionmanager/clientscript.js @@ -10,36 +10,21 @@ document.addEventListener("DOMContentLoaded", function() { plugins: ["remove_button"] })[0].selectize; - // If Site gets refreshed, all data-selectizeCounts will be reset to 0, so delete the filters from the selectize - selectize.clear(); - - selectize.on("item_add", function (value, $item) { - // When first item gets added the filter isn't empty anymore, so hide all rows - if (selectize.items.length === 1) { - $(".dataTable tbody").find("tr").hide(); - } - // Find all rows which shall be shown and increase their counter by 1 - $(".roleid-" + value).closest("tr").each(function () { - $(this).data("selectizeCount", $(this).data("selectizeCount") + 1); - $(this).show(); - }); - }); - - selectize.on("item_remove", function (value, $item) { - // When no items in the filter, show all rows again - if (selectize.items.length === 0) { - $(".dataTable tbody").find("tr").show(); + var $body = $(".dataTable tbody"); + var filterFunc = function(value) { + var selected = selectize.getValue(); + if (!selected || !selected.length) { + $body.find("tr").show(); } else { - // Find all rows which have the delete role, decrease their counter by 1 - $(".roleid-" + value).closest("tr").each(function () { - $(this).data("selectizeCount", $(this).data("selectizeCount") - 1); - // If counter is 0, hide the row (no filter given to show the row anymore) - if ($(this).data("selectizeCount") === 0) { - $(this).closest("tr").hide(); - } - }); + $body.find("tr").hide(); + var str = 'tr.roleid-' + selected.join('.roleid-'); + $body.find(str).show(); } - }); + }; + + selectize.on("item_add", filterFunc); + + selectize.on("item_remove",filterFunc); } $("tr").on("click", function(e) { @@ -47,8 +32,4 @@ document.addEventListener("DOMContentLoaded", function() { $(this).find("input[type=checkbox]").trigger("click"); } }); - - $("form input").keydown(function(e) { - if (e.keyCode === 13) e.preventDefault(); - }); }); \ No newline at end of file -- cgit v1.2.3-55-g7522