feat: Web-Frontend – Sharing, iCal Import/Export, Ersteller & Privat-Flag

- Ersteller-Zeile im Event-Popup (nur wenn Ersteller != aktueller User).
- Privat-Toggle im Event-Editor (nur lokale Kalender) + Sichtbarkeits-
  Auswahl (hidden|busy) in den Einstellungen.
- Lokale Kalender in Settings & Sidebar: Teilen/Importieren/Exportieren-
  Aktionen (nur eigene; geteilte mit "geteilt von"-Badge, kein Loeschen).
- Share-Modal: Benutzerverzeichnis mit Suche, read/read_write, Freigaben
  entfernen.
- api.js: download()-Helper fuer iCal-Export (Blob).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-05-31 16:30:47 +02:00
parent 32268a18b2
commit 8d2a697f8b
5 changed files with 336 additions and 14 deletions

View File

@@ -84,6 +84,29 @@ const translations = {
settings_week_start: 'Erster Wochentag',
week_start_monday: 'Montag', week_start_sunday: 'Sonntag',
settings_dim_past: 'Vergangene Termine ausgrauen',
settings_privacy: 'Privatsphäre',
settings_private_visibility: 'Private Termine für Gruppenmitglieder',
settings_private_visibility_desc: 'Wie private Termine für andere Gruppenmitglieder erscheinen',
private_visibility_busy: 'Als „Beschäftigt“ anzeigen',
private_visibility_hidden: 'Ausblenden',
created_by: 'Erstellt von: {name}',
event_private: 'Privat',
share: 'Teilen',
import: 'Importieren',
export: 'Exportieren',
importing: 'Importiere…',
import_result: '{imported} importiert, {skipped} übersprungen',
shared_by: 'geteilt von {name}',
share_title: 'Kalender teilen',
share_current: 'Aktuelle Freigaben',
share_add: 'Benutzer hinzufügen',
share_search: 'Benutzer suchen…',
share_none: 'Noch nicht geteilt',
share_no_users: 'Keine Benutzer gefunden',
perm_read: 'Nur lesen',
perm_read_write: 'Lesen & schreiben',
remove: 'Entfernen',
done: 'Fertig',
settings_hour_height: 'Stundenhöhe (Wochen- & Tagesansicht)',
settings_hour_height_desc: 'Wie viel Platz eine Stunde in der Zeitrasteransicht einnimmt',
hour_compact: 'Kompakt', hour_normal: 'Normal',
@@ -299,6 +322,29 @@ const translations = {
settings_week_start: 'First day of week',
week_start_monday: 'Monday', week_start_sunday: 'Sunday',
settings_dim_past: 'Dim past events',
settings_privacy: 'Privacy',
settings_private_visibility: 'Private events for group members',
settings_private_visibility_desc: 'How your private events appear to other group members',
private_visibility_busy: 'Show as "Busy"',
private_visibility_hidden: 'Hide completely',
created_by: 'Created by: {name}',
event_private: 'Private',
share: 'Share',
import: 'Import',
export: 'Export',
importing: 'Importing…',
import_result: '{imported} imported, {skipped} skipped',
shared_by: 'shared by {name}',
share_title: 'Share calendar',
share_current: 'Current shares',
share_add: 'Add user',
share_search: 'Search users…',
share_none: 'Not shared yet',
share_no_users: 'No users found',
perm_read: 'Read only',
perm_read_write: 'Read & write',
remove: 'Remove',
done: 'Done',
settings_hour_height: 'Hour height (week & day view)',
settings_hour_height_desc: 'How much space one hour takes in the time grid',
hour_compact: 'Compact', hour_normal: 'Normal',