src/main/webapp/issue-overview.js

changeset 311
bf67e0ff7131
parent 307
23fe9f174d2d
child 313
7cfe88b8e219
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
40 if (!button) {
41 // no project details available
42 window.projectDetailsVisible = false
43 return
44 }
45
46 const reduced = document.getElementById('project-details-header-reduced')
47 const full = document.getElementById('project-details-header')
48
49 const v = !window.projectDetailsVisible
50 window.projectDetailsVisible = v
51
52 if (v) {
53 button.dataset.toggle = 'true'
54 reduced.style.display = 'none'
55 full.style.display = 'block'
56 } else {
57 delete button.dataset.toggle
58 reduced.style.display = 'block'
59 full.style.display = 'none'
60 }
61 }
62
63 function toggleFilterDetails() {
64 const filters = document.getElementById('more-filters')
65 const toggle = document.getElementById('show-more-filters')
66 if (toggle.checked) {
67 filters.style.display = 'flex'
68 } else {
69 filters.style.display = 'none'
70 }
71 }
72
73 function toggleAssigneeOnlyMine() {
74 const filters = document.getElementById('filter-assignee')
75 const toggle = document.getElementById('filter-only-mine')
76 if (toggle.checked) {
77 filters.disabled = true;
78 } else {
79 filters.disabled = false;
80 }
81 }
82
83 function toggleDetails() {
84 toggleProjectDetails()
85 toggleFilterDetails()
86 }
87
88 window.addEventListener('load', function() { toggleDetails() }, false)

mercurial