diff options
Diffstat (limited to 'ogcp/static')
-rw-r--r-- | ogcp/static/js/ogcp.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/ogcp/static/js/ogcp.js b/ogcp/static/js/ogcp.js index 8a6db02..dc1c063 100644 --- a/ogcp/static/js/ogcp.js +++ b/ogcp/static/js/ogcp.js @@ -2,6 +2,34 @@ const Endpoint = '/scopes/status'; const Interval = 1000; let updateTimeoutId = null; +function showSelectedClient(client_checkbox) { + const container = $('#selected-clients'); + const pill_id = 'pill-' + client_checkbox.name.replaceAll('.', '_'); + + if (client_checkbox.checked) { + if (!($('#' + pill_id).length)) + $(container).append('<div class="badge badge-pill badge-light" ' + + 'id="'+ pill_id + '">' + client_checkbox.name + + '<br>' + client_checkbox.value + '</div>'); + return; + } + + $('#' + pill_id).remove(); +} + +function showSelectedClientsOnEvents() { + const checkboxes = $('input:checkbox[form|="scopesForm"]'); + const container = $('#selected-clients'); + + const client_checkboxes = checkboxes.filter(function () { + return $(this).siblings().length == "1"; + }); + + client_checkboxes.on('change show-client', function () { + showSelectedClient(this); + }); +} + function storeCheckboxStatus(checkbox) { if (checkbox.checked) localStorage.setItem(checkbox.name, "check"); @@ -18,6 +46,7 @@ function checkChildrenCheckboxes() { children.each(function () { this.checked = checked; storeCheckboxStatus(this); + $(this).trigger('show-client'); }); }); } @@ -32,6 +61,7 @@ function keepSelectedClients() { checkboxes.each(function () { if (localStorage.getItem(this.name) == 'check') { this.checked = true; + $(this).trigger('show-client'); } }); } |