diff options
author | Frederic Guillot <fred@kanboard.net> | 2017-02-26 19:30:02 -0500 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2017-02-26 19:30:02 -0500 |
commit | f3deb6492a74f1ffa9e3391274e0ab7947a04016 (patch) | |
tree | cbf7a3563cf1543bd131dd114f8dc89afdf5328f /app/Controller | |
parent | 4f325193be4f16a9658258fecd525e71917156a0 (diff) |
Add toggle button to show/hide subtasks in task list view
Diffstat (limited to 'app/Controller')
-rw-r--r-- | app/Controller/SubtaskStatusController.php | 37 | ||||
-rw-r--r-- | app/Controller/TaskListController.php | 14 |
2 files changed, 22 insertions, 29 deletions
diff --git a/app/Controller/SubtaskStatusController.php b/app/Controller/SubtaskStatusController.php index d4d356c3..72feb685 100644 --- a/app/Controller/SubtaskStatusController.php +++ b/app/Controller/SubtaskStatusController.php @@ -21,15 +21,9 @@ class SubtaskStatusController extends BaseController $subtask = $this->getSubtask(); $status = $this->subtaskStatusModel->toggleStatus($subtask['id']); + $subtask['status'] = $status; - if ($this->request->getIntegerParam('refresh-table') === 0) { - $subtask['status'] = $status; - $html = $this->helper->subtask->toggleStatus($subtask, $task['project_id']); - } else { - $html = $this->renderTable($task); - } - - $this->response->html($html); + $this->response->html($this->helper->subtask->renderToggleStatus($task, $subtask)); } /** @@ -40,32 +34,19 @@ class SubtaskStatusController extends BaseController public function timer() { $task = $this->getTask(); - $subtask_id = $this->request->getIntegerParam('subtask_id'); + $subtaskId = $this->request->getIntegerParam('subtask_id'); $timer = $this->request->getStringParam('timer'); if ($timer === 'start') { - $this->subtaskTimeTrackingModel->logStartTime($subtask_id, $this->userSession->getId()); + $this->subtaskTimeTrackingModel->logStartTime($subtaskId, $this->userSession->getId()); } elseif ($timer === 'stop') { - $this->subtaskTimeTrackingModel->logEndTime($subtask_id, $this->userSession->getId()); + $this->subtaskTimeTrackingModel->logEndTime($subtaskId, $this->userSession->getId()); $this->subtaskTimeTrackingModel->updateTaskTimeTracking($task['id']); } - $this->response->html($this->renderTable($task)); - } - - /** - * Render table - * - * @access private - * @param array $task - * @return string - */ - private function renderTable(array $task) - { - return $this->template->render('subtask/table', array( - 'task' => $task, - 'subtasks' => $this->subtaskModel->getAll($task['id']), - 'editable' => true, - )); + $this->response->html($this->template->render('subtask/timer', array( + 'task' => $task, + 'subtask' => $this->subtaskModel->getByIdWithDetails($subtaskId), + ))); } } diff --git a/app/Controller/TaskListController.php b/app/Controller/TaskListController.php index b3709a18..f2f2f6e5 100644 --- a/app/Controller/TaskListController.php +++ b/app/Controller/TaskListController.php @@ -23,12 +23,24 @@ class TaskListController extends BaseController $project = $this->getProject(); $search = $this->helper->projectHeader->getSearchQuery($project); + if ($this->request->getIntegerParam('show_subtasks')) { + $this->sessionStorage->subtaskListToggle = true; + } elseif ($this->request->getIntegerParam('hide_subtasks')) { + $this->sessionStorage->subtaskListToggle = false; + } + + if ($this->userSession->hasSubtaskListActivated()) { + $formatter = $this->taskListSubtaskFormatter; + } else { + $formatter = $this->taskListFormatter; + } + $paginator = $this->paginator ->setUrl('TaskListController', 'show', array('project_id' => $project['id'])) ->setMax(30) ->setOrder(TaskModel::TABLE.'.id') ->setDirection('DESC') - ->setFormatter($this->taskListFormatter) + ->setFormatter($formatter) ->setQuery($this->taskLexer ->build($search) ->withFilter(new TaskProjectFilter($project['id'])) |