Change dateformat to ISO 8601 and remove server side rendered date strings

This commit is contained in:
Patrick Schwarz 2024-01-12 01:00:15 +01:00
parent b95de25ee8
commit eef688d41b
2 changed files with 11 additions and 16 deletions

View file

@ -27,8 +27,8 @@ document.addEventListener("DOMContentLoaded", function () {
Object.keys(data).forEach(function (date) {
var day = new Date(date);
items.push("<div data-date='" + date + "'><span>" + day.toLocaleDateString(true, {weekday:'short', day:'numeric', month:'long', year: 'numeric'}) + "</span></div>");
Object.keys(data[date].events).forEach(function (uid) {
var event = data[date].events[uid];
Object.keys(data[date]).forEach(function (uid) {
var event = data[date][uid];
if(event.location) event.location = event.location.replace(/\n/g,"<br>").replace(uri_regex, "<a href='$1' target='_blank'>$1</a>");
if(event.description) event.description = event.description.replace(/\n/g,"<br>").replace(uri_regex, (url) => {event.summary = `<a href='${url}' target='_blank'>${event.summary}</a>`; return "";});
items.push("<div data-uid='" + uid + "'><span>" + event.datestr + "</span><span><b>" + event.summary + "</b> | " + ((event.location)?event.location:'') + "<br/>" + ((event.description)?event.description:'') + "</span></div>");

View file

@ -23,8 +23,8 @@ if(@filemtime($cachefile) + $cachetime < time()) {
//$iCal->initURL($ical);
# Load calendar entries
$period = max(filter_input(INPUT_GET, 'period', FILTER_VALIDATE_INT, array('options' => array('min_range' => 1, 'max_range' => 12))), 1);
$events = $iCal->sortEventsWithOrder($iCal->eventsFromInterval($period.' month'));
$months = max(filter_input(INPUT_GET, 'period', FILTER_VALIDATE_INT, array('options' => array('min_range' => 1, 'max_range' => 12))), 1);
$events = $iCal->sortEventsWithOrder($iCal->eventsFromInterval($months.' month'));
$filter = filter_input(INPUT_GET, 'filter', FILTER_SANITIZE_SPECIAL_CHARS);
@ -49,18 +49,13 @@ foreach ($events as $event) {
foreach ($period as $dt) {
$date = $dt->format("Y-m-d");
$dateFormatter = new IntlDateFormatter('de_DE', IntlDateFormatter::LONG, IntlDateFormatter::NONE, 'Europe/Berlin', IntlDateFormatter::GREGORIAN);
$weekdayFormatter = new IntlDateFormatter('de_DE', IntlDateFormatter::NONE, IntlDateFormatter::NONE, 'Europe/Berlin', IntlDateFormatter::GREGORIAN, 'EEEE');
$result[$date]["name"] = $dateFormatter->format($dt->getTimestamp());
$result[$date]["weekday"] = $weekdayFormatter->format($dt->getTimestamp());
$result[$date]["events"][$uid]["dtstart"] = $event->dtstart; #TODO: Zeitzone aus lib auslesen
$result[$date]["events"][$uid]["dtend"] = $event->dtend; #TODO: Zeitzone aus lib auslesen
$result[$date]["events"][$uid]["datestr"] = (isset($event->dtstart_array[0]["VALUE"]) && $event->dtstart_array[0]["VALUE"] == 'DATE')?'Ganztägig':$start->format('H:i');
$result[$date]["events"][$uid]["summary"] = $event->summary;
$result[$date]["events"][$uid]["location"] = $event->location;
$result[$date]["events"][$uid]["description"] = $event->description;
if(isset($event->categories)) $result[$date]["events"][$uid]["categories"] = $event->categories;
$result[$date][$uid]["dtstart"] = $iCal->iCalDateToDateTime($event->dtstart_array[3])->format(DateTime::ATOM);
$result[$date][$uid]["dtend"] = $iCal->iCalDateToDateTime($event->dtend_array[3])->format(DateTime::ATOM);
$result[$date][$uid]["datestr"] = (isset($event->dtstart_array[0]["VALUE"]) && $event->dtstart_array[0]["VALUE"] == 'DATE')?'Ganztägig':$start->format('H:i');
$result[$date][$uid]["summary"] = $event->summary;
$result[$date][$uid]["location"] = $event->location;
$result[$date][$uid]["description"] = $event->description;
if(isset($event->categories)) $result[$date][$uid]["categories"] = $event->categories;
}
}