[mod] page:event_edit:read-only-mode

This commit is contained in:
Fenris Wolf 2024-09-30 13:37:30 +02:00
parent 9786a7cae7
commit d2bf18eb64
5 changed files with 96 additions and 68 deletions

View file

@ -39,7 +39,8 @@
"page.calendar_add.actions.do": "anlegen", "page.calendar_add.actions.do": "anlegen",
"page.event_add.title": "Termin anlegen", "page.event_add.title": "Termin anlegen",
"page.event_add.actions.do": "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.change": "ändern",
"page.event_edit.actions.remove": "löschen" "page.event_edit.actions.remove": "löschen"
} }

View file

@ -39,7 +39,8 @@
"page.calendar_add.actions.do": "anlegen", "page.calendar_add.actions.do": "anlegen",
"page.event_add.title": "Add event", "page.event_add.title": "Add event",
"page.event_add.actions.do": "add", "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.change": "change",
"page.event_edit.actions.remove": "delete" "page.event_edit.actions.remove": "delete"
} }

View file

@ -6,13 +6,20 @@ namespace _zeitbild.frontend_web.pages
lib_plankton.zoo_page.register( lib_plankton.zoo_page.register(
"event_edit", "event_edit",
async (parameters, target_element) => { async (parameters, target_element) => {
const read_only : boolean = ((parameters["read_only"] ?? "yes") === "yes");
const calendar_id : int = parseInt(parameters["calendar_id"]); const calendar_id : int = parseInt(parameters["calendar_id"]);
const event_id : int = parseInt(parameters["event_id"]); const event_id : int = parseInt(parameters["event_id"]);
target_element.innerHTML = ""; target_element.innerHTML = "";
target_element.innerHTML = await _zeitbild.frontend_web.helpers.template_coin( target_element.innerHTML = await _zeitbild.frontend_web.helpers.template_coin(
"event_edit", "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< const form : lib_plankton.zoo_form.class_form<
@ -98,72 +105,79 @@ namespace _zeitbild.frontend_web.pages
}, },
] ]
), ),
[ (
{ 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, "label": lib_plankton.translate.get("page.event_edit.actions.change"),
event_id, "target": "submit",
value "procedure": async (get_value, get_representation) => {
); const value : any = await get_value();
lib_plankton.zoo_page.set( try {
{ await _zeitbild.frontend_web.backend.calendar_event_change(
"name": "events", calendar_id,
"parameters": {} event_id,
} value
); );
} lib_plankton.zoo_page.set(
catch (error) { {
lib_plankton.log.warning("page_event_edit_error", {"error": String(error)}); "name": "events",
// do nothing "parameters": {}
/*
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(
"label": lib_plankton.translate.get("page.event_edit.actions.remove"), {
"target": "submit", "name": "event_add",
"procedure": async (get_value, get_representation) => { "parameters": {
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": {
} }
} );
); */
*/ }
} }
} },
}, {
] "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")); 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( const event_object : _zeitbild.frontend_web.type.event_object = await _zeitbild.frontend_web.backend.calendar_event_get(

View file

@ -83,8 +83,16 @@ namespace _zeitbild.frontend_web.pages
break; break;
} }
case _zeitbild.frontend_web.type.enum_access_level.view: { case _zeitbild.frontend_web.type.enum_access_level.view: {
// do nothing lib_plankton.zoo_page.set(
// TODO: edit_view? {
"name": "event_edit",
"parameters": {
"read_only": "yes",
"calendar_id": calendar_id,
"event_id": event_id,
}
}
);
break; break;
} }
case _zeitbild.frontend_web.type.enum_access_level.edit: case _zeitbild.frontend_web.type.enum_access_level.edit:
@ -93,6 +101,7 @@ namespace _zeitbild.frontend_web.pages
{ {
"name": "event_edit", "name": "event_edit",
"parameters": { "parameters": {
"read_only": "no",
"calendar_id": calendar_id, "calendar_id": calendar_id,
"event_id": event_id, "event_id": event_id,
} }

View file

@ -121,7 +121,10 @@ a:hover {
, ,
.calendar-event_entry.access_level-view .calendar-event_entry.access_level-view
{ {
/*
cursor: default; cursor: default;
*/
cursor: pointer;
} }
.calendar-event_entry.access_level-edit .calendar-event_entry.access_level-edit