mirror of
https://github.com/xiaoqidun/ofdgo.git
synced 2026-10-30 01:27:26 +08:00
1 parent
bb3abdea1d
commit
33ae0b1a98
1 file changed
+18
-5
+18
-5
@@ -6154,12 +6154,16 @@ async function openResourceManagement() {
|
|||||||
await resourceTask(loadManagedResources);
|
await resourceTask(loadManagedResources);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function resourceTask(action) {
|
async function resourceTask(action, delay = 0) {
|
||||||
if (resourceManager.busy) return;
|
if (resourceManager.busy) return;
|
||||||
resourceManager.busy = true;
|
resourceManager.busy = true;
|
||||||
resourceElements.List.inert = true;
|
resourceElements.List.inert = !delay;
|
||||||
updateResourceControls();
|
updateResourceControls();
|
||||||
resourceElements.Status.textContent = "处理中";
|
const showBusy = () => {
|
||||||
|
resourceElements.Status.textContent = "处理中";
|
||||||
|
};
|
||||||
|
const timer = delay ? setTimeout(showBusy, delay) : null;
|
||||||
|
if (!delay) showBusy();
|
||||||
resourceElements.Panel.setAttribute("aria-busy", "true");
|
resourceElements.Panel.setAttribute("aria-busy", "true");
|
||||||
try {
|
try {
|
||||||
await action();
|
await action();
|
||||||
@@ -6167,6 +6171,7 @@ async function resourceTask(action) {
|
|||||||
} catch (err) {
|
} catch (err) {
|
||||||
resourceElements.Status.textContent = resourceError(err.message);
|
resourceElements.Status.textContent = resourceError(err.message);
|
||||||
} finally {
|
} finally {
|
||||||
|
if (timer !== null) clearTimeout(timer);
|
||||||
resourceManager.busy = false;
|
resourceManager.busy = false;
|
||||||
resourceElements.List.inert = false;
|
resourceElements.List.inert = false;
|
||||||
resourceElements.Panel.removeAttribute("aria-busy");
|
resourceElements.Panel.removeAttribute("aria-busy");
|
||||||
@@ -6213,13 +6218,13 @@ async function renderResourceList() {
|
|||||||
span.textContent = value;
|
span.textContent = value;
|
||||||
button.append(span);
|
button.append(span);
|
||||||
}
|
}
|
||||||
button.addEventListener("click", () => resourceTask(() => selectManagedResource(item)));
|
button.addEventListener("click", () => chooseManagedResource(item));
|
||||||
button.addEventListener("keydown", event => {
|
button.addEventListener("keydown", event => {
|
||||||
const index = items.indexOf(item);
|
const index = items.indexOf(item);
|
||||||
const target = { ArrowDown: Math.min(items.length - 1, index + 1), ArrowUp: Math.max(0, index - 1), Home: 0, End: items.length - 1 }[event.key];
|
const target = { ArrowDown: Math.min(items.length - 1, index + 1), ArrowUp: Math.max(0, index - 1), Home: 0, End: items.length - 1 }[event.key];
|
||||||
if (target == null) return;
|
if (target == null) return;
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
resourceTask(() => selectManagedResource(items[target])).then(() => {
|
chooseManagedResource(items[target]).then(() => {
|
||||||
if (resourceElements.Panel.open && resourceManager.selected === items[target]) resourceElements.List.children[target]?.focus();
|
if (resourceElements.Panel.open && resourceManager.selected === items[target]) resourceElements.List.children[target]?.focus();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -6235,6 +6240,14 @@ async function renderResourceList() {
|
|||||||
await selectManagedResource(selected);
|
await selectManagedResource(selected);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function chooseManagedResource(item) {
|
||||||
|
if (item === resourceManager.selected) return;
|
||||||
|
await resourceTask(() => {
|
||||||
|
resourceElements.Status.textContent = "";
|
||||||
|
return selectManagedResource(item);
|
||||||
|
}, 150);
|
||||||
|
}
|
||||||
|
|
||||||
async function selectManagedResource(item) {
|
async function selectManagedResource(item) {
|
||||||
const same = item?.id === resourceManager.selected?.id && item?.kind === resourceManager.selected?.kind;
|
const same = item?.id === resourceManager.selected?.id && item?.kind === resourceManager.selected?.kind;
|
||||||
const reference = same ? resourceElements.Reference.value : "0";
|
const reference = same ? resourceElements.Reference.value : "0";
|
||||||
|
|||||||
Reference in new issue
Block a user