annotate libervia/web/pages/calendar/_browser/__init__.py @ 1602:6feac4a25e60

browser: Remote Control implementation: - Add `cbor-x` JS dependency. - In "Call" page, a Remote Control session can now be started. This is done by clicking on a search item 3 dots menu. Libervia Web will act as a controlling device. The call box is then adapted, and mouse/wheel and keyboard events are sent to remote, touch events are converted to mouse one. - Some Brython 3.12* related changes. rel 436
author Goffi <goffi@goffi.org>
date Sat, 11 May 2024 14:02:22 +0200
parents eb00d593801d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1508
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
1 from browser import document, window
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
2 from browser.timer import set_interval
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
3
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
4 calendar_start = window.calendar_start
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
5
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
6
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
7 def update_current_time_line():
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
8 now = window.Date.new()
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
9
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
10 # Calculate the position of the current-time-line
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
11 now_ts = now.getTime() / 1000
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
12 minutes_passed = (now_ts - calendar_start) / 60
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
13
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
14 new_top = minutes_passed + 15
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
15
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
16 # Update the current-time-line position and make it visible
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
17 current_time_line = document["current-time-line"]
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
18 current_time_line.style.top = f"{new_top}px"
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
19 current_time_line.hidden = False
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
20
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
21 # Initial update
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
22 update_current_time_line()
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
23
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
24 # Update the current-time-line every minute
ec3ad9abf9f9 pages (calendar): calendar page, first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
25 set_interval(update_current_time_line, 60 * 1000)