From 86a38a3372557bd72db309e7b24b4a4a95544397 Mon Sep 17 00:00:00 2001 From: msquare Date: Fri, 29 Dec 2017 17:19:27 +0100 Subject: add user work log entries feature --- includes/view/UserWorkLog_view.php | 95 ++++++++++++++++++++++++++++++++++++++ includes/view/User_view.php | 51 ++++++++++++++++++-- 2 files changed, 143 insertions(+), 3 deletions(-) create mode 100644 includes/view/UserWorkLog_view.php (limited to 'includes/view') diff --git a/includes/view/UserWorkLog_view.php b/includes/view/UserWorkLog_view.php new file mode 100644 index 00000000..86a367ae --- /dev/null +++ b/includes/view/UserWorkLog_view.php @@ -0,0 +1,95 @@ + 1 + ]), glyph('ok') . _('delete'), 'btn-danger') + ]) + ]); +} + +/** + * Title for work log delete. + */ +function UserWorkLog_delete_title() +{ + return _('Delete work log entry'); +} + +/** + * Render edit table. + * + * @param User $user_source + * @param UserWorkLog $userWorkLog + */ +function UserWorkLog_edit_form($user_source, $userWorkLog) +{ + return form([ + form_info(_('User'), User_Nick_render($user_source)), + form_text('work_hours', _('Work hours'), $userWorkLog['work_hours']), + form_text('comment', _('Comment'), $userWorkLog['comment']), + form_submit('submit', _('Add')) + ]); +} + +/** + * Form for edit a user work log entry. + * + * @param User $user_source + * @param UserWorkLog $userWorkLog + */ +function UserWorkLog_edit_view($user_source, $userWorkLog) +{ + return page_with_title(UserWorkLog_edit_title(), [ + buttons([ + button(user_link($user_source), _('back')) + ]), + msg(), + UserWorkLog_edit_form($user_source, $userWorkLog) + ]); +} + +/** + * Form for adding a user work log entry. + * + * @param User $user_source + * @param UserWorkLog $userWorkLog + */ +function UserWorkLog_add_view($user_source, $userWorkLog) +{ + return page_with_title(UserWorkLog_add_title(), [ + buttons([ + button(user_link($user_source), _('back')) + ]), + msg(), + UserWorkLog_edit_form($user_source, $userWorkLog) + ]); +} + +/** + * Title text for editing work log entry. + */ +function UserWorkLog_edit_title() +{ + return _('Edit work log entry'); +} + +/** + * Title text for adding work log entry. + */ +function UserWorkLog_add_title() +{ + return _('Add work log entry'); +} + +?> \ No newline at end of file diff --git a/includes/view/User_view.php b/includes/view/User_view.php index fff2952e..b1521ff8 100644 --- a/includes/view/User_view.php +++ b/includes/view/User_view.php @@ -408,7 +408,7 @@ function User_view_myshift($shift, $user_source, $its_me) * @param bool $its_me * @return array */ -function User_view_myshifts($shifts, $user_source, $its_me, $tshirt_score, $tshirt_admin) +function User_view_myshifts($shifts, $user_source, $its_me, $tshirt_score, $tshirt_admin, $user_worklogs, $admin_user_worklog_privilege) { $myshifts_table = []; $timesum = 0; @@ -420,6 +420,13 @@ function User_view_myshifts($shifts, $user_source, $its_me, $tshirt_score, $tshi } } + if($its_me || $admin_user_worklog_privilege) { + foreach($user_worklogs as $worklog) { + $myshifts_table[] = User_view_worklog($worklog, $admin_user_worklog_privilege); + $timesum += $worklog['work_hours'] * 3600; + } + } + if (count($myshifts_table) > 0) { $myshifts_table[] = [ 'date' => '' . _('Sum:') . '', @@ -443,6 +450,38 @@ function User_view_myshifts($shifts, $user_source, $its_me, $tshirt_score, $tshi return $myshifts_table; } +/** + * Renders table entry for user work log + * @param UserWorkLog $worklog + * @param bool $admin_user_worklog_privilege + */ +function User_view_worklog($worklog, $admin_user_worklog_privilege) { + $actions = ''; + if($admin_user_worklog_privilege) { + $actions = table_buttons([ + button( + user_worklog_edit_link($worklog), + glyph('edit') . _('edit'), + 'btn-xs' + ), + button( + user_worklog_delete_link($worklog), + glyph('trash') . _('delete'), + 'btn-xs' + ) + ]); + } + + return [ + 'date' => '', + 'duration' => '' . $worklog['work_hours'] . ' h', + 'room' => '', + 'shift_info' => _('Work log entry'), + 'comment' => $worklog['comment'], + 'actions' => $actions + ]; +} + /** * Renders view for a single user * @@ -466,12 +505,14 @@ function User_view( $shifts, $its_me, $tshirt_score, - $tshirt_admin + $tshirt_admin, + $admin_user_worklog_privilege, + $user_worklogs ) { $user_name = htmlspecialchars($user_source['Vorname']) . ' ' . htmlspecialchars($user_source['Name']); $myshifts_table = ''; if($its_me || $admin_user_privilege) { - $my_shifts = User_view_myshifts($shifts, $user_source, $its_me, $tshirt_score, $tshirt_admin); + $my_shifts = User_view_myshifts($shifts, $user_source, $its_me, $tshirt_score, $tshirt_admin, $user_worklogs, $admin_user_worklog_privilege); if(count($my_shifts) > 0) { $myshifts_table = table([ 'date' => _('Day & time'), @@ -514,6 +555,10 @@ function User_view( ), glyph('cutlery') . _('Edit vouchers') ) : '', + $admin_user_worklog_privilege ? button( + user_worklog_add_link($user_source), + glyph('list') . _('Add work log') + ) : '', $its_me ? button( page_link_to('user_settings'), glyph('list-alt') . _('Settings') -- cgit v1.2.3-54-g00ecf From d95e48889356eab85aff5ae7121aeb18115aef95 Mon Sep 17 00:00:00 2001 From: msquare Date: Fri, 29 Dec 2017 17:37:08 +0100 Subject: add work log creator infor --- includes/view/User_view.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'includes/view') diff --git a/includes/view/User_view.php b/includes/view/User_view.php index b1521ff8..82df1851 100644 --- a/includes/view/User_view.php +++ b/includes/view/User_view.php @@ -477,7 +477,12 @@ function User_view_worklog($worklog, $admin_user_worklog_privilege) { 'duration' => '' . $worklog['work_hours'] . ' h', 'room' => '', 'shift_info' => _('Work log entry'), - 'comment' => $worklog['comment'], + 'comment' => $worklog['comment'] . '
' + . sprintf( + _('Added by %s at %s'), + User_Nick_render(User($worklog['user_id'])), + date('Y-m-d H:i', $worklog['created_timestamp']) + ), 'actions' => $actions ]; } -- cgit v1.2.3-54-g00ecf From ee9fbda098b3c608176ced4425765e3029ca8f93 Mon Sep 17 00:00:00 2001 From: msquare Date: Fri, 29 Dec 2017 18:57:11 +0100 Subject: add work date to work log --- db/update.sql | 1 + includes/controller/user_worklog_controller.php | 6 ++ includes/model/UserWorkLog_model.php | 78 ++++++++++++++----------- includes/model/User_model.php | 4 +- includes/pages/admin_active.php | 8 ++- includes/view/UserWorkLog_view.php | 3 +- includes/view/User_view.php | 15 ++--- 7 files changed, 71 insertions(+), 44 deletions(-) (limited to 'includes/view') diff --git a/db/update.sql b/db/update.sql index f012e319..56663071 100644 --- a/db/update.sql +++ b/db/update.sql @@ -56,3 +56,4 @@ ALTER TABLE `UserWorkLog` ADD FOREIGN KEY (`created_user_id`) REFERENCES `User`( ALTER TABLE `UserWorkLog` ADD INDEX(`created_timestamp`); INSERT INTO `Privileges` (`id`, `name`, `desc`) VALUES (NULL, 'admin_user_worklog', 'Manage user work log entries.'); ALTER TABLE `UserWorkLog` CHANGE `work_hours` `work_hours` DECIMAL(10,2) NOT NULL; +ALTER TABLE `UserWorkLog` ADD `work_timestamp` INT NOT NULL AFTER `user_id`; diff --git a/includes/controller/user_worklog_controller.php b/includes/controller/user_worklog_controller.php index ba91534b..bd62c83c 100644 --- a/includes/controller/user_worklog_controller.php +++ b/includes/controller/user_worklog_controller.php @@ -69,6 +69,12 @@ function user_worklog_from_request($userWorkLog) $valid = true; + $userWorkLog['work_timestamp'] = parse_date('Y-m-d H:i', $request->input('work_timestamp') . ' 00:00'); + if ($userWorkLog['work_timestamp'] == null) { + $valid = false; + error(_('Please enter work date.')); + } + $userWorkLog['work_hours'] = $request->input('work_hours'); if (! preg_match("/[0-9]+(\.[0-9]+)?/", $userWorkLog['work_hours'])) { $valid = false; diff --git a/includes/model/UserWorkLog_model.php b/includes/model/UserWorkLog_model.php index 55e135ca..36442943 100644 --- a/includes/model/UserWorkLog_model.php +++ b/includes/model/UserWorkLog_model.php @@ -3,23 +3,32 @@ use Engelsystem\Database\Db; /** * Load a single work log entry. - * @param int $user_worklog_id + * + * @param int $user_worklog_id */ -function UserWorkLog($user_worklog_id) { - return Db::selectOne("SELECT * FROM `UserWorkLog` WHERE `id`=?", [$user_worklog_id]); +function UserWorkLog($user_worklog_id) +{ + return Db::selectOne("SELECT * FROM `UserWorkLog` WHERE `id`=?", [ + $user_worklog_id + ]); } /** * Returns all work log entries for a user. - * @param User $user + * + * @param User $user */ -function UserWorkLogsForUser($user) { - return Db::select("SELECT * FROM `UserWorkLog` WHERE `user_id`=? ORDER BY `created_timestamp`", [$user['UID']]); +function UserWorkLogsForUser($user) +{ + return Db::select("SELECT * FROM `UserWorkLog` WHERE `user_id`=? ORDER BY `created_timestamp`", [ + $user['UID'] + ]); } /** * Delete a work log entry. - * @param UserWorkLog $userWorkLog + * + * @param UserWorkLog $userWorkLog */ function UserWorkLog_delete($userWorkLog) { @@ -28,42 +37,40 @@ function UserWorkLog_delete($userWorkLog) $userWorkLog['id'] ]); - engelsystem_log(sprintf('Delete work log for %s, %s hours, %s', - User_Nick_render($user_source), - $userWorkLog['work_hours'], - $userWorkLog['comment'])); + engelsystem_log(sprintf('Delete work log for %s, %s hours, %s', User_Nick_render($user_source), $userWorkLog['work_hours'], $userWorkLog['comment'])); return $result; } /** * Update work log entry (only work hours and comment) - * @param UserWorkLog $userWorkLog + * + * @param UserWorkLog $userWorkLog */ function UserWorkLog_update($userWorkLog) { $user_source = User($userWorkLog['user_id']); - + $result = Db::update("UPDATE `UserWorkLog` SET + `work_timestamp`=?, `work_hours`=?, `comment`=? WHERE `id`=?", [ - $userWorkLog['work_hours'], - $userWorkLog['comment'], - $userWorkLog['id'] - ]); - - engelsystem_log(sprintf('Updated work log for %s, %s hours, %s', - User_Nick_render($user_source), + $userWorkLog['work_timestamp'], $userWorkLog['work_hours'], - $userWorkLog['comment'])); + $userWorkLog['comment'], + $userWorkLog['id'] + ]); + + engelsystem_log(sprintf('Updated work log for %s, %s hours, %s', User_Nick_render($user_source), $userWorkLog['work_hours'], $userWorkLog['comment'])); return $result; } /** * Create a new work log entry - * @param UserWorkLog $userWorkLog + * + * @param UserWorkLog $userWorkLog */ function UserWorkLog_create($userWorkLog) { @@ -73,23 +80,22 @@ function UserWorkLog_create($userWorkLog) $result = Db::insert("INSERT INTO `UserWorkLog` ( `user_id`, + `work_timestamp`, `work_hours`, `comment`, `created_user_id`, `created_timestamp` ) - VALUES (?, ?, ?, ?, ?)", [ - $userWorkLog['user_id'], - $userWorkLog['work_hours'], - $userWorkLog['comment'], - $user['UID'], - time() - ]); - - engelsystem_log(sprintf('Added work log entry for %s, %s hours, %s', - User_Nick_render($user_source), + VALUES (?, ?, ?, ?, ?, ?)", [ + $userWorkLog['user_id'], + $userWorkLog['work_timestamp'], $userWorkLog['work_hours'], - $userWorkLog['comment'])); + $userWorkLog['comment'], + $user['UID'], + time() + ]); + + engelsystem_log(sprintf('Added work log entry for %s, %s hours, %s', User_Nick_render($user_source), $userWorkLog['work_hours'], $userWorkLog['comment'])); return $result; } @@ -101,8 +107,14 @@ function UserWorkLog_create($userWorkLog) */ function UserWorkLog_new($user) { + $work_date = parse_date('Y-m-d H:i', date('Y-m-d 00:00', time())); + $event_config = EventConfig(); + if (! empty($event_config['buildup_start_date'])) { + $work_date = parse_date('Y-m-d H:i', date('Y-m-d 00:00', $event_config['buildup_start_date'])); + } return [ 'user_id' => $user['UID'], + 'work_timestamp' => $work_date, 'work_hours' => 0, 'comment' => '' ]; diff --git a/includes/model/User_model.php b/includes/model/User_model.php index b398cefe..5a31e7b8 100644 --- a/includes/model/User_model.php +++ b/includes/model/User_model.php @@ -42,8 +42,10 @@ function User_tshirt_score($user) { FROM `User` LEFT JOIN `UserWorkLog` ON `User`.`UID` = `UserWorkLog`.`user_id` WHERE `User`.`UID` = ? + AND `UserWorkLog`.`work_timestamp` < ? ',[ - $user['UID'] + $user['UID'], + time() ]); return $result_shifts['tshirt_score'] + $result_worklog['tshirt_score']; diff --git a/includes/pages/admin_active.php b/includes/pages/admin_active.php index 18553159..f3a28061 100644 --- a/includes/pages/admin_active.php +++ b/includes/pages/admin_active.php @@ -59,7 +59,8 @@ function admin_active() `User`.*, COUNT(`ShiftEntry`.`id`) AS `shift_count`, (%s + ( - SELECT SUM(`work_hours`) * 3600 FROM `UserWorkLog` WHERE `user_id`=`User`.`UID` + SELECT COALESCE(SUM(`work_hours`) * 3600, 0) FROM `UserWorkLog` WHERE `user_id`=`User`.`UID` + AND `work_timestamp` < %s )) AS `shift_length` FROM `User` LEFT JOIN `ShiftEntry` ON `User`.`UID` = `ShiftEntry`.`UID` @@ -71,6 +72,7 @@ function admin_active() %s ', $shift_sum_formula, + time(), $limit )); $user_nicks = []; @@ -143,7 +145,8 @@ function admin_active() `User`.*, COUNT(`ShiftEntry`.`id`) AS `shift_count`, (%s + ( - SELECT SUM(`work_hours`) * 3600 FROM `UserWorkLog` WHERE `user_id`=`User`.`UID` + SELECT COALESCE(SUM(`work_hours`) * 3600, 0) FROM `UserWorkLog` WHERE `user_id`=`User`.`UID` + AND `work_timestamp` < %s )) AS `shift_length` FROM `User` LEFT JOIN `ShiftEntry` ON `User`.`UID` = `ShiftEntry`.`UID` LEFT JOIN `Shifts` ON `ShiftEntry`.`SID` = `Shifts`.`SID` ' @@ -154,6 +157,7 @@ function admin_active() %s ', $shift_sum_formula, + time(), $limit )); $matched_users = []; diff --git a/includes/view/UserWorkLog_view.php b/includes/view/UserWorkLog_view.php index 86a367ae..79c049b3 100644 --- a/includes/view/UserWorkLog_view.php +++ b/includes/view/UserWorkLog_view.php @@ -36,9 +36,10 @@ function UserWorkLog_edit_form($user_source, $userWorkLog) { return form([ form_info(_('User'), User_Nick_render($user_source)), + form_date('work_timestamp', _('Work date'), $userWorkLog['work_timestamp'], null, time()), form_text('work_hours', _('Work hours'), $userWorkLog['work_hours']), form_text('comment', _('Comment'), $userWorkLog['comment']), - form_submit('submit', _('Add')) + form_submit('submit', _('Save')) ]); } diff --git a/includes/view/User_view.php b/includes/view/User_view.php index 82df1851..36ac36c3 100644 --- a/includes/view/User_view.php +++ b/includes/view/User_view.php @@ -356,7 +356,7 @@ function User_view_myshift($shift, $user_source, $its_me) . glyph('time') . date('H:i', $shift['start']) . ' - ' . date('H:i', $shift['end']), - 'duration' => round(($shift['end'] - $shift['start']) / 3600, 2) . ' h', + 'duration' => sprintf('%.2f', round(($shift['end'] - $shift['start']) / 3600, 2)) . ' h', 'room' => Room_name_render($shift), 'shift_info' => $shift_info, 'comment' => '' @@ -413,7 +413,7 @@ function User_view_myshifts($shifts, $user_source, $its_me, $tshirt_score, $tshi $myshifts_table = []; $timesum = 0; foreach ($shifts as $shift) { - $myshifts_table[] = User_view_myshift($shift, $user_source, $its_me); + $myshifts_table[$shift['start']] = User_view_myshift($shift, $user_source, $its_me); if (!$shift['freeloaded']) { $timesum += ($shift['end'] - $shift['start']); @@ -422,15 +422,16 @@ function User_view_myshifts($shifts, $user_source, $its_me, $tshirt_score, $tshi if($its_me || $admin_user_worklog_privilege) { foreach($user_worklogs as $worklog) { - $myshifts_table[] = User_view_worklog($worklog, $admin_user_worklog_privilege); + $myshifts_table[$worklog['work_timestamp']] = User_view_worklog($worklog, $admin_user_worklog_privilege); $timesum += $worklog['work_hours'] * 3600; } } if (count($myshifts_table) > 0) { + ksort($myshifts_table); $myshifts_table[] = [ 'date' => '' . _('Sum:') . '', - 'duration' => '' . round($timesum / 3600, 2) . ' h', + 'duration' => '' . sprintf('%.2f', round($timesum / 3600, 2)) . ' h', 'room' => '', 'shift_info' => '', 'comment' => '', @@ -439,7 +440,7 @@ function User_view_myshifts($shifts, $user_source, $its_me, $tshirt_score, $tshi if (config('enable_tshirt_size', false) && ($its_me || $tshirt_admin)) { $myshifts_table[] = [ 'date' => '' . _('Your t-shirt score') . '™:', - 'duration' => '' . $tshirt_score . '', + 'duration' => '' . sprintf('%.2f', $tshirt_score) . ' h', 'room' => '', 'shift_info' => '', 'comment' => '', @@ -473,8 +474,8 @@ function User_view_worklog($worklog, $admin_user_worklog_privilege) { } return [ - 'date' => '', - 'duration' => '' . $worklog['work_hours'] . ' h', + 'date' => glyph('calendar') . date('Y-m-d', $worklog['work_timestamp']), + 'duration' => '' . sprintf('%.2f', $worklog['work_hours']) . ' h', 'room' => '', 'shift_info' => _('Work log entry'), 'comment' => $worklog['comment'] . '
' -- cgit v1.2.3-54-g00ecf From d66dc43aecf10e53acded391c196752444f9d70e Mon Sep 17 00:00:00 2001 From: msquare Date: Fri, 29 Dec 2017 19:08:57 +0100 Subject: fix worklog entry view --- includes/view/User_view.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'includes/view') diff --git a/includes/view/User_view.php b/includes/view/User_view.php index 36ac36c3..4dc78f05 100644 --- a/includes/view/User_view.php +++ b/includes/view/User_view.php @@ -481,7 +481,7 @@ function User_view_worklog($worklog, $admin_user_worklog_privilege) { 'comment' => $worklog['comment'] . '
' . sprintf( _('Added by %s at %s'), - User_Nick_render(User($worklog['user_id'])), + User_Nick_render(User($worklog['created_user_id'])), date('Y-m-d H:i', $worklog['created_timestamp']) ), 'actions' => $actions -- cgit v1.2.3-54-g00ecf From c961269bb718cfc5b5889af88fd12bfc86563d09 Mon Sep 17 00:00:00 2001 From: msquare Date: Sat, 30 Dec 2017 12:07:10 +0100 Subject: better hour formatting --- includes/controller/users_controller.php | 2 +- includes/pages/admin_active.php | 2 +- includes/view/PublicDashboard_view.php | 2 +- includes/view/User_view.php | 10 +++++----- 4 files changed, 8 insertions(+), 8 deletions(-) (limited to 'includes/view') diff --git a/includes/controller/users_controller.php b/includes/controller/users_controller.php index c763cd48..8a325621 100644 --- a/includes/controller/users_controller.php +++ b/includes/controller/users_controller.php @@ -228,7 +228,7 @@ function user_controller() if($user_source['force_active']) { $tshirt_score = _('Enough'); } else { - $tshirt_score = round(User_tshirt_score($user_source), 2) . ' h'; + $tshirt_score = sprintf('%.2f', User_tshirt_score($user_source)) . ' h'; } return [ diff --git a/includes/pages/admin_active.php b/includes/pages/admin_active.php index f3a28061..6a9e96ce 100644 --- a/includes/pages/admin_active.php +++ b/includes/pages/admin_active.php @@ -182,7 +182,7 @@ function admin_active() $usr['nick'] = User_Nick_render($usr); $usr['shirt_size'] = $tshirt_sizes[$usr['Size']]; $usr['work_time'] = round($usr['shift_length'] / 60) - . ' min (' . round($usr['shift_length'] / 3600) . ' h)'; + . ' min (' . sprintf('%.2f', $usr['shift_length'] / 3600) . ' h)'; $usr['active'] = glyph_bool($usr['Aktiv'] == 1); $usr['force_active'] = glyph_bool($usr['force_active'] == 1); $usr['tshirt'] = glyph_bool($usr['Tshirt'] == 1); diff --git a/includes/view/PublicDashboard_view.php b/includes/view/PublicDashboard_view.php index 83cf0e5f..6fef8f54 100644 --- a/includes/view/PublicDashboard_view.php +++ b/includes/view/PublicDashboard_view.php @@ -68,7 +68,7 @@ function public_dashboard_view($stats, $free_shifts) function public_dashboard_shift_render($shift) { $panel_body = glyph('time') . $shift['start'] . ' - ' . $shift['end']; - $panel_body .= ' (' . $shift['duration'] . ' h)'; + $panel_body .= ' (' . $shift['duration'] . ' h)'; $panel_body .= '
' . glyph('tasks') . $shift['shifttype_name']; if (!empty($shift['title'])) { diff --git a/includes/view/User_view.php b/includes/view/User_view.php index 4dc78f05..745bc6d5 100644 --- a/includes/view/User_view.php +++ b/includes/view/User_view.php @@ -356,7 +356,7 @@ function User_view_myshift($shift, $user_source, $its_me) . glyph('time') . date('H:i', $shift['start']) . ' - ' . date('H:i', $shift['end']), - 'duration' => sprintf('%.2f', round(($shift['end'] - $shift['start']) / 3600, 2)) . ' h', + 'duration' => sprintf('%.2f', ($shift['end'] - $shift['start']) / 3600) . ' h', 'room' => Room_name_render($shift), 'shift_info' => $shift_info, 'comment' => '' @@ -368,7 +368,7 @@ function User_view_myshift($shift, $user_source, $its_me) if ($shift['freeloaded']) { $myshift['duration'] = '

' - . round(-($shift['end'] - $shift['start']) / 3600 * 2, 2) . ' h' + . round(-($shift['end'] - $shift['start']) / 3600 * 2, 2) . ' h' . '

'; if (in_array('user_shifts_admin', $privileges)) { $myshift['comment'] .= '
' @@ -431,7 +431,7 @@ function User_view_myshifts($shifts, $user_source, $its_me, $tshirt_score, $tshi 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' => '', @@ -440,7 +440,7 @@ function User_view_myshifts($shifts, $user_source, $its_me, $tshirt_score, $tshi if (config('enable_tshirt_size', false) && ($its_me || $tshirt_admin)) { $myshifts_table[] = [ 'date' => '' . _('Your t-shirt score') . '™:', - 'duration' => '' . sprintf('%.2f', $tshirt_score) . ' h', + 'duration' => '' . $tshirt_score . '', 'room' => '', 'shift_info' => '', 'comment' => '', @@ -475,7 +475,7 @@ function User_view_worklog($worklog, $admin_user_worklog_privilege) { return [ 'date' => glyph('calendar') . date('Y-m-d', $worklog['work_timestamp']), - 'duration' => '' . sprintf('%.2f', $worklog['work_hours']) . ' h', + 'duration' => '' . sprintf('%.2f', $worklog['work_hours']) . '', 'room' => '', 'shift_info' => _('Work log entry'), 'comment' => $worklog['comment'] . '
' -- cgit v1.2.3-54-g00ecf From c83771ed6234285d05f776218ad53a47df09510c Mon Sep 17 00:00:00 2001 From: mia Date: Mon, 1 Jan 2018 16:55:59 +0000 Subject: Fixes #401 Display "shift started" instead of "shift starts" when shift has already started. --- includes/view/User_view.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'includes/view') diff --git a/includes/view/User_view.php b/includes/view/User_view.php index 745bc6d5..2f53e641 100644 --- a/includes/view/User_view.php +++ b/includes/view/User_view.php @@ -299,7 +299,7 @@ function User_shift_state_render($user) if (time() < $halfway) { return '' - . _('Shift starts %c') + . _('Shift started %c') . ''; } -- cgit v1.2.3-54-g00ecf