[mod] page:overview:option to use listview widget instead of weekview widget
This commit is contained in:
parent
a8d05d1dbf
commit
9f292aee88
1 changed files with 85 additions and 51 deletions
|
@ -6,6 +6,10 @@ namespace _zeitbild.frontend_web.pages.overview
|
|||
lib_plankton.zoo_page.register(
|
||||
"overview",
|
||||
async (parameters, target_element) => {
|
||||
// params
|
||||
const mode : ("list" | "week") = (parameters["mode"] ?? "week");
|
||||
|
||||
// exec
|
||||
target_element.innerHTML = await _zeitbild.frontend_web.helpers.template_coin(
|
||||
"overview",
|
||||
"default",
|
||||
|
@ -62,68 +66,98 @@ namespace _zeitbild.frontend_web.pages.overview
|
|||
);
|
||||
await widget_sources.load(target_element.querySelector("#overview-pane-left"));
|
||||
}
|
||||
// weekview
|
||||
// view
|
||||
{
|
||||
const widget_weekview = new _zeitbild.frontend_web.widgets.weekview.class_widget_weekview(
|
||||
(from_pit, to_pit, calendar_ids) => _zeitbild.frontend_web.backend.events(
|
||||
from_pit,
|
||||
to_pit,
|
||||
{
|
||||
"calendar_ids": calendar_ids,
|
||||
}
|
||||
),
|
||||
const get_entries = (from_pit, to_pit, calendar_ids) => _zeitbild.frontend_web.backend.events(
|
||||
from_pit,
|
||||
to_pit,
|
||||
{
|
||||
"action_select_day": (date) => {
|
||||
"calendar_ids": calendar_ids,
|
||||
}
|
||||
);
|
||||
const action_select_event = (calendar_id, access_level, event_id) => {
|
||||
switch (access_level) {
|
||||
case _zeitbild.frontend_web.type.enum_access_level.none: {
|
||||
throw (new Error("this event should not be visible"));
|
||||
break;
|
||||
}
|
||||
case _zeitbild.frontend_web.type.enum_access_level.view: {
|
||||
lib_plankton.zoo_page.set(
|
||||
{
|
||||
"name": "event_add",
|
||||
"name": "event_edit",
|
||||
"parameters": {
|
||||
"calendar_id": null,
|
||||
"year": date.year,
|
||||
"month": date.month,
|
||||
"day": date.day,
|
||||
"read_only": "yes",
|
||||
"calendar_id": calendar_id,
|
||||
"event_id": event_id,
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
"action_select_event": (calendar_id, access_level, event_id) => {
|
||||
switch (access_level) {
|
||||
case _zeitbild.frontend_web.type.enum_access_level.none: {
|
||||
throw (new Error("this event should not be visible"));
|
||||
break;
|
||||
break;
|
||||
}
|
||||
case _zeitbild.frontend_web.type.enum_access_level.edit:
|
||||
case _zeitbild.frontend_web.type.enum_access_level.admin: {
|
||||
lib_plankton.zoo_page.set(
|
||||
{
|
||||
"name": "event_edit",
|
||||
"parameters": {
|
||||
"read_only": "no",
|
||||
"calendar_id": calendar_id,
|
||||
"event_id": event_id,
|
||||
}
|
||||
}
|
||||
case _zeitbild.frontend_web.type.enum_access_level.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:
|
||||
case _zeitbild.frontend_web.type.enum_access_level.admin: {
|
||||
lib_plankton.zoo_page.set(
|
||||
{
|
||||
"name": "event_edit",
|
||||
"parameters": {
|
||||
"read_only": "no",
|
||||
"calendar_id": calendar_id,
|
||||
"event_id": event_id,
|
||||
}
|
||||
}
|
||||
);
|
||||
break;
|
||||
}
|
||||
}
|
||||
);
|
||||
break;
|
||||
}
|
||||
}
|
||||
);
|
||||
await widget_weekview.load(target_element.querySelector("#overview-pane-right"));
|
||||
};
|
||||
switch (mode) {
|
||||
case "list": {
|
||||
const widget_listview = new _zeitbild.frontend_web.widgets.listview.class_widget_listview(
|
||||
get_entries,
|
||||
{
|
||||
"action_select_event": action_select_event,
|
||||
"action_add": () => {
|
||||
lib_plankton.zoo_page.set(
|
||||
{
|
||||
"name": "event_add",
|
||||
"parameters": {
|
||||
"calendar_id": null,
|
||||
"year": null,
|
||||
"month": null,
|
||||
"day": null,
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
}
|
||||
);
|
||||
await widget_listview.load(target_element.querySelector("#overview-pane-right"));
|
||||
break;
|
||||
}
|
||||
case "week": {
|
||||
const widget_weekview = new _zeitbild.frontend_web.widgets.weekview.class_widget_weekview(
|
||||
get_entries,
|
||||
{
|
||||
"action_select_event": action_select_event,
|
||||
"action_select_day": (date) => {
|
||||
lib_plankton.zoo_page.set(
|
||||
{
|
||||
"name": "event_add",
|
||||
"parameters": {
|
||||
"calendar_id": null,
|
||||
"year": date.year,
|
||||
"month": date.month,
|
||||
"day": date.day,
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
}
|
||||
);
|
||||
await widget_weekview.load(target_element.querySelector("#overview-pane-right"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return Promise.resolve<void>(undefined);
|
||||
},
|
||||
|
|
Loading…
Add table
Reference in a new issue