From 85a6da0b0a16000d54711509dd73016fdc89b231 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20=C3=85hall?= Date: Sun, 7 Jul 2024 15:51:51 +0200 Subject: [PATCH 01/13] Added link to datapoint values from trigger --- static/css/default_light/trigger_edit.css | 9 ++++++++- static/css/gruvbox/trigger_edit.css | 9 ++++++++- static/js/trigger_edit.mjs | 5 +++-- static/less/trigger_edit.less | 11 ++++++++++- 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/static/css/default_light/trigger_edit.css b/static/css/default_light/trigger_edit.css index 5192604..959c7cf 100644 --- a/static/css/default_light/trigger_edit.css +++ b/static/css/default_light/trigger_edit.css @@ -13,17 +13,24 @@ .widgets .datapoints { font: "Roboto Mono", monospace; display: grid; - grid-template-columns: min-content min-content 1fr; + grid-template-columns: repeat(4, min-content); gap: 6px 8px; margin-bottom: 8px; white-space: nowrap; } +.widgets .datapoints div { + white-space: nowrap; +} .widgets .datapoints .invalid { color: #c83737; } .widgets .datapoints .delete img { height: 16px; } +.widgets .datapoints .values img { + height: 16px; + width: 16px; +} .widgets .action { display: grid; grid-template-columns: min-content min-content 1fr; diff --git a/static/css/gruvbox/trigger_edit.css b/static/css/gruvbox/trigger_edit.css index 711dc17..ee5b1fc 100644 --- a/static/css/gruvbox/trigger_edit.css +++ b/static/css/gruvbox/trigger_edit.css @@ -13,17 +13,24 @@ .widgets .datapoints { font: "Roboto Mono", monospace; display: grid; - grid-template-columns: min-content min-content 1fr; + grid-template-columns: repeat(4, min-content); gap: 6px 8px; margin-bottom: 8px; white-space: nowrap; } +.widgets .datapoints div { + white-space: nowrap; +} .widgets .datapoints .invalid { color: #c83737; } .widgets .datapoints .delete img { height: 16px; } +.widgets .datapoints .values img { + height: 16px; + width: 16px; +} .widgets .action { display: grid; grid-template-columns: min-content min-content 1fr; diff --git a/static/js/trigger_edit.mjs b/static/js/trigger_edit.mjs index 826afd4..e74c2e3 100644 --- a/static/js/trigger_edit.mjs +++ b/static/js/trigger_edit.mjs @@ -19,9 +19,10 @@ export class UI { let html = Object.keys(this.trigger.datapoints).sort().map(dpName => { const dp = this.trigger.datapoints[dpName] return ` -
${dp.Name}
${dp.Found ? dp.LastDatapointValue.TemplateValue : ''}
+
+
` }).join('') datapoints.innerHTML += html @@ -84,7 +85,7 @@ export class UI { }) }//}}} deleteDatapoint(name) {//{{{ - if (!confirm(`Delete ${name}?`)) { + if (!confirm(`Remove datapoint ${name} from this trigger?`)) { return } diff --git a/static/less/trigger_edit.less b/static/less/trigger_edit.less index 4e3f0e2..ee1c616 100644 --- a/static/less/trigger_edit.less +++ b/static/less/trigger_edit.less @@ -19,11 +19,15 @@ .datapoints { font: "Roboto Mono", monospace; display: grid; - grid-template-columns: min-content min-content 1fr; + grid-template-columns: repeat(4, min-content); gap: 6px 8px; margin-bottom: 8px; white-space: nowrap; + div { + white-space: nowrap; + } + .invalid { color: #c83737; } @@ -31,6 +35,11 @@ .delete img { height: 16px; } + + .values img { + height: 16px; + width: 16px; + } } .action { From 1deb80c7762318260ece19e98564e3725275fc27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20=C3=85hall?= Date: Sun, 7 Jul 2024 15:52:08 +0200 Subject: [PATCH 02/13] Bumped to v37 --- main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.go b/main.go index 9e83055..76e4166 100644 --- a/main.go +++ b/main.go @@ -29,7 +29,7 @@ import ( "time" ) -const VERSION = "v36" +const VERSION = "v37" var ( logger *slog.Logger From a8bdeae3a9491c4fa17a1a40ba63ef4a95c4d228 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20=C3=85hall?= Date: Fri, 19 Jul 2024 10:11:53 +0200 Subject: [PATCH 03/13] Trying NTFY priority of 5 to get better Firebase notifications --- notification/ntfy.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/notification/ntfy.go b/notification/ntfy.go index 0e94516..8132d08 100644 --- a/notification/ntfy.go +++ b/notification/ntfy.go @@ -81,7 +81,7 @@ func (ntfy NTFY) Send(problemID int, msg []byte) (err error) { ackURL := fmt.Sprintf("http, OK, %s/notification/ack?problemID=%d", ntfy.AcknowledgeURL, problemID) req.Header.Add("X-Actions", ackURL) - req.Header.Add("X-Priority", "4") // XXX: should be 5 + req.Header.Add("X-Priority", "5") req.Header.Add("X-Tags", "calendar") res, err = http.DefaultClient.Do(req) From f8a64e4dfddefb3e51b1ea94ef844cd97e363b3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20=C3=85hall?= Date: Wed, 24 Jul 2024 10:27:21 +0200 Subject: [PATCH 04/13] Added last values for table datapoint, update to current latest values and trigger for future values --- sql/00026.sql | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 sql/00026.sql diff --git a/sql/00026.sql b/sql/00026.sql new file mode 100644 index 0000000..719dccd --- /dev/null +++ b/sql/00026.sql @@ -0,0 +1,56 @@ +/* Adding last values to the datapoint table since they are a regularly used value. */ +ALTER TABLE public.datapoint ADD COLUMN last_value_int int8 NULL; +ALTER TABLE public.datapoint ADD COLUMN last_value_string varchar NULL; +ALTER TABLE public.datapoint ADD COLUMN last_value_datetime timestamptz NULL; + + + +/* Once-run query to update it to the latest, to avoid user having to wait for the next entry. */ +UPDATE public.datapoint AS dp +SET + last_value_int = dpv.value_int, + last_value_string = dpv.value_string, + last_value_datetime = dpv.value_datetime +FROM ( + SELECT + dp.id AS datapoint_id, + dpv.value_int, + dpv.value_string, + dpv.value_datetime + FROM public.datapoint dp + LEFT JOIN ( + SELECT + *, + row_number() OVER (PARTITION BY "datapoint_id" ORDER BY ts DESC) AS rn + FROM datapoint_value + ) dpv ON dpv.datapoint_id = dp.id AND rn = 1 +) AS dpv +WHERE + dpv.datapoint_id = dp.id; + + + +/* A trigger keeps the value current without bugs introduced in software missing the entry. */ +CREATE OR REPLACE FUNCTION datapoint_entry() + RETURNS TRIGGER + LANGUAGE PLPGSQL + AS +$$ +BEGIN + UPDATE public.datapoint + SET + last_value_int = NEW.value_int, + last_value_string = NEW.value_string, + last_value_datetime = NEW.value_datetime + WHERE + id = NEW.datapoint_id; + + RETURN NEW; +END; +$$; + +CREATE TRIGGER datapoint_entry + AFTER INSERT + ON public.datapoint_value + FOR EACH ROW + EXECUTE PROCEDURE datapoint_entry(); From 570ea064aa48c1a9f72aa98e021ecc80e71b24dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20=C3=85hall?= Date: Wed, 24 Jul 2024 15:39:04 +0200 Subject: [PATCH 05/13] Faster datapoint latest value display --- datapoint.go | 37 ++++++++++++------------------------- sql/00026.sql | 6 ++++++ 2 files changed, 18 insertions(+), 25 deletions(-) diff --git a/datapoint.go b/datapoint.go index 2d2286e..e5687c2 100644 --- a/datapoint.go +++ b/datapoint.go @@ -162,8 +162,6 @@ func DatapointAdd[T any](name string, value T) (err error) { // {{{ return } - service.Db.Conn.Exec(`UPDATE datapoint SET last_value = NOW(), nodata_is_problem = false WHERE id=$1`, dpID) - return } // }}} @@ -172,30 +170,19 @@ func DatapointsRetrieve() (dps []Datapoint, err error) { // {{{ var rows *sqlx.Rows rows, err = service.Db.Conn.Queryx(` SELECT - dp.id, - dp.name, - dp.datatype, - dp.last_value, - dp.group, - dp.comment, - dp.nodata_problem_seconds, - - dpv.id AS v_id, - dpv.ts, - dpv.value_int, - dpv.value_string, - dpv.value_datetime - - FROM public.datapoint dp - LEFT JOIN ( - SELECT - *, - row_number() OVER (PARTITION BY "datapoint_id" ORDER BY ts DESC) AS rn - FROM datapoint_value - ) dpv ON dpv.datapoint_id = dp.id AND rn = 1 + id, name, datatype, last_value, "group", comment, nodata_problem_seconds, + last_value_id AS v_id, + CASE + WHEN last_value_id IS NULL THEN null + ELSE last_value + END AS ts, + last_value_int AS value_int, + last_value_string AS value_string, + last_value_datetime AS value_datetime + FROM datapoint ORDER BY - dp.group ASC, - dp.name ASC + "group" ASC, + name ASC `) if err != nil { err = werr.Wrap(err) diff --git a/sql/00026.sql b/sql/00026.sql index 719dccd..364ccaa 100644 --- a/sql/00026.sql +++ b/sql/00026.sql @@ -1,4 +1,5 @@ /* Adding last values to the datapoint table since they are a regularly used value. */ +ALTER TABLE public.datapoint ADD COLUMN last_value_id int4 NULL; ALTER TABLE public.datapoint ADD COLUMN last_value_int int8 NULL; ALTER TABLE public.datapoint ADD COLUMN last_value_string varchar NULL; ALTER TABLE public.datapoint ADD COLUMN last_value_datetime timestamptz NULL; @@ -8,12 +9,14 @@ ALTER TABLE public.datapoint ADD COLUMN last_value_datetime timestamptz NULL; /* Once-run query to update it to the latest, to avoid user having to wait for the next entry. */ UPDATE public.datapoint AS dp SET + last_value_id = dpv.id, last_value_int = dpv.value_int, last_value_string = dpv.value_string, last_value_datetime = dpv.value_datetime FROM ( SELECT dp.id AS datapoint_id, + dpv.id, dpv.value_int, dpv.value_string, dpv.value_datetime @@ -39,6 +42,9 @@ $$ BEGIN UPDATE public.datapoint SET + nodata_is_problem = false, + last_value = NEW.ts, + last_value_id = NEW.id, last_value_int = NEW.value_int, last_value_string = NEW.value_string, last_value_datetime = NEW.value_datetime From 6909b223a781dfce246f9c1309c01a18640856a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20=C3=85hall?= Date: Wed, 24 Jul 2024 15:39:33 +0200 Subject: [PATCH 06/13] Bumped to v38 --- main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.go b/main.go index 76e4166..6eb559a 100644 --- a/main.go +++ b/main.go @@ -29,7 +29,7 @@ import ( "time" ) -const VERSION = "v37" +const VERSION = "v38" var ( logger *slog.Logger From d1599fe2b9d9935272df08dd1777cd64c6a10505 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20=C3=85hall?= Date: Wed, 24 Jul 2024 16:05:30 +0200 Subject: [PATCH 07/13] Fixed trigger edit regression and bumped to v39 --- datapoint.go | 4 ++-- main.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/datapoint.go b/datapoint.go index e5687c2..0690bbd 100644 --- a/datapoint.go +++ b/datapoint.go @@ -242,11 +242,11 @@ func DatapointRetrieve(id int, name string) (dp Datapoint, err error) { // {{{ var query string var param any if id > 0 { - query = `SELECT *, true AS found FROM datapoint WHERE id = $1` + query = `SELECT id, "group", name, "datatype", comment, last_value, nodata_problem_seconds, nodata_is_problem, true AS found FROM public.datapoint WHERE id = $1` param = id dp.ID = id } else { - query = `SELECT *, true AS found FROM datapoint WHERE name = $1` + query = `SELECT id, "group", name, "datatype", comment, last_value, nodata_problem_seconds, nodata_is_problem, true AS found FROM public.datapoint WHERE name = $1` param = name } diff --git a/main.go b/main.go index 6eb559a..bb900a6 100644 --- a/main.go +++ b/main.go @@ -29,7 +29,7 @@ import ( "time" ) -const VERSION = "v38" +const VERSION = "v39" var ( logger *slog.Logger 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 08/13] 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: +
    + {{ range .Data.Triggers }} +
  • {{ .Name }}
  • + {{ end }} +
+
{{ 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 09/13] 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 10/13] 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 From db41d360dc713fed378e3711dc632eeb395c37b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20=C3=85hall?= Date: Thu, 25 Jul 2024 10:56:42 +0200 Subject: [PATCH 11/13] #6, update trigger expressions when renaming datapoints --- main.go | 32 +++++++++++++++++++++++++++++++- trigger.go | 40 ++++++++++++++++++++++++++++++++-------- 2 files changed, 63 insertions(+), 9 deletions(-) diff --git a/main.go b/main.go index b29952f..5bfa48f 100644 --- a/main.go +++ b/main.go @@ -711,8 +711,15 @@ func actionDatapointUpdate(w http.ResponseWriter, r *http.Request, _ *session.T) var nodataSeconds int nodataSeconds, _ = strconv.Atoi(r.FormValue("nodata_seconds")) + // Datapoint needs to be retrieved from database for the name. + // If name has changed, trigger expressions needs to be updated. var dp Datapoint - dp.ID = id + dp, err = DatapointRetrieve(id, "") + if err != nil { + httpError(w, werr.Wrap(err).WithData(id).Log()) + return + } + prevDatapointName := dp.Name dp.Group = r.FormValue("group") dp.Name = r.FormValue("name") dp.Datatype = DatapointType(r.FormValue("datatype")) @@ -724,6 +731,29 @@ func actionDatapointUpdate(w http.ResponseWriter, r *http.Request, _ *session.T) return } + // Update the trigger expressions using this + // datapoint name if changed. + if prevDatapointName != dp.Name { + var triggers []Trigger + triggers, err = TriggersRetrieveByDatapoint(dp.Name) + if err != nil { + httpError(w, werr.Wrap(err).WithData(dp.Name)) + return + } + for _, trigger := range triggers { + err = trigger.RenameDatapoint(prevDatapointName, dp.Name) + if err != nil { + httpError(w, werr.Wrap(err).WithData([]string{prevDatapointName, dp.Name})) + return + } + err = trigger.Update() + if err != nil { + httpError(w, werr.Wrap(err).WithData([]string{prevDatapointName, dp.Name, trigger.Name})) + return + } + } + } + w.Header().Add("Location", "/datapoints") w.WriteHeader(302) } // }}} diff --git a/trigger.go b/trigger.go index 85f792f..d663564 100644 --- a/trigger.go +++ b/trigger.go @@ -4,6 +4,8 @@ import ( // External werr "git.gibonuddevalla.se/go/wrappederror" "github.com/expr-lang/expr" + "github.com/expr-lang/expr/ast" + "github.com/expr-lang/expr/parser" "github.com/lib/pq" // Standard @@ -22,6 +24,17 @@ type Trigger struct { DatapointValues map[string]any } +type ExprRenamePatcher struct { + OldName string + NewName string +} + +func (p ExprRenamePatcher) Visit(node *ast.Node) { + if n, ok := (*node).(*ast.IdentifierNode); ok && n.Value == p.OldName { + ast.Patch(node, &ast.IdentifierNode{Value: p.NewName}) + } +} + func TriggerCreate(sectionID int, name string) (t Trigger, err error) { // {{{ t.SectionID = sectionID t.Name = name @@ -127,6 +140,14 @@ func TriggerRetrieve(id int) (trigger Trigger, err error) { // {{{ err = json.Unmarshal(jsonData, &trigger) return } // }}} +func TriggerDelete(id int) (err error) { // {{{ + _, err = service.Db.Conn.Exec(`DELETE FROM public.trigger WHERE id=$1`, id) + if err != nil { + return werr.Wrap(err).WithData(id) + } + return +} // }}} + func (t *Trigger) Validate() (ok bool, err error) { // {{{ if strings.TrimSpace(t.Name) == "" { err = fmt.Errorf("Name can't be empty") @@ -212,14 +233,6 @@ func (t *Trigger) Update() (err error) { // {{{ } return } // }}} -func TriggerDelete(id int) (err error) { // {{{ - _, err = service.Db.Conn.Exec(`DELETE FROM public.trigger WHERE id=$1`, id) - if err != nil { - return werr.Wrap(err).WithData(id) - } - return -} // }}} - func (t *Trigger) Run() (output any, err error) { // {{{ datapoints := make(map[string]Datapoint) for _, dpname := range t.Datapoints { @@ -248,3 +261,14 @@ func (t *Trigger) Run() (output any, err error) { // {{{ } return } // }}} +func (t *Trigger) RenameDatapoint(from, to string) error { // {{{ + tree, err := parser.Parse(t.Expression) + if err != nil { + return werr.Wrap(err).WithData(t.Expression) + } + + ast.Walk(&tree.Node, ExprRenamePatcher{from, to}) + t.Expression = tree.Node.String() + + return nil +} // }}} From 7cf2b60803220baaa51b57c78c16249c6c9c48a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20=C3=85hall?= Date: Thu, 25 Jul 2024 10:57:05 +0200 Subject: [PATCH 12/13] Bumped to v41 --- main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.go b/main.go index 5bfa48f..d771363 100644 --- a/main.go +++ b/main.go @@ -29,7 +29,7 @@ import ( "time" ) -const VERSION = "v40" +const VERSION = "v41" var ( logger *slog.Logger From 8fa8bb4c3adbf677953766960d1a16d5a42e0b6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20=C3=85hall?= Date: Thu, 25 Jul 2024 10:59:03 +0200 Subject: [PATCH 13/13] Removed datapoint rename confirmation since everything is automatic --- static/js/datapoint_edit.mjs | 6 ------ views/pages/datapoint_edit.gotmpl | 2 +- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/static/js/datapoint_edit.mjs b/static/js/datapoint_edit.mjs index 8180084..e9906e0 100644 --- a/static/js/datapoint_edit.mjs +++ b/static/js/datapoint_edit.mjs @@ -17,10 +17,4 @@ 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 3cfe372..9bb05f8 100644 --- a/views/pages/datapoint_edit.gotmpl +++ b/views/pages/datapoint_edit.gotmpl @@ -8,7 +8,7 @@ {{ block "page_label" . }}{{end}} -
+
Group