From c680179bf8f642cbcab7ad8c7b1c264d57c07974 Mon Sep 17 00:00:00 2001
From: Moritz Strohm <strohm@data-quest.de>
Date: Fri, 9 Sep 2022 10:40:19 +0000
Subject: [PATCH] do not allow editing the booking style, re #549

Merge request studip/studip!991
---
 .../resources/booking/_add_edit_form.php      | 52 ++++++++++++-------
 .../assets/javascripts/bootstrap/resources.js |  8 ++-
 2 files changed, 38 insertions(+), 22 deletions(-)

diff --git a/app/views/resources/booking/_add_edit_form.php b/app/views/resources/booking/_add_edit_form.php
index 0c87272ca2e..a0c9ccbcfe3 100644
--- a/app/views/resources/booking/_add_edit_form.php
+++ b/app/views/resources/booking/_add_edit_form.php
@@ -208,29 +208,41 @@
             <section class="fieldset-row inner-row">
                 <fieldset id="BookingTypeFieldset">
                     <legend><?= _('Art des Termins') ?></legend>
-                    <div class="booking-type-item">
-                        <label>
-                            <input type="radio" name="booking_style" value="single"
-                                <?= empty($block_booking) || $booking_style == 'single'
-                                    ? 'checked="checked"'
-                                    : '' ?>
-                                   class="booking-type-item">
+                    <? if ($mode == 'add'): ?>
+                        <div class="booking-type-item">
+                            <label>
+                                <input type="radio" name="booking_style" value="single"
+                                    <?= empty($block_booking) || $booking_style == 'single'
+                                        ? 'checked="checked"'
+                                        : '' ?>
+                                       class="booking-type-item">
+                                <?= _('Einzeltermin') ?>
+                            </label>
+                            <label title="<?= _('Konvolut'); ?>">
+                                <input type="radio" name="booking_style" value="block"
+                                    <?= !empty($block_booking) || $booking_style == 'block' ? 'checked="checked"' : '' ?>
+                                       class="booking-type-item">
+                                <?= _('Terminblock') ?>
+                            </label>
+                            <label>
+                                <input type="radio" name="booking_style" value="repeat"
+                                    <?= $booking_style == 'repeat' ? 'checked="checked"' : '' ?>
+                                       class="booking-type-item">
+                                <?= _('Wiederholungstermine') ?>
+                            </label>
+                        </div>
+                    <? else: ?>
+                        <? if ($booking_style == 'single'): ?>
+                            <input type="hidden" name="booking_style" value="single">
                             <?= _('Einzeltermin') ?>
-                        </label>
-                        <label title="<?= _('Konvolut'); ?>">
-                            <input type="radio" name="booking_style" value="block"
-                                <?= !empty($block_booking) || $booking_style == 'block' ? 'checked="checked"' : '' ?>
-                                   class="booking-type-item">
+                        <? elseif ($booking_style == 'block'): ?>
+                            <input type="hidden" name="booking_style" value="block">
                             <?= _('Terminblock') ?>
-                        </label>
-                        <label>
-                            <input type="radio" name="booking_style" value="repeat"
-                                <?= $booking_style == 'repeat' ? 'checked="checked"' : '' ?>
-                                   class="booking-type-item">
+                        <? elseif ($booking_style == 'repeat'): ?>
+                            <input type="hidden" name="booking_style" value="repeat">
                             <?= _('Wiederholungstermine') ?>
-                        </label>
-
-                    </div>
+                        <? endif ?>
+                    <? endif ?>
                 </fieldset>
 
                 <fieldset id="BlockBookingFieldset"
diff --git a/resources/assets/javascripts/bootstrap/resources.js b/resources/assets/javascripts/bootstrap/resources.js
index ebbc9c389a4..fcca09605ae 100644
--- a/resources/assets/javascripts/bootstrap/resources.js
+++ b/resources/assets/javascripts/bootstrap/resources.js
@@ -54,8 +54,12 @@ STUDIP.ready(function () {
 
     //Dialog for adding/editing bookings:
 
-    if (jQuery('form.create-booking-form').length) {
-        STUDIP.Resources.moveTimeOptions(jQuery('input[name="booking_style"]:checked').val());
+    if (jQuery('form.create-booking-form')) {
+        let time_option = jQuery('input[name="booking_style"]:checked').val();
+        if (!time_option) {
+            time_option = jQuery('input[name="booking_style"]').val();
+        }
+        STUDIP.Resources.moveTimeOptions(time_option);
     }
 
     //Set the date selector in the sidebar to the date from the session,
-- 
GitLab