X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/timetracker.git/blobdiff_plain/821f166344d7ca9d61bc1a04f08ad46a156e251a..621c2592fb3db0dfdea6be497381d847938f708c:/WEB-INF/lib/ttWeekViewHelper.class.php?ds=inline diff --git a/WEB-INF/lib/ttWeekViewHelper.class.php b/WEB-INF/lib/ttWeekViewHelper.class.php index 7b9537f9..b6dfdd73 100644 --- a/WEB-INF/lib/ttWeekViewHelper.class.php +++ b/WEB-INF/lib/ttWeekViewHelper.class.php @@ -29,6 +29,70 @@ // 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.