This commit is contained in:
Fenris Wolf 2024-10-10 23:00:51 +02:00
parent 801eddb661
commit 454d3ab589
14 changed files with 125 additions and 68 deletions

View file

@ -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"
}
}

View file

@ -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"
}
}

View file

@ -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)

View file

@ -37,7 +37,7 @@ namespace _zeitbild.frontend_web
document.querySelector("main"),
{
"fallback": {
"name": "login",
"name": "overview",
"parameters": {}
}
}

View file

@ -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,

View file

@ -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(),

View file

@ -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(),

View file

@ -11,7 +11,7 @@ namespace _zeitbild.frontend_web.pages
);
lib_plankton.zoo_page.set(
{
"name": "login",
"name": "overview",
"parameters": {
}
}

View file

@ -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<

View file

@ -1,6 +1,10 @@
<div id="overview">
<div id="overview-head">
</div>
<div id="overview-body">
<div id="overview-pane-left">
</div>
<div id="overview-pane-right">
</div>
</div>
</div>

View file

@ -25,29 +25,36 @@
flex-wrap: wrap;
}
#overview
#overview-head
{
text-align: center;
font-weight: bold;
margin-bottom: 12px;
}
#overview-body
{
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
#overview:not(.compact) #overview-pane-left
#overview-body:not(.compact) #overview-pane-left
{
flex-basis: 12.5%;
}
#overview:not(.compact) #overview-pane-right
#overview-body:not(.compact) #overview-pane-right
{
flex-basis: 87.5%;
}
#overview.compact #overview-pane-left
#overview-body.compact #overview-pane-left
{
flex-basis: 0%;
}
#overview.compact #overview-pane-right
#overview-body.compact #overview-pane-right
{
flex-basis: 100%;
}

View file

@ -19,6 +19,11 @@
text-align: center;
}
.weekview-control
{
margin: 0 12px;
}
.weekview-table table
{
width: 100%;

View file

@ -772,6 +772,10 @@ namespace _zeitbild.frontend_web.widgets.weekview
);
// cells
{
if (! await _zeitbild.frontend_web.backend.is_logged_in()) {
// do nothing
}
else {
context.querySelectorAll(".calendar-cell-regular").forEach(
(element) => {
element.addEventListener(
@ -795,8 +799,13 @@ namespace _zeitbild.frontend_web.widgets.weekview
}
);
}
}
// events
{
if (! await _zeitbild.frontend_web.backend.is_logged_in()) {
// do nothing
}
else {
context.querySelectorAll(".calendar-event_entry").forEach(
(element) => {
element.addEventListener(
@ -831,6 +840,7 @@ namespace _zeitbild.frontend_web.widgets.weekview
);
}
}
}
return Promise.resolve<void>(undefined);
}

View file

@ -1,18 +1,18 @@
<div class="weekview">
<div class="weekview-controls">
<label class="weekview-control-year">
<label class="weekview-control weekview-control-year">
<span>{{label_control_year}}</span>
<input type="number"/>
</label>
<label class="weekview-control-week">
<label class="weekview-control weekview-control-week">
<span>{{label_control_week}}</span>
<input type="number"/>
</label>
<label class="weekview-control-count">
<label class="weekview-control weekview-control-count">
<span>{{label_control_count}}</span>
<input type="number"/>
</label>
<input type="submit" class="weekview-control-apply" value="{{label_control_apply}}"/>
<input type="submit" class="weekview-control weekview-control-apply" value="{{label_control_apply}}"/>
</div>
<div class="weekview-table">
<table>