diff --git a/app/controllers/course/timesrooms.php b/app/controllers/course/timesrooms.php index f24c2db2f52f76a2992f3e5a20a78bfc4f733c75..5ec99ccc632d9625fc8de3353ad48c44327bbd41 100644 --- a/app/controllers/course/timesrooms.php +++ b/app/controllers/course/timesrooms.php @@ -1124,7 +1124,8 @@ class Course_TimesroomsController extends AuthenticatedController if (in_array(Request::get('action'), ['room', 'freetext', 'noroom']) || Request::get('course_type')) { $success_cases = 0; - $errors = []; + $success_messages = []; + $error_messages = []; foreach ($singledates as $singledate) { if ($singledate instanceof CourseExDate) { continue; @@ -1133,7 +1134,7 @@ class Course_TimesroomsController extends AuthenticatedController $preparation_time = Request::get('preparation_time'); $max_preparation_time = Config::get()->RESOURCES_MAX_PREPARATION_TIME; if ($preparation_time > $max_preparation_time) { - $errors[] = sprintf( + $error_messages[] = sprintf( studip_interpolate( _('%{date}: Die eingegebene Rüstzeit überschreitet das erlaubte Maximum von %d Minuten!'), ['date' => $singledate->getFullName()] @@ -1149,7 +1150,7 @@ class Course_TimesroomsController extends AuthenticatedController try { $failure = !$singledate->bookRoom($room, intval($preparation_time)); } catch (ResourceBookingException $e) { - $errors[] = sprintf( + $error_messages[] = sprintf( _('Der angegebene Raum konnte für den Termin %1$s nicht gebucht werden: %2$s'), '<strong>' . htmlReady($singledate->getFullName()) . '</strong>', $e->getMessage() @@ -1157,7 +1158,7 @@ class Course_TimesroomsController extends AuthenticatedController } catch (ResourceBookingOverlapException $e) { $course = $e->getRange(); if ($course instanceof Course) { - $errors[] = studip_interpolate( + $error_messages[] = studip_interpolate( _('Der Raum %{room_name} wird an dem Termin %{date} bereits durch die Veranstaltung %{course_name} belegt.'), [ 'room_name' => $room->name, @@ -1166,7 +1167,7 @@ class Course_TimesroomsController extends AuthenticatedController ] ); } else { - $errors[] = studip_interpolate( + $error_messages[] = studip_interpolate( _('Der Raum %{room_name} wird an dem Termin %{date} bereits anderweitig belegt.'), [ 'room_name' => $room->name, @@ -1176,7 +1177,7 @@ class Course_TimesroomsController extends AuthenticatedController } } if ($failure) { - $errors[] = sprintf( + $error_messages[] = sprintf( _('Der angegebene Raum konnte für den Termin %s nicht gebucht werden!'), '<strong>' . htmlReady($singledate->getFullName()) . '</strong>' ); @@ -1195,44 +1196,44 @@ class Course_TimesroomsController extends AuthenticatedController if ($singledate->room_booking instanceof ResourceBooking) { $singledate->room_booking->delete(); } - PageLayout::postSuccess(sprintf( + $success_messages[] = sprintf( _('Der Termin %s wurde geändert, etwaige Raumbuchungen wurden entfernt und stattdessen der angegebene Freitext eingetragen!'), '<strong>' . htmlReady($singledate->getFullName()) . '</strong>' - )); + ); } elseif (Request::option('action') == 'noroom') { $singledate->raum = ''; $singledate->store(); if ($singledate->room_booking instanceof ResourceBooking) { $singledate->room_booking->delete(); } - PageLayout::postSuccess(sprintf( + $success_messages[] = sprintf( _('Der Termin %s wurde geändert, etwaige freie Ortsangaben und Raumbuchungen wurden entfernt.'), '<strong>' . htmlReady($singledate) . '</strong>' - )); + ); } if (Request::get('course_type') != '') { $singledate->date_typ = Request::get('course_type'); $singledate->store(); - PageLayout::postSuccess(sprintf( + $success_messages[] = sprintf( _('Die Art des Termins %s wurde geändert.'), '<strong>' . htmlReady($singledate) . '</strong>' - )); + ); } } - if ($success_cases > 0) { - if (!$errors) { - //Everything went well. - PageLayout::postSuccess(_('Die Änderungen wurden gespeichert.')); + if ($success_cases > 0 || count($success_messages) > 0) { + if (!$error_messages) { + // Everything went well. + PageLayout::postSuccess(_('Die Änderungen wurden gespeichert.'), $success_messages); } else { - //Not everything went well. - PageLayout::postWarning(_('Es konnten nicht alle Termine geändert werden.')); + // Not everything went well. + PageLayout::postWarning(_('Es konnten nicht alle Termine geändert werden.'), $success_messages); } } - if ($errors) { + if ($error_messages) { PageLayout::postError( _('Die folgenden Fehler traten auf:'), - $errors + $error_messages ); } }