]> wagnertech.de Git - timetracker.git/blobdiff - WEB-INF/lib/ttWeekViewHelper.class.php
Refactoring. Moved 2 more functions to ttWeekViewHelper class.
[timetracker.git] / WEB-INF / lib / ttWeekViewHelper.class.php
index 7b9537f998a7f73b62e7f7d7ef8be67b826584df..b6dfdd73e51d47426275c4525c9228f345423fef 100644 (file)
 // ttWeekViewHelper class groups together functions used in week view.
 class ttWeekViewHelper {
 
 // ttWeekViewHelper class groups together functions used in week view.
 class ttWeekViewHelper {
 
+  // getDayHeadersForWeek - obtains day column headers for week view, which are simply day numbers in month.
+  static function getDayHeadersForWeek($start_date) {
+    $dayHeaders = array();
+    $objDate = new DateAndTime(DB_DATEFORMAT, $start_date);
+    $dayHeaders[] = (string) $objDate->getDate(); // It returns an int on first call.
+    if (strlen($dayHeaders[0]) == 1)              // Which is an implementation detail of DateAndTime class.
+      $dayHeaders[0] = '0'.$dayHeaders[0];        // Add a 0 for single digit day.
+    $objDate->incDay();
+    $dayHeaders[] = $objDate->getDate(); // After incDay it returns a string with leading 0, when necessary.
+    $objDate->incDay();
+    $dayHeaders[] = $objDate->getDate();
+    $objDate->incDay();
+    $dayHeaders[] = $objDate->getDate();
+    $objDate->incDay();
+    $dayHeaders[] = $objDate->getDate();
+    $objDate->incDay();
+    $dayHeaders[] = $objDate->getDate();
+    $objDate->incDay();
+    $dayHeaders[] = $objDate->getDate();
+    unset($objDate);
+    return $dayHeaders;
+  }
+
+  // getLockedDaysForWeek - builds an array of locked days in week.
+  static function getLockedDaysForWeek($start_date) {
+    global $user;
+    $lockedDays = array();
+    $objDate = new DateAndTime(DB_DATEFORMAT, $start_date);
+    for ($i = 0; $i < 7; $i++) {
+      $lockedDays[] = $user->isDateLocked($objDate);
+      $objDate->incDay();
+    }
+    unset($objDate);
+    return $lockedDays;
+  }
+
+  // makeRowLabel - builds a human readable label for a row in week view,
+  // which is a combination ot record properties.
+  // Client - Project - Task - Custom field 1.
+  // Note that billable property is not part of the label. Instead,
+  // we identify such records with a different color in week view.
+  static function makeRowLabel($record) {
+    global $user;
+    // Start with client.
+    if ($user->isPluginEnabled('cl'))
+      $label = $record['client'];
+
+    // Add project.
+    if (!empty($label) && !empty($record['project'])) $label .= ' - ';
+    $label .= $record['project'];
+
+    // Add task.
+    if (!empty($label) && !empty($record['task'])) $label .= ' - ';
+    $label .= $record['task'];
+
+    // Add custom field 1.
+    if ($user->isPluginEnabled('cf')) {
+      if (!empty($label) && !empty($record['cf_1_value'])) $label .= ' - ';
+      $label .= $record['cf_1_value'];
+    }
+
+    return $label;
+  }
+
   // 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.
   // 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.