Refactoring ongoing on week view functions.
authoranuko <support@anuko.com>
Sat, 6 Jan 2018 15:40:53 +0000 (15:40 +0000)
committeranuko <support@anuko.com>
Sat, 6 Jan 2018 15:40:53 +0000 (15:40 +0000)
WEB-INF/lib/ttTimeHelper.class.php
WEB-INF/lib/ttWeekViewHelper.class.php [new file with mode: 0644]
WEB-INF/templates/footer.tpl
week.php

index 35900f8..f1c0037 100644 (file)
@@ -922,28 +922,6 @@ class ttTimeHelper {
     return $record_identifier;
   }
 
-  // parseFromWeekViewRow - obtains field value encoded in row identifier.
-  // For example, for a row id like "cl:546,bl:0,pr:23456,ts:27464,cf_1:example text"
-  // requesting a client "cl" should return 546.
-  static function parseFromWeekViewRow($row_id, $field_label) {
-    // Find beginning of label.
-    $pos = strpos($row_id, $field_label);
-    if ($pos === false) return null; // Not found.
-
-    // Strip suffix from row id.
-    $suffixPos = strrpos($row_id, '_');
-    if ($suffixPos)
-      $remaninder = substr($row_id, 0, $suffixPos);
-
-    // Find beginning of value.
-    $posBegin = 1 + strpos($remaninder, ':', $pos);
-    // Find end of value.
-    $posEnd = strpos($remaninder, ',', $posBegin);
-    if ($posEnd === false) $posEnd = strlen($remaninder);
-    // Return value.
-    return substr($remaninder, $posBegin, $posEnd - $posBegin);
-  }
-
   // makeRecordLabel - builds a human readable label for a row in week view,
   // which is a combination ot record properties.
   // Client - Project - Task - Custom field 1.
@@ -1070,10 +1048,10 @@ class ttTimeHelper {
     $fields4insert['user_id'] = $user->getActiveUser();
     $fields4insert['date'] = $entry_date;
     $fields4insert['duration'] = $fields['duration'];
-    $fields4insert['client'] = ttTimeHelper::parseFromWeekViewRow($fields['row_id'], 'cl');
-    $fields4insert['billable'] = ttTimeHelper::parseFromWeekViewRow($fields['row_id'], 'bl');
-    $fields4insert['project'] = ttTimeHelper::parseFromWeekViewRow($fields['row_id'], 'pr');
-    $fields4insert['task'] = ttTimeHelper::parseFromWeekViewRow($fields['row_id'], 'ts');
+    $fields4insert['client'] = ttWeekViewHelper::parseFromWeekViewRow($fields['row_id'], 'cl');
+    $fields4insert['billable'] = ttWeekViewHelper::parseFromWeekViewRow($fields['row_id'], 'bl');
+    $fields4insert['project'] = ttWeekViewHelper::parseFromWeekViewRow($fields['row_id'], 'pr');
+    $fields4insert['task'] = ttWeekViewHelper::parseFromWeekViewRow($fields['row_id'], 'ts');
     $fields4insert['note'] = $fields['note'];
 
     // Try to insert a record.
@@ -1082,7 +1060,7 @@ class ttTimeHelper {
 
     // Insert custom field if we have it.
     $result = true;
-    $cf_1 = ttTimeHelper::parseFromWeekViewRow($fields['row_id'], 'cf_1');
+    $cf_1 = ttWeekViewHelper::parseFromWeekViewRow($fields['row_id'], 'cf_1');
     if ($custom_fields && $cf_1) {
       if ($custom_fields->fields[0]['type'] == CustomFields::TYPE_TEXT)
         $result = $custom_fields->insert($id, $custom_fields->fields[0]['id'], null, $cf_1);
diff --git a/WEB-INF/lib/ttWeekViewHelper.class.php b/WEB-INF/lib/ttWeekViewHelper.class.php
new file mode 100644 (file)
index 0000000..7b9537f
--- /dev/null
@@ -0,0 +1,53 @@
+<?php
+// +----------------------------------------------------------------------+
+// | Anuko Time Tracker
+// +----------------------------------------------------------------------+
+// | Copyright (c) Anuko International Ltd. (https://www.anuko.com)
+// +----------------------------------------------------------------------+
+// | LIBERAL FREEWARE LICENSE: This source code document may be used
+// | by anyone for any purpose, and freely redistributed alone or in
+// | combination with other software, provided that the license is obeyed.
+// |
+// | There are only two ways to violate the license:
+// |
+// | 1. To redistribute this code in source form, with the copyright
+// |    notice or license removed or altered. (Distributing in compiled
+// |    forms without embedded copyright notices is permitted).
+// |
+// | 2. To redistribute modified versions of this code in *any* form
+// |    that bears insufficient indications that the modifications are
+// |    not the work of the original author(s).
+// |
+// | This license applies to this document only, not any other software
+// | that it may be combined with.
+// |
+// +----------------------------------------------------------------------+
+// | Contributors:
+// | https://www.anuko.com/time_tracker/credits.htm
+// +----------------------------------------------------------------------+
+
+// ttWeekViewHelper class groups together functions used in week view.
+class ttWeekViewHelper {
+
+  // parseFromWeekViewRow - obtains field value encoded in row identifier.
+  // For example, for a row id like "cl:546,bl:0,pr:23456,ts:27464,cf_1:example text"
+  // requesting a client "cl" should return 546.
+  static function parseFromWeekViewRow($row_id, $field_label) {
+    // Find beginning of label.
+    $pos = strpos($row_id, $field_label);
+    if ($pos === false) return null; // Not found.
+
+    // Strip suffix from row id.
+    $suffixPos = strrpos($row_id, '_');
+    if ($suffixPos)
+      $remaninder = substr($row_id, 0, $suffixPos);
+
+    // Find beginning of value.
+    $posBegin = 1 + strpos($remaninder, ':', $pos);
+    // Find end of value.
+    $posEnd = strpos($remaninder, ',', $posBegin);
+    if ($posEnd === false) $posEnd = strlen($remaninder);
+    // Return value.
+    return substr($remaninder, $posBegin, $posEnd - $posBegin);
+  }
+}
index 8c04b71..cbdf9c6 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.13.7.3720 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
+          <td align="center">&nbsp;Anuko Time Tracker 1.13.7.3721 | 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 5d1e29f..b883107 100644 (file)
--- a/week.php
+++ b/week.php
@@ -33,6 +33,7 @@ import('form.Table');
 import('form.TextField');
 import('ttUserHelper');
 import('ttTeamHelper');
+import('ttWeekViewHelper');
 import('ttClientHelper');
 import('ttTimeHelper');
 import('DateAndTime');
@@ -128,7 +129,7 @@ class LabelCellRenderer extends DefaultCellRenderer {
     // Special handling for not billable entries.
     if ($row > 0) {
       $row_id = $table->getValueAtName($row,'row_id');
-      $billable = ttTimeHelper::parseFromWeekViewRow($row_id, 'bl');
+      $billable = ttWeekViewHelper::parseFromWeekViewRow($row_id, 'bl');
       if (!$billable) {
         $this->setOptions(array('style'=>'color: red;')); // TODO: style it properly in CSS.
       }