diff --git a/messages/en.json b/messages/en.json index 525c5b0..dcb8249 100644 --- a/messages/en.json +++ b/messages/en.json @@ -78,7 +78,8 @@ "settings": { "header": "Settings", "general": "General", - "map": "Map" + "map": "Map", + "connections": "Connections" }, "info": { "dropped": "Dropped Pin", @@ -148,6 +149,14 @@ "header": "Nearby Points of Interest", "no-poi": "No points of interest found nearby.", "loading": "Loading nearby points of interest..." + }, + "calendar": { + "header": "Calendar", + "add": "Add Calendar", + "connect": "Connect Calendar", + "probing-server": "Probing server...", + "discovering-calendars": "Discovering calendars...", + "choose": "Choose calendars to add:" } }, "unsave": "Unsave", @@ -164,5 +173,17 @@ "routing": { "off-route": "You went off route", "back-on-route": "You are back on route" + }, + "open": "Open", + "submit": "Submit", + "done": "Done", + "delete": "Delete", + "calendar": { + "location": "Location", + "no-location": "No location", + "start": "Start", + "end": "End", + "no-start": "No start", + "no-end": "No end" } } diff --git a/src/lib/components/lnv/Sidebar.svelte b/src/lib/components/lnv/Sidebar.svelte index 5ea4f6c..c5e5d86 100644 --- a/src/lib/components/lnv/Sidebar.svelte +++ b/src/lib/components/lnv/Sidebar.svelte @@ -44,6 +44,7 @@ "onboarding-vehicles": "onboarding/OnboardingVehiclesSidebar", "nearby-poi": "NearbyPOISidebar", licenses: "settings/LicensesSidebar", + calendar: "settings/CalendarSidebar", }; const fullscreen: Record = { @@ -62,6 +63,7 @@ "onboarding-vehicles": true, "nearby-poi": false, licenses: true, + calendar: true, }; let isDragging = false; diff --git a/src/lib/components/lnv/main/Calendar.svelte b/src/lib/components/lnv/main/Calendar.svelte new file mode 100644 index 0000000..c57de5b --- /dev/null +++ b/src/lib/components/lnv/main/Calendar.svelte @@ -0,0 +1,74 @@ + + +
+ {#each events as event ((event.start + "" || "") + (event.end + "" || ""))} + + + {event.summary} + {#if event.description} + {event.description} + {/if} + + +

+ {m["calendar.start"]()}: {event.start?.toLocaleString("de-DE") || m["calendar.no-start"]()} +

+

+ {m["calendar.end"]()}: {event.end?.toLocaleString("de-DE") || m["calendar.no-end"]()} +

+

+ {#if event.location} + {m["calendar.location"]()}: {event.location} + {:else} + {m["calendar.location"]()}: {m["calendar.no-location"]()} + {/if} +

+
+ + + +
+ {/each} +
+ + diff --git a/src/lib/components/lnv/sidebar/MainSidebar.svelte b/src/lib/components/lnv/sidebar/MainSidebar.svelte index 6211a91..8c240af 100644 --- a/src/lib/components/lnv/sidebar/MainSidebar.svelte +++ b/src/lib/components/lnv/sidebar/MainSidebar.svelte @@ -9,6 +9,7 @@ import * as Card from "$lib/components/ui/card"; import SavedRoutes from "../main/SavedRoutes.svelte"; import SavedLocations from "../main/SavedLocations.svelte"; + import Calendar from "../main/Calendar.svelte"; @@ -49,6 +50,8 @@ + + {#if !window.__TAURI__} diff --git a/src/lib/components/lnv/sidebar/settings/CalendarSidebar.svelte b/src/lib/components/lnv/sidebar/settings/CalendarSidebar.svelte new file mode 100644 index 0000000..b58e112 --- /dev/null +++ b/src/lib/components/lnv/sidebar/settings/CalendarSidebar.svelte @@ -0,0 +1,132 @@ + + + + {m["sidebar.calendar.header"]()} + + + + + + {m["sidebar.calendar.connect"]()} + +
+ {#if calDavCalendars} + + + + {#if calDavState} + {calDavState} + {/if} + {/if} + {#if calDavCalendars.length > 0} +

{m["sidebar.calendar.choose"]()}

+
    + {#each calDavCalendars as calendar (calendar.url)} +
  • + +
  • + {/each} +
+ {/if} +
+ + {#if calDavCalendars.length === 0} + + {/if} + + {calDavCalendars.length === 0 ? m.done() : m.cancel()} + + +
+
+ +{#each calendars as calendar (calendar.url)} +
+

{calendar.name}

+ +
+{/each} + + { + calDavDrawerOpen = true; +}} /> \ No newline at end of file diff --git a/src/lib/components/lnv/sidebar/settings/SettingsSidebar.svelte b/src/lib/components/lnv/sidebar/settings/SettingsSidebar.svelte index 7833730..93a8b16 100644 --- a/src/lib/components/lnv/sidebar/settings/SettingsSidebar.svelte +++ b/src/lib/components/lnv/sidebar/settings/SettingsSidebar.svelte @@ -1,5 +1,6 @@