|
1
|
function hideUnselectedResourceFields(selectedResourceIndex) { |
|
2
|
const fields = document.querySelectorAll("[resource-index]"); |
|
3
|
|
|
4
|
fields.forEach((field) => { |
|
5
|
if (field.getAttribute("resource-index") !== selectedResourceIndex.toString()) { |
|
6
|
// field is wrapped by div, change visibility on wrapper |
|
7
|
field.style.display = "none"; |
|
8
|
} |
|
9
|
}); |
|
10
|
} |
|
11
|
|
|
12
|
function showSelectedResourceFields(resourceIndex) { |
|
13
|
const fields = document.querySelectorAll(`[resource-index="${resourceIndex}"]`); |
|
14
|
|
|
15
|
fields.forEach((field) => { |
|
16
|
// field is wrapped by div, change visibility on wrapper |
|
17
|
field.style.display = "block"; |
|
18
|
}); |
|
19
|
} |
|
20
|
|
|
21
|
function onResourceSelected(e) { |
|
22
|
const resourceIndex = e.target.value; |
|
23
|
|
|
24
|
showSelectedResourceFields(resourceIndex); |
|
25
|
|
|
26
|
hideUnselectedResourceFields(resourceIndex); |
|
27
|
} |
|
28
|
|
|
29
|
function onSelectToggleChange(e) { |
|
30
|
/* |
|
31
|
* Handles a checkbox click event to select / deselect all field checkboxes. |
|
32
|
*/ |
|
33
|
const select = e.target; |
|
34
|
const isChecked = select.checked; |
|
35
|
|
|
36
|
if (isChecked) { |
|
37
|
document.querySelectorAll('.selectable-field-export-row input[type="checkbox"]').forEach((checkbox) => { |
|
38
|
checkbox.checked = true; |
|
39
|
}); |
|
40
|
} else { |
|
41
|
document.querySelectorAll('.selectable-field-export-row input[type="checkbox"]').forEach((checkbox) => { |
|
42
|
checkbox.checked = false; |
|
43
|
}); |
|
44
|
} |
|
45
|
} |
|
46
|
|
|
47
|
document.addEventListener("DOMContentLoaded", () => { |
|
48
|
const resourceSelector = document.querySelector("#id_resource"); |
|
49
|
|
|
50
|
if (!resourceSelector) { |
|
51
|
console.error("resource select input not found"); |
|
52
|
return; |
|
53
|
} |
|
54
|
|
|
55
|
// If selector is actually select input, get selected option. |
|
56
|
// else selected resource index is 0 |
|
57
|
const selectedResourceIndex = resourceSelector.tagName === "SELECT" ? resourceSelector.value : 0; |
|
58
|
|
|
59
|
resourceSelector.addEventListener("input", onResourceSelected); |
|
60
|
|
|
61
|
// initially hide unselected resource fields |
|
62
|
hideUnselectedResourceFields(selectedResourceIndex); |
|
63
|
}); |
|
64
|
|