diff --git a/Cargo.lock b/Cargo.lock index ba16073..b34e1dd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3152,6 +3152,7 @@ dependencies = [ "headers", "hex", "http", + "itertools 0.14.0", "mime_guess", "percent-encoding", "rand 0.9.2", @@ -3160,6 +3161,7 @@ dependencies = [ "rustical_oidc", "rustical_store", "serde", + "serde_json", "thiserror 2.0.17", "tokio", "tower", @@ -3168,6 +3170,7 @@ dependencies = [ "tracing", "url", "uuid", + "vtimezones-rs", ] [[package]] diff --git a/crates/frontend/Cargo.toml b/crates/frontend/Cargo.toml index 2a589b9..009de98 100644 --- a/crates/frontend/Cargo.toml +++ b/crates/frontend/Cargo.toml @@ -39,3 +39,6 @@ headers.workspace = true tower-sessions.workspace = true percent-encoding.workspace = true tower-http = { workspace = true, optional = true } +vtimezones-rs.workspace = true +serde_json.workspace = true +itertools.workspace = true diff --git a/crates/frontend/js-components/lib/create-calendar-form.ts b/crates/frontend/js-components/lib/create-calendar-form.ts index 516987e..1bbbc3d 100644 --- a/crates/frontend/js-components/lib/create-calendar-form.ts +++ b/crates/frontend/js-components/lib/create-calendar-form.ts @@ -7,6 +7,11 @@ import { escapeXml } from "."; export class CreateCalendarForm extends LitElement { constructor() { super() + this.fetchTimezones() + } + + async fetchTimezones() { + this.timezones = await getTimezones() } protected override createRenderRoot() { @@ -36,6 +41,8 @@ export class CreateCalendarForm extends LitElement { dialog: Ref = createRef() form: Ref = createRef() + @property() + timezones: Array = [] override render() { return html` @@ -65,7 +72,12 @@ export class CreateCalendarForm extends LitElement {