diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2020-08-06 22:22:04 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2020-08-06 22:22:04 +0200 |
commit | c8151e2288fdf5892546172020a1579b7e41f6d3 (patch) | |
tree | 7fb085e15f968d7fa0a381974407ad4651e56e61 | |
parent | Fix time when creating from month view. (diff) | |
download | calp-c8151e2288fdf5892546172020a1579b7e41f6d3.tar.gz calp-c8151e2288fdf5892546172020a1579b7e41f6d3.tar.xz |
Create multiple events without refreshing page between.
-rw-r--r-- | module/output/html.scm | 3 | ||||
-rw-r--r-- | static/script.js | 23 |
2 files changed, 21 insertions, 5 deletions
diff --git a/module/output/html.scm b/module/output/html.scm index 1f1fed46..f08f6360 100644 --- a/module/output/html.scm +++ b/module/output/html.scm @@ -863,7 +863,8 @@ (data-end "2020-01-02")) ,(caddar ; strip <a> tag (make-block event `((class " generated "))))) - ,(popup event (string-append "popup" (html-id event)))))))))) + (div (@ (class "template") (id "popup-template")) + ,(popup event (string-append "popup" (html-id event))))))))))) diff --git a/static/script.js b/static/script.js index 23041df9..5e95e56e 100644 --- a/static/script.js +++ b/static/script.js @@ -95,6 +95,7 @@ const gensym = (counter => (prefix="gensym") => prefix + ++counter)(0) let start_time = new Date(); let end_time = new Date(); + class EventCreator { /* dynamicly created event when dragging */ @@ -102,6 +103,19 @@ class EventCreator { this.event = false; this.event_start = { x: NaN, y: NaN }; this.down_on_event = false; + + } + + create_empty_event () { + let event = document.getElementById("event-template").firstChild.cloneNode(true); + let popup = document.getElementById("popup-template").firstChild.cloneNode(true); + + let id = gensym ("__js_event"); + + event.id = id; + popup.id = "popup" + id; + + return [popup, event]; } create_event_down (intended_target) { @@ -144,10 +158,11 @@ class EventCreator { /* only on left click */ if (e.buttons != 1) return; - let event - = that.event - = document.getElementById("event-template") - .firstChild.cloneNode(true); + let [popup, event] = that.create_empty_event(); + that.event = event; + + /* TODO better solution to add popup to DOM */ + document.getElementsByTagName("main")[0].append(popup); /* [0, 1) -- where are we in the container */ /* Ronud to force steps of quarters */ |