mirror of
https://github.com/opelly27/streetmerchant.git
synced 2026-05-20 04:07:36 +00:00
chore(web): prettify (#607)
This commit is contained in:
+18
-50
@@ -9,7 +9,7 @@
|
|||||||
let series;
|
let series;
|
||||||
let models;
|
let models;
|
||||||
|
|
||||||
function renderListSubfield(id, elements, selectionArray, subfield) {
|
function renderList(id, elements, selectionArray, subfield) {
|
||||||
const list = document.getElementById(id);
|
const list = document.getElementById(id);
|
||||||
list.innerHTML = '';
|
list.innerHTML = '';
|
||||||
for (const element of elements) {
|
for (const element of elements) {
|
||||||
@@ -20,7 +20,11 @@
|
|||||||
htmlElement.innerHTML = element;
|
htmlElement.innerHTML = element;
|
||||||
htmlElement.name = name;
|
htmlElement.name = name;
|
||||||
htmlElement.id = name;
|
htmlElement.id = name;
|
||||||
if (selectionArray.length === 0 || selectionArray.find(obj => element === obj[subfield])) {
|
if (selectionArray.length === 0) {
|
||||||
|
htmlElement.checked = true;
|
||||||
|
} else if (subfield && selectionArray.find(obj => element === obj[subfield])) {
|
||||||
|
htmlElement.checked = true;
|
||||||
|
} else if (selectionArray.includes(element)) {
|
||||||
htmlElement.checked = true;
|
htmlElement.checked = true;
|
||||||
}
|
}
|
||||||
list.appendChild(htmlElement);
|
list.appendChild(htmlElement);
|
||||||
@@ -32,55 +36,19 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderList(id, elements, selectionArray) {
|
function listToArray(id, subfield) {
|
||||||
const list = document.getElementById(id);
|
|
||||||
list.innerHTML = '';
|
|
||||||
for (const element of elements) {
|
|
||||||
const name = `${id}_${element}`;
|
|
||||||
const htmlElement = document.createElement('input');
|
|
||||||
htmlElement.type = 'checkbox';
|
|
||||||
htmlElement.value = element;
|
|
||||||
htmlElement.innerHTML = element;
|
|
||||||
htmlElement.name = name;
|
|
||||||
htmlElement.id = name;
|
|
||||||
if (selectionArray.length === 0 || selectionArray.includes(element)) {
|
|
||||||
htmlElement.checked = true;
|
|
||||||
}
|
|
||||||
list.appendChild(htmlElement);
|
|
||||||
const htmlLabelElement = document.createElement('label');
|
|
||||||
htmlLabelElement.for = name;
|
|
||||||
htmlLabelElement.innerText = element;
|
|
||||||
list.appendChild(htmlLabelElement);
|
|
||||||
list.appendChild(document.createElement('br'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function listToArray(id, selectionArray) {
|
|
||||||
const list = document.getElementById(id);
|
const list = document.getElementById(id);
|
||||||
const resArray = [];
|
const resArray = [];
|
||||||
let allSelected = true;
|
let allSelected = true;
|
||||||
for (const htmlElement of list.childNodes) {
|
for (const htmlElement of list.childNodes) {
|
||||||
if (htmlElement.checked) {
|
if (htmlElement.checked) {
|
||||||
resArray.push(htmlElement.value);
|
let obj;
|
||||||
} else {
|
if (subfield) {
|
||||||
allSelected = false;
|
obj = {};
|
||||||
}
|
obj[subfield] = htmlElement.value;
|
||||||
}
|
} else {
|
||||||
|
obj = htmlElement.value
|
||||||
if (allSelected) {
|
}
|
||||||
return [];
|
|
||||||
}
|
|
||||||
return resArray;
|
|
||||||
}
|
|
||||||
|
|
||||||
function listToArraySubfield(id, selectionArray, subfield) {
|
|
||||||
const list = document.getElementById(id);
|
|
||||||
const resArray = [];
|
|
||||||
let allSelected = true;
|
|
||||||
for (const htmlElement of list.childNodes) {
|
|
||||||
if (htmlElement.checked) {
|
|
||||||
const obj = {};
|
|
||||||
obj[subfield] = htmlElement.value;
|
|
||||||
resArray.push(obj);
|
resArray.push(obj);
|
||||||
} else {
|
} else {
|
||||||
allSelected = false;
|
allSelected = false;
|
||||||
@@ -96,10 +64,10 @@
|
|||||||
async function onReceiveConfig(resp) {
|
async function onReceiveConfig(resp) {
|
||||||
config = await resp.json();
|
config = await resp.json();
|
||||||
|
|
||||||
renderListSubfield('storeList', stores, config.store.stores, 'name');
|
renderList('storeList', stores, config.store.stores, 'name');
|
||||||
renderList('brandList', brands, config.store.showOnlyBrands);
|
renderList('brandList', brands, config.store.showOnlyBrands);
|
||||||
renderList('seriesList', series, config.store.showOnlySeries);
|
renderList('seriesList', series, config.store.showOnlySeries);
|
||||||
renderListSubfield('modelList', models, config.store.showOnlyModels, 'name');
|
renderList('modelList', models, config.store.showOnlyModels, 'name');
|
||||||
}
|
}
|
||||||
|
|
||||||
async function setConfig() {
|
async function setConfig() {
|
||||||
@@ -107,10 +75,10 @@
|
|||||||
throw new Error('Config not loaded yet');
|
throw new Error('Config not loaded yet');
|
||||||
}
|
}
|
||||||
|
|
||||||
config.store.stores = listToArraySubfield('storeList', 'name');
|
config.store.stores = listToArray('storeList', 'name');
|
||||||
config.store.showOnlyBrands = listToArray('brandList');
|
config.store.showOnlyBrands = listToArray('brandList');
|
||||||
config.store.showOnlySeries = listToArray('seriesList');
|
config.store.showOnlySeries = listToArray('seriesList');
|
||||||
config.store.showOnlyModels = listToArraySubfield('modelList', 'name');
|
config.store.showOnlyModels = listToArray('modelList', 'name');
|
||||||
|
|
||||||
const resp = await fetch('/api/config', {
|
const resp = await fetch('/api/config', {
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
|
|||||||
Reference in New Issue
Block a user