minor fix
This commit is contained in:
52
index.html
52
index.html
@@ -129,27 +129,21 @@
|
||||
</form>
|
||||
|
||||
<script type="text/javascript">
|
||||
const $ = (selectors, fn) => {
|
||||
let e = document.querySelector(selectors);
|
||||
return fn && e ? fn(e) : e;
|
||||
const $ = (selectors) => {
|
||||
return document.querySelector(selectors);
|
||||
};
|
||||
|
||||
const $$ = (selectors, fn) => {
|
||||
let e = document.querySelectorAll(selectors);
|
||||
return fn && e ? fn(e) : e;
|
||||
const $$ = (selectors) => {
|
||||
return document.querySelectorAll(selectors);
|
||||
};
|
||||
|
||||
const $$$ = (selectors, event, listener) => {
|
||||
$(selectors).addEventListener(event, listener);
|
||||
};
|
||||
|
||||
let Profiles = new Array();
|
||||
let Latest = null;
|
||||
let Status = null;
|
||||
|
||||
function main(profiles, args) {
|
||||
function main(profiles, args, status=null, error=null) {
|
||||
$$$('#begin', 'click', async () => {
|
||||
switch (Status) {
|
||||
switch (status) {
|
||||
case 'READY':
|
||||
let name = $('#name').value;
|
||||
let options = { profile: name };
|
||||
@@ -177,19 +171,19 @@ function main(profiles, args) {
|
||||
}
|
||||
});
|
||||
|
||||
$$$('#begin', 'click', (e) => {
|
||||
$$$('#begin', 'click', () => {
|
||||
$('#begin > span.icon').removeAttribute('hidden');
|
||||
$('#begin > span.text').innerText = '';
|
||||
$('#begin').classList.remove('pulse');
|
||||
$('#begin').disabled = true;
|
||||
});
|
||||
|
||||
$$$('#cancel', 'click', async (e) => {
|
||||
$$$('#cancel', 'click', async () => {
|
||||
$('#cancel').disabled = true;
|
||||
await Rpc2.invoke('cancel');
|
||||
});
|
||||
|
||||
$$$('#skip', 'click', async (e) => {
|
||||
$$$('#skip', 'click', async () => {
|
||||
$('#skip').disabled = true;
|
||||
await Rpcs.invoke('skip');
|
||||
});
|
||||
@@ -200,16 +194,15 @@ function main(profiles, args) {
|
||||
});
|
||||
|
||||
$$$('#name', 'change', (e) => {
|
||||
let p = Profiles.find(o => o.name === e.target.value);
|
||||
for (let k of Object.keys(p)) $(`#${k}`, e => e.value = p[k] ?? '');
|
||||
let p = profiles.find(o => o.name === e.target.value);
|
||||
for (let k of Object.keys(p)) $(`#${k}`)?.setAttribute('value', p[k] ?? '');
|
||||
});
|
||||
|
||||
$$$('#all', 'change', (e) => {
|
||||
$('#name').disabled = e.target.checked;
|
||||
});
|
||||
|
||||
for (let item of JSON.parse(profiles)) {
|
||||
Profiles.push(item);
|
||||
for (let item of profiles) {
|
||||
$('#name').add(new Option(item.name, item.name));
|
||||
$('#name').dispatchEvent(new Event('change'));
|
||||
}
|
||||
@@ -236,17 +229,17 @@ function main(profiles, args) {
|
||||
let logs = Array.from(history);
|
||||
|
||||
for (let record of logs) {
|
||||
if (record.levelno >= 40) Latest = record;
|
||||
if (record.levelno >= 40) error = record;
|
||||
let message = LogRecord.format(record);
|
||||
let node = document.createTextNode(new String(message).concat('\n'));
|
||||
$('#messages').appendChild(node);
|
||||
$('#messages').scrollTop = $('#messages').scrollHeight;
|
||||
}
|
||||
|
||||
Status = await Rpc2.invoke('status');
|
||||
$('#statusLabel').innerText = Status.charAt(0).toUpperCase() + Status.slice(1).toLowerCase();
|
||||
status = await Rpc2.invoke('status');
|
||||
$('#statusLabel').innerText = status.charAt(0).toUpperCase() + status.slice(1).toLowerCase();
|
||||
|
||||
switch (Status) {
|
||||
switch (status) {
|
||||
case 'IDLE':
|
||||
return;
|
||||
case 'READY':
|
||||
@@ -267,16 +260,13 @@ function main(profiles, args) {
|
||||
let [t1, t2] = await Rpc2.invoke('uptime').catch(() => []);
|
||||
$('#uptimeLabel').innerText = Temporal.Duration.from({ seconds: t1 ?? 0 }).round({ largestUnit: 'hours' }).toLocaleString('en', { style: 'digital' });
|
||||
|
||||
if (index && limit && t2) {
|
||||
let rate = index / t2;
|
||||
let remaining = Math.floor((limit - index) / rate);
|
||||
$('#remainingLabel').innerHTML = Temporal.Duration.from({ seconds: remaining }).round({ largestUnit: 'hours' }).toLocaleString('en');
|
||||
}
|
||||
let remaining = index && limit && t2 ? Math.floor((limit - index) / (index / t2)) : 0;
|
||||
$('#remainingLabel').innerHTML = remaining ? Temporal.Duration.from({ seconds: remaining }).round({ largestUnit: 'hours' }).toLocaleString('en') : '';
|
||||
break;
|
||||
case 'STANDBY':
|
||||
if (Latest !== null) {
|
||||
alert(`(${Latest.levelname}) ${Latest.msg}\n${Latest.exc_text ?? ''}`);
|
||||
Latest = null;
|
||||
if (error !== null) {
|
||||
alert(`(${error.levelname}) ${error.msg}\n${error.exc_text ?? ''}`);
|
||||
error = null;
|
||||
}
|
||||
$('#begin > span.text').innerText = 'Resume';
|
||||
$('#begin').classList.remove('pulse');
|
||||
|
||||
Reference in New Issue
Block a user