[TikiWiki-commits] [Git][tikiwiki/tiki][28.x] [FIX] Fix: Ensure that the calendar module and plugin return the correct URL after saving an event
"franck franck kalunga \(@francksfkal\) via TikiWiki-cvs" <[email protected]>
| Newsgroups | gmane.comp.cms.tiki.cvs |
|---|---|
| Message-ID | <691fa067a3ef0_2a3b6744345de@gitlab-sidekiq-low-urgency-cpu-bound-v2-7f698d98f7-624qx.mail> |
franck franck kalunga pushed to branch 28.x at Tiki Wiki CMS Groupware / Tiki
Commits:
590972f8 by franck franck kalunga at 2025-11-20T23:05:43+00:00
[FIX] Fix: Ensure that the calendar module and plugin return the correct URL after saving an event
---
* [FIX] Fix: Ensure that the calendar module and plugin return the correct URL after saving an event
---
* [FIX] Fix: Ensure that the calendar module and plugin return the correct URL after saving an event
---
* [FIX] Fix: Ensure that the calendar module and plugin return the correct URL after saving an event
See merge request tikiwiki/tiki!8886
See merge request tikiwiki/tiki!9046
See merge request tikiwiki/tiki!9078
- - - - -
9 changed files:
- lib/core/Services/Calendar/Controller.php
- lib/wiki-plugins/wikiplugin_calendar.php
- modules/mod-func-calendar_new.php
- src/js/jquery-tiki/tiki-calendar.js
- templates/calendar/edit_item.tpl
- templates/modules/mod-calendar_new.tpl
- templates/wiki-plugins/wikiplugin_calendar.tpl
- tiki-calendar.php
- tiki-setup.php
Changes:
=====================================
lib/core/Services/Calendar/Controller.php
=====================================
@@ -434,6 +434,7 @@ class Services_Calendar_Controller extends Services_Calendar_BaseController
'allday' => $calendar['allday'] == 'y' ? 1 : 0,
'organizers' => [$user],
'participants' => $participants,
+ 'returnURL' => $return_url,
];
}
=====================================
lib/wiki-plugins/wikiplugin_calendar.php
=====================================
@@ -80,8 +80,7 @@ function wikiplugin_calendar_info()
function wikiplugin_calendar($data, $params)
{
- global $prefs, $tiki_p_admin, $tiki_p_view_calendar, $tikiroot;
- global $dc, $user;
+ global $prefs, $tiki_p_admin, $tiki_p_view_calendar, $base_uri;
$smarty = TikiLib::lib('smarty');
$tikilib = TikiLib::lib('tiki');
@@ -124,6 +123,8 @@ function wikiplugin_calendar($data, $params)
$calendarInitialParams = $calendarlib->generalParamsOfCalendar($rawcals['data']);
$calendarInitialParams['initialView'] = $initialView;
$calendars = $calendarInitialParams['calendars'];
+ $current_url = $base_uri;
+ $smarty->assign('returnURL', $current_url);
$smarty->assign(
'fullCalendarParams',
$calendarInitialParams
=====================================
modules/mod-func-calendar_new.php
=====================================
@@ -73,7 +73,7 @@ function module_calendar_new_info()
*/
function module_calendar_new($mod_reference, $module_params)
{
- global $prefs, $user, $tiki_p_admin_calendars;
+ global $prefs, $user, $tiki_p_admin_calendars, $base_uri;
$tikilib = TikiLib::lib('tiki');
$smarty = TikiLib::lib('smarty');
$calendarlib = TikiLib::lib('calendar');
@@ -81,7 +81,7 @@ function module_calendar_new($mod_reference, $module_params)
global $calendarViewMode, $focusdate;
$default = ['viewnavbar' => 'y', 'viewmode' => 'month', 'showaction' => 'y'];
$module_params = array_merge($default, $module_params);
-
+ $defaultCalendarId = 0;
if (isset($_REQUEST['viewmode'])) {
$save_viewmode = $_REQUEST['viewmode'];
}
@@ -155,6 +155,9 @@ function module_calendar_new($mod_reference, $module_params)
'fullCalendarParams',
$calendarInitialParams
);
+
+ $current_url = $base_uri;
+ $smarty->assign('returnURL', $current_url);
$smarty->assign('moduleCalendarFocusdate', $moduleCalendarFocusdate);
$smarty->assign('moduleCalendarIds', $moduleCalendarIds);
$canEditAnything = $calendarInitialParams['canEditAnything'] ? 'y' : 'n';
=====================================
src/js/jquery-tiki/tiki-calendar.js
=====================================
@@ -11,7 +11,8 @@ $.fn.setupFullCalendar = function (
fullCalendarParams,
calendarContainer,
targetId = "calendar",
- urlEventSource = "tiki-ajax_services.php?controller=calendar&action=list_items"
+ urlEventSource = "tiki-ajax_services.php?controller=calendar&action=list_items",
+ returnUrl = "tiki-calendar.php"
) {
this.each(function () {
const calendarEl = document.getElementById(targetId);
@@ -227,7 +228,7 @@ $.fn.setupFullCalendar = function (
$.openModal({
title: tr("New event"),
size: "modal-lg",
- remote: $.service("calendar", "edit_item", { todate: info.date.toUnix(), modal: 1 }),
+ remote: $.service("calendar", "edit_item", { todate: info.date.toUnix(), modal: 1, return_url: returnUrl }),
open: function () {
$this.tikiModal();
$("form:not(.no-ajax)", this).addClass("no-ajax"); // Remove default ajax handling, we replace it
=====================================
templates/calendar/edit_item.tpl
=====================================
@@ -19,7 +19,7 @@
{/if}
</div>
<input type="hidden" name="calitem[user]" value="{$calitem.user|escape}">
- <input type="hidden" name="return_url" value="tiki-calendar.php">
+ <input type="hidden" id="return_url" name="return_url" value="{$calitem.returnURL}">
{if $calitemId}
<input type="hidden" name="calitemId" value="{$calitemId|escape}">
{/if}
@@ -38,8 +38,7 @@
<label for="calid" class="col-form-label col-sm-3">{tr}Calendar{/tr}</label>
<div class="col-sm-9">
<input name="calendarchanged" type="hidden">
- <select name="calitem[calendarId]" id="calid" class="form-control" required
- onchange="$(this).parents('.edit-event-form').tikiModal(tr('Loading...')); needToConfirm=false; $('input[name=calendarchanged]').val(1); $('input[name=saveitem]').trigger('click');">
+ <select name="calitem[calendarId]" id="calid" class="form-control" required>
{foreach $calendars as $aCalendar}
{$calstyle = ''}
{if not empty($aCalendar.custombgcolor)}
=====================================
templates/modules/mod-calendar_new.tpl
=====================================
@@ -3,7 +3,7 @@
{if $tiki_p_add_events eq 'y' && (empty($module_params.showaction) && $canEditAnything eq 'y' || $module_params.showaction ne 'n')}
<br>
<p>
- <a href="{bootstrap_modal controller='calendar' action='edit_item' size='modal-lg' defaultCalendarId=$defaultCalendarId}" class="btn btn-primary">{icon name='create'} {tr}Add Event{/tr}</a>
+ <a href="{bootstrap_modal controller='calendar' action='edit_item' size='modal-lg' defaultCalendarId=$defaultCalendarId return_url=$returnURL}" class="btn btn-primary">{icon name='create'} {tr}Add Event{/tr}</a>
</p>
{/if}
{if $viewlist eq 'list'}
@@ -21,15 +21,17 @@
let paramOfModuleCalendar = {{$fullCalendarParams|json_encode}};
const moduleCalendarFocusDate = document.getElementById('date-module-calendar');
paramOfModuleCalendar['initialDate'] = $('#date-module-calendar').val();
+ let returnUrl = ('{{$returnURL}}');
+ returnUrl = returnUrl.toString();
const calendarContainer = [window.moduleCalendar];
- $("#module-calendar").setupFullCalendar(paramOfModuleCalendar, calendarContainer, 'module-calendar', 'tiki-ajax_services.php?controller=calendar&action=list_items&calIds={{$moduleCalendarIds}}');
+ $("#module-calendar").setupFullCalendar({{$fullCalendarParams|json_encode}}, calendarContainer, 'module-calendar', 'tiki-ajax_services.php?controller=calendar&action=list_items&calIds={{$moduleCalendarIds}}', returnUrl);
moduleCalendarFocusDate.addEventListener('change', () => {
document.getElementById('module-calendar').innerHTML = "";
paramOfModuleCalendar['initialDate'] = $('#date-module-calendar').val();
- $("#module-calendar").setupFullCalendar(paramOfModuleCalendar, calendarContainer, 'module-calendar', 'tiki-ajax_services.php?controller=calendar&action=list_items&calIds={{$moduleCalendarIds}}');
+ $("#module-calendar").setupFullCalendar(paramOfModuleCalendar, calendarContainer, 'module-calendar', 'tiki-ajax_services.php?controller=calendar&action=list_items&calIds={{$moduleCalendarIds}}', returnUrl);
})
- {{if $prefs.print_pdf_from_url neq 'none'}$("#module-calendar").addEventCalendarPrint('#module-calendar-pdf-btn', calendarContainer[0]);{/if}}
+ {{if $prefs.print_pdf_from_url neq 'none'}$("#module-calendar").addFullCalendarPrint('#module-calendar-pdf-btn', calendarContainer[0]);{/if}}
{/jq}
{/if}
{if $pdf_export eq 'y' and $pdf_warning eq 'n'}
=====================================
templates/wiki-plugins/wikiplugin_calendar.tpl
=====================================
@@ -1,6 +1,6 @@
<div class="border border-secondary p-2">
{if $tiki_p_add_events eq 'y' and $viewlist neq 'list'}
- <a href="{bootstrap_modal controller='calendar' action='edit_item' size='modal-lg' defaultCalendarId=$defaultCalendarId}" class="btn btn-primary">{icon name='create'} {tr}Add Event{/tr}</a>
+ <a href="{bootstrap_modal controller='calendar' action='edit_item' size='modal-lg' defaultCalendarId=$defaultCalendarId return_url=$returnURL}" class="btn btn-primary">{icon name='create'} {tr}Add Event{/tr}</a>
{/if}
{if count($calendars) >= 1 && $viewnavbar eq 'y'}
{include file="export_calendar_in_csv_or_ical.tpl"}
@@ -11,14 +11,16 @@
let content = {{$fullCalendarParams|json_encode}};
const elt = document.getElementById('date-plugin-calendar');
content['initialDate'] = $('#date-plugin-calendar').val();
- const wikipluginCalendar = [window.pluginCalendar]
- $("#plugin-calendar").setupFullCalendar(content, wikipluginCalendar, 'plugin-calendar', 'tiki-ajax_services.php?controller=calendar&action=list_items&calIds={{$pluginCalendarIds}}');
+ const wikipluginCalendar = [window.pluginCalendar];
+ let returnUrlForPlugin = ('{{$returnURL}}');
+ returnUrlForPlugin = returnUrlForPlugin.toString();
+ $("#plugin-calendar").setupFullCalendar(content, wikipluginCalendar, 'plugin-calendar', 'tiki-ajax_services.php?controller=calendar&action=list_items&calIds={{$pluginCalendarIds}}', returnUrlForPlugin);
elt.addEventListener('change', () => {
document.getElementById('plugin-calendar').innerHTML = "";
content['initialDate'] = $('#date-plugin-calendar').val();
- $("#plugin-calendar").setupFullCalendar(content, wikipluginCalendar, 'plugin-calendar', 'tiki-ajax_services.php?controller=calendar&action=list_items&calIds={{$pluginCalendarIds}}');
+ $("#plugin-calendar").setupFullCalendar(content, wikipluginCalendar, 'plugin-calendar', 'tiki-ajax_services.php?controller=calendar&action=list_items&calIds={{$pluginCalendarIds}}', returnUrlForPlugin);
})
- {{if $prefs.print_pdf_from_url neq 'none'}$("#plugin-calendar").addEventCalendarPrint('#calendar-pdf-btn', wikipluginCalendar[0]);{/if}}
+ {{if $prefs.print_pdf_from_url neq 'none'}$("#plugin-calendar").addFullCalendarPrint('#calendar-pdf-btn', wikipluginCalendar[0]);{/if}}
{/jq}
{/if}
{if $pdf_export eq 'y' and $pdf_warning eq 'n'}
@@ -51,7 +53,6 @@
{if $viewlist neq 'list'}
<input type="date" value="{$focusdate}" id="date-plugin-calendar">
{/if}
-
<div id='plugin-calendar'></div>
{if $viewlist eq 'list'}
{$out}
=====================================
tiki-calendar.php
=====================================
@@ -175,6 +175,9 @@ if (! empty($_REQUEST["calitemId"])) {
} else {
$calitemId = '';
}
+global $base_uri;
+$current_url = $base_uri;
+$smarty->assign('returnURL', $current_url);
$smarty->assign('currentcalitemId', $calitemId);
$smarty->assign('displayedcals', $_SESSION['CalendarViewGroups']);
=====================================
tiki-setup.php
=====================================
@@ -994,6 +994,8 @@ if ($prefs['feature_realtime'] == 'y') {
if ($prefs['feature_calendar'] === 'y') {
$headerlib->add_js_module('import "@jquery-tiki/tiki-calendar";');
$headerlib->add_js_module('import "@jquery-tiki/fullcalendar_to_pdf";');
+ $headerlib->add_cssfile('themes/base_files/feature_css/calendar.css', 20);
+ $headerlib->add_jsfile('lib/jquery_tiki/tiki-calendar_edit_item.js');
}
// Using boomerang for performance monitoring
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/590972f8eb27f9bb749c7c3c485c73b909bf2703
--
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/590972f8eb27f9bb749c7c3c485c73b909bf2703
You're receiving this email because of your account on gitlab.com.
_______________________________________________
TikiWiki-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tikiwiki-cvs