From 68a2a484c623a02cf5208a8c1f24b5527bb6663b Mon Sep 17 00:00:00 2001 From: davmar Date: Thu, 10 Sep 2026 17:34:28 +0200 Subject: [PATCH] new widget types 2 --- ...0000005_ingtrak_home_widgets_half_width.js | 12 +-- .../1740000006_ingtrak_home_widgets_budget.js | 80 ++++++++++--------- 2 files changed, 51 insertions(+), 41 deletions(-) diff --git a/pocketbase/pb_migrations/1740000005_ingtrak_home_widgets_half_width.js b/pocketbase/pb_migrations/1740000005_ingtrak_home_widgets_half_width.js index 8d13bdb..e6e0c26 100644 --- a/pocketbase/pb_migrations/1740000005_ingtrak_home_widgets_half_width.js +++ b/pocketbase/pb_migrations/1740000005_ingtrak_home_widgets_half_width.js @@ -1,20 +1,22 @@ /// PocketBase migration: half_width on home_filter_widgets. /// -/// Apply after 1740000004 if that collection already exists. +/// Apply after 1740000004 if that collection already exists without half_width. +/// For new installs, 1740000004 already creates half_width — this is a no-op then. migrate((app) => { const col = app.findCollectionByNameOrId("home_filter_widgets"); - col.fields.add({ - type: "bool", + if (col.fields.getByName("half_width")) return; + + col.fields.add(new BoolField({ name: "half_width", required: false, - }); + })); app.save(col); }, (app) => { try { const col = app.findCollectionByNameOrId("home_filter_widgets"); const field = col.fields.getByName("half_width"); if (field) { - col.fields.remove(field); + col.fields.removeById(field.id); app.save(col); } } catch (_) {} diff --git a/pocketbase/pb_migrations/1740000006_ingtrak_home_widgets_budget.js b/pocketbase/pb_migrations/1740000006_ingtrak_home_widgets_budget.js index d596a43..7a663ed 100644 --- a/pocketbase/pb_migrations/1740000006_ingtrak_home_widgets_budget.js +++ b/pocketbase/pb_migrations/1740000006_ingtrak_home_widgets_budget.js @@ -1,41 +1,49 @@ /// PocketBase migration: budget / chart / icon fields on home_filter_widgets. migrate((app) => { const col = app.findCollectionByNameOrId("home_filter_widgets"); - col.fields.add({ - type: "text", - name: "widget_type", - required: false, - max: 40, - }); - col.fields.add({ - type: "text", - name: "icon_id", - required: false, - max: 40, - }); - col.fields.add({ - type: "text", - name: "chart_style", - required: false, - max: 40, - }); - col.fields.add({ - type: "text", - name: "budget_cap_mode", - required: false, - max: 40, - }); - col.fields.add({ - type: "number", - name: "budget_fixed_amount", - required: false, - }); - col.fields.add({ - type: "number", - name: "budget_average_months", - required: false, - onlyInt: true, - }); + + if (!col.fields.getByName("widget_type")) { + col.fields.add(new TextField({ + name: "widget_type", + required: false, + max: 40, + })); + } + if (!col.fields.getByName("icon_id")) { + col.fields.add(new TextField({ + name: "icon_id", + required: false, + max: 40, + })); + } + if (!col.fields.getByName("chart_style")) { + col.fields.add(new TextField({ + name: "chart_style", + required: false, + max: 40, + })); + } + if (!col.fields.getByName("budget_cap_mode")) { + col.fields.add(new TextField({ + name: "budget_cap_mode", + required: false, + max: 40, + })); + } + if (!col.fields.getByName("budget_fixed_amount")) { + col.fields.add(new NumberField({ + name: "budget_fixed_amount", + required: false, + })); + } + if (!col.fields.getByName("budget_average_months")) { + col.fields.add(new NumberField({ + name: "budget_average_months", + required: false, + onlyInt: true, + })); + } + app.save(col); }, (app) => { try { @@ -49,7 +57,7 @@ migrate((app) => { "budget_average_months", ]) { const field = col.fields.getByName(name); - if (field) col.fields.remove(field); + if (field) col.fields.removeById(field.id); } app.save(col); } catch (_) {}