summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ogcp/static/js/ogcp.js32
-rw-r--r--ogcp/templates/base.html2
-rw-r--r--ogcp/templates/macros.html9
3 files changed, 24 insertions, 19 deletions
diff --git a/ogcp/static/js/ogcp.js b/ogcp/static/js/ogcp.js
index 17d3ca0..a0bbed1 100644
--- a/ogcp/static/js/ogcp.js
+++ b/ogcp/static/js/ogcp.js
@@ -52,11 +52,11 @@ function showSelectedClientsOnEvents() {
});
}
-function storeCheckboxStatus(checkbox) {
+function storeCheckboxStatus(checkbox, context) {
if (checkbox.checked)
- localStorage.setItem(checkbox.name, "check");
+ localStorage.setItem(context + checkbox.id, "check");
else
- localStorage.removeItem(checkbox.name);
+ localStorage.removeItem(context + checkbox.id);
}
function checkParentsCheckboxes() {
@@ -84,7 +84,7 @@ function checkParentsCheckboxes() {
});
}
-function checkChildrenCheckboxes() {
+function checkChildrenCheckboxes(context) {
const checkboxes = $('input:checkbox[form|="scopesForm"]')
checkboxes.on('change', function () {
@@ -98,7 +98,7 @@ function checkChildrenCheckboxes() {
others.prop('checked', false);
others.each(function() {
showSelectedClient(this);
- storeCheckboxStatus(this);
+ storeCheckboxStatus(this, context);
});
//others.trigger('change');
} else {
@@ -108,10 +108,10 @@ function checkChildrenCheckboxes() {
others.prop('checked', false).prop('indeterminate', false);
others.each(function() {
const checks = $(this).parent().find('input:checkbox').prop('checked', false);
- storeCheckboxStatus(this);
+ storeCheckboxStatus(this, context);
checks.each(function() {
showSelectedClient(this);
- storeCheckboxStatus(this);
+ storeCheckboxStatus(this, context);
});
});
}
@@ -119,22 +119,22 @@ function checkChildrenCheckboxes() {
children.each(function () {
this.checked = checked;
- storeCheckboxStatus(this);
+ storeCheckboxStatus(this, context);
$(this).trigger('show-client');
});
checkParentsCheckboxes();
});
}
-function keepSelectedClients() {
+function keepSelectedClients(context) {
const checkboxes = $('input:checkbox[form|="scopesForm"]')
checkboxes.on('change', function (event) {
- storeCheckboxStatus(this);
+ storeCheckboxStatus(this, context);
});
checkboxes.each(function () {
- if (localStorage.getItem(this.name) == 'check') {
+ if (localStorage.getItem(context + this.id) == 'check') {
this.checked = true;
$(this).trigger('show-client');
}
@@ -384,24 +384,28 @@ function checkRepoServer() {
});
}
-function checkFolderParent() {
+function checkFolderParent(context) {
const folder = $('input:checkbox[form|="scopesForm"][name="folder"]')
folder.on('change', function() {
const folder_parent = $('#' + $.escapeSelector(this.dataset.parentInput));
folder_parent.prop('checked', this.checked);
+ storeCheckboxStatus(folder_parent.get(0), context);
});
}
-function limitCheckboxes() {
+function limitCheckboxes(context) {
const checkboxes = $('input:checkbox[form|="scopesForm"]');
checkboxes.on('change', function () {
const checked = this;
checkboxes.filter((i, c) => c !== checked).prop('checked', false);
+
+ checkScopeServer();
+
checkboxes.each(function() {
+ storeCheckboxStatus(this, context);
showSelectedClient(this);
});
- checkScopeServer();
});
}
diff --git a/ogcp/templates/base.html b/ogcp/templates/base.html
index 0037f79..3ac4f5d 100644
--- a/ogcp/templates/base.html
+++ b/ogcp/templates/base.html
@@ -111,7 +111,7 @@
<!-- ChartJS -->
<script src="{{ url_for('static', filename='AdminLTE/plugins/chart.js/Chart.min.js') }}"></script>
- <script src="{{ url_for('static', filename='js/ogcp.js') }}?v=6"></script>
+ <script src="{{ url_for('static', filename='js/ogcp.js') }}?v=7"></script>
<script>
// error messages
diff --git a/ogcp/templates/macros.html b/ogcp/templates/macros.html
index 228c393..c6cd15e 100644
--- a/ogcp/templates/macros.html
+++ b/ogcp/templates/macros.html
@@ -11,14 +11,15 @@
showSelectedClientsOnEvents();
updateScopeState();
keepScopesTreeState();
+ let context = {{ selection_mode | tojson | safe }};
{% if selection_mode == 'commands' %}
- keepSelectedClients();
- checkChildrenCheckboxes();
+ checkChildrenCheckboxes(context);
checkParentsCheckboxes();
{% elif selection_mode == 'scopes' %}
- limitCheckboxes();
- checkFolderParent();
+ limitCheckboxes(context);
+ checkFolderParent(context);
{% endif %}
+ keepSelectedClients(context);
}
});
</script>