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.
$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.
// 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);
--- /dev/null
+<?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);
+ }
+}
<br>
<table cellspacing="0" cellpadding="4" width="100%" border="0">
<tr>
- <td align="center"> Anuko Time Tracker 1.13.7.3720 | Copyright © <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
+ <td align="center"> Anuko Time Tracker 1.13.7.3721 | Copyright © <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>
import('form.TextField');
import('ttUserHelper');
import('ttTeamHelper');
+import('ttWeekViewHelper');
import('ttClientHelper');
import('ttTimeHelper');
import('DateAndTime');
// 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.
}