aboutsummaryrefslogtreecommitdiff
path: root/static/clock.js
diff options
context:
space:
mode:
Diffstat (limited to 'static/clock.js')
-rw-r--r--static/clock.js70
1 files changed, 70 insertions, 0 deletions
diff --git a/static/clock.js b/static/clock.js
new file mode 100644
index 00000000..badfd1db
--- /dev/null
+++ b/static/clock.js
@@ -0,0 +1,70 @@
+
+class Clock {
+ update(now) {
+ }
+}
+
+
+class Timebar extends Clock {
+
+ constructor(start_time, end_time) {
+ super();
+ this.start_time = start_time;
+ this.end_time = end_time;
+ this.bar_object = false
+ }
+
+
+ update(now) {
+ if (! (this.start_time <= now.getTime() && now.getTime() < this.end_time))
+ return;
+
+ var event_area = document.getElementById(now.format("~Y-~m-~d"))
+
+ if (event_area) {
+ if (this.bar_object) {
+ this.bar_object.parentNode.removeChild(bar_object)
+ } else {
+ this.bar_object = makeElement ('div', {
+ id: 'bar',
+ className: 'eventlike current-time',
+ });
+ }
+
+ this.bar_object.style.top = date_to_percent(now) + "%";
+ event_area.append(this.bar_object)
+ }
+ }
+}
+
+class SmallcalCellHighlight extends Clock {
+ constructor(small_cal) {
+ super();
+ this.small_cal = small_cal;
+ this.current_cell = false
+ }
+
+ update(now) {
+ if (current_cell) {
+ current_cell.style.border = "";
+ }
+
+ current_cell = this.small_cal.querySelector(
+ "time[datetime='" + now.format("~Y-~m-~d") + "']");
+
+ current_cell.style.border = "1px solid black";
+ }
+}
+
+/* Update [today] button */
+class ButtonUpdater extends Clock {
+ constructor(el, proc) {
+ super();
+ this.el = el;
+ this.proc = proc;
+ }
+
+ update(now) {
+ this.proc(e, now);
+ }
+}