From 92874a55503bbb28b5713b26953ed75a54fbfa9f Mon Sep 17 00:00:00 2001
From: Moritz Strohm <strohm@data-quest.de>
Date: Tue, 22 Oct 2024 08:09:05 +0000
Subject: [PATCH] fixed creating new all-day events, fixes #4657

Closes #4657

Merge request studip/studip!3482
---
 app/controllers/calendar/date.php          | 10 ++++++++--
 app/views/calendar/date/_add_edit_form.php |  4 ++--
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/app/controllers/calendar/date.php b/app/controllers/calendar/date.php
index bd60e384ca0..7eea76653ab 100644
--- a/app/controllers/calendar/date.php
+++ b/app/controllers/calendar/date.php
@@ -230,6 +230,12 @@ class Calendar_DateController extends AuthenticatedController
             $this->date->begin = Request::get('begin');
             $this->date->end = Request::get('end');
             $this->date->repetition_end = $this->date->end;
+        } elseif (Request::submitted('begin_str') && Request::submitted('end_str')) {
+            //Assume the textual format d.m.Y H:i:
+            $begin = Request::getDateTime('begin_str', 'd.m.Y H:i');
+            $end   = Request::getDateTime('end_str', 'd.m.Y H:i');
+            $this->date->begin = $begin->getTimestamp();
+            $this->date->end   = $end->getTimestamp();
         } else {
             $time = new DateTime();
             if (Request::submitted('timestamp')) {
@@ -393,8 +399,8 @@ class Calendar_DateController extends AuthenticatedController
             }
             $this->date->editor_id = $GLOBALS['user']->id;
 
-            $begin = Request::getDateTime('begin', 'd.m.Y H:i');
-            $end = Request::getDateTime('end', 'd.m.Y H:i');
+            $begin = Request::getDateTime('begin_str', 'd.m.Y H:i');
+            $end = Request::getDateTime('end_str', 'd.m.Y H:i');
             if (Request::get('all_day') === '1') {
                 $this->all_day_event = true;
                 $begin->setTime(0,0,0);
diff --git a/app/views/calendar/date/_add_edit_form.php b/app/views/calendar/date/_add_edit_form.php
index 842464773d8..bf4b5897eed 100644
--- a/app/views/calendar/date/_add_edit_form.php
+++ b/app/views/calendar/date/_add_edit_form.php
@@ -69,13 +69,13 @@
             <label class="studiprequired">
                 <?= _('Beginn') ?>
                 <span class="asterisk" title="<?= _('Dies ist ein Pflichtfeld') ?>" aria-hidden="true">*</span>
-                <input type="text" name="begin" class="begin-input" data-datetime-picker
+                <input type="text" name="begin_str" class="begin-input" data-datetime-picker
                        required="required" value="<?= date('d.m.Y H:i', $date->begin) ?>">
             </label>
             <label class="studiprequired">
                 <?= _('Ende') ?>
                 <span class="asterisk" title="<?= _('Dies ist ein Pflichtfeld') ?>" aria-hidden="true">*</span>
-                <input type="text" name="end" class="end-input" data-datetime-picker
+                <input type="text" name="end_str" class="end-input" data-datetime-picker
                        required="required" value="<?= date('d.m.Y H:i', $date->end) ?>">
             </label>
         </div>
-- 
GitLab