From 4e09ee3eb255160c88a378375d69123a3e000497 Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Thu, 11 Oct 2018 01:26:34 +0200 Subject: Replaced more user related stuff (Contains some buggy stuff too...) --- includes/view/AngelTypes_view.php | 22 +++---- includes/view/ShiftEntry_view.php | 4 +- includes/view/UserAngelTypes_view.php | 8 +-- includes/view/User_view.php | 108 ++++++++++++++++++---------------- 4 files changed, 74 insertions(+), 68 deletions(-) (limited to 'includes/view') diff --git a/includes/view/AngelTypes_view.php b/includes/view/AngelTypes_view.php index be79cbb9..3ce063ab 100644 --- a/includes/view/AngelTypes_view.php +++ b/includes/view/AngelTypes_view.php @@ -190,10 +190,10 @@ function AngelType_view_buttons($angeltype, $user_angeltype, $admin_angeltypes, /** * Renders and sorts the members of an angeltype into supporters, members and unconfirmed members. * - * @param array $angeltype - * @param array $members - * @param bool $admin_user_angeltypes - * @param bool $admin_angeltypes + * @param array $angeltype + * @param User[] $members + * @param bool $admin_user_angeltypes + * @param bool $admin_angeltypes * @return array [supporters, members, unconfirmed members] */ function AngelType_view_members($angeltype, $members, $admin_user_angeltypes, $admin_angeltypes) @@ -202,7 +202,7 @@ function AngelType_view_members($angeltype, $members, $admin_user_angeltypes, $a $members_confirmed = []; $members_unconfirmed = []; foreach ($members as $member) { - $member['Nick'] = User_Nick_render($member); + $member->name = User_Nick_render($member); if ($angeltype['requires_driver_license']) { $member['wants_to_drive'] = glyph_bool($member['wants_to_drive']); $member['has_car'] = glyph_bool($member['has_car']); @@ -317,7 +317,7 @@ function AngelType_view_table_headers($angeltype, $supporter, $admin_angeltypes) * Render an angeltype page containing the member lists. * * @param array $angeltype - * @param array[] $members + * @param User[] $members * @param array $user_angeltype * @param bool $admin_user_angeltypes * @param bool $admin_angeltypes @@ -380,11 +380,11 @@ function AngelType_view_shifts($angeltype, $shiftsFilterRenderer, $shiftCalendar } /** - * @param array $angeltype - * @param array $members - * @param bool $admin_user_angeltypes - * @param bool $admin_angeltypes - * @param bool $supporter + * @param array $angeltype + * @param User[] $members + * @param bool $admin_user_angeltypes + * @param bool $admin_angeltypes + * @param bool $supporter * @return string HTML */ function AngelType_view_info( diff --git a/includes/view/ShiftEntry_view.php b/includes/view/ShiftEntry_view.php index 51f02cce..9b528256 100644 --- a/includes/view/ShiftEntry_view.php +++ b/includes/view/ShiftEntry_view.php @@ -76,7 +76,7 @@ function ShiftEntry_delete_title() * @param array $room * @param array $angeltype * @param array $angeltypes_select - * @param array $signup_user + * @param User $signup_user * @param array $users_select * @return string */ @@ -90,7 +90,7 @@ function ShiftEntry_create_view_admin($shift, $room, $angeltype, $angeltypes_sel 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_select('user_id', __('User'), $users_select, $signup_user->id), form_submit('submit', glyph('ok') . __('Save')) ]) ]); diff --git a/includes/view/UserAngelTypes_view.php b/includes/view/UserAngelTypes_view.php index 0702a2b3..78bf6fe9 100644 --- a/includes/view/UserAngelTypes_view.php +++ b/includes/view/UserAngelTypes_view.php @@ -147,7 +147,7 @@ function UserAngelType_delete_view($user_angeltype, $user, $angeltype) /** * @param array $angeltype - * @param array[] $users_source + * @param User[] $users_source * @param int $user_id * @return string */ @@ -155,7 +155,7 @@ function UserAngelType_add_view($angeltype, $users_source, $user_id) { $users = []; foreach ($users_source as $user_source) { - $users[$user_source['UID']] = User_Nick_render($user_source); + $users[$user_source->id] = User_Nick_render($user_source); } return page_with_title(__('Add user to angeltype'), [ @@ -176,7 +176,7 @@ function UserAngelType_add_view($angeltype, $users_source, $user_id) } /** - * @param array $user + * @param User $user * @param array $angeltype * @return string */ @@ -194,7 +194,7 @@ function UserAngelType_join_view($user, $angeltype) button( page_link_to( 'user_angeltypes', - ['action' => 'add', 'angeltype_id' => $angeltype['id'], 'user_id' => $user['UID'], 'confirmed' => 1] + ['action' => 'add', 'angeltype_id' => $angeltype['id'], 'user_id' => $user->id, 'confirmed' => 1] ), glyph('ok') . __('save'), 'btn-primary' diff --git a/includes/view/User_view.php b/includes/view/User_view.php index 1c1aa30a..bcf9aff7 100644 --- a/includes/view/User_view.php +++ b/includes/view/User_view.php @@ -6,7 +6,7 @@ use Engelsystem\Models\User\User; /** * Renders user settings page * - * @param array $user_source The user + * @param User $user_source The user * @param array $locales Available languages * @param array $themes Available themes * @param int $buildup_start_date Unix timestamp @@ -24,6 +24,7 @@ function User_settings_view( $enable_tshirt_size, $tshirt_sizes ) { + $personalData = $user_source->personalData; return page_with_title(settings_title(), [ msg(), div('row', [ @@ -31,48 +32,44 @@ function User_settings_view( form([ form_info('', __('Here you can change your user details.')), form_info(entry_required() . ' = ' . __('Entry required!')), - form_text('nick', __('Nick'), $user_source['Nick'], true), - form_text('lastname', __('Last name'), $user_source['Name']), - form_text('prename', __('First name'), $user_source['Vorname']), + form_text('nick', __('Nick'), $user_source->name, true), + form_text('lastname', __('Last name'), $user_source->personalData->last_name), + form_text('prename', __('First name'), $user_source->personalData->first_name), form_date( 'planned_arrival_date', __('Planned date of arrival') . ' ' . entry_required(), - $user_source['planned_arrival_date'], + $personalData->arrival_date ? $personalData->arrival_date->getTimestamp() : '', $buildup_start_date, $teardown_end_date ), form_date( 'planned_departure_date', __('Planned date of departure'), - $user_source['planned_departure_date'], + $personalData->planned_departure_date ? $personalData->planned_departure_date->getTimestamp() : '', $buildup_start_date, $teardown_end_date ), - form_text('age', __('Age'), $user_source['Alter']), - form_text('tel', __('Phone'), $user_source['Telefon']), - form_text('dect', __('DECT'), $user_source['DECT']), - form_text('mobile', __('Mobile'), $user_source['Handy']), - form_text('mail', __('E-Mail') . ' ' . entry_required(), $user_source['email']), + form_text('dect', __('DECT'), $user_source->contact->dect), + form_text('mobile', __('Mobile'), $user_source->contact->mobile), + form_text('mail', __('E-Mail') . ' ' . entry_required(), $user_source->contact->email), form_checkbox( 'email_shiftinfo', __( 'The %s is allowed to send me an email (e.g. when my shifts change)', [config('app_name')] ), - $user_source['email_shiftinfo'] + $user_source->settings->email_shiftinfo ), form_checkbox( 'email_by_human_allowed', __('Humans are allowed to send me an email (e.g. for ticket vouchers)'), - $user_source['email_by_human_allowed'] + $user_source->settings->email_human ), - form_text('jabber', __('Jabber'), $user_source['jabber']), - form_text('hometown', __('Hometown'), $user_source['Hometown']), $enable_tshirt_size ? form_select( 'tshirt_size', __('Shirt size'), $tshirt_sizes, - $user_source['Size'], + $user_source->personalData->shirt_size, __('Please select...') ) : '', form_info('', __('Please visit the angeltypes page to manage your angeltypes.')), @@ -89,12 +86,12 @@ function User_settings_view( ]), form([ form_info(__('Here you can choose your color settings:')), - form_select('theme', __('Color settings:'), $themes, $user_source['color']), + form_select('theme', __('Color settings:'), $themes, $user_source->settings->theme), form_submit('submit_theme', __('Save')) ]), form([ form_info(__('Here you can choose your language:')), - form_select('language', __('Language:'), $locales, $user_source['Sprache']), + form_select('language', __('Language:'), $locales, $user_source->settings->language), form_submit('submit_language', __('Save')) ]) ]) @@ -194,14 +191,14 @@ function User_edit_vouchers_view($user) } /** - * @param array[] $users - * @param string $order_by - * @param int $arrived_count - * @param int $active_count - * @param int $force_active_count - * @param int $freeloads_count - * @param int $tshirts_count - * @param int $voucher_count + * @param User[] $users + * @param string $order_by + * @param int $arrived_count + * @param int $active_count + * @param int $force_active_count + * @param int $freeloads_count + * @param int $tshirts_count + * @param int $voucher_count * @return string */ function Users_view( @@ -214,18 +211,28 @@ function Users_view( $tshirts_count, $voucher_count ) { - foreach ($users as &$user) { - $user['Nick'] = User_Nick_render($user); - $user['Gekommen'] = glyph_bool($user['Gekommen']); - $user['Aktiv'] = glyph_bool($user['Aktiv']); - $user['force_active'] = glyph_bool($user['force_active']); - $user['Tshirt'] = glyph_bool($user['Tshirt']); - $user['lastLogIn'] = date(__('m/d/Y h:i a'), $user['lastLogIn']); - $user['actions'] = table_buttons([ - button_glyph(page_link_to('admin_user', ['id' => $user['UID']]), 'edit', 'btn-xs') + + $usersList = []; + foreach ($users as $user) { + $u = []; + $u['Nick'] = User_Nick_render($user); + $u['Vorname'] = $user->personalData->first_name; + $u['Name'] = $user->personalData->last_name; + $u['DECT'] = $user->contact->dect; + $u['Gekommen'] = glyph_bool($user->state->arrived); + $u['got_voucher'] = glyph_bool($user->state->got_voucher); + $u['freeloads'] = $user->getAttribute('freeloads'); + $u['Aktiv'] = glyph_bool($user->state->active); + $u['force_active'] = glyph_bool($user->state->force_active); + $u['Tshirt'] = glyph_bool($user->state->got_shirt); + $u['Size'] = $user->personalData->shirt_size; + $u['lastLogIn'] = $user->last_login_at ? $user->last_login_at->format(__('m/d/Y h:i a')) : ''; + $u['actions'] = table_buttons([ + button_glyph(page_link_to('admin_user', ['id' => $user->id]), 'edit', 'btn-xs') ]); + $usersList[] = $u; } - $users[] = [ + $usersList[] = [ 'Nick' => '' . __('Sum') . '', 'Gekommen' => $arrived_count, 'got_voucher' => $voucher_count, @@ -233,7 +240,7 @@ function Users_view( 'force_active' => $force_active_count, 'freeloads' => $freeloads_count, 'Tshirt' => $tshirts_count, - 'actions' => '' . count($users) . '' + 'actions' => '' . count($usersList) . '' ]; return page_with_title(__('All users'), [ @@ -255,7 +262,7 @@ function Users_view( 'Size' => Users_table_header_link('Size', __('Size'), $order_by), 'lastLogIn' => Users_table_header_link('lastLogIn', __('Last login'), $order_by), 'actions' => '' - ], $users) + ], $usersList) ]); } @@ -281,19 +288,18 @@ function Users_table_header_link($column, $label, $order_by) function User_shift_state_render($user) { if ($user instanceof User) { - $userModel = $user; - $user = [ - 'Gekommen' => $userModel->state->arrived, - 'UID' => $user->id, - ]; + $id = $user->id; + $arrived = $user->state->arrived; + } else { + $arrived = $user['Gekommen']; + $id = $user['UID']; } - if (!$user['Gekommen']) { + if (!$arrived) { return ''; } - $upcoming_shifts = ShiftEntries_upcoming_for_user($user['UID']); - + $upcoming_shifts = ShiftEntries_upcoming_for_user($id); if (empty($upcoming_shifts)) { return '' . __('Free') . ''; } @@ -424,7 +430,7 @@ function User_view_myshift($shift, $user_source, $its_me) * @param int $tshirt_score * @param bool $tshirt_admin * @param array[] $user_worklogs - * @param $admin_user_worklog_privilege + * @param bool $admin_user_worklog_privilege * @return array */ function User_view_myshifts( @@ -437,19 +443,19 @@ function User_view_myshifts( $admin_user_worklog_privilege ) { $myshifts_table = []; - $timesum = 0; + $timeSum = 0; foreach ($shifts as $shift) { $myshifts_table[$shift['start']] = User_view_myshift($shift, $user_source, $its_me); if (!$shift['freeloaded']) { - $timesum += ($shift['end'] - $shift['start']); + $timeSum += ($shift['end'] - $shift['start']); } } if ($its_me || $admin_user_worklog_privilege) { foreach ($user_worklogs as $worklog) { $myshifts_table[$worklog['work_timestamp']] = User_view_worklog($worklog, $admin_user_worklog_privilege); - $timesum += $worklog['work_hours'] * 3600; + $timeSum += $worklog['work_hours'] * 3600; } } @@ -457,7 +463,7 @@ function User_view_myshifts( ksort($myshifts_table); $myshifts_table[] = [ 'date' => '' . __('Sum:') . '', - 'duration' => '' . sprintf('%.2f', round($timesum / 3600, 2)) . ' h', + 'duration' => '' . sprintf('%.2f', round($timeSum / 3600, 2)) . ' h', 'room' => '', 'shift_info' => '', 'comment' => '', -- cgit v1.2.3-54-g00ecf