summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ogcp/static/js/ogcp.js2
-rw-r--r--ogcp/templates/macros.html11
2 files changed, 7 insertions, 6 deletions
diff --git a/ogcp/static/js/ogcp.js b/ogcp/static/js/ogcp.js
index 977f5a7..875084d 100644
--- a/ogcp/static/js/ogcp.js
+++ b/ogcp/static/js/ogcp.js
@@ -94,7 +94,7 @@ function checkChildrenCheckboxes() {
others.trigger('change');
} else {
// Look for room, deselect all other rooms
- const selectedRoom = $(this).parent().parent().parent().children('[name="scope-room"]');
+ const selectedRoom = $('[data-room="' + $(this).data('parentRoom') + '"]');
const others = $('input:checkbox[name="scope-room"]').not(selectedRoom);
others.prop('checked', false).prop('indeterminate', false);
others.each(function() {
diff --git a/ogcp/templates/macros.html b/ogcp/templates/macros.html
index 4ff8477..6ba1d38 100644
--- a/ogcp/templates/macros.html
+++ b/ogcp/templates/macros.html
@@ -1,7 +1,7 @@
{% macro scopes_tree_collapse(scopes, state='', selection_mode='scopes') -%}
<ul id="scopes" class="nav ogcp-nav flex-column nav-pills">
- {{ scopes_tree_collapse_level(scopes["scope"], "", state, selection_mode) }}
+ {{ scopes_tree_collapse_level(scopes["scope"], "", "", state, selection_mode) }}
</ul>
<script>
// Launch the javascript on document ready, so all the global functions exists
@@ -24,7 +24,7 @@
{% endmacro %}
-{% macro scopes_tree_collapse_level(scopes, parent_id, state, selection_mode) -%}
+{% macro scopes_tree_collapse_level(scopes, parent_room, parent_id, state, selection_mode) -%}
{% for scope in scopes %}
<li id="{{ scope["name"]|replace(".", "_")|replace(" ", "_") }}_{{ scope["id"] }}" class="nav-item">
{% if scope["type"] == "server" %}
@@ -41,14 +41,15 @@
name="scope-center" />
{% endif %}
{% elif scope["type"] == "room" %}
+ {% set parent_room = scope.name + "-" + scope.id|string %}
<input class="form-check-input" type="checkbox" form="scopesForm"
- value="{{ scope["id"] }}"
+ value="{{ scope["id"] }}" data-room="{{ parent_room }}"
{% if state %}style="filter: grayscale(100%);" onclick="return false;"{% endif %}
{% if scope.get("selected", False) %}checked{% endif %}
name="scope-room" />
{% elif " ".join(scope["ip"]) %}
<input class="form-check-input" type="checkbox" form="scopesForm"
- value="{{ " ".join(scope["ip"]) }}"
+ value="{{ " ".join(scope["ip"]) }}" data-parent-room="{{ parent_room }}"
{% if state %}style="filter: grayscale(100%);" onclick="return false;"{% endif %}
{% if scope.get("selected", False) %}checked{% endif %}
name="{{ scope["name"] }}_{{ scope["id"] }}" />
@@ -67,7 +68,7 @@
</a>
{% if scope["scope"] %}
<ul class="nav flex-column collapse level{{i}}" id="scope{{parent_id ~ "-" ~ loop.index}}">
- {{ scopes_tree_collapse_level(scope["scope"], parent_id ~ "-" ~ loop.index, state, selection_mode) }}
+ {{ scopes_tree_collapse_level(scope["scope"], parent_room, parent_id ~ "-" ~ loop.index, state, selection_mode) }}
</ul>
{% endif %}
</li>