diff options
| author | Martin Ridgers <[email protected]> | 2025-11-18 14:28:03 +0100 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2025-11-18 14:28:03 +0100 |
| commit | c25b3cfd0d5d56cb6c2703350cb273c3322673a7 (patch) | |
| tree | c4c93a04125aa3743bd2b95b904ecd10c36f4be6 /src/zenserver | |
| parent | 5.7.10 (diff) | |
| download | zen-c25b3cfd0d5d56cb6c2703350cb273c3322673a7.tar.xz zen-c25b3cfd0d5d56cb6c2703350cb273c3322673a7.zip | |
Added actions to drop all projects or all z$ namespaces. (#655)
* Save references to the project and zcache tables
* Add an attribute to table rows with the actionable project/namespace id
* Drop-all option for projects and cache namespaces
* Updated frontend .zip archive
* Edited changelog
Diffstat (limited to 'src/zenserver')
| -rw-r--r-- | src/zenserver/frontend/html.zip | bin | 161943 -> 163145 bytes | |||
| -rw-r--r-- | src/zenserver/frontend/html/pages/start.js | 51 | ||||
| -rw-r--r-- | src/zenserver/frontend/html/zen.css | 5 |
3 files changed, 54 insertions, 2 deletions
diff --git a/src/zenserver/frontend/html.zip b/src/zenserver/frontend/html.zip Binary files differindex 38d3a73f2..f9fc8a8ef 100644 --- a/src/zenserver/frontend/html.zip +++ b/src/zenserver/frontend/html.zip diff --git a/src/zenserver/frontend/html/pages/start.js b/src/zenserver/frontend/html/pages/start.js index 28f4a20d9..4c8789431 100644 --- a/src/zenserver/frontend/html/pages/start.js +++ b/src/zenserver/frontend/html/pages/start.js @@ -15,17 +15,20 @@ export class Page extends ZenPage { // project list var section = this.add_section("projects"); + + section.tag().classify("dropall").text("drop-all").on_click(() => this.drop_all("projects")); + var columns = [ "name", "project_dir", "engine_dir", "actions", ]; - var table = section.add_widget(Table, columns); + var project_table = section.add_widget(Table, columns); for (const project of await new Fetcher().resource("/prj/list").json()) { - var row = table.add_row( + var row = project_table.add_row( "", project.ProjectRootDir, project.EngineRootDir, @@ -38,10 +41,15 @@ export class Page extends ZenPage var action_tb = new Toolbar(cell, true); action_tb.left().add("view").on_click((x) => this.view_project(x), project.Id); action_tb.left().add("drop").on_click((x) => this.drop_project(x), project.Id); + + row.attr("zs_name", project.Id); } // cache var section = this.add_section("z$"); + + section.tag().classify("dropall").text("drop-all").on_click(() => this.drop_all("z$")); + columns = [ "namespace", "dir", @@ -72,6 +80,8 @@ export class Page extends ZenPage const action_tb = new Toolbar(cell, true); action_tb.left().add("view").on_click(() => this.view_zcache(namespace)); action_tb.left().add("drop").on_click(() => this.drop_zcache(namespace)); + + row.attr("zs_name", namespace); }); } @@ -112,6 +122,9 @@ export class Page extends ZenPage var version = new Fetcher().resource("health", "version"); version.param("detailed", "true"); version.text().then((data) => ver_tag.text(data)); + + this._project_table = project_table; + this._cache_table = cache_table; } view_stat(provider) @@ -156,4 +169,38 @@ export class Page extends ZenPage .option("Yes", () => drop()) .option("No"); } + + async drop_all_projects() + { + for (const row of this._project_table) + { + const project_id = row.attr("zs_name"); + await new Fetcher().resource("prj", project_id).delete(); + } + this.reload(); + } + + async drop_all_zcache() + { + for (const row of this._cache_table) + { + const namespace = row.attr("zs_name"); + await new Fetcher().resource("z$", namespace).delete(); + } + this.reload(); + } + + drop_all(what) + { + const drop = async () => { + if (what == "projects") return this.drop_all_projects(); + if (what == "z$") return this.drop_all_zcache(); + }; + + new Modal() + .title("Confirmation") + .message(`Drop every item from '${what}'?`) + .option("Yes", () => drop()) + .option("No"); + } } diff --git a/src/zenserver/frontend/html/zen.css b/src/zenserver/frontend/html/zen.css index 0c4f324e4..c52609f52 100644 --- a/src/zenserver/frontend/html/zen.css +++ b/src/zenserver/frontend/html/zen.css @@ -411,6 +411,11 @@ a { /* start -------------------------------------------------------------------- */ #start { + .dropall { + text-align: right; + font-size: 0.85em; + margin: -0.5em 0 0.5em 0; + } #version { color: var(--theme_g1); text-align: center; |