diff options
author | Alejandro Sirgo Rica <asirgo@soleta.eu> | 2024-07-19 20:33:19 +0200 |
---|---|---|
committer | Alejandro Sirgo Rica <asirgo@soleta.eu> | 2024-07-22 15:57:51 +0200 |
commit | c1d08df31d5135fe43c26ea32b5998ad30645162 (patch) | |
tree | a6846a91407edf1bf896006c3989dde52ebc5fbc /ogcp/templates | |
parent | c3d2582aa6431ee1c4b95c04f51905f4f0976730 (diff) |
ogcp: improve sidebar logic in Commands
Disable all checkboxes of scopes of level higher than room in the
$(window).on('pageshow', function) callback.
Set checkboxes as "indeterminate" when not every children is
selected but have some of its children selected.
[x] center
[x] room1
[x] client1
[x] client1
[-] center
[ ] room1
[-] room2
[ ] client1
[x] client1
Send all selected sidebar fields as form fields. This requires
setting disabled to false and replacing indeterminate = true
to checked = true in the .on('submit', function) callback.
When a checkbox is clicked:
1. Find the room branch of the checked input.
[ ] center
[ ] room1
[ ] room2 <- root of the room branch
[ ] client1 <-- clicked item
2. Uncheck all the checkboxes outside of the room branch.
3. Set all the children of the clicked item to the same value
as the clicked item.
4. Set the parent checked or indeterminate values.
5. Save checkbox status.
Diffstat (limited to 'ogcp/templates')
-rw-r--r-- | ogcp/templates/base.html | 2 | ||||
-rw-r--r-- | ogcp/templates/macros.html | 4 |
2 files changed, 2 insertions, 4 deletions
diff --git a/ogcp/templates/base.html b/ogcp/templates/base.html index df27b9b..da24bfe 100644 --- a/ogcp/templates/base.html +++ b/ogcp/templates/base.html @@ -108,7 +108,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=11"></script> + <script src="{{ url_for('static', filename='js/ogcp.js') }}?v=12"></script> <script> // error messages diff --git a/ogcp/templates/macros.html b/ogcp/templates/macros.html index 077bad5..4f18265 100644 --- a/ogcp/templates/macros.html +++ b/ogcp/templates/macros.html @@ -13,8 +13,7 @@ keepScopesTreeState(); let context = {{ selection_mode | tojson | safe }}; {% if selection_mode == 'commands' %} - checkChildrenCheckboxes(context); - checkParentsCheckboxes(); + configureCommandCheckboxes(context); {% elif selection_mode == 'scopes' %} limitCheckboxes(context); checkFolderParent(context); @@ -41,7 +40,6 @@ value="{{ scope["id"] }}" {% if state %}style="filter: grayscale(100%);" onclick="return false;"{% endif %} {% if scope.get("selected", False) %}checked{% endif %} - {% if selection_mode == "commands" %}disabled="disabled"{% endif %} name="scope-center" /> {% elif scope["type"] == "room" %} {% set parent_room = scope.name + "-" + scope.id|string %} |