diff --git a/bin/release b/bin/release index 02e0202b..e9d8045f 100755 --- a/bin/release +++ b/bin/release @@ -413,7 +413,6 @@ def add_libs(rel_name, galette_archive): '.gitignore', '.php-cs-fixer.dist.php', '.phpcs.xml', - 'calendar.js', 'package-lock.json', 'package.json', 'phpstan.neon', @@ -424,7 +423,7 @@ def add_libs(rel_name, galette_archive): if os.path.exists(target): os.remove(target) - for todrop in ['.github', 'bin', 'node_modules', 'tests']: + for todrop in ['.github', 'bin', 'js', 'node_modules', 'tests']: target = os.path.join(npm_dir, todrop) if os.path.exists(target): shutil.rmtree(target) diff --git a/calendar.js b/js/calendar.js similarity index 55% rename from calendar.js rename to js/calendar.js index 8ebce7e4..93781f6c 100644 --- a/calendar.js +++ b/js/calendar.js @@ -17,49 +17,39 @@ import 'fullcalendar/themes/classic/palette.css'; $(function() { var calendarEl = document.getElementById('calendar'); + var options = JSON.parse(document.getElementById('calendar_options').textContent); + //modal is written in the page, only its content changes + var $modal = $('#calendar_event'); + var $edit = $modal.find('[data-action="edit"]'); + var $booking = $modal.find('[data-action="booking"]'); var calendar = new Calendar(calendarEl, { plugins: [ themePlugin, interactionPlugin, dayGridPlugin, listPlugin ], - views: _fullcalendar_views, + buttons: options.buttons, headerToolbar: { left: 'title', right: 'dayGridMonth,listDay,listWeek,listMonth prevYear,prev,today,next,nextYear' }, height: 'auto', locales: allLocales, - locale: _fullcalendar_locale, + locale: options.locale, weekNumbers: true, - events: _calendar_dataurl, + events: options.dataurl, selectable: true, eventClick: function(info) { - var _infos = JSON.parse(JSON.stringify(info.event.extendedProps)); - _infos.url = _calendar_event_url.replace('PLACEBO', _infos.id_event); - _infos.booking = _calendar_booking_url.replace('PLACEBO', _infos.id_event); - var _actions = []; - if (_infos.can_edit) { - _actions.push(_edit_action); - } - _actions.push(Object.assign({}, _booking_action, { - click: function() { - window.location.href = _infos.booking; - } - })); - _actions.push(_close_action); + var infos = info.event.extendedProps; //description is built and escaped server side, other values must be displayed as text - var _elt = $(''); - _elt.find('.header').text(_infos.name + ' (' + _infos.begin_date_fmt + ' - ' + _infos.end_date_fmt + ')'); - _elt.find('.content').html(_infos.description); - _elt.appendTo('body'); - _elt.modal({ - onApprove: function() { - window.location.href = _infos.url; - }, - actions: _actions - }).modal('show'); + $modal.find('.header').text(infos.name + ' (' + infos.begin_date_fmt + ' - ' + infos.end_date_fmt + ')'); + $modal.find('.content').html(infos.description); + //links are given with the event, edit one only when current user can edit it + $edit + .attr('href', infos.edit_url || '#') + .toggleClass('displaynone', !infos.edit_url); + $booking.attr('href', infos.booking_url); + $modal.modal('show'); }, eventMouseEnter: function(info) { - var _el = $(info.el); - _el.popup({ + $(info.el).popup({ exclusive: true, hoverable: true, variation: 'basic', @@ -70,4 +60,3 @@ $(function() { calendar.render(); }); - diff --git a/lang/de_DE.utf8/LC_MESSAGES/events.mo b/lang/de_DE.utf8/LC_MESSAGES/events.mo index f030e0ff..088edd58 100644 Binary files a/lang/de_DE.utf8/LC_MESSAGES/events.mo and b/lang/de_DE.utf8/LC_MESSAGES/events.mo differ diff --git a/lang/de_DE/LC_MESSAGES/events.mo b/lang/de_DE/LC_MESSAGES/events.mo index 886b3815..088edd58 100644 Binary files a/lang/de_DE/LC_MESSAGES/events.mo and b/lang/de_DE/LC_MESSAGES/events.mo differ diff --git a/lang/en_US/LC_MESSAGES/events.mo b/lang/en_US/LC_MESSAGES/events.mo index 3a20a04c..f8500dd7 100644 Binary files a/lang/en_US/LC_MESSAGES/events.mo and b/lang/en_US/LC_MESSAGES/events.mo differ diff --git a/lang/es.utf8/LC_MESSAGES/events.mo b/lang/es.utf8/LC_MESSAGES/events.mo index 97a4bb92..b2ccddfd 100644 Binary files a/lang/es.utf8/LC_MESSAGES/events.mo and b/lang/es.utf8/LC_MESSAGES/events.mo differ diff --git a/lang/es/LC_MESSAGES/events.mo b/lang/es/LC_MESSAGES/events.mo index 663f0cec..b2ccddfd 100644 Binary files a/lang/es/LC_MESSAGES/events.mo and b/lang/es/LC_MESSAGES/events.mo differ diff --git a/lang/events.pot b/lang/events.pot index c4345638..c76994e3 100644 --- a/lang/events.pot +++ b/lang/events.pot @@ -555,7 +555,7 @@ msgstr "" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" +msgid "Found bookings total %1$s" msgstr "" #: ../templates/default/bookings.html.twig:192 diff --git a/lang/events_ar.utf8.po b/lang/events_ar.utf8.po index 6b405b55..0c582735 100644 --- a/lang/events_ar.utf8.po +++ b/lang/events_ar.utf8.po @@ -535,7 +535,7 @@ msgstr "" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" +msgid "Found bookings total %1$s" msgstr "" #: ../templates/default/bookings.html.twig:192 diff --git a/lang/events_br.utf8.po b/lang/events_br.utf8.po index 9728af63..63e9f5a0 100644 --- a/lang/events_br.utf8.po +++ b/lang/events_br.utf8.po @@ -533,7 +533,7 @@ msgstr "" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" +msgid "Found bookings total %1$s" msgstr "" #: ../templates/default/bookings.html.twig:192 diff --git a/lang/events_ca.utf8.po b/lang/events_ca.utf8.po index 7f0f2a68..150fb673 100644 --- a/lang/events_ca.utf8.po +++ b/lang/events_ca.utf8.po @@ -526,7 +526,7 @@ msgstr "No pagat" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" +msgid "Found bookings total %1$s" msgstr "" #: ../templates/default/bookings.html.twig:192 diff --git a/lang/events_de_DE.utf8.po b/lang/events_de_DE.utf8.po index 480d85cc..14d8cf0a 100644 --- a/lang/events_de_DE.utf8.po +++ b/lang/events_de_DE.utf8.po @@ -535,8 +535,8 @@ msgstr "Nicht bezahlt" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" -msgstr "Gesamtzahl der gefundenen Buchungen: %f" +msgid "Found bookings total %1$s" +msgstr "Gesamtzahl der gefundenen Buchungen: %1$s" #: ../templates/default/bookings.html.twig:192 msgid "Edit booking" diff --git a/lang/events_en_US.po b/lang/events_en_US.po index 3da86652..cbbf2e1b 100644 --- a/lang/events_en_US.po +++ b/lang/events_en_US.po @@ -583,8 +583,8 @@ msgstr "Not paid" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" -msgstr "Found bookings total %f" +msgid "Found bookings total %1$s" +msgstr "Found bookings total %1$s" #: ../templates/default/bookings.html.twig:192 msgid "Edit booking" diff --git a/lang/events_es.utf8.po b/lang/events_es.utf8.po index bdfcc97a..2de91afc 100644 --- a/lang/events_es.utf8.po +++ b/lang/events_es.utf8.po @@ -539,8 +539,8 @@ msgstr "No pagado" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" -msgstr "Se encontraron un total de %f reservas" +msgid "Found bookings total %1$s" +msgstr "Se encontraron un total de %1$s reservas" #: ../templates/default/bookings.html.twig:192 msgid "Edit booking" diff --git a/lang/events_fr_FR.utf8.po b/lang/events_fr_FR.utf8.po index 86cdf2d5..3398bde7 100644 --- a/lang/events_fr_FR.utf8.po +++ b/lang/events_fr_FR.utf8.po @@ -531,8 +531,8 @@ msgstr "Non payée" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" -msgstr "Total des réservations trouvées : %f" +msgid "Found bookings total %1$s" +msgstr "Total des réservations trouvées : %1$s" #: ../templates/default/bookings.html.twig:192 msgid "Edit booking" diff --git a/lang/events_it_IT.utf8.po b/lang/events_it_IT.utf8.po index db4771f6..6ca1b542 100644 --- a/lang/events_it_IT.utf8.po +++ b/lang/events_it_IT.utf8.po @@ -530,8 +530,8 @@ msgstr "Non pagato" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" -msgstr "Totale prenotazioni trovate %f" +msgid "Found bookings total %1$s" +msgstr "Totale prenotazioni trovate %1$s" #: ../templates/default/bookings.html.twig:192 msgid "Edit booking" diff --git a/lang/events_nb_NO.utf8.po b/lang/events_nb_NO.utf8.po index 621e65a4..ee95f056 100644 --- a/lang/events_nb_NO.utf8.po +++ b/lang/events_nb_NO.utf8.po @@ -523,7 +523,7 @@ msgstr "" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" +msgid "Found bookings total %1$s" msgstr "" #: ../templates/default/bookings.html.twig:192 diff --git a/lang/events_oc.utf8.po b/lang/events_oc.utf8.po index 379a0b4f..78d74cbe 100644 --- a/lang/events_oc.utf8.po +++ b/lang/events_oc.utf8.po @@ -527,7 +527,7 @@ msgstr "" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" +msgid "Found bookings total %1$s" msgstr "" #: ../templates/default/bookings.html.twig:192 diff --git a/lang/events_ota.utf8.po b/lang/events_ota.utf8.po index 294895ea..b593c3ec 100644 --- a/lang/events_ota.utf8.po +++ b/lang/events_ota.utf8.po @@ -523,7 +523,7 @@ msgstr "" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" +msgid "Found bookings total %1$s" msgstr "" #: ../templates/default/bookings.html.twig:192 diff --git a/lang/events_pt.utf8.po b/lang/events_pt.utf8.po index 5f43559b..0c70915d 100644 --- a/lang/events_pt.utf8.po +++ b/lang/events_pt.utf8.po @@ -534,8 +534,8 @@ msgstr "Não pago" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" -msgstr "Reservas encontradas totalizam %f" +msgid "Found bookings total %1$s" +msgstr "Reservas encontradas totalizam %1$s" #: ../templates/default/bookings.html.twig:192 msgid "Edit booking" diff --git a/lang/events_pt_BR.utf8.po b/lang/events_pt_BR.utf8.po index 9626a832..d31fd34b 100644 --- a/lang/events_pt_BR.utf8.po +++ b/lang/events_pt_BR.utf8.po @@ -531,8 +531,8 @@ msgstr "Não pago" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" -msgstr "Reservas encontradas totalizam %f" +msgid "Found bookings total %1$s" +msgstr "Reservas encontradas totalizam %1$s" #: ../templates/default/bookings.html.twig:192 msgid "Edit booking" diff --git a/lang/events_ru.utf8.po b/lang/events_ru.utf8.po index 1360377b..19cb9f0d 100644 --- a/lang/events_ru.utf8.po +++ b/lang/events_ru.utf8.po @@ -538,8 +538,8 @@ msgstr "Не оплачено" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" -msgstr "Всего найдено броней %f" +msgid "Found bookings total %1$s" +msgstr "Всего найдено броней %1$s" #: ../templates/default/bookings.html.twig:192 msgid "Edit booking" diff --git a/lang/events_si.utf8.po b/lang/events_si.utf8.po index e9b83cda..5854f746 100644 --- a/lang/events_si.utf8.po +++ b/lang/events_si.utf8.po @@ -523,7 +523,7 @@ msgstr "" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" +msgid "Found bookings total %1$s" msgstr "" #: ../templates/default/bookings.html.twig:192 diff --git a/lang/events_sl.utf8.po b/lang/events_sl.utf8.po index 21cb5e7a..73e2298d 100644 --- a/lang/events_sl.utf8.po +++ b/lang/events_sl.utf8.po @@ -533,8 +533,8 @@ msgstr "Ni plačano" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" -msgstr "Skupaj najdenih rezervacij %f" +msgid "Found bookings total %1$s" +msgstr "Skupaj najdenih rezervacij %1$s" #: ../templates/default/bookings.html.twig:192 msgid "Edit booking" diff --git a/lang/events_ta.utf8.po b/lang/events_ta.utf8.po index 0fc19489..3057d5bf 100644 --- a/lang/events_ta.utf8.po +++ b/lang/events_ta.utf8.po @@ -532,8 +532,8 @@ msgstr "செலுத்தப்படவில்லை" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" -msgstr "முன்பதிவு மொத்தம் %f" +msgid "Found bookings total %1$s" +msgstr "முன்பதிவு மொத்தம் %1$s" #: ../templates/default/bookings.html.twig:192 msgid "Edit booking" diff --git a/lang/events_tr.utf8.po b/lang/events_tr.utf8.po index 1f52cb36..9697d785 100644 --- a/lang/events_tr.utf8.po +++ b/lang/events_tr.utf8.po @@ -526,7 +526,7 @@ msgstr "" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" +msgid "Found bookings total %1$s" msgstr "" #: ../templates/default/bookings.html.twig:192 diff --git a/lang/events_uk.utf8.po b/lang/events_uk.utf8.po index 58efeb45..0bf8a3b6 100644 --- a/lang/events_uk.utf8.po +++ b/lang/events_uk.utf8.po @@ -540,8 +540,8 @@ msgstr "Не оплачено" #: ../templates/default/bookings.html.twig:147 #, php-format -msgid "Found bookings total %f" -msgstr "Загалом бронювань знайдено: %f" +msgid "Found bookings total %1$s" +msgstr "Загалом бронювань знайдено: %1$s" #: ../templates/default/bookings.html.twig:192 msgid "Edit booking" diff --git a/lang/fr_FR.utf8/LC_MESSAGES/events.mo b/lang/fr_FR.utf8/LC_MESSAGES/events.mo index 48d86ce2..329728ec 100644 Binary files a/lang/fr_FR.utf8/LC_MESSAGES/events.mo and b/lang/fr_FR.utf8/LC_MESSAGES/events.mo differ diff --git a/lang/fr_FR/LC_MESSAGES/events.mo b/lang/fr_FR/LC_MESSAGES/events.mo index e5882a4e..329728ec 100644 Binary files a/lang/fr_FR/LC_MESSAGES/events.mo and b/lang/fr_FR/LC_MESSAGES/events.mo differ diff --git a/lang/it_IT.utf8/LC_MESSAGES/events.mo b/lang/it_IT.utf8/LC_MESSAGES/events.mo index 04f6de9b..8ca93936 100644 Binary files a/lang/it_IT.utf8/LC_MESSAGES/events.mo and b/lang/it_IT.utf8/LC_MESSAGES/events.mo differ diff --git a/lang/it_IT/LC_MESSAGES/events.mo b/lang/it_IT/LC_MESSAGES/events.mo index 53aa33c9..8ca93936 100644 Binary files a/lang/it_IT/LC_MESSAGES/events.mo and b/lang/it_IT/LC_MESSAGES/events.mo differ diff --git a/lang/pt.utf8/LC_MESSAGES/events.mo b/lang/pt.utf8/LC_MESSAGES/events.mo index a42a9191..eec6c0d3 100644 Binary files a/lang/pt.utf8/LC_MESSAGES/events.mo and b/lang/pt.utf8/LC_MESSAGES/events.mo differ diff --git a/lang/pt/LC_MESSAGES/events.mo b/lang/pt/LC_MESSAGES/events.mo index dd93668e..eec6c0d3 100644 Binary files a/lang/pt/LC_MESSAGES/events.mo and b/lang/pt/LC_MESSAGES/events.mo differ diff --git a/lang/pt_BR.utf8/LC_MESSAGES/events.mo b/lang/pt_BR.utf8/LC_MESSAGES/events.mo index 8b6d3b74..558664f9 100644 Binary files a/lang/pt_BR.utf8/LC_MESSAGES/events.mo and b/lang/pt_BR.utf8/LC_MESSAGES/events.mo differ diff --git a/lang/pt_BR/LC_MESSAGES/events.mo b/lang/pt_BR/LC_MESSAGES/events.mo index 5ce8ea84..558664f9 100644 Binary files a/lang/pt_BR/LC_MESSAGES/events.mo and b/lang/pt_BR/LC_MESSAGES/events.mo differ diff --git a/lang/ru.utf8/LC_MESSAGES/events.mo b/lang/ru.utf8/LC_MESSAGES/events.mo index d718a6e4..f48425e9 100644 Binary files a/lang/ru.utf8/LC_MESSAGES/events.mo and b/lang/ru.utf8/LC_MESSAGES/events.mo differ diff --git a/lang/ru/LC_MESSAGES/events.mo b/lang/ru/LC_MESSAGES/events.mo index 4c2d6815..f48425e9 100644 Binary files a/lang/ru/LC_MESSAGES/events.mo and b/lang/ru/LC_MESSAGES/events.mo differ diff --git a/lang/sl.utf8/LC_MESSAGES/events.mo b/lang/sl.utf8/LC_MESSAGES/events.mo index 775b9b39..bbded562 100644 Binary files a/lang/sl.utf8/LC_MESSAGES/events.mo and b/lang/sl.utf8/LC_MESSAGES/events.mo differ diff --git a/lang/sl/LC_MESSAGES/events.mo b/lang/sl/LC_MESSAGES/events.mo index c6c9e35e..bbded562 100644 Binary files a/lang/sl/LC_MESSAGES/events.mo and b/lang/sl/LC_MESSAGES/events.mo differ diff --git a/lang/ta.utf8/LC_MESSAGES/events.mo b/lang/ta.utf8/LC_MESSAGES/events.mo index 98c1b2f0..5c19a63e 100644 Binary files a/lang/ta.utf8/LC_MESSAGES/events.mo and b/lang/ta.utf8/LC_MESSAGES/events.mo differ diff --git a/lang/ta/LC_MESSAGES/events.mo b/lang/ta/LC_MESSAGES/events.mo index 412b219d..5c19a63e 100644 Binary files a/lang/ta/LC_MESSAGES/events.mo and b/lang/ta/LC_MESSAGES/events.mo differ diff --git a/lang/uk.utf8/LC_MESSAGES/events.mo b/lang/uk.utf8/LC_MESSAGES/events.mo index 0c314ff5..dc1cdf5c 100644 Binary files a/lang/uk.utf8/LC_MESSAGES/events.mo and b/lang/uk.utf8/LC_MESSAGES/events.mo differ diff --git a/lang/uk/LC_MESSAGES/events.mo b/lang/uk/LC_MESSAGES/events.mo index cb5e816f..dc1cdf5c 100644 Binary files a/lang/uk/LC_MESSAGES/events.mo and b/lang/uk/LC_MESSAGES/events.mo differ diff --git a/lib/GaletteEvents/Controllers/Crud/ActivitiesController.php b/lib/GaletteEvents/Controllers/Crud/ActivitiesController.php index 465a605e..f56a0a7f 100644 --- a/lib/GaletteEvents/Controllers/Crud/ActivitiesController.php +++ b/lib/GaletteEvents/Controllers/Crud/ActivitiesController.php @@ -150,7 +150,6 @@ public function edit(Request $request, Response $response, ?int $id = null, stri $response, $this->getTemplate('activity'), [ - 'autocomplete' => true, 'page_title' => $title, 'activity' => $activity, // pseudo random int diff --git a/lib/GaletteEvents/Controllers/Crud/BookingsController.php b/lib/GaletteEvents/Controllers/Crud/BookingsController.php index ae78f9bb..a7f382cb 100644 --- a/lib/GaletteEvents/Controllers/Crud/BookingsController.php +++ b/lib/GaletteEvents/Controllers/Crud/BookingsController.php @@ -388,7 +388,6 @@ public function edit(Request $request, Response $response, ?int $id = null, stri 'filters' => $m->getFilters(), 'count' => $m->getCount() ]; - $route_params['autocomplete'] = true; //check if current attached member is part of the list if ( @@ -412,7 +411,6 @@ public function edit(Request $request, Response $response, ?int $id = null, stri array_merge( $route_params, [ - 'autocomplete' => true, 'page_title' => $title, 'booking' => $booking, 'events' => $events->getList(true), diff --git a/lib/GaletteEvents/Controllers/Crud/EventsController.php b/lib/GaletteEvents/Controllers/Crud/EventsController.php index cbba10e1..a0a7046b 100644 --- a/lib/GaletteEvents/Controllers/Crud/EventsController.php +++ b/lib/GaletteEvents/Controllers/Crud/EventsController.php @@ -10,6 +10,7 @@ namespace GaletteEvents\Controllers\Crud; +use ArrayObject; use Galette\Repository\Groups; use Galette\Core\Pagination; use GaletteEvents\Filters\EventsList; @@ -168,8 +169,21 @@ public function ajaxCalendar(Request $request, Response $response): Response $filters->end_date_filter = date(__("Y-m-d"), $end); $events = new Events($this->zdb, $this->login, $this->history, $this->preferences, $filters); + $list = $events->getList(false, true); - return $this->withJson($response, $events->getList(false, true)); + //links of the event modal + foreach ($list as $row) { + if (!$row instanceof ArrayObject) { + continue; + } + $id = (string)$row[Event::PK]; + if ($row['can_edit']) { + $row['edit_url'] = $this->routeparser->urlFor('events_event_edit', ['id' => $id]); + } + $row['booking_url'] = $this->routeparser->urlFor('events_booking_add') . '?event=' . $id; + } + + return $this->withJson($response, $list); } // /CRUD - Read @@ -223,7 +237,6 @@ public function edit(Request $request, Response $response, ?int $id = null, stri $response, $this->getTemplate('event'), [ - 'autocomplete' => true, 'page_title' => $title, 'event' => $event, 'require_calendar' => true, diff --git a/templates/default/activities.html.twig b/templates/default/activities.html.twig index b8723c48..54d276cc 100644 --- a/templates/default/activities.html.twig +++ b/templates/default/activities.html.twig @@ -73,7 +73,7 @@ {{ activity.getCreationDate()|date(_T("Y-m-d")) }} {{ activity.countEvents() }} - + {% if activity.isActive() %} {{ _T("Active", "events") }} diff --git a/templates/default/activity.html.twig b/templates/default/activity.html.twig index 23610f59..ea5dc0a6 100644 --- a/templates/default/activity.html.twig +++ b/templates/default/activity.html.twig @@ -10,7 +10,7 @@
- + {{ _T("General information", "events") }}
@@ -37,29 +37,9 @@
{% endblock %} - -{% block javascripts %} - {{ parent() }} - -{% endblock %} diff --git a/templates/default/booking.html.twig b/templates/default/booking.html.twig index b249b93c..8a0293e2 100644 --- a/templates/default/booking.html.twig +++ b/templates/default/booking.html.twig @@ -10,7 +10,7 @@
- + {{ _T("Booking information", "events") }}
@@ -74,7 +74,7 @@
- + {{ _T("Activities", "events") }}
@@ -99,7 +99,7 @@ {% if login.isAdmin() or login.isStaff() %}
- + {{ _T("Financial information", "events") }}
@@ -138,7 +138,7 @@ {% endif %}
@@ -146,17 +146,12 @@ {% endblock %} {% block javascripts %} + {% if login.isAdmin() or login.isStaff() or login.isGroupManager() %} + {% endif %} {% endblock %} diff --git a/templates/default/bookings.html.twig b/templates/default/bookings.html.twig index d373d746..fbd5159a 100644 --- a/templates/default/bookings.html.twig +++ b/templates/default/bookings.html.twig @@ -102,8 +102,8 @@
-
- +
+
@@ -127,7 +127,7 @@
+
+
{% endblock %} {% block javascripts %} - - + {% set calendar_options = { + 'dataurl': url_for("ajax-events_calendar"), + 'locale': i18n.getWebID(), + 'buttons': { + 'listDay': {'text': _T("Daily list", "events")}, + 'listWeek': {'text': _T("Weekly list", "events")}, + 'listMonth': {'text': _T("Monthly list", "events")}, + 'dayGridMonth': {'text': _T("Month calendar", "events")}, + 'today': {'text': _T("Today", "events")} + } + } %} + + {% endblock %} diff --git a/templates/default/event.html.twig b/templates/default/event.html.twig index fd08bca5..c45f3b26 100644 --- a/templates/default/event.html.twig +++ b/templates/default/event.html.twig @@ -10,7 +10,7 @@
- + {{ _T("General information", "events") }}
@@ -71,7 +71,7 @@
- + {{ _T("Location", "events") }}
@@ -104,88 +104,82 @@
- + {{ _T("Activities", "events") }}
-
-

{% set availables = event.availableActivities() %} {% set activities = event.getActivities() %} - {% if availables|length or activities|length %} {% if availables|length %} - - +

+ {% include "components/forms/select.html.twig" with { + id: 'attach_activity', + value: '', + values: attach_values, + label: _T("Add selected activity to event", "events"), + component_class: 'twelve wide field' + } %} +
+ +
+
{% endif %} {% if activities|length %} - - - {% endif %} -

- {% if activities|length %} +
+ {% include "components/forms/select.html.twig" with { + id: 'detach_activity', + value: '', + values: detach_values, + label: _T("Remove selected activity from event", "events"), + component_class: 'twelve wide field' + } %} +
+ +
+
+ + {% set status_values = { + (constant('GaletteEvents\\Activity::YES')): _T("Yes"), + (constant('GaletteEvents\\Activity::NO')): _T("No"), + (constant('GaletteEvents\\Activity::REQUIRED')): _T("Required", "events") + } %} {% for item in activities %} - {% set activity = item.activity %} -

- - - -

+ + {% include "components/forms/select.html.twig" with { + id: 'activities_status_' ~ item.activity.getId(), + name: 'activities_status[]', + value: item.status, + values: status_values, + label: item.activity.getName() + } %} {% endfor %} {% endif %} {% else %} -

{{ _T("No activity available in the database.", "events") }}

+

{{ _T("No activity available in the database.", "events") }}

{% endif %} -
{% endblock %} - -{% block javascripts %} - -{% endblock %} diff --git a/templates/default/events.html.twig b/templates/default/events.html.twig index 60f6dd1b..f74174ce 100644 --- a/templates/default/events.html.twig +++ b/templates/default/events.html.twig @@ -78,7 +78,7 @@ {{ event.getTown() }} {{ event.getGroupName() }} - + {% if event.isOpen() %} {{ _T("Event is open", "events") }} diff --git a/templates/default/scripts.html.twig b/templates/default/scripts.html.twig new file mode 100644 index 00000000..60cae56b --- /dev/null +++ b/templates/default/scripts.html.twig @@ -0,0 +1,10 @@ +{# + # This file is part of Galette Events plugin (https://galette.eu). + # SPDX-FileCopyrightText: Copyright © 2018-2026 The Galette Team + # SPDX-License-Identifier: GPL-3.0-or-later + #} + +{# plugin pages only #} +{% if cur_route starts with 'events_' %} + +{% endif %} diff --git a/tests/GaletteEvents/Controllers/Crud/tests/units/BookingsController.php b/tests/GaletteEvents/Controllers/Crud/tests/units/BookingsController.php index 18d93115..40b5bcc1 100644 --- a/tests/GaletteEvents/Controllers/Crud/tests/units/BookingsController.php +++ b/tests/GaletteEvents/Controllers/Crud/tests/units/BookingsController.php @@ -660,4 +660,21 @@ public function testFilterOnEvent(): void $this->assertNull($this->session->plugin_events_bookings_filter->event_filter); $this->expectNoLogEntry(); } + + /** + * Bookings list shows the total amount of listed bookings + */ + public function testListTotal(): void + { + $member_one = $this->getMemberOne(); + $member_two = $this->getMemberTwo(); + $event = $this->insertEvent('Event'); + $this->insertBooking($event, $member_one->id, ['payment_amount' => 12.5]); + $this->insertBooking($event, $member_two->id, ['payment_amount' => 7]); + $this->logSuperAdmin(); + + $body = (string)$this->app->handle($this->createRequest('events_bookings', ['event' => (string)$event]))->getBody(); + $this->assertStringContainsString('Found bookings total 19.5', $body); + $this->expectNoLogEntry(); + } } diff --git a/tests/GaletteEvents/Controllers/Crud/tests/units/EventsController.php b/tests/GaletteEvents/Controllers/Crud/tests/units/EventsController.php index 9e510ed6..c8c370c2 100644 --- a/tests/GaletteEvents/Controllers/Crud/tests/units/EventsController.php +++ b/tests/GaletteEvents/Controllers/Crud/tests/units/EventsController.php @@ -318,6 +318,20 @@ public function testCalendarCanEdit(): void $can_edit = array_column($events, 'can_edit', 'name'); ksort($can_edit); $this->assertSame(['Managed event' => true, 'Public event' => false], $can_edit); + + //links of the event modal come with the event + $by_name = array_column($events, null, 'name'); + $managed_id = (string)$by_name['Managed event']['id_event']; + $public_id = (string)$by_name['Public event']['id_event']; + $this->assertSame( + $this->routeparser->urlFor('events_event_edit', ['id' => $managed_id]), + $by_name['Managed event']['edit_url'] + ); + $this->assertArrayNotHasKey('edit_url', $by_name['Public event']); + $this->assertSame( + $this->routeparser->urlFor('events_booking_add') . '?event=' . $public_id, + $by_name['Public event']['booking_url'] + ); } /** @@ -445,6 +459,46 @@ public function testCalendarPage(): void $body = (string)$test_response->getBody(); $this->assertStringContainsString('
', $body); $this->assertStringContainsString('js/calendar.bundle.js', $body); - $this->assertStringContainsString($this->routeparser->urlFor('ajax-events_calendar'), $body); + $this->assertStringContainsString('