// Users form. See example at https://timetracker.anuko.com/users.php
'form.users.active_users' => 'Active Users',
'form.users.inactive_users' => 'Inactive Users',
+'form.users.uncompleted_entry' => 'User has an uncompleted time entry',
'form.users.role' => 'Role',
'form.users.manager' => 'Manager',
'form.users.comanager' => 'Co-manager',
// Users form. See example at https://timetracker.anuko.com/users.php
'form.users.active_users' => 'Aktiva användare',
'form.users.inactive_users' => 'Inaktiva användare',
+'form.users.uncompleted_entry' => 'Användaren har en oavslutad tidsregistrering',
'form.users.role' => 'Roll',
'form.users.manager' => 'Ansvarig',
'form.users.comanager' => 'Delansvarig',
{foreach $active_users as $u}
<tr bgcolor="{cycle values="#f5f5f5,#dedee5"}">
<td>
+ <span class="uncompleted-entry{if $u.has_uncompleted_entry} active{/if}"{if $u.has_uncompleted_entry} title="{$i18n.form.users.uncompleted_entry}"{/if}></span>
{if $user->isManager()}
<a href="user_edit.php?id={$u.id}">{$u.name|escape:'html'}</a>
{else}
{if $active_users}
{foreach $active_users as $u}
<tr bgcolor="{cycle values="#f5f5f5,#dedee5"}">
- <td>{$u.name|escape:'html'}</td>
+ <td>
+ <span class="uncompleted-entry{if $u.has_uncompleted_entry} active{/if}"{if $u.has_uncompleted_entry} title="{$i18n.form.users.uncompleted_entry}"{/if}></span>
+ {$u.name|escape:'html'}
+ </td>
<td>{$u.login|escape:'html'}</td>
{if $smarty.const.ROLE_MANAGER == $u.role}
<td>{$i18n.form.users.manager}</td>
div#LoginAboutText { width:400px; }
+.uncompleted-entry {
+ display: inline-block;
+ height: 8px;
+ width: 8px;
+ border: 1px solid rgba(0, 0, 0, .1);
+ border-radius: 50%;
+ background-color: rgba(0, 0, 0, .1);
+}
+.uncompleted-entry.active { background-color: red; }
+
/* Mobile styles */
.mobile-table {
border: 0;
require_once('../initialize.php');
import('form.Form');
import('ttTeamHelper');
+import('ttTimeHelper');
// Access check.
if (!ttAccessCheck(right_data_entry)) {
$inactive_users = ttTeamHelper::getInactiveUsers($user->team_id, true);
}
+// Check each active user if they have an uncompleted time entry.
+foreach ($active_users as $key => $user) {
+ // Turn value from database into boolean.
+ $has_uncompleted_entry = boolval(ttTimeHelper::getUncompleted($user['id']));
+ // Add to current user in $active_users array.
+ $active_users[$key]['has_uncompleted_entry'] = $has_uncompleted_entry;
+}
+
$smarty->assign('active_users', $active_users);
$smarty->assign('inactive_users', $inactive_users);
$smarty->assign('can_delete_manager', $can_delete_manager);
require_once('initialize.php');
import('form.Form');
import('ttTeamHelper');
+import('ttTimeHelper');
// Access check.
if (!ttAccessCheck(right_data_entry)) {
$inactive_users = ttTeamHelper::getInactiveUsers($user->team_id, true);
}
+// Check each active user if they have an uncompleted time entry.
+foreach ($active_users as $key => $user) {
+ // Turn value from database into boolean.
+ $has_uncompleted_entry = boolval(ttTimeHelper::getUncompleted($user['id']));
+ // Add to current user in $active_users array.
+ $active_users[$key]['has_uncompleted_entry'] = $has_uncompleted_entry;
+}
+
$smarty->assign('active_users', $active_users);
$smarty->assign('inactive_users', $inactive_users);
$smarty->assign('can_delete_manager', $can_delete_manager);