diff --git a/source/data/localization/deu.loc.json b/source/data/localization/deu.loc.json index e3a4cfc..e75f68e 100644 --- a/source/data/localization/deu.loc.json +++ b/source/data/localization/deu.loc.json @@ -39,7 +39,8 @@ "page.calendar_add.actions.do": "anlegen", "page.event_add.title": "Termin anlegen", "page.event_add.actions.do": "anlegen", - "page.event_edit.title": "Termin ändern", + "page.event_edit.title.regular": "Termin ändern", + "page.event_edit.title.read_only": "Termin-Details", "page.event_edit.actions.change": "ändern", "page.event_edit.actions.remove": "löschen" } diff --git a/source/data/localization/eng.loc.json b/source/data/localization/eng.loc.json index 745647d..4b0c2ed 100644 --- a/source/data/localization/eng.loc.json +++ b/source/data/localization/eng.loc.json @@ -39,7 +39,8 @@ "page.calendar_add.actions.do": "anlegen", "page.event_add.title": "Add event", "page.event_add.actions.do": "add", - "page.event_edit.title": "Change event", + "page.event_edit.title.regular": "Change event", + "page.event_edit.title.read_only": "Event details", "page.event_edit.actions.change": "change", "page.event_edit.actions.remove": "delete" } diff --git a/source/pages/event_edit/logic.ts b/source/pages/event_edit/logic.ts index b52ad08..1c9d595 100644 --- a/source/pages/event_edit/logic.ts +++ b/source/pages/event_edit/logic.ts @@ -6,13 +6,20 @@ namespace _zeitbild.frontend_web.pages lib_plankton.zoo_page.register( "event_edit", async (parameters, target_element) => { + const read_only : boolean = ((parameters["read_only"] ?? "yes") === "yes"); const calendar_id : int = parseInt(parameters["calendar_id"]); const event_id : int = parseInt(parameters["event_id"]); target_element.innerHTML = ""; target_element.innerHTML = await _zeitbild.frontend_web.helpers.template_coin( "event_edit", { - "label": lib_plankton.translate.get("page.event_edit.title") + "label": ( + read_only + ? + lib_plankton.translate.get("page.event_edit.title.read_only") + : + lib_plankton.translate.get("page.event_edit.title.regular") + ) } ); const form : lib_plankton.zoo_form.class_form< @@ -98,72 +105,79 @@ namespace _zeitbild.frontend_web.pages }, ] ), - [ - { - "label": lib_plankton.translate.get("page.event_edit.actions.change"), - "target": "submit", - "procedure": async (get_value, get_representation) => { - const value : any = await get_value(); - try { - await _zeitbild.frontend_web.backend.calendar_event_change( - calendar_id, - event_id, - value - ); - lib_plankton.zoo_page.set( - { - "name": "events", - "parameters": {} - } - ); - } - catch (error) { - lib_plankton.log.warning("page_event_edit_error", {"error": String(error)}); - // do nothing - /* - lib_plankton.zoo_page.set( - { - "name": "event_add", - "parameters": { + ( + read_only + ? + [ + ] + : + [ + { + "label": lib_plankton.translate.get("page.event_edit.actions.change"), + "target": "submit", + "procedure": async (get_value, get_representation) => { + const value : any = await get_value(); + try { + await _zeitbild.frontend_web.backend.calendar_event_change( + calendar_id, + event_id, + value + ); + lib_plankton.zoo_page.set( + { + "name": "events", + "parameters": {} } - } - ); - */ - } - } - }, - { - "label": lib_plankton.translate.get("page.event_edit.actions.remove"), - "target": "submit", - "procedure": async (get_value, get_representation) => { - try { - await _zeitbild.frontend_web.backend.calendar_event_remove( - calendar_id, - event_id - ); - lib_plankton.zoo_page.set( - { - "name": "events", - "parameters": {} - } - ); - } - catch (error) { - lib_plankton.log.warning("page_event_edit_error", {"error": String(error)}); - // do nothing - /* - lib_plankton.zoo_page.set( - { - "name": "event_add", - "parameters": { + ); + } + catch (error) { + lib_plankton.log.warning("page_event_edit_error", {"error": String(error)}); + // do nothing + /* + lib_plankton.zoo_page.set( + { + "name": "event_add", + "parameters": { + } } - } - ); - */ + ); + */ + } } - } - }, - ] + }, + { + "label": lib_plankton.translate.get("page.event_edit.actions.remove"), + "target": "submit", + "procedure": async (get_value, get_representation) => { + try { + await _zeitbild.frontend_web.backend.calendar_event_remove( + calendar_id, + event_id + ); + lib_plankton.zoo_page.set( + { + "name": "events", + "parameters": {} + } + ); + } + catch (error) { + lib_plankton.log.warning("page_event_edit_error", {"error": String(error)}); + // do nothing + /* + lib_plankton.zoo_page.set( + { + "name": "event_add", + "parameters": { + } + } + ); + */ + } + } + }, + ] + ) ); await form.setup(document.querySelector("#event_edit_form")); const event_object : _zeitbild.frontend_web.type.event_object = await _zeitbild.frontend_web.backend.calendar_event_get( diff --git a/source/pages/events/logic.ts b/source/pages/events/logic.ts index 4429938..ef2819e 100644 --- a/source/pages/events/logic.ts +++ b/source/pages/events/logic.ts @@ -83,8 +83,16 @@ namespace _zeitbild.frontend_web.pages break; } case _zeitbild.frontend_web.type.enum_access_level.view: { - // do nothing - // TODO: edit_view? + lib_plankton.zoo_page.set( + { + "name": "event_edit", + "parameters": { + "read_only": "yes", + "calendar_id": calendar_id, + "event_id": event_id, + } + } + ); break; } case _zeitbild.frontend_web.type.enum_access_level.edit: @@ -93,6 +101,7 @@ namespace _zeitbild.frontend_web.pages { "name": "event_edit", "parameters": { + "read_only": "no", "calendar_id": calendar_id, "event_id": event_id, } diff --git a/source/style/main.css b/source/style/main.css index 8f197b9..c201d63 100644 --- a/source/style/main.css +++ b/source/style/main.css @@ -121,7 +121,10 @@ a:hover { , .calendar-event_entry.access_level-view { + /* cursor: default; + */ + cursor: pointer; } .calendar-event_entry.access_level-edit