From a9e6340517611971bd83e6a470f6867b8905114c Mon Sep 17 00:00:00 2001 From: Javier Sánchez Parra Date: Thu, 27 Jan 2022 16:22:19 +0100 Subject: Keep selected clients in the scopes tree Otherwise, users have to click clients checkboxes every time they switch view. This commit adds one hook to capture when clients checkboxes changes. When they are checked, ogcp (front-end) stores them in browser's local storage. When they are unchecked, ogcp removes them from local storage. Every time users load a page with the scopes tree, ogcp checks local storage to restore selected clients. --- ogcp/static/js/ogcp.js | 17 +++++++++++++++++ ogcp/templates/macros.html | 1 + 2 files changed, 18 insertions(+) (limited to 'ogcp') diff --git a/ogcp/static/js/ogcp.js b/ogcp/static/js/ogcp.js index c6dbdf0..ff15390 100644 --- a/ogcp/static/js/ogcp.js +++ b/ogcp/static/js/ogcp.js @@ -2,6 +2,23 @@ const Endpoint = '/scopes/status'; const Interval = 1000; let updateTimeoutId = null; +function keepSelectedClients() { + const checkboxes = $('input:checkbox[form|="scopesForm"]') + + checkboxes.on('change', function (event) { + if (this.checked) + localStorage.setItem(this.name, "check"); + else + localStorage.removeItem(this.name); + }); + + checkboxes.each(function () { + if (localStorage.getItem(this.name) == 'check') { + this.checked = true; + } + }); +} + function keepScopesTreeState() { const scopes_tree = $('#scopes .collapse') diff --git a/ogcp/templates/macros.html b/ogcp/templates/macros.html index dd26818..3d28d05 100644 --- a/ogcp/templates/macros.html +++ b/ogcp/templates/macros.html @@ -10,6 +10,7 @@ if (document.readyState === 'complete') { updateScopeState(); keepScopesTreeState(); + keepSelectedClients(); } }); -- cgit v1.2.3-18-g5258