[mod] date formatting [mod] caldav resource integration
This commit is contained in:
parent
431f1a1847
commit
530c0ce116
5 changed files with 42 additions and 162 deletions
|
@ -4,6 +4,7 @@
|
|||
},
|
||||
"tree": {
|
||||
"common.timezone_shift": "Zeitzonen-Verschiebung",
|
||||
"common.timezone_indicator": "ZZ:",
|
||||
"common.date": "Datum",
|
||||
"common.time": "Uhrzeit",
|
||||
"common.weekday.monday": "Mo",
|
||||
|
@ -23,6 +24,7 @@
|
|||
"access_level.admin": "voll",
|
||||
"event.event": "Termin",
|
||||
"event.name": "Name",
|
||||
"event.when": "Zeit",
|
||||
"event.begin": "Anfang",
|
||||
"event.end": "Ende",
|
||||
"event.location": "Ort",
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
},
|
||||
"tree": {
|
||||
"common.timezone_shift": "Timezone shift",
|
||||
"common.timezone_indicator": "TZ:",
|
||||
"common.date": "date",
|
||||
"common.time": "time",
|
||||
"common.weekday.monday": "Mon",
|
||||
|
@ -23,6 +24,7 @@
|
|||
"access_level.admin": "full",
|
||||
"event.event": "event",
|
||||
"event.name": "name",
|
||||
"event.when": "time",
|
||||
"event.begin": "begin",
|
||||
"event.end": "end",
|
||||
"event.location": "location",
|
||||
|
|
|
@ -75,106 +75,6 @@ namespace _zeitbild.frontend_web.helpers
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* @todo timezone
|
||||
*/
|
||||
export function date_format(
|
||||
date : lib_plankton.pit.type_date
|
||||
) : string
|
||||
{
|
||||
return lib_plankton.string.coin(
|
||||
"{{year}}-{{month}}-{{day}}",
|
||||
{
|
||||
"year": date.year.toFixed(0).padStart(4, "0"),
|
||||
"month": date.month.toFixed(0).padStart(2, "0"),
|
||||
"day": date.day.toFixed(0).padStart(2, "0"),
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @todo timezone
|
||||
*/
|
||||
export function time_format(
|
||||
time : lib_plankton.pit.type_time
|
||||
) : string
|
||||
{
|
||||
return lib_plankton.string.coin(
|
||||
"{{hour}}:{{minute}}",
|
||||
{
|
||||
"hour": time.hour.toFixed(0).padStart(2, "0"),
|
||||
"minute": time.minute.toFixed(0).padStart(2, "0"),
|
||||
"second": time.second.toFixed(0).padStart(2, "0"),
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @todo timezone
|
||||
*/
|
||||
export function datetime_format(
|
||||
datetime : (null | lib_plankton.pit.type_datetime)
|
||||
) : string
|
||||
{
|
||||
if (datetime === null) {
|
||||
return "-";
|
||||
}
|
||||
else {
|
||||
return lib_plankton.string.coin(
|
||||
"{{date}}{{macro_time}}",
|
||||
{
|
||||
"date": date_format(datetime.date),
|
||||
"macro_time": (
|
||||
(datetime.time === null)
|
||||
?
|
||||
""
|
||||
:
|
||||
lib_plankton.string.coin(
|
||||
",{{time}}",
|
||||
{
|
||||
"time": time_format(datetime.time),
|
||||
}
|
||||
)
|
||||
),
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*/
|
||||
export function timespan_format(
|
||||
from : lib_plankton.pit.type_datetime,
|
||||
to : (null | lib_plankton.pit.type_datetime)
|
||||
) : string
|
||||
{
|
||||
let result : string = "";
|
||||
result += datetime_format(from);
|
||||
if (to === null) {
|
||||
// do nothing
|
||||
}
|
||||
else {
|
||||
result += " - ";
|
||||
if (
|
||||
(from.date.year === to.date.year)
|
||||
&&
|
||||
(from.date.month === to.date.month)
|
||||
&&
|
||||
(from.date.day === to.date.day)
|
||||
) {
|
||||
// only time
|
||||
result += time_format(to.time);
|
||||
}
|
||||
else {
|
||||
result += datetime_format(to);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
export function input_access_level(
|
||||
|
|
|
@ -144,7 +144,15 @@ namespace _zeitbild.frontend_web.widgets.listview
|
|||
{
|
||||
"name_value": entry.event_object.name,
|
||||
"calendar_value": entry.calendar_name,
|
||||
"when_value": _zeitbild.frontend_web.helpers.timespan_format(entry.event_object.begin, entry.event_object.end),
|
||||
"when_value": lib_plankton.pit.timespan_format(
|
||||
entry.event_object.begin,
|
||||
entry.event_object.end,
|
||||
{
|
||||
"timezone_indicator": lib_plankton.translate.get("common.timezone_indicator"),
|
||||
"adjust_to_ce": true,
|
||||
"show_timezone": false,
|
||||
}
|
||||
),
|
||||
"location_label": lib_plankton.translate.get("event.location"),
|
||||
"location_extra_classes": (
|
||||
(entry.event_object.location === null)
|
||||
|
|
|
@ -127,65 +127,16 @@ namespace _zeitbild.frontend_web.widgets.weekview
|
|||
lib_plankton.string.coin(
|
||||
"{{label}}: {{value}}\n",
|
||||
{
|
||||
"label": lib_plankton.translate.get("event.begin"),
|
||||
"value": lib_plankton.string.coin(
|
||||
"{{hour}}:{{minute}}",
|
||||
"label": lib_plankton.translate.get("event.when"),
|
||||
"value": lib_plankton.pit.timespan_format(
|
||||
event_object.begin,
|
||||
event_object.end,
|
||||
{
|
||||
"hour": event_object.begin.time.hour.toFixed(0).padStart(2, "0"),
|
||||
"minute": event_object.begin.time.minute.toFixed(0).padStart(2, "0"),
|
||||
"timezone_indicator": lib_plankton.translate.get("common.timezone_indicator"),
|
||||
"adjust_to_ce": true,
|
||||
"show_timezone": true,
|
||||
"omit_date": true,
|
||||
}
|
||||
), // TODO: outsource
|
||||
}
|
||||
)
|
||||
:
|
||||
""
|
||||
)
|
||||
+
|
||||
(
|
||||
(event_object.end !== null)
|
||||
?
|
||||
lib_plankton.string.coin(
|
||||
"{{label}}: {{value}}\n",
|
||||
{
|
||||
"label": lib_plankton.translate.get("event.end"),
|
||||
"value": (
|
||||
[
|
||||
(
|
||||
(
|
||||
(event_object.end.date.year !== event_object.begin.date.year)
|
||||
||
|
||||
(event_object.end.date.month !== event_object.begin.date.month)
|
||||
||
|
||||
(event_object.end.date.day !== event_object.begin.date.day)
|
||||
)
|
||||
?
|
||||
lib_plankton.string.coin(
|
||||
"{{year}}-{{month}}-{{day}}",
|
||||
{
|
||||
"year": event_object.end.date.year.toFixed(0).padStart(4, "0"),
|
||||
"month": event_object.end.date.month.toFixed(0).padStart(2, "0"),
|
||||
"day": event_object.end.date.day.toFixed(0).padStart(2, "0"),
|
||||
}
|
||||
)
|
||||
:
|
||||
null
|
||||
),
|
||||
(
|
||||
(event_object.end.time !== null)
|
||||
?
|
||||
lib_plankton.string.coin(
|
||||
"{{hour}}:{{minute}}",
|
||||
{
|
||||
"hour": event_object.end.time.hour.toFixed(0).padStart(2, "0"),
|
||||
"minute": event_object.end.time.minute.toFixed(0).padStart(2, "0"),
|
||||
}
|
||||
)
|
||||
:
|
||||
null
|
||||
),
|
||||
]
|
||||
.filter(x => (x !== null))
|
||||
.join(",")
|
||||
),
|
||||
}
|
||||
)
|
||||
|
@ -438,7 +389,24 @@ namespace _zeitbild.frontend_web.widgets.weekview
|
|||
.forEach(
|
||||
(entry) => {
|
||||
const distance_seconds : int = (
|
||||
lib_plankton.pit.from_datetime(entry.event_object.begin)
|
||||
lib_plankton.pit.from_datetime(
|
||||
/**
|
||||
* so that events without a start time will be put in the correct box
|
||||
*/
|
||||
{
|
||||
"timezone_shift": entry.event_object.begin.timezone_shift,
|
||||
"date": entry.event_object.begin.date,
|
||||
"time": (
|
||||
entry.event_object.begin.time
|
||||
??
|
||||
{
|
||||
"hour": 12,
|
||||
"minute": 0,
|
||||
"second": 0
|
||||
}
|
||||
),
|
||||
}
|
||||
)
|
||||
-
|
||||
from_pit
|
||||
);
|
||||
|
@ -626,7 +594,7 @@ namespace _zeitbild.frontend_web.widgets.weekview
|
|||
"title": lib_plankton.call.convey(
|
||||
cell.pit,
|
||||
[
|
||||
lib_plankton.pit.to_datetime,
|
||||
lib_plankton.pit.to_datetime_ce,
|
||||
(x : lib_plankton.pit.type_datetime) => lib_plankton.string.coin(
|
||||
"{{year}}-{{month}}-{{day}}",
|
||||
{
|
||||
|
@ -640,7 +608,7 @@ namespace _zeitbild.frontend_web.widgets.weekview
|
|||
"day": lib_plankton.call.convey(
|
||||
cell.pit,
|
||||
[
|
||||
lib_plankton.pit.to_datetime,
|
||||
lib_plankton.pit.to_datetime_ce,
|
||||
(x : lib_plankton.pit.type_datetime) => lib_plankton.string.coin(
|
||||
"{{day}}",
|
||||
{
|
||||
|
@ -654,7 +622,7 @@ namespace _zeitbild.frontend_web.widgets.weekview
|
|||
"rel": lib_plankton.call.convey(
|
||||
cell.pit,
|
||||
[
|
||||
lib_plankton.pit.to_datetime,
|
||||
lib_plankton.pit.to_datetime_ce,
|
||||
(x : lib_plankton.pit.type_datetime) => lib_plankton.string.coin(
|
||||
"{{year}}-{{month}}-{{day}}",
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue