X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=week.php;h=16fd79ba7b842e15390e4321ff0eae3dd9d57a2b;hb=0a9cab0efe3edcabcf7b9c8994715bbd24450bf1;hp=1fb904ebc02b22889a85de4663fbabefcd366989;hpb=19e183c61f684ff92f5b7c95f09a0a6ca7d7bffe;p=timetracker.git diff --git a/week.php b/week.php index 1fb904eb..16fd79ba 100644 --- a/week.php +++ b/week.php @@ -89,7 +89,7 @@ if ($user->isPluginEnabled('mq')){ // Initialize variables. // Custom field. -$cl_cf_1 = trim($request->getParameter('cf_1', ($request->getMethod()=='POST'? null : @$_SESSION['cf_1']))); +$cl_cf_1 = trim($request->getParameter('cf_1', ($request->isPost() ? null : @$_SESSION['cf_1']))); $_SESSION['cf_1'] = $cl_cf_1; $cl_billable = 1; if ($user->isPluginEnabled('iv')) { @@ -101,11 +101,11 @@ if ($user->isPluginEnabled('iv')) { $cl_billable = $_SESSION['billable']; } $on_behalf_id = $request->getParameter('onBehalfUser', (isset($_SESSION['behalf_id'])? $_SESSION['behalf_id'] : $user->id)); -$cl_client = $request->getParameter('client', ($request->getMethod()=='POST'? null : @$_SESSION['client'])); +$cl_client = $request->getParameter('client', ($request->isPost() ? null : @$_SESSION['client'])); $_SESSION['client'] = $cl_client; -$cl_project = $request->getParameter('project', ($request->getMethod()=='POST'? null : @$_SESSION['project'])); +$cl_project = $request->getParameter('project', ($request->isPost() ? null : @$_SESSION['project'])); $_SESSION['project'] = $cl_project; -$cl_task = $request->getParameter('task', ($request->getMethod()=='POST'? null : @$_SESSION['task'])); +$cl_task = $request->getParameter('task', ($request->isPost() ? null : @$_SESSION['task'])); $_SESSION['task'] = $cl_task; // Get the data we need to display week view. @@ -114,8 +114,12 @@ $dayHeaders = ttWeekViewHelper::getDayHeadersForWeek($startDate->toString(DB_DAT $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 data array for the table. Format is described in ttWeekViewHelper::getDataForWeekView function. +if ($records) + $dataArray = ttWeekViewHelper::getDataForWeekView($records, $dayHeaders); +else + $dataArray = ttWeekViewHelper::prePopulateFromPastWeeks($startDate->toString(DB_DATEFORMAT), $dayHeaders); + // Build day totals (total durations for each day in week). $dayTotals = ttWeekViewHelper::getDayTotals($dataArray, $dayHeaders); @@ -142,9 +146,8 @@ class LabelCellRenderer extends DefaultCellRenderer { } } -// Define rendering class for a single cell for time entry in week view table. -// TODO: Refactor the class name, as we now handle both durations and comments in these cells. -class TimeCellRenderer extends DefaultCellRenderer { +// Define rendering class for a single cell for a time or a comment entry in week view table. +class WeekViewCellRenderer extends DefaultCellRenderer { function render(&$table, $value, $row, $column, $selected = false) { $field_name = $table->getValueAt($row,$column)['control_id']; // Our text field names (and ids) are like x_y (row_column). $field = new TextField($field_name); @@ -156,8 +159,10 @@ class TimeCellRenderer extends DefaultCellRenderer { $field->setStyle('width: 60px;'); // TODO: need to style everything properly, eventually. if (0 == $row % 2) $field->setValue($table->getValueAt($row,$column)['duration']); // Duration for even rows. - else + else { $field->setValue($table->getValueAt($row,$column)['note']); // Comment for odd rows. + $field->setTitle($table->getValueAt($row,$column)['note']); // Tooltip to help view the entire comment. + } // Disable control when time entry mode is TYPE_START_FINISH and there is no value in control // because we can't supply start and finish times in week view - there are no fields for them. global $user; @@ -194,7 +199,7 @@ $table->setData($dataArray); // Add columns to table. $table->addColumn(new TableColumn('label', '', new LabelCellRenderer(), $dayTotals['label'])); for ($i = 0; $i < 7; $i++) { - $table->addColumn(new TableColumn($dayHeaders[$i], $dayHeaders[$i], new TimeCellRenderer(), $dayTotals[$dayHeaders[$i]])); + $table->addColumn(new TableColumn($dayHeaders[$i], $dayHeaders[$i], new WeekViewCellRenderer(), $dayTotals[$dayHeaders[$i]])); } $table->setInteractive(false); $form->addInputElement($table);