aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2020-08-06 22:22:04 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2020-08-06 22:22:04 +0200
commitc8151e2288fdf5892546172020a1579b7e41f6d3 (patch)
tree7fb085e15f968d7fa0a381974407ad4651e56e61
parentFix time when creating from month view. (diff)
downloadcalp-c8151e2288fdf5892546172020a1579b7e41f6d3.tar.gz
calp-c8151e2288fdf5892546172020a1579b7e41f6d3.tar.xz
Create multiple events without refreshing page between.
-rw-r--r--module/output/html.scm3
-rw-r--r--static/script.js23
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 */