]> acesimba.cloud Git - StationBuilder.git/commitdiff
domain-templates:新增 abbr(缩写)字段与 editing 状态支持
authorCodeBuddy <codebuddy@local>
Mon, 28 Sep 2026 06:38:54 +0000 (14:38 +0800)
committerCodeBuddy <codebuddy@local>
Mon, 28 Sep 2026 06:38:54 +0000 (14:38 +0800)
- ensureColumn(domain_templates, abbr, TEXT)
- PUT /api/domain-templates/:id 接受 abbr;status 允许 available/editing/unavailable

data/db/StationBuilder.sqlite
db-sidecar.mjs

index 5f05003b42bcb0fceee30c428d129fa77006e673..8237374ade98bb4cbc6a6da937d6bcdf57ad3ac5 100644 (file)
Binary files a/data/db/StationBuilder.sqlite and b/data/db/StationBuilder.sqlite differ
index 41a0bd35d0c75ef5abed012ac451947574f6470c..049d1684791cde0f08e0e10d5f3df89b615368d6 100644 (file)
@@ -392,6 +392,7 @@ ensureColumn("sites", "app_icon", "TEXT");
 ensureColumn("sites", "app_icon_filename", "TEXT");
 ensureColumn("sites", "app_color_scheme", "TEXT DEFAULT 'blue'");
 ensureColumn("domains", "color", "TEXT");
+ensureColumn("domain_templates", "abbr", "TEXT");
 ensureColumn("menu_items", "source_key", "TEXT");
 ensureColumn("sites", "template_id", "INTEGER");
 ensureColumn("sites", "template_applied_at", "TEXT");
@@ -1943,13 +1944,14 @@ async function handleDomainTemplateUpdate(req, res, id) {
   const name = body.name != null ? body.name.toString().trim() : row.name;
   const domain_id = body.domain_id != null ? Number(body.domain_id) : row.domain_id;
   const description = body.description != null ? body.description : row.description;
-  const status = body.status != null ? (body.status === "unavailable" ? "unavailable" : "available") : row.status;
+  const abbr = body.abbr != null ? body.abbr.toString().trim() : row.abbr;
+  const status = body.status != null ? (["available", "editing", "unavailable"].includes(body.status) ? body.status : "available") : row.status;
   const version = body.version != null ? body.version.toString() : row.version;
   const creator = body.creator != null ? body.creator.toString() : row.creator;
   const supplement = body.supplement != null ? body.supplement : row.supplement;
   const style_id = body.style_id !== undefined ? (body.style_id != null ? Number(body.style_id) : null) : row.style_id;
   if (!name) return respondError(res, 400, "模板名称不能为空");
-  db.prepare("UPDATE domain_templates SET domain_id=?,name=?,description=?,status=?,version=?,creator=?,supplement=?,style_id=? WHERE id=?").run(domain_id, name, description, status, version, creator, supplement, style_id, id);
+  db.prepare("UPDATE domain_templates SET domain_id=?,name=?,abbr=?,description=?,status=?,version=?,creator=?,supplement=?,style_id=? WHERE id=?").run(domain_id, name, abbr, description, status, version, creator, supplement, style_id, id);
   if (body.device_template_ids !== undefined) {
     db.prepare("DELETE FROM device_template_domain_templates WHERE domain_template_id=?").run(id);
     for (const devId of Array.isArray(body.device_template_ids) ? body.device_template_ids : []) {