Added template selector on time_edit.php.
authorNik Okuntseff <support@anuko.com>
Sat, 9 Mar 2019 15:37:52 +0000 (15:37 +0000)
committerNik Okuntseff <support@anuko.com>
Sat, 9 Mar 2019 15:37:52 +0000 (15:37 +0000)
WEB-INF/templates/footer.tpl
WEB-INF/templates/time.tpl
WEB-INF/templates/time_edit.tpl
WEB-INF/templates/time_script.tpl
time_edit.php

index 9647e85..29660bf 100644 (file)
@@ -12,7 +12,7 @@
       <br>
       <table cellspacing="0" cellpadding="4" width="100%" border="0">
         <tr>
-          <td align="center">&nbsp;Anuko Time Tracker 1.18.56.4849 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
+          <td align="center">&nbsp;Anuko Time Tracker 1.18.56.4850 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
             <a href="https://www.anuko.com/lp/tt_4.htm" target="_blank">{$i18n.footer.credits}</a> |
             <a href="https://www.anuko.com/lp/tt_5.htm" target="_blank">{$i18n.footer.license}</a> |
             <a href="https://www.anuko.com/lp/tt_7.htm" target="_blank">{$i18n.footer.improve}</a>
index fe9c294..e0418ee 100644 (file)
@@ -1,22 +1,5 @@
 {include file="time_script.tpl"}
 
-{if $template_dropdown}
-<script>
-var templates = new Array();
-{foreach $templates as $template}
-  templates[{$template.id}] = "{$template.content|escape:'javascript'}";
-{/foreach}
-
-// The fillNote function populates the Note field with a selected template body.
-function fillNote(id) {
-  if (!id) return; // Do nothing.
-  var template_body = templates[id];
-  var note = document.getElementById("note");
-  note.value = template_body;
-}
-</script>
-{/if}
-
 <style>
 .not_billable td {
   color: #ff6666;
index bc563e9..66778e1 100644 (file)
@@ -77,6 +77,12 @@ function confirmSave() {
       <td align="right">{$i18n.label.date}:</td>
       <td>{$forms.timeRecordForm.date.control}</td>
     </tr>
+{if $template_dropdown}
+    <tr>
+      <td align="right">{$i18n.label.template}:</td>
+      <td>{$forms.timeRecordForm.template.control}</td>
+    </tr>
+{/if}
     <tr>
       <td align="right">{$i18n.label.note}:</td>
       <td>{$forms.timeRecordForm.note.control}</td>
index 109f67e..3e8a020 100644 (file)
@@ -43,6 +43,21 @@ var task_names = new Array();
   task_names[{$task.id}] = "{$task.name|escape:'javascript'}";
 {/foreach}
 
+{if $template_dropdown}
+var templates = new Array();
+{foreach $templates as $template}
+  templates[{$template.id}] = "{$template.content|escape:'javascript'}";
+{/foreach}
+
+// The fillNote function populates the Note field with a selected template body.
+function fillNote(id) {
+  if (!id) return; // Do nothing.
+  var template_body = templates[id];
+  var note = document.getElementById("note");
+  note.value = template_body;
+}
+{/if}
+
 // Mandatory top options for project and task dropdowns.
 var empty_label_project = "{$i18n.dropdown.select|escape:'javascript'}";
 var empty_label_task = "{$i18n.dropdown.select|escape:'javascript'}";
index ef45226..e6ca12a 100644 (file)
@@ -191,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.
@@ -205,6 +206,23 @@ if ($custom_fields && $custom_fields->fields[0]) {
       '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'))
@@ -258,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') && strpos($cl_note, '%req%') !== false) {
+    // A %req% element is found in note. They have to be replaced by user.
+    $err->add($i18n->get('error.field'), $i18n->get('label.note'));
+  }
   if (!ttTimeHelper::canAdd()) $err->add($i18n->get('error.expired'));
   // Finished validating user input.