From 8ef6a2bbfae0fe49ef4b79779cba3eecdccef787 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20=C3=85hall?= Date: Thu, 25 Jul 2024 08:38:06 +0200 Subject: [PATCH 1/3] Added trigger list to datapoint edit --- main.go | 22 ++++++++++++++++++++++ views/pages/datapoint_edit.gotmpl | 10 ++++++++++ 2 files changed, 32 insertions(+) diff --git a/main.go b/main.go index bb900a6..19cb780 100644 --- a/main.go +++ b/main.go @@ -663,6 +663,27 @@ func pageDatapointEdit(w http.ResponseWriter, r *http.Request, _ *session.T) { / } } + /* Triggers using this datapoint is provided as a list to update + * if changing the datapoint name. Parsing expr and automatically + * changing it to renamed datapoints would be nice in the future. */ + var triggers []Trigger + triggers, err = TriggersRetrieveByDatapoint(datapoint.Name) + if err != nil { + httpError(w, werr.Wrap(err).Log()) + return + } + slices.SortFunc(triggers, func(a, b Trigger) int { + an := strings.ToUpper(a.Name) + bn := strings.ToUpper(b.Name) + if an < bn { + return -1 + } + if an > bn { + return 1 + } + return 0 + }) + page := Page{ LAYOUT: "main", PAGE: "datapoint_edit", @@ -674,6 +695,7 @@ func pageDatapointEdit(w http.ResponseWriter, r *http.Request, _ *session.T) { / page.Data = map[string]any{ "Datapoint": datapoint, + "Triggers": triggers, } page.Render(w, r) return diff --git a/views/pages/datapoint_edit.gotmpl b/views/pages/datapoint_edit.gotmpl index e4a138b..eb6b397 100644 --- a/views/pages/datapoint_edit.gotmpl +++ b/views/pages/datapoint_edit.gotmpl @@ -46,6 +46,16 @@ {{ end }} + +
+
+ Used in the following triggers: + +
{{ end }} From 96f7b50e4e3d8a4ba6635b2f2c18a3a1104eb730 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20=C3=85hall?= Date: Thu, 25 Jul 2024 09:37:37 +0200 Subject: [PATCH 2/3] UI confirm of datapoint renaming --- sql/00027.sql | 22 ++++++++ static/js/datapoint_edit.mjs | 9 +++- views/pages/datapoint_edit.gotmpl | 85 ++++++++++++++++--------------- 3 files changed, 73 insertions(+), 43 deletions(-) create mode 100644 sql/00027.sql diff --git a/sql/00027.sql b/sql/00027.sql new file mode 100644 index 0000000..83a5625 --- /dev/null +++ b/sql/00027.sql @@ -0,0 +1,22 @@ +/* Updating a datapoint name also updates the jsonb array entry */ +CREATE OR REPLACE FUNCTION update_triggers_datapoint_name() + RETURNS TRIGGER + LANGUAGE PLPGSQL + AS +$$ +BEGIN +UPDATE "trigger" + SET + datapoints = (datapoints - OLD.name) || jsonb_build_array(NEW.name) + WHERE + datapoints ? OLD.name; + + RETURN NEW; +END; +$$; + +CREATE TRIGGER datapoint_renamed + AFTER UPDATE + ON public.datapoint + FOR EACH ROW + EXECUTE PROCEDURE update_triggers_datapoint_name(); diff --git a/static/js/datapoint_edit.mjs b/static/js/datapoint_edit.mjs index dfe5e9c..8180084 100644 --- a/static/js/datapoint_edit.mjs +++ b/static/js/datapoint_edit.mjs @@ -1,5 +1,6 @@ export class UI { - constructor() { + constructor(datapointData) { + this.datapoint = datapointData document.addEventListener('keydown', evt=>this.keyHandler(evt)) document.querySelector('input[name="group"]').focus() } @@ -16,4 +17,10 @@ export class UI { break } } + check_rename() { + let newName = document.querySelector(`input[name="name"]`).value + if (newName != this.datapoint.Name) + return confirm(`Trigger expressions needs to be manually updated when renaming a datapoint.\nDo you want to rename the datapoint?`) + return true + } } diff --git a/views/pages/datapoint_edit.gotmpl b/views/pages/datapoint_edit.gotmpl index eb6b397..3cfe372 100644 --- a/views/pages/datapoint_edit.gotmpl +++ b/views/pages/datapoint_edit.gotmpl @@ -3,58 +3,59 @@ {{ block "page_label" . }}{{end}} -
-
-
Group
-
+ +
+
Group
+
-
Name
-
- -
Datatype
-
- -
+
Name
+
-
No data
problem time
(seconds)
-
- -
A problem is raised and notified if an entry isn't made within this time.
-
Set to 0 to disable.
-
+
Datatype
+
+ +
-
Comment
-
- -
+
No data
problem time
(seconds)
+
+ +
A problem is raised and notified if an entry isn't made within this time.
+
Set to 0 to disable.
+
+ +
Comment
+
+ +
-
-
- {{ if eq .Data.Datapoint.ID 0 }} - - {{ else }} - - {{ end }} -
- -
-
- Used in the following triggers: -
    - {{ range .Data.Triggers }} -
  • {{ .Name }}
  • +
    +
    + {{ if eq .Data.Datapoint.ID 0 }} + + {{ else }} + {{ end }} -
+
+ +
+
+ Used in the following triggers: +
    + {{ range .Data.Triggers }} +
  • {{ .Name }}
  • + {{ end }} +
+
From 6685f8bc46b3581550a305112fb574d5f9203bc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20=C3=85hall?= Date: Thu, 25 Jul 2024 09:39:48 +0200 Subject: [PATCH 3/3] Bumped to v40 --- main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.go b/main.go index 19cb780..b29952f 100644 --- a/main.go +++ b/main.go @@ -29,7 +29,7 @@ import ( "time" ) -const VERSION = "v39" +const VERSION = "v40" var ( logger *slog.Logger