|
110 | 110 | // Get column headers, which are day numbers in month. |
111 | 111 | $dayHeaders = ttTimeHelper::getDayHeadersForWeek($startDate->toString(DB_DATEFORMAT)); |
112 | 112 | // Build data array for the table. Format is described in the function.. |
113 | | -$dataArray = ttTimeHelper::getDataForWeekView($user->getActiveUser(), $startDate->toString(DB_DATEFORMAT), $endDate->toString(DB_DATEFORMAT)); |
| 113 | +$dataArray = ttTimeHelper::getDataForWeekView($user->getActiveUser(), $startDate->toString(DB_DATEFORMAT), $endDate->toString(DB_DATEFORMAT), $dayHeaders); |
114 | 114 | // Build day totals (total durations for each day in week). |
115 | 115 | $dayTotals = ttTimeHelper::getDayTotals($dataArray, $dayHeaders); |
116 | 116 |
|
117 | 117 | // TODO: refactoring ongoing down from here. |
118 | 118 |
|
| 119 | +// 1) Start coding modification of existing records. |
| 120 | +// 2) Then adding new records for existing rows. |
| 121 | +// 3) Then add code and UI for adding a new row. |
| 122 | + |
119 | 123 | // Actually this is work in progress at this point, even documenting the array, as we still miss control IDs, and |
120 | 124 | // editing entries is not yet implemented. When this is done, we will have to re-document the above. |
121 | 125 |
|
122 | | -// TODO: |
123 | | -// 1) make sure we have IDs for cells, which are now missing. |
124 | | - |
125 | 126 | // Define rendering class for a label field to the left of durations. |
126 | 127 | class LabelCellRenderer extends DefaultCellRenderer { |
127 | 128 | function render(&$table, $value, $row, $column, $selected = false) { |
128 | 129 | $this->setOptions(array('width'=>200,'valign'=>'middle')); |
129 | | - $this->setValue(htmlspecialchars($value)); |
| 130 | + $this->setValue(htmlspecialchars($value)); // This escapes HTML for output. |
130 | 131 | return $this->toString(); |
131 | 132 | } |
132 | 133 | } |
133 | 134 |
|
134 | 135 | // Define rendering class for a single cell for time entry in week view table. |
135 | 136 | class TimeCellRenderer extends DefaultCellRenderer { |
136 | 137 | function render(&$table, $value, $row, $column, $selected = false) { |
137 | | - $field_name = $table->getValueAt($row,$column)['id']; // Our text field names (and ids) are like x_y (row_column). |
| 138 | + $field_name = $table->getValueAt($row,$column)['control_id']; // Our text field names (and ids) are like x_y (row_column). |
138 | 139 | $field = new TextField($field_name); |
139 | 140 | $field->setFormName($table->getFormName()); |
140 | 141 | $field->setSize(2); |
@@ -169,13 +170,9 @@ function render(&$table, $value, $row, $column, $selected = false) { |
169 | 170 | $table->setData($dataArray); |
170 | 171 | // Add columns to table. |
171 | 172 | $table->addColumn(new TableColumn('label', '', new LabelCellRenderer(), $dayTotals['label'])); |
172 | | -$table->addColumn(new TableColumn($dayHeaders['day_header_0'], $dayHeaders['day_header_0'], new TimeCellRenderer(), $dayTotals[$dayHeaders['day_header_0']])); |
173 | | -$table->addColumn(new TableColumn($dayHeaders['day_header_1'], $dayHeaders['day_header_1'], new TimeCellRenderer(), $dayTotals[$dayHeaders['day_header_1']])); |
174 | | -$table->addColumn(new TableColumn($dayHeaders['day_header_2'], $dayHeaders['day_header_2'], new TimeCellRenderer(), $dayTotals[$dayHeaders['day_header_2']])); |
175 | | -$table->addColumn(new TableColumn($dayHeaders['day_header_3'], $dayHeaders['day_header_3'], new TimeCellRenderer(), $dayTotals[$dayHeaders['day_header_3']])); |
176 | | -$table->addColumn(new TableColumn($dayHeaders['day_header_4'], $dayHeaders['day_header_4'], new TimeCellRenderer(), $dayTotals[$dayHeaders['day_header_4']])); |
177 | | -$table->addColumn(new TableColumn($dayHeaders['day_header_5'], $dayHeaders['day_header_5'], new TimeCellRenderer(), $dayTotals[$dayHeaders['day_header_5']])); |
178 | | -$table->addColumn(new TableColumn($dayHeaders['day_header_6'], $dayHeaders['day_header_6'], new TimeCellRenderer(), $dayTotals[$dayHeaders['day_header_6']])); |
| 173 | +for ($i = 0; $i < 7; $i++) { |
| 174 | + $table->addColumn(new TableColumn($dayHeaders[$i], $dayHeaders[$i], new TimeCellRenderer(), $dayTotals[$dayHeaders[$i]])); |
| 175 | +} |
179 | 176 | $table->setInteractive(false); |
180 | 177 | $form->addInputElement($table); |
181 | 178 |
|
|
0 commit comments