[TikiWiki-commits] [Git][tikiwiki/tiki][27.x] [BP][FIX][REF] Calendar: restore event modals and fix filter form reload
"MAGENE Sem Joel \(@Jomagene\) via TikiWiki-cvs" <[email protected]>
| Newsgroups | gmane.comp.cms.tiki.cvs |
|---|---|
| Message-ID | <69c300ecbc6b6_3c18dd7845569@gitlab-sidekiq-low-urgency-cpu-bound-v2-7c9d897747-ggtwz.mail> |
MAGENE Sem Joel pushed to branch 27.x at Tiki Wiki CMS Groupware / Tiki
Commits:
22a838bc by MAGENE Sem Joel at 2026-03-24T21:15:53+00:00
[BP][FIX][REF] Calendar: restore event modals and fix filter form reload
---
* [BP][FIX][REF] Calendar: restore event modals and fix filter form reload
Backport of e1160b918a for 27.x with FullCalendar-compatible min/max time typing preserved.
(cherry picked from commit e1160b918aac35a0250da4df3a2b64f90d792906)
See merge request tikiwiki/tiki!9840
- - - - -
6 changed files:
- lib/calendar/calendarlib.php
- lib/wiki-plugins/wikiplugin_calendar.php
- modules/mod-func-calendar_new.php
- src/js/jquery-tiki/tiki-calendar.js
- templates/checkboxes_calendar_form.tpl
- tiki-calendar.php
Changes:
=====================================
lib/calendar/calendarlib.php
=====================================
@@ -156,6 +156,7 @@ class CalendarLib extends TikiLib
$canEditAnything = $canEditAnything || $calendar['perms']->add_events;
}
return [
+ 'timeFormat' => $prefs['display_12hr_clock'] === 'y',
'firstDayofWeek' => 0,//$firstDayofWeek,
'display_timezone' => $prefs['display_timezone'],
'language' => $prefs['language'],
=====================================
lib/wiki-plugins/wikiplugin_calendar.php
=====================================
@@ -135,10 +135,17 @@ function wikiplugin_calendar($data, $params)
$defaultCalendarId = $params['calIds'][0];
- // Keep only calendars set as parameters
- $rawCalsData = array_filter($rawcals['data'], fn($current) => in_array($current['calendarId'], $params['calIds']));
- $calendarInitialParams = $calendarlib->generalParamsOfCalendar($rawCalsData);
+ $calendarInitialParams = $calendarlib->generalParamsOfCalendar($rawcals['data']);
$calendarInitialParams['initialView'] = $initialView;
+
+ if (! empty($params['calIds'])) {
+ $calendarInitialParams['calendars'] = array_intersect_key(
+ $calendarInitialParams['calendars'],
+ array_flip($params['calIds'])
+ );
+ }
+
+ $smarty->assign('eventCalendarParams', $calendarInitialParams);
$calendars = $calendarInitialParams['calendars'];
// set up list of groups
if (isset($_REQUEST["calIds"]) and is_array($_REQUEST["calIds"]) and count($_REQUEST["calIds"])) {
=====================================
modules/mod-func-calendar_new.php
=====================================
@@ -147,10 +147,17 @@ function module_calendar_new($mod_reference, $module_params)
Feedback::errorAndDie(tra("You do not have permission to view the calendar"), \Laminas\Http\Response::STATUS_CODE_401);
}
$moduleCalendarFocusdate = date("Y-m-d");
- $rawcals['data'] = array_filter($rawcals['data'], fn($current) => in_array($current['calendarId'], $calIds));
-
$calendarInitialParams = $calendarlib->generalParamsOfCalendar($rawcals['data']);
$calendarInitialParams['initialView'] = $initialView;
+
+ if (! empty($calIds)) {
+ $calendarInitialParams['calendars'] = array_intersect_key(
+ $calendarInitialParams['calendars'],
+ array_flip($calIds)
+ );
+ }
+
+ $smarty->assign('eventCalendarParams', $calendarInitialParams);
$calendars = $calendarInitialParams['calendars'];
$smarty->assign(
'fullCalendarParams',
=====================================
src/js/jquery-tiki/tiki-calendar.js
=====================================
@@ -226,7 +226,7 @@ $.fn.setupFullCalendar = function (
calendarContainer[0].changeView("timeGridDay", info.dateStr);
} else {
let $this = $(info.dayEl).tikiModal(" ");
- const countCals = $("#filtercal ul li").length;
+ const countCals = $(".filtercal ul li").length;
if (countCals >= 1 || targetId != "calendar") {
$.openModal({
title: tr("New event"),
=====================================
templates/checkboxes_calendar_form.tpl
=====================================
@@ -1,6 +1,6 @@
{button _class="{$class}" _style="{$style}" href="#" _onclick="toggle('{$filterCal}');return false;" _text='{tr}Calendars{/tr}' _icon_name='eye' _type='info'}
<div class="d-inline-block">
- <form class="card" id="{$filterCal}" class="filtercal" method="get" action="{$returnURL}" name="f" style="display:none;">
+ <form class="card filtercal" id="{$filterCal}" method="get" action="{$returnURL}" name="f" style="display:none;">
<div class="card-header caltitle py-1 px-2">
<strong>{tr}Calendars{/tr}</strong>
<button type="button" class="btn-close float-end" onclick="toggle('{$filterCal}')" aria-hidden="true"></button>
=====================================
tiki-calendar.php
=====================================
@@ -70,30 +70,14 @@ if (empty($rawcals['data'])) {
die;
}
-$minHourOfDay = 12;
-$maxHourOfDay = 12;
-$calendars = [];
-$canEditAnything = false;
-
-foreach ($rawcals['data'] as $calendar) {
- $calendar['perms'] = Perms::get([ 'type' => 'calendar', 'object' => $calendar['calendarId']]);
-
- $calendars[$calendar['calendarId']] = $calendar;
-
- // for week and day views
- $startOfDayUnix = (int)($calendar['startday'] ?? $prefs['calendar_startday'] ?? 0);
- $startOfDayHour = $startOfDayUnix / 3600;
- $startOfDayMinute = ($startOfDayUnix % 3600) / 60;
- $minHourOfDay = date('H:i:s', mktime($startOfDayHour, $startOfDayMinute, 0));
-
- $endOfDayUnix = (int)($calendar['endday'] ?? 0);
- $endOfDayHour = $endOfDayUnix / 3600;
- $endOfDayMinute = ($endOfDayUnix % 3600) / 60;
- $maxHourOfDay = date('H:i:s', mktime($endOfDayHour, $endOfDayMinute, 0));
-
- $canEditAnything = $canEditAnything || $calendar['perms']->add_events;
-}
-
+$calendarInitialParams = $calendarlib->generalParamsOfCalendar($rawcals['data']);
+$calendarInitialParams['initialView'] = $_REQUEST['viewmode'] ?? 'dayGridMonth';
+$smarty->assign('eventCalendarParams', $calendarInitialParams);
+
+$calendars = $calendarInitialParams['calendars'];
+$canEditAnything = $calendarInitialParams['canEditAnything'];
+$minHourOfDay = $calendarInitialParams['minHourOfDay'];
+$maxHourOfDay = $calendarInitialParams['maxHourOfDay'];
$rawsubs = $calendarlib->get_subscriptions($user);
foreach ($rawsubs['data'] as $sub) {
$calendars['s' . $sub['subscriptionId']] = $sub;
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/22a838bc66448094a144e3ce1fa9ccd016542cbb
--
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/22a838bc66448094a144e3ce1fa9ccd016542cbb
You're receiving this email because of your account on gitlab.com. Manage all notifications: https://gitlab.com/-/profile/notifications | Help: https://gitlab.com/help
_______________________________________________
TikiWiki-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tikiwiki-cvs