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] 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 }} +
+