diff options
Diffstat (limited to 'modules-available/permissionmanager/clientscript.js')
-rw-r--r-- | modules-available/permissionmanager/clientscript.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/modules-available/permissionmanager/clientscript.js b/modules-available/permissionmanager/clientscript.js new file mode 100644 index 00000000..700ebc11 --- /dev/null +++ b/modules-available/permissionmanager/clientscript.js @@ -0,0 +1,48 @@ +document.addEventListener("DOMContentLoaded", function() { + var selectize = $('#select-role'); + if (selectize.length) { + selectize = selectize.selectize({ + allowEmptyOption: false, + maxItems: null, + highlight: false, + hideSelected: true, + create: false, + 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(); + } 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(); + } + }); + } + }); + } + + $("form input").keydown(function(e) { + if (e.keyCode === 13) e.preventDefault(); + }); +});
\ No newline at end of file |