Ver código fonte

finished settings page

master
Haku 4 anos atrás
pai
commit
c3cb2ee605
1 arquivos alterados com 51 adições e 0 exclusões
  1. +51
    -0
      src/settings.ts

+ 51
- 0
src/settings.ts Ver arquivo

@@ -0,0 +1,51 @@
document.querySelector('#content').innerHTML = `<h1>Raspberry Settings</h1>
<fieldset>
<legend>Keys</legend>
<table>
<tbody id="keys">

</tbody>
</table>
</fieldset>`;

async function addKeySetter(functionName: string, displayName?: string)
{
if (displayName === undefined)
displayName = pretty(functionName);
const setKeyInput: HTMLInputElement = document.createElement('input');
setKeyInput.type = 'button';
setKeyInput.value = 'Set';
setKeyInput.classList.add('button');
setKeyInput.addEventListener('click', async (e: MouseEvent): Promise<void> =>
{
console.log(`Setting ${functionName}`);
const key: string = (document.querySelector(`#${functionName}-key`) as HTMLInputElement).value.toUpperCase();
await setStorageValue(functionName, key);
});

const tr: HTMLTableRowElement = document.createElement('tr');
const td1: HTMLTableDataCellElement = document.createElement('td');
td1.innerHTML += `<label>${displayName}</label>`;
const td2: HTMLTableDataCellElement = document.createElement('td');
td2.innerHTML += `<input type="text" id="${functionName}-key" value="${await getStorageValue(functionName) || '?'}">`;
const td3: HTMLTableDataCellElement = document.createElement('td');
td3.appendChild(setKeyInput);
tr.appendChild(td1);
tr.appendChild(td2);
tr.appendChild(td3);
document.querySelector('#keys').appendChild(tr);
// This doesn't work apparently
/*document.querySelector('#keys').innerHTML +=
`<tr><td><label>${displayName}</label></td><td><input type="text" id="${functionName}-key" value="${await getStorageValue(functionName) || '?'}"></td><td><input type="button" class="button" id="set-${functionName}-key" value="Set"></td></tr>`;*/
}

(async () =>
{
// Set up the keybind setting form
for (let i = 0; i < keybinds.length; i++) {
if (keybinds[i].displayName)
await addKeySetter(keybinds[i].functionName, keybinds[i].displayName);
else
await addKeySetter(keybinds[i].functionName);
}
})();

Carregando…
Cancelar
Salvar