summaryrefslogtreecommitdiffstats
path: root/modules-available/permissionmanager
diff options
context:
space:
mode:
authorChristian Hofmaier2017-04-10 18:58:26 +0200
committerChristian Hofmaier2017-04-10 18:58:26 +0200
commitf017c089f5ea740f3e4e458ff976e987ad2426ee (patch)
tree7bff0cecfcdebf7af38d703e98cd65dfbad9c1ed /modules-available/permissionmanager
parent[permission-manager] added permission check functionality + bugfixes (diff)
downloadslx-admin-f017c089f5ea740f3e4e458ff976e987ad2426ee.tar.gz
slx-admin-f017c089f5ea740f3e4e458ff976e987ad2426ee.tar.xz
slx-admin-f017c089f5ea740f3e4e458ff976e987ad2426ee.zip
[permission-manager] moved multiple code, added text-search to rolesTable
Diffstat (limited to 'modules-available/permissionmanager')
-rw-r--r--modules-available/permissionmanager/clientscript.js44
-rw-r--r--modules-available/permissionmanager/lang/de/template-tags.json3
-rw-r--r--modules-available/permissionmanager/lang/en/template-tags.json3
-rw-r--r--modules-available/permissionmanager/templates/locationstable.html58
-rw-r--r--modules-available/permissionmanager/templates/roleeditor.html4
-rw-r--r--modules-available/permissionmanager/templates/rolestable.html32
-rw-r--r--modules-available/permissionmanager/templates/userstable.html51
7 files changed, 84 insertions, 111 deletions
diff --git a/modules-available/permissionmanager/clientscript.js b/modules-available/permissionmanager/clientscript.js
index da825984..edbd3eb9 100644
--- a/modules-available/permissionmanager/clientscript.js
+++ b/modules-available/permissionmanager/clientscript.js
@@ -9,4 +9,48 @@ document.addEventListener("DOMContentLoaded", function() {
var arrow = data.direction === dir.ASC ? "down" : "up";
th.eq(data.column).append(' <span class="arrow glyphicon glyphicon-chevron-'+arrow+'"></span>');
});
+
+ var selectize = $('#select-role').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
diff --git a/modules-available/permissionmanager/lang/de/template-tags.json b/modules-available/permissionmanager/lang/de/template-tags.json
index 86c03871..e9146d2c 100644
--- a/modules-available/permissionmanager/lang/de/template-tags.json
+++ b/modules-available/permissionmanager/lang/de/template-tags.json
@@ -18,5 +18,6 @@
"lang_all": "alle",
"lang_selected": "ausgewählte",
"lang_Permissions": "Rechte",
- "lang_selectizePlaceholder": "Nach Rollen filtern..."
+ "lang_selectizePlaceholder": "Nach Rollen filtern...",
+ "lang_searchPlaceholder": "Nach Rollen suchen..."
} \ No newline at end of file
diff --git a/modules-available/permissionmanager/lang/en/template-tags.json b/modules-available/permissionmanager/lang/en/template-tags.json
index 82cbc933..ce35a6ce 100644
--- a/modules-available/permissionmanager/lang/en/template-tags.json
+++ b/modules-available/permissionmanager/lang/en/template-tags.json
@@ -18,5 +18,6 @@
"lang_all": "all",
"lang_selected": "selected",
"lang_Permissions": "Permissions",
- "lang_selectizePlaceholder": "Filter for roles..."
+ "lang_selectizePlaceholder": "Filter for roles...",
+ "lang_searchPlaceholder": "Search for roles..."
} \ No newline at end of file
diff --git a/modules-available/permissionmanager/templates/locationstable.html b/modules-available/permissionmanager/templates/locationstable.html
index aa4553f8..ea3a92e8 100644
--- a/modules-available/permissionmanager/templates/locationstable.html
+++ b/modules-available/permissionmanager/templates/locationstable.html
@@ -1,7 +1,8 @@
<div class="row">
- <div class="col-md-4 text-left">
+ <div class="col-md-4"></div>
+ <div class="col-md-4">
<select multiple name="roles[]" id="select-role">
- <option value></option>
+ <option value>{{lang_selectizePlaceholder}}</option>
{{#roles}}
<option value="{{roleId}}">{{roleName}}</option>
{{/roles}}
@@ -11,7 +12,7 @@
<div class="row">
<div class="col-md-12">
- <table id="locationsTable" class="table table-condensed table-hover">
+ <table id="locationsTable" class="table table-condensed table-hover dataTable">
<thead>
<tr>
<th data-sort="string">{{lang_Locations}}</th>
@@ -33,53 +34,4 @@
</tbody>
</table>
</div>
-</div>
-
-<script>
- document.addEventListener("DOMContentLoaded", function() {
- var selectize = $('#select-role').selectize({
- allowEmptyOption: false,
- maxItems: null,
- highlight: false,
- hideSelected: true,
- create: false,
- placeholder: "{{lang_selectizePlaceholder}}",
- 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) {
- $('#locationsTable').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) {
- $('#locationsTable').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();
- });
- });
-</script> \ No newline at end of file
+</div> \ No newline at end of file
diff --git a/modules-available/permissionmanager/templates/roleeditor.html b/modules-available/permissionmanager/templates/roleeditor.html
index 7de8eaf3..d21b3fbd 100644
--- a/modules-available/permissionmanager/templates/roleeditor.html
+++ b/modules-available/permissionmanager/templates/roleeditor.html
@@ -83,10 +83,6 @@
}
});
- $("form input").keydown(function(e) {
- if (e.keyCode === 13) e.preventDefault();
- });
-
$(".module-toggle").click(function () {
var button = $(this);
var moduleBox = $("#" + button.data("moduleid"));
diff --git a/modules-available/permissionmanager/templates/rolestable.html b/modules-available/permissionmanager/templates/rolestable.html
index 40cdda96..a455d346 100644
--- a/modules-available/permissionmanager/templates/rolestable.html
+++ b/modules-available/permissionmanager/templates/rolestable.html
@@ -1,7 +1,14 @@
<form method="post" action="?do=permissionmanager">
<input type="hidden" name="token" value="{{token}}">
- <button class="btn btn-success" type="button" onclick="openRoleEditor()"><span class="glyphicon glyphicon-plus"></span> {{lang_newRole}}</button>
+ <div class="row">
+ <div class="col-md-4">
+ <button class="btn btn-success" type="button" onclick="openRoleEditor()"><span class="glyphicon glyphicon-plus"></span> {{lang_newRole}}</button>
+ </div>
+ <div class="col-md-4">
+ <input type="text" class="form-control" id="roleNameSearchField" onkeyup="searchFieldFunction()" placeholder="{{lang_searchPlaceholder}}">
+ </div>
+ </div>
<div class="row">
<div class="col-md-12">
@@ -16,8 +23,8 @@
<tbody>
{{#roles}}
- <tr>
- <td>{{roleName}}</td>
+ <tr class="rolesRow">
+ <td class="rolesData">{{roleName}}</td>
<td>
<a href="?do=permissionmanager&show=roleEditor&roleid={{roleId}}">{{lang_Edit}}</a>
</td>
@@ -62,4 +69,23 @@
function deleteRole($roleId) {
$(".modal-footer #deleteId").val($roleId);
}
+
+ function searchFieldFunction() {
+ // Declare variables
+ var input, filter, table, trs, a, i;
+ input = document.getElementById('roleNameSearchField');
+ filter = input.value.toUpperCase();
+ table = document.getElementById("rolesTable");
+ trs = table.getElementsByClassName('rolesRow');
+
+ // Loop through all list items, and hide those who don't match the search query
+ for (i = 0; i < trs.length; i++) {
+ a = trs[i].getElementsByClassName("rolesData")[0];
+ if (a.innerHTML.toUpperCase().indexOf(filter) > -1) {
+ trs[i].style.display = "";
+ } else {
+ trs[i].style.display = "none";
+ }
+ }
+ }
</script> \ No newline at end of file
diff --git a/modules-available/permissionmanager/templates/userstable.html b/modules-available/permissionmanager/templates/userstable.html
index 44b28833..a740c5e8 100644
--- a/modules-available/permissionmanager/templates/userstable.html
+++ b/modules-available/permissionmanager/templates/userstable.html
@@ -8,7 +8,7 @@
</div>
<div class="col-md-4 text-left">
<select multiple name="roles[]" id="select-role">
- <option value></option>
+ <option value>{{lang_selectizePlaceholder}}</option>
{{#roles}}
<option value="{{roleId}}">{{roleName}}</option>
{{/roles}}
@@ -18,7 +18,7 @@
<div class="row">
<div class="col-md-12">
- <table id="usersTable" class="table table-condensed table-hover">
+ <table id="usersTable" class="table table-condensed table-hover dataTable">
<thead>
<tr>
<th data-sort="string">{{lang_Users}}</th>
@@ -150,55 +150,8 @@
}
});
-
- var selectize = $('#select-role').selectize({
- allowEmptyOption: false,
- maxItems: null,
- highlight: false,
- hideSelected: true,
- create: false,
- placeholder: "{{lang_selectizePlaceholder}}",
- 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) {
- $('#locationsTable').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) {
- $('#locationsTable').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();
- });
-
});
-
// if remove-Role button is clicked, uncheck all checkboxes in add-role modal so they aren't submitted too
function clearAddRoleModal () {
$('#addRoleToUserModal')