diff options
author | msquare <msquare@notrademark.de> | 2017-12-20 00:54:57 +0100 |
---|---|---|
committer | msquare <msquare@notrademark.de> | 2017-12-20 00:54:57 +0100 |
commit | 7a3bdda483be2a32cc67bcf97b246edcb48c124e (patch) | |
tree | 99d5fffdff20c1920668fc2f463dffa842eae752 /includes | |
parent | 60da71ff7cbef189d09029446991b693690391b5 (diff) |
rewrite controller for creating shift entries
Diffstat (limited to 'includes')
-rw-r--r-- | includes/controller/shift_entries_controller.php | 32 | ||||
-rw-r--r-- | includes/view/Shifts_view.php | 2 |
2 files changed, 20 insertions, 14 deletions
diff --git a/includes/controller/shift_entries_controller.php b/includes/controller/shift_entries_controller.php index a0125ff4..96967b1e 100644 --- a/includes/controller/shift_entries_controller.php +++ b/includes/controller/shift_entries_controller.php @@ -179,6 +179,24 @@ function shift_entry_create_controller_supporter($shift, $angeltype) } /** + * Generates an error message for the given shift signup state. + * @param ShiftSignupState $shift_signup_state + */ +function shift_entry_error_message(ShiftSignupState $shift_signup_state) { + if ($shift_signup_state->getState() == ShiftSignupState::ANGELTYPE) { + error(_('You need be accepted member of the angeltype.')); + } elseif ($shift_signup_state->getState() == ShiftSignupState::COLLIDES) { + error(_('This shift collides with one of your shifts.')); + } elseif ($shift_signup_state->getState() == ShiftSignupState::OCCUPIED) { + error(_('This shift is already occupied.')); + } elseif ($shift_signup_state->getState() == ShiftSignupState::SHIFT_ENDED) { + error(_('This shift ended already.')); + } elseif ($shift_signup_state->getState() == ShiftSignupState::SIGNED_UP) { + error(_('You are signed up for this shift.')); + } +} + +/** * Sign up for a shift. * Case: User * @@ -193,21 +211,9 @@ function shift_entry_create_controller_user($shift, $angeltype) $signup_user = $user; $needed_angeltype = NeededAngeltype_by_Shift_and_Angeltype($shift, $angeltype); $shift_entries = ShiftEntries_by_shift_and_angeltype($shift['SID'], $angeltype['id']); - $shift_signup_state = Shift_signup_allowed($signup_user, $shift, $angeltype, null, null, $needed_angeltype, $shift_entries); - if (! $shift_signup_state->isSignupAllowed()) { - if ($shift_signup_state->getState() == ShiftSignupState::ANGELTYPE) { - error(_('You need be accepted member of the angeltype.')); - } elseif ($shift_signup_state->getState() == ShiftSignupState::COLLIDES) { - error(_('This shift collides with one of your shifts.')); - } elseif ($shift_signup_state->getState() == ShiftSignupState::OCCUPIED) { - error(_('This shift is already occupied.')); - } elseif ($shift_signup_state->getState() == ShiftSignupState::SHIFT_ENDED) { - error(_('This shift ended already.')); - } elseif ($shift_signup_state->getState() == ShiftSignupState::SIGNED_UP) { - error(_('You are signed up for this shift.')); - } + shift_entry_error_message($shift_signup_state); redirect(shift_link($shift)); } diff --git a/includes/view/Shifts_view.php b/includes/view/Shifts_view.php index 083477e6..0b71b77b 100644 --- a/includes/view/Shifts_view.php +++ b/includes/view/Shifts_view.php @@ -78,7 +78,7 @@ function Shift_signup_button_render($shift, $angeltype, $user_angeltype = null) } if ($angeltype['shift_signup_state']->isSignupAllowed()) { - return button(shift_entry_create_link($shift, $angeltype), _('Sign up')); + return button(shift_entry_create_link($shift, $angeltype), _('Sign up')); } elseif ($user_angeltype == null) { return button( page_link_to('angeltypes', ['action' => 'view', 'angeltype_id' => $angeltype['id']]), |