src/main/webapp/project-details.js

changeset 311
bf67e0ff7131
parent 310
bbf4eb9a71f8
child 312
b7554a6ef430
equal deleted inserted replaced
310:bbf4eb9a71f8 311:bf67e0ff7131
1 /*
2 * Copyright 2023 Mike Becker. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 *
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 *
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
20 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
21 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
22 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26 /**
27 * Hides and shows the project details.
28 *
29 * Following elements are required on the page (element ID):
30 *
31 * - toggle-details-button
32 * - project-details-header-reduced
33 * - project-details-header
34 *
35 */
36 projectDetailsVisible = true
37 function toggleProjectDetails() {
38 const button = document.getElementById('toggle-details-button')
39 const reduced = document.getElementById('project-details-header-reduced')
40 const full = document.getElementById('project-details-header')
41
42 const v = !window.projectDetailsVisible
43 window.projectDetailsVisible = v
44
45 if (v) {
46 button.dataset.toggle = 'true'
47 reduced.style.display = 'none'
48 full.style.display = 'block'
49 } else {
50 delete button.dataset.toggle
51 reduced.style.display = 'block'
52 full.style.display = 'none'
53 }
54 }
55
56 function toggleFilterDetails() {
57 const filters = document.getElementById('more-filters')
58 const toggle = document.getElementById('show-more-filters')
59 if (toggle.checked) {
60 filters.style.display = 'flex'
61 } else {
62 filters.style.display = 'none'
63 }
64 }
65
66 function toggleAssigneeOnlyMine() {
67 const filters = document.getElementById('filter-assignee')
68 const toggle = document.getElementById('filter-only-mine')
69 if (toggle.checked) {
70 filters.disabled = true;
71 } else {
72 filters.disabled = false;
73 }
74 }
75
76 function toggleDetails() {
77 toggleProjectDetails()
78 toggleFilterDetails()
79 }
80
81 window.addEventListener('load', function() { toggleDetails() }, false)

mercurial