From 2488e6402e5eea5255099ba07f65f99930d548f3 Mon Sep 17 00:00:00 2001 From: Ionys <9364594+Ionys320@users.noreply.github.com> Date: Fri, 13 Dec 2024 09:40:21 +0100 Subject: [PATCH] feat(public URL): Add a public URL field and use it for the status page --- .../2024-12-12-2255-add-public-url.js | 13 +++++++++++++ server/model/monitor.js | 3 ++- server/server.js | 1 + src/components/MonitorSettingDialog.vue | 4 ++-- src/components/PublicGroupList.vue | 1 + src/lang/en.json | 4 +++- src/pages/EditMonitor.vue | 14 ++++++++++++++ test/e2e/specs/status-page.spec.js | 13 ++++++++++++- 8 files changed, 48 insertions(+), 5 deletions(-) create mode 100644 db/knex_migrations/2024-12-12-2255-add-public-url.js diff --git a/db/knex_migrations/2024-12-12-2255-add-public-url.js b/db/knex_migrations/2024-12-12-2255-add-public-url.js new file mode 100644 index 000000000..0cd97240d --- /dev/null +++ b/db/knex_migrations/2024-12-12-2255-add-public-url.js @@ -0,0 +1,13 @@ +// Add column publicUrl to monitor table +exports.up = function (knex) { + return knex.schema + .alterTable("monitor", function (table) { + table.text("publicUrl", "text"); + }); +}; + +exports.down = function (knex) { + return knex.schema.alterTable("monitor", function (table) { + table.dropColumn("publicUrl"); + }); +}; diff --git a/server/model/monitor.js b/server/model/monitor.js index 3ad8cfafc..cb82bb85c 100644 --- a/server/model/monitor.js +++ b/server/model/monitor.js @@ -53,7 +53,7 @@ class Monitor extends BeanModel { }; if (this.sendUrl) { - obj.url = this.url; + obj.url = this.publicUrl ?? this.url; // Use publicUrl if available, otherwise use url } if (showTags) { @@ -91,6 +91,7 @@ class Monitor extends BeanModel { id: this.id, name: this.name, description: this.description, + publicUrl: this.publicUrl, path, pathName, parent: this.parent, diff --git a/server/server.js b/server/server.js index ec5ad49f6..15f062a6f 100644 --- a/server/server.js +++ b/server/server.js @@ -790,6 +790,7 @@ let needSetup = false; bean.parent = monitor.parent; bean.type = monitor.type; bean.url = monitor.url; + bean.publicUrl = monitor.publicUrl; bean.method = monitor.method; bean.body = monitor.body; bean.headers = monitor.headers; diff --git a/src/components/MonitorSettingDialog.vue b/src/components/MonitorSettingDialog.vue index e6b2cd1ef..d0ff80b00 100644 --- a/src/components/MonitorSettingDialog.vue +++ b/src/components/MonitorSettingDialog.vue @@ -10,7 +10,7 @@