[WebHost] weighted-settings: Ranges with a total distance <= 10 are always printed in full

This commit is contained in:
Chris Wilson 2022-01-03 19:56:54 -05:00
parent f06e565441
commit 5a064b0979
1 changed files with 73 additions and 40 deletions

View File

@ -292,51 +292,84 @@ const buildOptionsDiv = (game, settings) => {
const rangeTable = document.createElement('table'); const rangeTable = document.createElement('table');
const rangeTbody = document.createElement('tbody'); const rangeTbody = document.createElement('tbody');
Object.keys(currentSettings[game][settingName]).forEach((option) => { if (((setting.max - setting.min) + 1) < 11) {
if (currentSettings[game][settingName][option] > 0) { for (let i=setting.min; i <= setting.max; ++i) {
const tr = document.createElement('tr'); const tr = document.createElement('tr');
const tdLeft = document.createElement('td'); const tdLeft = document.createElement('td');
tdLeft.classList.add('td-left'); tdLeft.classList.add('td-left');
tdLeft.innerText = option; tdLeft.innerText = i;
tr.appendChild(tdLeft); tr.appendChild(tdLeft);
const tdMiddle = document.createElement('td'); const tdMiddle = document.createElement('td');
tdMiddle.classList.add('td-middle'); tdMiddle.classList.add('td-middle');
const range = document.createElement('input'); const range = document.createElement('input');
range.setAttribute('type', 'range'); range.setAttribute('type', 'range');
range.setAttribute('id', `${game}-${settingName}-${option}-range`); range.setAttribute('id', `${game}-${settingName}-${i}-range`);
range.setAttribute('data-game', game); range.setAttribute('data-game', game);
range.setAttribute('data-setting', settingName); range.setAttribute('data-setting', settingName);
range.setAttribute('data-option', option); range.setAttribute('data-option', i);
range.setAttribute('min', 0); range.setAttribute('min', 0);
range.setAttribute('max', 50); range.setAttribute('max', 50);
range.addEventListener('change', updateGameSetting); range.addEventListener('change', updateGameSetting);
range.value = currentSettings[game][settingName][parseInt(option, 10)]; range.value = currentSettings[game][settingName][i];
tdMiddle.appendChild(range); tdMiddle.appendChild(range);
tr.appendChild(tdMiddle); tr.appendChild(tdMiddle);
const tdRight = document.createElement('td'); const tdRight = document.createElement('td');
tdRight.setAttribute('id', `${game}-${settingName}-${option}`) tdRight.setAttribute('id', `${game}-${settingName}-${i}`)
tdRight.classList.add('td-right'); tdRight.classList.add('td-right');
tdRight.innerText = range.value; tdRight.innerText = range.value;
tr.appendChild(tdRight); tr.appendChild(tdRight);
const tdDelete = document.createElement('td'); rangeTbody.appendChild(tr);
tdDelete.classList.add('td-delete');
const deleteButton = document.createElement('span');
deleteButton.classList.add('range-option-delete');
deleteButton.innerText = '❌';
deleteButton.addEventListener('click', () => {
range.value = 0;
range.dispatchEvent(new Event('change'));
rangeTbody.removeChild(tr);
});
tdDelete.appendChild(deleteButton);
tr.appendChild(tdDelete);
rangeTbody.appendChild(tr);
} }
}); } else {
Object.keys(currentSettings[game][settingName]).forEach((option) => {
if (currentSettings[game][settingName][option] > 0) {
const tr = document.createElement('tr');
const tdLeft = document.createElement('td');
tdLeft.classList.add('td-left');
tdLeft.innerText = option;
tr.appendChild(tdLeft);
const tdMiddle = document.createElement('td');
tdMiddle.classList.add('td-middle');
const range = document.createElement('input');
range.setAttribute('type', 'range');
range.setAttribute('id', `${game}-${settingName}-${option}-range`);
range.setAttribute('data-game', game);
range.setAttribute('data-setting', settingName);
range.setAttribute('data-option', option);
range.setAttribute('min', 0);
range.setAttribute('max', 50);
range.addEventListener('change', updateGameSetting);
range.value = currentSettings[game][settingName][parseInt(option, 10)];
tdMiddle.appendChild(range);
tr.appendChild(tdMiddle);
const tdRight = document.createElement('td');
tdRight.setAttribute('id', `${game}-${settingName}-${option}`)
tdRight.classList.add('td-right');
tdRight.innerText = range.value;
tr.appendChild(tdRight);
const tdDelete = document.createElement('td');
tdDelete.classList.add('td-delete');
const deleteButton = document.createElement('span');
deleteButton.classList.add('range-option-delete');
deleteButton.innerText = '❌';
deleteButton.addEventListener('click', () => {
range.value = 0;
range.dispatchEvent(new Event('change'));
rangeTbody.removeChild(tr);
});
tdDelete.appendChild(deleteButton);
tr.appendChild(tdDelete);
rangeTbody.appendChild(tr);
}
});
}
['random', 'random-low', 'random-high'].forEach((option) => { ['random', 'random-low', 'random-high'].forEach((option) => {
const tr = document.createElement('tr'); const tr = document.createElement('tr');