From 1289101f6e4b729018dba64e92b4c9397db67f2d Mon Sep 17 00:00:00 2001 From: msquare Date: Wed, 20 Dec 2017 00:42:58 +0100 Subject: rewrite controller for creating shift entries --- includes/view/ShiftEntry_view.php | 154 +++++++++++++++++++++++++------------- 1 file changed, 100 insertions(+), 54 deletions(-) (limited to 'includes/view/ShiftEntry_view.php') diff --git a/includes/view/ShiftEntry_view.php b/includes/view/ShiftEntry_view.php index 6dceac10..da99e9d8 100644 --- a/includes/view/ShiftEntry_view.php +++ b/includes/view/ShiftEntry_view.php @@ -10,92 +10,138 @@ * * @return string HTML */ -function ShiftEntry_delete_view_admin($shiftEntry, $shift, $angeltype, $signoff_user) { +function ShiftEntry_delete_view_admin($shiftEntry, $shift, $angeltype, $signoff_user) +{ return page_with_title(ShiftEntry_delete_title(), [ - info(sprintf( - _('Do you want to sign off %s from shift %s from %s to %s as %s?'), - User_Nick_render($signoff_user), - $shift['name'], - date('Y-m-d H:i', $shift['start']), - date('Y-m-d H:i', $shift['end']), - $angeltype['name'] - ), true), + info(sprintf(_('Do you want to sign off %s from shift %s from %s to %s as %s?'), User_Nick_render($signoff_user), $shift['name'], date('Y-m-d H:i', $shift['start']), date('Y-m-d H:i', $shift['end']), $angeltype['name']), true), buttons([ button(user_link($signoff_user), glyph('remove') . _('cancel')), - button(ShiftEntry_delete_link($shiftEntry, ['continue' => 1]), glyph('ok') . _('delete'), 'btn-danger') + button(shift_entry_delete_link($shiftEntry, [ + 'continue' => 1 + ]), glyph('ok') . _('delete'), 'btn-danger') ]) ]); } /** * Sign off from a shift, asking for ack. - * - * @param array $shiftEntry - * @param array $shift - * @param array $angeltype - * @param array $signoff_user - * + * + * @param array $shiftEntry + * @param array $shift + * @param array $angeltype + * @param array $signoff_user + * * @return string HTML */ -function ShiftEntry_delete_view($shiftEntry, $shift, $angeltype, $signoff_user) { +function ShiftEntry_delete_view($shiftEntry, $shift, $angeltype, $signoff_user) +{ return page_with_title(ShiftEntry_delete_title(), [ - info(sprintf( - _('Do you want to sign off from your shift %s from %s to %s as %s?'), - $shift['name'], - date('Y-m-d H:i', $shift['start']), - date('Y-m-d H:i', $shift['end']), - $angeltype['name'] - ), true), + info(sprintf(_('Do you want to sign off from your shift %s from %s to %s as %s?'), $shift['name'], date('Y-m-d H:i', $shift['start']), date('Y-m-d H:i', $shift['end']), $angeltype['name']), true), buttons([ button(user_link($signoff_user), glyph('remove') . _('cancel')), - button(ShiftEntry_delete_link($shiftEntry, ['continue' => 1]), glyph('ok') . _('delete'), 'btn-danger') + button(shift_entry_delete_link($shiftEntry, [ + 'continue' => 1 + ]), glyph('ok') . _('delete'), 'btn-danger') ]) ]); } /** - * Link to delete a shift entry. - * @param array $shiftEntry + * Title for deleting a shift entry. + */ +function ShiftEntry_delete_title() +{ + return _('Shift sign off'); +} + +/** + * Admin puts user into shift. + * + * @param array $shift + * @param array $room + * @param array $angeltype + * @param array $angeltypes_select + * @param array $signup_user + * @param array $users_select + */ +function ShiftEntry_create_view_admin($shift, $room, $angeltype, $angeltypes_select, $signup_user, $users_select) +{ + return page_with_title(ShiftEntry_create_title() . ': ' . $shift['name'] . ' %c', [ + Shift_view_header($shift, $room), + info(_('Do you want to sign up the following user for this shift?'), true), + form([ + form_select('angeltype_id', _('Angeltype'), $angeltypes_select, $angeltype['id']), + form_select('user_id', _('User'), $users_select, $signup_user['UID']), + form_submit('submit', glyph('ok') . _('Save')) + ]) + ]); +} + +/** + * Supporter puts user into shift. + * + * @param array $shift + * @param array $room + * @param array $angeltype + * @param array $signup_user + * @param array $users_select + */ +function ShiftEntry_create_view_supporter($shift, $room, $angeltype, $signup_user, $users_select) +{ + return page_with_title(ShiftEntry_create_title() . ': ' . $shift['name'] . ' %c', [ + Shift_view_header($shift, $room), + info(sprintf(_('Do you want to sign up the following user for this shift as %s?'), AngelType_name_render($angeltype)), true), + form([ + form_select('user_id', _('User'), $users_select, $signup_user['UID']), + form_submit('submit', glyph('ok') . _('Save')) + ]) + ]); +} + +/** + * User joining a shift. * - * @return string URL + * @param array $shift + * @param array $room + * @param array $angeltype + * @param string $comment */ -function ShiftEntry_delete_link($shiftEntry, $params = []) { - $params = array_merge(['entry_id' => $shiftEntry['id']], $params); - return page_link_to('user_shifts', $params); +function ShiftEntry_create_view_user($shift, $room, $angeltype, $comment) +{ + return page_with_title(ShiftEntry_create_title() . ': ' . $shift['name'] . ' %c', [ + Shift_view_header($shift, $room), + info(sprintf(_('Do you want to sign up for this shift as %s?'), AngelType_name_render($angeltype)), true), + form([ + form_textarea('comment', _('Comment (for your eyes only):'), $comment), + form_submit('submit', glyph('ok') . _('Save')) + ]) + ]); } /** - * Title for deleting a shift entry. + * Title for creating a shift entry. */ -function ShiftEntry_delete_title() { - return _('Shift sign off'); +function ShiftEntry_create_title() +{ + return _('Shift signup'); } /** * Display form for adding/editing a shift entry. * - * @param string $angel - * @param string $date - * @param string $location - * @param string $title - * @param string $type - * @param string $comment - * @param bool $freeloaded - * @param string $freeload_comment - * @param bool $user_admin_shifts + * @param string $angel + * @param string $date + * @param string $location + * @param string $title + * @param string $type + * @param string $comment + * @param bool $freeloaded + * @param string $freeload_comment + * @param bool $user_admin_shifts * @return string */ -function ShiftEntry_edit_view( - $angel, - $date, - $location, - $title, - $type, - $comment, - $freeloaded, - $freeload_comment, - $user_admin_shifts = false -) { +function ShiftEntry_edit_view($angel, $date, $location, $title, $type, $comment, $freeloaded, $freeload_comment, $user_admin_shifts = false) +{ $freeload_form = []; if ($user_admin_shifts) { $freeload_form = [ -- cgit v1.2.3-70-g09d2