summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authormsquare <msquare@notrademark.de>2017-12-20 00:54:57 +0100
committermsquare <msquare@notrademark.de>2017-12-20 00:54:57 +0100
commit7a3bdda483be2a32cc67bcf97b246edcb48c124e (patch)
tree99d5fffdff20c1920668fc2f463dffa842eae752 /includes
parent60da71ff7cbef189d09029446991b693690391b5 (diff)
rewrite controller for creating shift entries
Diffstat (limited to 'includes')
-rw-r--r--includes/controller/shift_entries_controller.php32
-rw-r--r--includes/view/Shifts_view.php2
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']]),