fix: update data centre filter correctly
This commit is contained in:
parent
331af9a0b3
commit
b1360c0439
|
@ -120,19 +120,30 @@
|
||||||
function setUpDataCentreFilter() {
|
function setUpDataCentreFilter() {
|
||||||
let select = document.getElementById('data-centre-filter');
|
let select = document.getElementById('data-centre-filter');
|
||||||
|
|
||||||
let data_centres = [];
|
let dataCentres = {};
|
||||||
for (let elem of document.querySelectorAll('#listings > .listing')) {
|
for (let elem of document.querySelectorAll('#listings > .listing')) {
|
||||||
let centre = elem.dataset['centre'];
|
let centre = elem.dataset['centre'];
|
||||||
if (!data_centres.includes(centre)) {
|
if (!dataCentres.hasOwnProperty(centre)) {
|
||||||
data_centres.push(centre);
|
dataCentres[centre] = 0;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
data_centres.sort();
|
dataCentres[centre] += 1;
|
||||||
for (let centre of data_centres) {
|
}
|
||||||
let opt = document.createElement('option');
|
|
||||||
opt.innerText = centre;
|
for (let opt of select.options) {
|
||||||
select.appendChild(opt);
|
let centre = opt.value;
|
||||||
|
|
||||||
|
let count = 0;
|
||||||
|
|
||||||
|
if (dataCentres.hasOwnProperty(centre)) {
|
||||||
|
count = dataCentres[centre];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (centre === 'All') {
|
||||||
|
count = Object.values(dataCentres).reduce((a, b) => a + b);
|
||||||
|
}
|
||||||
|
|
||||||
|
opt.innerText += ` (${count})`;
|
||||||
}
|
}
|
||||||
|
|
||||||
select.addEventListener('change', () => {
|
select.addEventListener('change', () => {
|
||||||
|
|
|
@ -15,7 +15,24 @@ Remote Party Finder
|
||||||
<div class="requires-js">
|
<div class="requires-js">
|
||||||
<input type="search" class="search" placeholder="Search"/>
|
<input type="search" class="search" placeholder="Search"/>
|
||||||
<select id="data-centre-filter">
|
<select id="data-centre-filter">
|
||||||
<option>All</option>
|
<option value="All">All</option>
|
||||||
|
<optgroup label="North America">
|
||||||
|
<option value="Aether">Aether</option>
|
||||||
|
<option value="Crystal">Crystal</option>
|
||||||
|
<option value="Primal">Primal</option>
|
||||||
|
</optgroup>
|
||||||
|
<optgroup label="Europe">
|
||||||
|
<option value="Chaos">Chaos</option>
|
||||||
|
<option value="Light">Light</option>
|
||||||
|
</optgroup>
|
||||||
|
<optgroup label="Japan">
|
||||||
|
<option value="Elemental">Elemental</option>
|
||||||
|
<option value="Gaia">Gaia</option>
|
||||||
|
<option value="Mana">Mana</option>
|
||||||
|
</optgroup>
|
||||||
|
<optgroup label="Oceania">
|
||||||
|
<option disabled value="">Not yet lmao</option>
|
||||||
|
</optgroup>
|
||||||
</select>
|
</select>
|
||||||
<details class="filter-controls">
|
<details class="filter-controls">
|
||||||
<summary>Advanced</summary>
|
<summary>Advanced</summary>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user