X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=time_edit.php;h=aceff0243fe612969c661cb42e7610d5dfa4501e;hb=HEAD;hp=16f69d2ab9e12058e44a747d92375c40eb9e553a;hpb=38dd91dcf8a9ecf6b7ceb73a9aabf787b96b6f6e;p=timetracker.git diff --git a/time_edit.php b/time_edit.php index 16f69d2a..aceff024 100644 --- a/time_edit.php +++ b/time_edit.php @@ -40,15 +40,16 @@ if (!(ttAccessAllowed('track_own_time') || ttAccessAllowed('track_time'))) { 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'); @@ -190,6 +191,7 @@ if ((TYPE_DURATION == $user->record_type) || (TYPE_ALL == $user->record_type)) $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','style'=>'width: 250px; height: 200px;','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. @@ -200,10 +202,27 @@ if ($custom_fields && $custom_fields->fields[0]) { 'name'=>'cf_1', 'style'=>'width: 250px;', 'value'=>$cl_cf_1, - 'data'=>$custom_fields->options, + 'data'=>CustomFields::getOptions($custom_fields->fields[0]['id']), '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')) @@ -220,7 +239,7 @@ $form->addInput(array('type'=>'submit','name'=>'btn_delete','value'=>$i18n->get( 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']); @@ -257,6 +276,10 @@ if ($request->isPost()) { } 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.