diff --git a/source/data/localization/deu.loc.json b/source/data/localization/deu.loc.json index ca6d96b..23a4617 100644 --- a/source/data/localization/deu.loc.json +++ b/source/data/localization/deu.loc.json @@ -26,6 +26,7 @@ "calendar.name": "Name", "calendar.resource": "Resource", "calendar.access.access": "Zugriff", + "calendar.access.public": "öffentlich", "calendar.access.default_level": "Standard", "calendar.access.attributed": "Zuweisungen", "widget.weekview.controls.year": "Jahr", @@ -50,6 +51,7 @@ "page.event_edit.title.read_only": "Termin-Details", "page.event_edit.actions.change": "ändern", "page.event_edit.actions.remove": "löschen", - "page.overview.title": "Übersicht" + "page.overview.title": "Übersicht", + "page.overview.login_hint": "anmelden um nicht-öffentliche Termine zu sehen" } } diff --git a/source/data/localization/eng.loc.json b/source/data/localization/eng.loc.json index 1dfd733..334909e 100644 --- a/source/data/localization/eng.loc.json +++ b/source/data/localization/eng.loc.json @@ -26,6 +26,7 @@ "calendar.name": "name", "calendar.resource": "resource", "calendar.access.access": "access", + "calendar.access.public": "public", "calendar.access.default_level": "default", "calendar.access.attributed": "attributed", "widget.weekview.controls.year": "Year", @@ -50,6 +51,7 @@ "page.event_edit.title.read_only": "Event details", "page.event_edit.actions.change": "change", "page.event_edit.actions.remove": "delete", - "page.overview.title": "Overview" + "page.overview.title": "Overview", + "page.overview.login_hint": "log in to view non-public events" } } diff --git a/source/logic/backend.ts b/source/logic/backend.ts index 9c67e9f..4ba763a 100644 --- a/source/logic/backend.ts +++ b/source/logic/backend.ts @@ -308,6 +308,7 @@ namespace _zeitbild.frontend_web.backend { "name": raw.name, "access": { + "public": raw.access.public, "default_level": access_level_decode(raw.access.default_level), "attributed": lib_plankton.map.hashmap.implementation_map( lib_plankton.map.hashmap.make( @@ -359,6 +360,7 @@ namespace _zeitbild.frontend_web.backend { "name": calendar_object.name, "access": { + "public": calendar_object.access.public, "default_level": access_level_encode(calendar_object.access.default_level), "attributed": ( lib_plankton.map.dump(calendar_object.access.attributed) @@ -396,6 +398,7 @@ namespace _zeitbild.frontend_web.backend { "name": calendar_object.name, "access": { + "public": calendar_object.access.public, "default_level": access_level_encode(calendar_object.access.default_level), "attributed": ( lib_plankton.map.dump(calendar_object.access.attributed) diff --git a/source/logic/main.ts b/source/logic/main.ts index 0e4e36e..e123e0c 100644 --- a/source/logic/main.ts +++ b/source/logic/main.ts @@ -37,7 +37,7 @@ namespace _zeitbild.frontend_web document.querySelector("main"), { "fallback": { - "name": "login", + "name": "overview", "parameters": {} } } diff --git a/source/logic/types.ts b/source/logic/types.ts index 0656131..a2f5121 100644 --- a/source/logic/types.ts +++ b/source/logic/types.ts @@ -96,6 +96,7 @@ namespace _zeitbild.frontend_web.type export type calendar_object = { name : string; access : { + public : boolean; default_level : enum_access_level; attributed : lib_plankton.map.type_map< user_id, diff --git a/source/pages/calendar_add/logic.ts b/source/pages/calendar_add/logic.ts index a0f92eb..b71f78e 100644 --- a/source/pages/calendar_add/logic.ts +++ b/source/pages/calendar_add/logic.ts @@ -19,6 +19,7 @@ namespace _zeitbild.frontend_web.pages { name : string; access : { + public : boolean; default_level : _zeitbild.frontend_web.type.enum_access_level; attributed : lib_plankton.map.type_map< _zeitbild.frontend_web.type.user_id, @@ -32,6 +33,7 @@ namespace _zeitbild.frontend_web.pages { name : string; access : { + public : boolean; default_level : _zeitbild.frontend_web.type.enum_access_level; attributed : lib_plankton.map.type_map< _zeitbild.frontend_web.type.user_id, @@ -88,6 +90,11 @@ namespace _zeitbild.frontend_web.pages "name": "access", "input": new lib_plankton.zoo_input.class_input_group( [ + { + "name": "public", + "input": new lib_plankton.zoo_input.class_input_checkbox(), + "label": lib_plankton.translate.get("calendar.access.public"), + }, { "name": "default_level", "input": _zeitbild.frontend_web.helpers.input_access_level(), diff --git a/source/pages/calendar_edit/logic.ts b/source/pages/calendar_edit/logic.ts index b717a19..6fb20f0 100644 --- a/source/pages/calendar_edit/logic.ts +++ b/source/pages/calendar_edit/logic.ts @@ -21,6 +21,7 @@ namespace _zeitbild.frontend_web.pages { name : string; access : { + public : boolean; default_level : _zeitbild.frontend_web.type.enum_access_level; attributed : lib_plankton.map.type_map< _zeitbild.frontend_web.type.user_id, @@ -33,6 +34,7 @@ namespace _zeitbild.frontend_web.pages { name : string; access : { + public : boolean; default_level : _zeitbild.frontend_web.type.enum_access_level; attributed : lib_plankton.map.type_map< _zeitbild.frontend_web.type.user_id, @@ -66,6 +68,11 @@ namespace _zeitbild.frontend_web.pages "name": "access", "input": new lib_plankton.zoo_input.class_input_group( [ + { + "name": "public", + "input": new lib_plankton.zoo_input.class_input_checkbox(), + "label": lib_plankton.translate.get("calendar.access.public"), + }, { "name": "default_level", "input": _zeitbild.frontend_web.helpers.input_access_level(), diff --git a/source/pages/logout/logic.ts b/source/pages/logout/logic.ts index 11e25af..d9d0644 100644 --- a/source/pages/logout/logic.ts +++ b/source/pages/logout/logic.ts @@ -11,7 +11,7 @@ namespace _zeitbild.frontend_web.pages ); lib_plankton.zoo_page.set( { - "name": "login", + "name": "overview", "parameters": { } } diff --git a/source/pages/overview/logic.ts b/source/pages/overview/logic.ts index d5ab647..8486100 100644 --- a/source/pages/overview/logic.ts +++ b/source/pages/overview/logic.ts @@ -31,6 +31,15 @@ namespace _zeitbild.frontend_web.pages.overview } ); target_element.querySelector("#overview").classList.toggle("compact", compact); + // hint + { + if (! await _zeitbild.frontend_web.backend.is_logged_in()) { + target_element.querySelector("#overview-head").textContent = lib_plankton.translate.get("page.overview.login_hint"); + } + else { + // do nothing + } + } // sources { const data : Array< diff --git a/source/pages/overview/templates/default.html.tpl b/source/pages/overview/templates/default.html.tpl index c2b1ca7..2076f57 100644 --- a/source/pages/overview/templates/default.html.tpl +++ b/source/pages/overview/templates/default.html.tpl @@ -1,6 +1,10 @@