FossilRepo

fossilrepo / assets / import_export / export_selectable_fields.a08e5265f672.js
Blame History Raw 64 lines
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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button