This commit is contained in:
fenris 2025-10-21 23:06:11 +02:00
parent 25291b373a
commit 76e2e0560f
3 changed files with 102 additions and 104 deletions

View file

@ -36,13 +36,18 @@ namespace _dali.pages.overview
} }
/** /**
* @todo add return type
*/ */
async function get_available_calendars( async function get_available_calendars(
) )
: Promise<
Array<
_dali.type_calendar_object_reduced_with_id
>
>
{ {
return ( return (
(await _dali.model.calendar_list()) (await _dali.model.calendar_list())
/*
.filter( .filter(
(entry) => ( (entry) => (
(entry.access_level === _dali.enum_access_level.edit) (entry.access_level === _dali.enum_access_level.edit)
@ -50,6 +55,7 @@ namespace _dali.pages.overview
(entry.access_level === _dali.enum_access_level.admin) (entry.access_level === _dali.enum_access_level.admin)
) )
) )
*/
); );
} }
@ -260,111 +266,95 @@ namespace _dali.pages.overview
: Promise<void> : Promise<void>
{ {
const event_object_extended : _dali.type_event_object_extended = await _dali.model.event_get(event_key); const event_object_extended : _dali.type_event_object_extended = await _dali.model.event_get(event_key);
const calendar_id = event_object_extended.calendar_id; const read_only : boolean = (() => {
const access_level = event_object_extended.access_level; switch (event_object_extended.access_level)
const event_id = event_object_extended.event_id;
/*
if (! _dali.is_logged_in())
{
// do nothing
}
else
{
}
*/
let read_only : boolean;
switch (access_level)
{
case _dali.enum_access_level.none:
{ {
throw (new Error("this event should not be visible")); case _dali.enum_access_level.none:
break;
}
case _dali.enum_access_level.view:
{
read_only = true;
break;
}
case _dali.enum_access_level.edit:
case _dali.enum_access_level.admin:
{
read_only = false;
break;
}
}
(async () => {
const event_object : _dali.type_event_object = await _dali.backend.calendar_event_get(
calendar_id,
event_id
);
const widget = new _dali.widgets.event_edit.class_widget_event_edit(
(await get_available_calendars()),
{ {
"calendar_id": calendar_id, throw (new Error("this event should not be visible"));
"event_name": event_object.name, break;
"event_begin": event_object.begin,
"event_end": event_object.end,
"event_location": event_object.location,
"event_link": event_object.link,
"event_description": event_object.description,
},
{
"read_only": read_only,
"action_cancel": () => {
_dali.overlay.toggle({"mode": false});
},
"action_change": (data) => {
_dali.model.event_change(
event_key,
{
"name": data.event_name,
"begin": data.event_begin,
"end": data.event_end,
"location": data.event_location,
"link": data.event_link,
"description": data.event_description,
}
)
.then(
() => {
update_entries();
_dali.overlay.toggle({"mode": false});
}
)
.catch(
(reason) => {
lib_plankton.log.warning(
"dali.overview.event_change.error",
{"reason": String(reason)}
);
}
);
},
"action_remove": () => {
_dali.model.event_remove(
event_key
)
.then(
() => {
update_entries();
_dali.overlay.toggle({"mode": false});
}
)
.catch(
(reason) => {
lib_plankton.log.warning(
"dali.overview.event_remove_error",
{"reason": String(reason)}
);
}
);
},
} }
); case _dali.enum_access_level.view:
_dali.overlay.clear(); {
_dali.overlay.toggle({"mode": true}); return true;
await widget.load(_dali.overlay.get_content_element()); break;
}
case _dali.enum_access_level.edit:
case _dali.enum_access_level.admin:
{
return false;
break;
}
}
}) (); }) ();
const widget = new _dali.widgets.event_edit.class_widget_event_edit(
(await get_available_calendars()),
{
"calendar_id": event_object_extended.calendar_id,
"event_name": event_object_extended.event_object.name,
"event_begin": event_object_extended.event_object.begin,
"event_end": event_object_extended.event_object.end,
"event_location": event_object_extended.event_object.location,
"event_link": event_object_extended.event_object.link,
"event_description": event_object_extended.event_object.description,
},
{
"read_only": read_only,
"action_cancel": () => {
_dali.overlay.toggle({"mode": false});
},
"action_change": (data) => {
_dali.model.event_change(
event_key,
{
"name": data.event_name,
"begin": data.event_begin,
"end": data.event_end,
"location": data.event_location,
"link": data.event_link,
"description": data.event_description,
}
)
.then(
() => {
update_entries();
_dali.overlay.toggle({"mode": false});
}
)
.catch(
(reason) => {
lib_plankton.log.warning(
"dali.overview.event_change.error",
{"reason": String(reason)}
);
}
);
},
"action_remove": () => {
_dali.model.event_remove(
event_key
)
.then(
() => {
update_entries();
_dali.overlay.toggle({"mode": false});
}
)
.catch(
(reason) => {
lib_plankton.log.warning(
"dali.overview.event_remove_error",
{"reason": String(reason)}
);
}
);
},
}
);
_dali.overlay.clear();
_dali.overlay.toggle({"mode": true});
await widget.load(_dali.overlay.get_content_element());
} }
// hint // hint

View file

@ -179,18 +179,23 @@ namespace _dali.widgets.event_edit
{ {
"name": "event_name", "name": "event_name",
"input": new lib_plankton.zoo_input.class_input_text( "input": new lib_plankton.zoo_input.class_input_text(
{
"read_only": this.read_only,
}
), ),
"label": lib_plankton.translate.get("event.name") "label": lib_plankton.translate.get("event.name")
}, },
{ {
"name": "event_begin", "name": "event_begin",
"input": _dali.helpers.datetime_input(), "input": _dali.helpers.datetime_input(
),
"label": lib_plankton.translate.get("event.begin") "label": lib_plankton.translate.get("event.begin")
}, },
{ {
"name": "event_end", "name": "event_end",
"input": new lib_plankton.zoo_input.class_input_soft<lib_plankton.pit.type_datetime>( "input": new lib_plankton.zoo_input.class_input_soft<lib_plankton.pit.type_datetime>(
_dali.helpers.datetime_input() _dali.helpers.datetime_input(
)
), ),
"label": lib_plankton.translate.get("event.end") "label": lib_plankton.translate.get("event.end")
}, },

View file

@ -366,10 +366,13 @@ namespace _dali.widgets.weekview
"tableview-cell-entry", "tableview-cell-entry",
{ {
"color": _dali.helpers.event_color(entry.hue), "color": _dali.helpers.event_color(entry.hue),
/*
"title": class_widget_weekview.event_generate_tooltip( "title": class_widget_weekview.event_generate_tooltip(
entry.calendar_name, entry.calendar_name,
entry.event_object entry.event_object
), ),
*/
"title": "",
"name": entry.event_object.name, "name": entry.event_object.name,
"rel": entry.key, "rel": entry.key,
"additional_classes": lib_plankton.string.coin( "additional_classes": lib_plankton.string.coin(