@tokenbuddy/tb-admin 1.0.38 → 1.0.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/ui-static.js +2 -2
- package/package.json +2 -2
package/dist/src/ui-static.js
CHANGED
|
@@ -623,7 +623,7 @@ function renderDetail(){
|
|
|
623
623
|
const d = currentDetail;
|
|
624
624
|
document.getElementById("detailTitle").textContent = d.row.name + " detail";
|
|
625
625
|
document.getElementById("editDetail").textContent = editing ? "Save changes" : "Edit config";
|
|
626
|
-
document.getElementById("deleteSeller").title =
|
|
626
|
+
document.getElementById("deleteSeller").title = "Delete deployment";
|
|
627
627
|
showDetailStatus(d.row.error || "", false);
|
|
628
628
|
document.getElementById("detailGrid").classList.remove("hidden");
|
|
629
629
|
const c = d.configuration;
|
|
@@ -647,7 +647,7 @@ function setStatusActionBusy(busy){ document.querySelectorAll("[data-status-acti
|
|
|
647
647
|
function setDetailSavingBusy(busy){ const edit = document.getElementById("editDetail"); edit.disabled = Boolean(busy); edit.textContent = busy ? "Saving" : (editing ? "Save changes" : "Edit config"); document.querySelectorAll("#detailGrid [data-field], #detailGrid [data-model], #detailGrid [data-model-enabled], [data-status-action], #deleteSeller").forEach(input => { input.disabled = Boolean(busy); }); }
|
|
648
648
|
document.getElementById("editDetail").onclick = async () => { if (!editing){ editing = true; renderDetail(); return; } const patch = {}; document.querySelectorAll("[data-field]").forEach(input => { const value = input.value; if (value === "" || value === input.dataset.original) return; patch[input.dataset.field] = numeric(value); }); const aliases = {}; document.querySelectorAll("[data-model]").forEach(input => aliases[input.dataset.model] = input.value); patch.modelAliases = aliases; patch.models = modelConfigPatchFromDetail(); try { setDetailSavingBusy(true); showDetailStatus("Saving seller config", true); const result = await api("/api/sellers/"+encodeURIComponent(currentDetail.row.id)+"/config", { method:"PUT", body: JSON.stringify(patch) }); if (!result.ok) throw new Error(result.stderr || "Save failed"); currentDetail = await api("/api/sellers/"+encodeURIComponent(currentDetail.row.id)); editing = false; renderDetail(); loadSellers(); } catch (err) { showDetailStatus(err.message || "Save failed", false); } finally { setDetailSavingBusy(false); } };
|
|
649
649
|
function modelConfigPatchFromDetail(){ const enabledByModel = {}; document.querySelectorAll("[data-model-enabled]").forEach(input => enabledByModel[input.dataset.modelEnabled] = Boolean(input.checked)); return (currentDetail?.models || []).map(model => ({ ...(model.configModel || { id:model.upstreamModel }), id:model.upstreamModel, enabled: enabledByModel[model.upstreamModel] !== false })); }
|
|
650
|
-
document.getElementById("deleteSeller").onclick = async () => { if (!currentDetail) return; if (
|
|
650
|
+
document.getElementById("deleteSeller").onclick = async () => { if (!currentDetail) return; if (!confirm("Destroy deployment for "+currentDetail.row.name+"?")) return; try { setDetailSavingBusy(true); showDetailStatus("Destroying deployment", true); const result = await api("/api/sellers/"+encodeURIComponent(currentDetail.row.id)+"/deployment", { method:"DELETE", body: JSON.stringify({ confirm: true }) }); if (!result.ok) throw new Error(result.stderr || "Deployment destroy failed."); showDetailStatus(result.stdout || "Deployment destroy requested.", false); deleteReady = false; document.getElementById("deleteSeller").title = "Delete deployment"; loadSellers(); } catch (err) { showDetailStatus(err.message || "Deployment destroy failed.", false); } finally { setDetailSavingBusy(false); } };
|
|
651
651
|
document.getElementById("closeDetail").onclick = () => { deleteReady = false; document.getElementById("detailModal").classList.remove("open"); };
|
|
652
652
|
document.getElementById("hideNoInstanceApps").onchange = event => { hideNoInstanceApps = Boolean(event.target.checked); renderSellerRows(sellerRowsCache); };
|
|
653
653
|
document.querySelectorAll("[data-status-action]").forEach(btn => btn.onclick = async () => { if (!currentDetail) return; const action = btn.dataset.statusAction; const id = currentDetail.row.id; const status = registryStatusForAction(action); try { setStatusActionBusy(true); showDetailStatus("Updating registry status", true); const result = await api("/api/sellers/"+encodeURIComponent(id)+"/"+action, { method:"POST" }); if (!result.ok) throw new Error(result.stderr || "Status update failed."); patchSellerRegistryStatus(id, status); deleteReady = false; currentDetail = null; document.getElementById("detailModal").classList.remove("open"); } catch (err) { showDetailStatus(err.message || "Status update failed.", false); } finally { setStatusActionBusy(false); } });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tokenbuddy/tb-admin",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.40",
|
|
4
4
|
"description": "Remote admin CLI for TokenBuddy seller apps",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@iarna/toml": "^2.2.5",
|
|
23
|
-
"@tokenbuddy/contracts": "^1.0.
|
|
23
|
+
"@tokenbuddy/contracts": "^1.0.40",
|
|
24
24
|
"@types/js-yaml": "^4.0.9",
|
|
25
25
|
"cli-table3": "^0.6.4",
|
|
26
26
|
"commander": "^12.0.0",
|