Files
ingtrakapp/pocketbase/pb_migrations/1740000006_ingtrak_home_widgets_budget.js
T
2026-09-10 17:37:10 +02:00

64 lines
1.3 KiB
JavaScript

/// PocketBase migration: budget / chart / icon fields on home_filter_widgets.
migrate((app) => {
const col = app.findCollectionByNameOrId("home_filter_widgets");
const addIfMissing = (config) => {
if (col.fields.getByName(config.name)) return;
col.fields.add(new Field(config));
};
addIfMissing({
type: "text",
name: "widget_type",
required: false,
max: 40,
});
addIfMissing({
type: "text",
name: "icon_id",
required: false,
max: 40,
});
addIfMissing({
type: "text",
name: "chart_style",
required: false,
max: 40,
});
addIfMissing({
type: "text",
name: "budget_cap_mode",
required: false,
max: 40,
});
addIfMissing({
type: "number",
name: "budget_fixed_amount",
required: false,
});
addIfMissing({
type: "number",
name: "budget_average_months",
required: false,
onlyInt: true,
});
app.save(col);
}, (app) => {
try {
const col = app.findCollectionByNameOrId("home_filter_widgets");
for (const name of [
"widget_type",
"icon_id",
"chart_style",
"budget_cap_mode",
"budget_fixed_amount",
"budget_average_months",
]) {
const field = col.fields.getByName(name);
if (field) col.fields.removeById(field.id);
}
app.save(col);
} catch (_) {}
});