diff --git a/app/controllers/resources/room_request.php b/app/controllers/resources/room_request.php index 4c51bebda9665606938c359e5cbc05a618fdfbc3..9178b64eac6fdc7fad2c9fc7e854b75bec52b795 100644 --- a/app/controllers/resources/room_request.php +++ b/app/controllers/resources/room_request.php @@ -474,7 +474,7 @@ class Resources_RoomRequestController extends AuthenticatedController $end = new DateTime(); $begin->setTimestamp($interval['begin']); $end->setTimestamp($interval['end']); - $availability[] = $room->isAvailable($begin, $end, $interval['booking_id'] ? [$interval['booking_id']] : []); + $availability[] = $room->isAvailable($begin, $end, !empty($interval['booking_id']) ? [$interval['booking_id']] : []); } return $availability; @@ -759,7 +759,7 @@ class Resources_RoomRequestController extends AuthenticatedController $new_begin->setTime( $begin_time_arr[0], $begin_time_arr[1], - $begin_time_arr[2] + $begin_time_arr[2] ?? 0 ); $new_end = new DateTime(); $new_end->setDate( @@ -770,7 +770,7 @@ class Resources_RoomRequestController extends AuthenticatedController $new_end->setTime( $end_time_arr[0], $end_time_arr[1], - $end_time_arr[2] + $end_time_arr[2] ?? 0 ); try { @@ -1435,7 +1435,7 @@ class Resources_RoomRequestController extends AuthenticatedController $booked_rooms = []; foreach($this->request_time_intervals as $key => $data) { foreach ($data['intervals'] as $timeslot) { - if (!isset($booked_rooms[$timeslot['booked_room']])) { + if (!empty($timeslot['booked_room']) && !isset($booked_rooms[$timeslot['booked_room']])) { $room = Room::find($timeslot['booked_room']); if ($room) { $booked_rooms[$timeslot['booked_room']] = $room; @@ -1739,7 +1739,7 @@ class Resources_RoomRequestController extends AuthenticatedController if ($save_only) { // redirect to reload all infos and showing the most current ones $this->redirect('resources/room_request/resolve/' . $request_id); - } elseif (Request::isDialog() && Context::get()->id) { + } elseif (Request::isDialog() && Context::get()) { $this->response->add_header('X-Dialog-Execute', '{"func": "STUDIP.AdminCourses.App.loadCourse", "payload": "' . Context::get()->id . '"}'); } } diff --git a/app/views/resources/room_request/_add_edit_form.php b/app/views/resources/room_request/_add_edit_form.php index 1650961113e5ad110e299800c668638068b1872b..f6c69e89ff1a3920aba912b1828f8128b9fda0c8 100644 --- a/app/views/resources/room_request/_add_edit_form.php +++ b/app/views/resources/room_request/_add_edit_form.php @@ -1,6 +1,6 @@ <? if ($show_form): ?> <form class="default" method="post" action="<?= $form_action_link ?>" data-dialog="reload-on-close"> - <input type="hidden" name="origin_url" value="<?= htmlReady($origin_url) ?>"> + <input type="hidden" name="origin_url" value="<?= htmlReady($origin_url ?? '') ?>"> <label> <input type="checkbox" <?= ($begin_date_str != $end_date_str) ? 'checked' : ''; ?> onClick="$('#end_date_section').toggle();"> diff --git a/app/views/resources/room_request/resolve_room_tr.php b/app/views/resources/room_request/resolve_room_tr.php index 42839b7e613777fc17015c3f8bc52ba8d1bd71f2..0d3cf8c894eefe2dd619bae140e7382ee4fe3b9c 100644 --- a/app/views/resources/room_request/resolve_room_tr.php +++ b/app/views/resources/room_request/resolve_room_tr.php @@ -1,3 +1,21 @@ +<?php +/** + * @var Room $room + * @var User $current_user + * @var array $time_intervals + * @var Resources_RoomPlanningController $controller + * @var string $underload + * @var array $room_availability_share + * @var array $unavailable_dates + * @var array $amount_of_dates + * @var array $metadate_availability_share + * @var array $selected_rooms + * @var array $unavailable_metadate_dates + * @var array $amount_of_metadate_dates + * @var array $room_availability + */ +?> + <tr class="nohover"> <td class="nowrap"> <? if ($room->bookingPlanVisibleForUser($current_user)): ?> @@ -21,7 +39,7 @@ <? endif ?> <?= tooltipIcon($room->room_type) ?> ā€“ <?= htmlReady(sprintf('%d SitzplƤtze', $room->seats)) ?> - <? if ($underload) : ?> + <? if (!empty($underload)) : ?> [<?= htmlReady($underload) ?>%] <? endif ?> </td> @@ -71,15 +89,15 @@ $amount_of_metadate_dates[$room->id][$metadate_id] )) ?> <? endif ?> - <? $stats = 0; array_walk($data['intervals'], function(&$item, $key, $room_id) use (&$stats) { - if ($item['booked_room'] == $room_id) { + <? $stats = 0; array_walk($data['intervals'], function($item, $key, $room_id) use (&$stats) { + if ($item['booked_room'] === $room_id) { $stats++; } }, $room->id) ?> <? if ($stats > 0) : ?> <?= tooltipIcon(sprintf( _('%s von %s Terminen sind in diesem Raum'), - $stats, sizeof($data['intervals']) + $stats, count($data['intervals']) )); ?> <? endif ?> @@ -88,7 +106,7 @@ <? $i = 0 ?> <? foreach($data['intervals'] as $interval) : ?> <? - $available = $room_availability[$room->id][$metadate_id][$i]; + $available = !empty($room_availability[$room->id][$metadate_id][$i]); $range_index = $interval['range'] . '_' . $interval['range_id']; $room_radio_name = 'selected_rooms[' . $range_index . ']'; ?> @@ -97,8 +115,8 @@ <input type="radio" name="<?= htmlReady($room_radio_name) ?>" class="text-bottom radio-<?= htmlReady($room->id) ?>" value="<?= htmlReady($room->id) ?>" - <?= ($selected_rooms[$range_index] == $room->id - || $interval['booked_room'] == $room->id) + <?= (!empty($selected_rooms[$range_index]) && $selected_rooms[$range_index] === $room->id + || (!empty($interval['booked_room']) && $interval['booked_room'] === $room->id)) ? 'checked="checked"' : ''?>> <?= Icon::create('check-circle', Icon::ROLE_STATUS_GREEN)->asImg(['class' => 'text-bottom']) ?>