X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=week.php;h=fb2dcaa6af1ca72b1d7b6fa9cfc2d4e03ee29bab;hb=e7ecc20f1789ce0adda175aa0f70177b0f7fdb22;hp=5d1e29ff857feaabe094accdfade80fe92ed2e83;hpb=9d56e5c5cce354a50c1a7b3279e387baab919e09;p=timetracker.git diff --git a/week.php b/week.php index 5d1e29ff..fb2dcaa6 100644 --- 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'); @@ -110,12 +111,14 @@ $cl_note = trim($request->getParameter('note')); // Get the data we need to display week view. // Get column headers, which are day numbers in month. -$dayHeaders = ttTimeHelper::getDayHeadersForWeek($startDate->toString(DB_DATEFORMAT)); -$lockedDays = ttTimeHelper::getLockedDaysForWeek($startDate->toString(DB_DATEFORMAT)); -// Build data array for the table. Format is described in the function.. -$dataArray = ttTimeHelper::getDataForWeekView($user->getActiveUser(), $startDate->toString(DB_DATEFORMAT), $endDate->toString(DB_DATEFORMAT), $dayHeaders); +$dayHeaders = ttWeekViewHelper::getDayHeadersForWeek($startDate->toString(DB_DATEFORMAT)); +$lockedDays = ttWeekViewHelper::getLockedDaysForWeek($startDate->toString(DB_DATEFORMAT)); +// Get already existing records. +$records = ttWeekViewHelper::getRecordsForInterval($user->getActiveUser(), $startDate->toString(DB_DATEFORMAT), $endDate->toString(DB_DATEFORMAT)); +// Build data array for the table. Format is described in the function. +$dataArray = ttWeekViewHelper::getDataForWeekView($records, $dayHeaders); // Build day totals (total durations for each day in week). -$dayTotals = ttTimeHelper::getDayTotals($dataArray, $dayHeaders); +$dayTotals = ttWeekViewHelper::getDayTotals($dataArray, $dayHeaders); // Define rendering class for a label field to the left of durations. class LabelCellRenderer extends DefaultCellRenderer { @@ -128,7 +131,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. } @@ -352,15 +355,17 @@ if ($request->isPost()) { $record['project_id'] = $cl_project; $record['task_id'] = $cl_task; $record['cf_1_value'] = $cl_cf_1; - $fields['row_id'] = ttTimeHelper::makeRecordIdentifier($record).'_0'; // TODO: Handle a possible conflict with already existing row... - // We may have to increment the suffix here. + $fields['row_id'] = ttWeekViewHelper::makeRowIdentifier($record).'_0'; + // Note: no need to check for a possible conflict with an already existing row + // because we are doing an insert that does not affect already existing data. + $fields['note'] = $cl_note; } $fields['day_header'] = $dayHeader; $fields['start_date'] = $startDate->toString(DB_DATEFORMAT); // To be able to determine date for the entry using $dayHeader. $fields['duration'] = $postedDuration; $fields['browser_today'] = $request->getParameter('browser_today', null); - $result = ttTimeHelper::insertDurationFromWeekView($fields, $custom_fields, $err); + $result = ttWeekViewHelper::insertDurationFromWeekView($fields, $custom_fields, $err); } elseif ($postedDuration == null || 0 == ttTimeHelper::toMinutes($postedDuration)) { // Delete an already existing record here. $result = ttTimeHelper::delete($dataArray[$rowNumber][$dayHeader]['tt_log_id'], $user->getActiveUser()); @@ -368,7 +373,7 @@ if ($request->isPost()) { $fields = array(); $fields['tt_log_id'] = $dataArray[$rowNumber][$dayHeader]['tt_log_id']; $fields['duration'] = $postedDuration; - $result = ttTimeHelper::modifyDurationFromWeekView($fields, $err); + $result = ttWeekViewHelper::modifyDurationFromWeekView($fields, $err); } if (!$result) break; // Break out of the loop in case of first error. } @@ -407,6 +412,7 @@ $smarty->assign('task_list', $task_list); $smarty->assign('forms', array($form->getName()=>$form->toArray())); $smarty->assign('onload', 'onLoad="fillDropdowns()"'); $smarty->assign('timestring', $startDate->toString($user->date_format).' - '.$endDate->toString($user->date_format)); +$smarty->assign('time_records', $records); $smarty->assign('title', $i18n->getKey('title.time')); $smarty->assign('content_page_name', 'week.tpl');