-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
81 lines (66 loc) · 2.58 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
var museumItems;
function itemGen() {
(async () => {
const getData = async () => {
const response = await fetch("./items.json");
const data = await response.json();
return data;
};
museumItems = await getData();
function genItemCards() {
const donations = document.querySelector('#donations');
for (const item of museumItems) {
var uname = (item.Name).replace(/ /g, "_");
var img = document.createElement('img');
img.src = './img/' + uname + '.png';
img.classList.add('itemimg');
var div = document.createElement('div');
div.id = 'itemcard';
var checkbox = document.createElement('input');
checkbox.type = 'checkbox';
checkbox.classList.add('chkitem');
checkbox.id = uname;
checkbox.name = uname;
checkbox.onclick = genLocationsList;
var label = document.createElement('label');
label.htmlFor = uname;
var span = document.createElement('span');
span.appendChild(document.createTextNode(item.Name));
donations.appendChild(div);
div.appendChild(label);
label.appendChild(checkbox);
label.appendChild(img);
label.appendChild(document.createElement('br'));
label.appendChild(span);
}
}
genItemCards(museumItems);
genLocationsList(museumItems);
console.log(museumItems);
})();
}
function genLocationsList() {
document.querySelector('#locations').innerHTML = "";
const locations = document.querySelector('#locations');
var itemArray = [];
var lineBuilder;
for (const item of museumItems) {
var uname = (item.Name).replace(/ /g, "_");
if (document.getElementById(uname).checked) {
// do nothing
} else {
for (const source of item.Sources) {
lineBuilder = source[0] + ": " + source[1];
itemArray.push(lineBuilder);
}
}
}
itemArray.sort();
itemArray = [...new Set(itemArray)];
itemArray.forEach(element => {
span = document.createElement('span');
locations.appendChild(span);
span.appendChild(document.createTextNode(element));
locations.appendChild(document.createElement('br'));
})
}