3 <meta http-equiv="content-type" content="text/html; charset={$smarty.const.CHARSET}">
4 <link rel="icon" href="favicon.ico" type="image/x-icon">
5 <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
6 <link href="{$smarty.const.DEFAULT_CSS}" rel="stylesheet" type="text/css">
7 {if $i18n.language.rtl}
8 <link href="{$smarty.const.RTL_CSS}" rel="stylesheet" type="text/css">
10 <title>Time Tracker{if $title} - {$title}{/if}</title>
11 <script src="js/strftime.js"></script>
13 {* Setup locale for strftime *}
16 <script src="js/strptime.js"></script>
19 <body leftmargin="0" topmargin="0" marginheight="0" marginwidth="0" {$onload}>
21 {assign var="tab_width" value="700"}
23 <!-- 101% height here is a workaround for Firefox shifting content horizontally when scrollbar appears / disappears.
24 See https://bugzilla.mozilla.org/show_bug.cgi?id=279425.
25 With 101% height we essentially force the scrollbar to always appear. -->
26 <table height="101%" cellspacing="0" cellpadding="0" width="100%" border="0">
28 <td valign="top" align="center"> <!-- This is to centrally align all our content. -->
31 <table cellspacing="0" cellpadding="0" width="100%" border="0">
33 {if $user->custom_logo}
36 <td bgcolor="#a6ccf7" background="images/top_bg.gif" align="center">
38 <table cellspacing="0" cellpadding="0" width="{$tab_width}" border="0">
41 <table cellspacing="0" cellpadding="0" width="100%" border="0">
42 <tr><td height="6" colspan="2"><img width="1" height="6" src="images/1x1.gif" border="0"></td></tr>
44 {if $user->custom_logo}
45 <td height="55" align="center"><img alt="Time Tracker" width="300" height="43" src="{$custom_logo}" border="0"></a></td>
47 <td height="55" align="center"><a href="https://www.anuko.com/lp/tt_1.htm" target="_blank"><img alt="Anuko Time Tracker" width="300" height="43" src="images/tt_logo.png" border="0"></a></td>
57 <!-- End of top image -->
61 <!-- Top menu for admin -->
62 <table cellspacing="0" cellpadding="3" width="100%" border="0">
64 <td class="systemMenu" height="17" align="center">
65 <a class="systemMenu" href="logout.php">{$i18n.menu.logout}</a> ·
66 <a class="systemMenu" href="{$smarty.const.FORUM_LINK}" target="_blank">{$i18n.menu.forum}</a> ·
67 <a class="systemMenu" href="{$smarty.const.HELP_LINK}" target="_blank">{$i18n.menu.help}</a>
71 <!-- End of top menu for admin -->
73 <!-- Sub menu for admin -->
74 <table cellspacing="0" cellpadding="3" width="100%" border="0">
76 <td align="center" bgcolor="#d9d9d9" nowrap height="17" background="images/subm_bg.gif">
77 <a class="mainMenu" href="admin_teams.php">{$i18n.menu.teams}</a> ·
78 <a class="mainMenu" href="admin_options.php">{$i18n.menu.options}</a>
82 <!-- End of sub menu for admin -->
84 <!-- Top menu for authorized user -->
85 <table cellspacing="0" cellpadding="3" width="100%" border="0">
87 <td class="systemMenu" height="17" align="center">
88 <a class="systemMenu" href="logout.php">{$i18n.menu.logout}</a> ·
89 <a class="systemMenu" href="profile_edit.php">{$i18n.menu.profile}</a> ·
90 <a class="systemMenu" href="{$smarty.const.FORUM_LINK}" target="_blank">{$i18n.menu.forum}</a> ·
91 <a class="systemMenu" href="{$smarty.const.HELP_LINK}" target="_blank">{$i18n.menu.help}</a>
95 <!-- End of top menu for authorized user -->
97 <!-- Sub menu for authorized user -->
98 <table cellspacing="0" cellpadding="3" width="100%" border="0">
100 <td align="center" bgcolor="#d9d9d9" nowrap height="17" background="images/subm_bg.gif">
101 {if !$user->isClient()}
102 <a class="mainMenu" href="time.php">{$i18n.menu.time}</a>
104 {if in_array('ex', explode(',', $user->plugins)) && !$user->isClient()}
105 · <a class="mainMenu" href="expenses.php">{$i18n.menu.expenses}</a>
107 {if !$user->isClient()}· {/if}<a class="mainMenu" href="reports.php">{$i18n.menu.reports}</a>
108 {if ($user->canManageTeam() || $user->isClient()) && in_array('iv', explode(',', $user->plugins))}
109 · <a class="mainMenu" href="invoices.php">{$i18n.title.invoices}</a>
111 {if (in_array('ch', explode(',', $user->plugins)) && !$user->isClient()) && ($smarty.const.MODE_PROJECTS == $user->tracking_mode
112 || $smarty.const.MODE_PROJECTS_AND_TASKS == $user->tracking_mode
113 || in_array('cl', explode(',', $user->plugins)))}
114 · <a class="mainMenu" href="charts.php">{$i18n.menu.charts}</a>
116 {if !$user->isClient() && ($smarty.const.MODE_PROJECTS == $user->tracking_mode || $smarty.const.MODE_PROJECTS_AND_TASKS == $user->tracking_mode)}
117 · <a class="mainMenu" href="projects.php">{$i18n.menu.projects}</a>
119 {if $user->canManageTeam() && ($smarty.const.MODE_PROJECTS_AND_TASKS == $user->tracking_mode)}
120 · <a class="mainMenu" href="tasks.php">{$i18n.menu.tasks}</a>
122 {if !$user->isClient()}
123 · <a class="mainMenu" href="users.php">{$i18n.menu.users}</a>
125 {if $user->canManageTeam() && in_array('cl', explode(',', $user->plugins))}
126 · <a class="mainMenu" href="clients.php">{$i18n.menu.clients}</a>
128 {if $user->isManager()}
129 · <a class="mainMenu" href="export.php">{$i18n.menu.export}</a>
134 <!-- End of sub menu for authorized user -->
137 <!-- Top menu for non authorized user -->
138 <table cellspacing="0" cellpadding="3" width="100%" border="0">
140 <td class="systemMenu" height="17" align="center">
141 <a class="systemMenu" href="login.php">{$i18n.menu.login}</a> ·
142 {if isTrue($smarty.const.MULTITEAM_MODE) && $smarty.const.AUTH_MODULE == 'db'}
143 <a class="systemMenu" href="register.php">{$i18n.menu.create_team}</a> ·
145 <a class="systemMenu" href="{$smarty.const.FORUM_LINK}" target="_blank">{$i18n.menu.forum}</a> ·
146 <a class="systemMenu" href="{$smarty.const.HELP_LINK}" target="_blank">{$i18n.menu.help}</a>
153 <!-- Page title and user details -->
155 <table cellspacing="0" cellpadding="5" width="{$tab_width+20}" border="0">
156 <tr><td class="sectionHeader"><div class="pageTitle">{$title}{if $timestring}: {$timestring}{/if}</div></td></tr>
157 <tr><td>{$user->name|escape:'html'}{if $user->isAdmin()} {$i18n.label.role_admin}{elseif $user->isManager()} {$i18n.label.role_manager}{elseif $user->canManageTeam()} {$i18n.label.role_comanager}{/if}{if $user->behalf_id > 0} <b>{$i18n.label.on_behalf} {$user->behalf_name|escape:'html'}</b>{/if}{if $user->team}, {$user->team|escape:'html'}{/if}</td></tr>
160 <!-- End of page title and user details -->
162 <!-- Output errors -->
163 {if !$errors->isEmpty()}
164 <table cellspacing="4" cellpadding="7" width="{$tab_width}" border="0">
167 {foreach $errors->getErrors() as $error}
168 {$error.message}<br> {* No need to escape as they are not coming from user and may contain a link. *}
174 <!-- End of output errors -->
176 <!-- Output messages -->
177 {if !$messages->isEmpty()}
178 <table cellspacing="4" cellpadding="7" width="{$tab_width}" border="0">
180 <td class="info_message">
181 {foreach $messages->getErrors() as $message}
182 {$message.message}<br> {* No need to escape. *}
188 <!-- End of output messages -->