require_once('../initialize.php');
import('form.Form');
import('ttUserHelper');
-import('ttTeamHelper');
import('ttGroupHelper');
import('ttClientHelper');
import('ttTimeHelper');
exit();
}
$cl_id = (int)$request->getParameter('id');
-$user_id = $user->getUser();
-$time_rec = ttTimeHelper::getRecord($cl_id, $user_id);
-if (!$time_rec || $time_rec['invoice_id']) {
- // Prohibit editing not ours or invoiced records.
+$time_rec = ttTimeHelper::getRecord($cl_id);
+if (!$time_rec || $time_rec['approved'] || $time_rec['timesheet_id'] || $time_rec['invoice_id']) {
+ // Prohibit editing not ours, approved, assigned to timesheet, or invoiced records.
header('Location: access_denied.php');
exit();
}
// End of access checks.
+$user_id = $user->getUser();
+
// Use custom fields plugin if it is enabled.
if ($user->isPluginEnabled('cf')) {
require_once('../plugins/CustomFields.class.php');
- $custom_fields = new CustomFields($user->group_id);
+ $custom_fields = new CustomFields();
$smarty->assign('custom_fields', $custom_fields);
}
}
if (MODE_PROJECTS_AND_TASKS == $user->tracking_mode) {
- $task_list = ttTeamHelper::getActiveTasks($user->group_id);
+ $task_list = ttGroupHelper::getActiveTasks();
$form->addInput(array('type'=>'combobox',
'name'=>'task',
'style'=>'width: 250px;',
$form->addInput(array('type'=>'text','name'=>'duration','value'=>$cl_duration,'onchange'=>"formDisable('duration');"));
$form->addInput(array('type'=>'datefield','name'=>'date','maxlength'=>'20','value'=>$cl_date));
$form->addInput(array('type'=>'textarea','name'=>'note','class'=>'mobile-textarea','value'=>$cl_note));
+
// If we have custom fields - add controls for them.
if ($custom_fields && $custom_fields->fields[0]) {
// Only one custom field is supported at this time.
'empty' => array('' => $i18n->get('dropdown.select'))));
}
}
+
+// If we have templates, add a dropdown to select one.
+if ($user->isPluginEnabled('tp')){
+ $templates = ttGroupHelper::getActiveTemplates();
+ if (count($templates) >= 1) {
+ $form->addInput(array('type'=>'combobox',
+ 'onchange'=>'fillNote(this.value);',
+ 'name'=>'template',
+ 'style'=>'width: 250px;',
+ 'data'=>$templates,
+ 'datakeys'=>array('id','name'),
+ 'empty'=>array(''=>$i18n->get('dropdown.select'))));
+ $smarty->assign('template_dropdown', 1);
+ $smarty->assign('templates', $templates);
+ }
+}
+
// Hidden control for record id.
$form->addInput(array('type'=>'hidden','name'=>'id','value'=>$cl_id));
if ($user->isPluginEnabled('iv'))
if ($request->isPost()) {
// Validate user input.
- if ($user->isPluginEnabled('cl') && $user->isPluginEnabled('cm') && !$cl_client)
+ if ($user->isPluginEnabled('cl') && $user->isOptionEnabled('client_required') && !$cl_client)
$err->add($i18n->get('error.client'));
if ($custom_fields) {
if (!ttValidString($cl_cf_1, !$custom_fields->fields[0]['required'])) $err->add($i18n->get('error.field'), $custom_fields->fields[0]['label']);
}
if (!ttValidDate($cl_date)) $err->add($i18n->get('error.field'), $i18n->get('label.date'));
if (!ttValidString($cl_note, true)) $err->add($i18n->get('error.field'), $i18n->get('label.note'));
+ if ($user->isPluginEnabled('tp') && !ttValidTemplateText($cl_note)) {
+ $err->add($i18n->get('error.field'), $i18n->get('label.note'));
+ }
+ if (!ttTimeHelper::canAdd()) $err->add($i18n->get('error.expired'));
// Finished validating user input.
// This is a new date for the time record.