// Get column headers, which are day numbers in month.
$dayHeaders = ttWeekViewHelper::getDayHeadersForWeek($startDate->toString(DB_DATEFORMAT));
$lockedDays = ttWeekViewHelper::getLockedDaysForWeek($startDate->toString(DB_DATEFORMAT));
-// Build data array for the table. Format is described in the function..
-$dataArray = ttWeekViewHelper::getDataForWeekView($user->getActiveUser(), $startDate->toString(DB_DATEFORMAT), $endDate->toString(DB_DATEFORMAT), $dayHeaders);
+// 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 {
$record['project_id'] = $cl_project;
$record['task_id'] = $cl_task;
$record['cf_1_value'] = $cl_cf_1;
- $fields['row_id'] = ttWeekViewHelper::makeRowIdentifier($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());
$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.
}
$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');