summaryrefslogtreecommitdiff
path: root/app/Controller
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2017-02-26 19:30:02 -0500
committerFrederic Guillot <fred@kanboard.net>2017-02-26 19:30:02 -0500
commitf3deb6492a74f1ffa9e3391274e0ab7947a04016 (patch)
treecbf7a3563cf1543bd131dd114f8dc89afdf5328f /app/Controller
parent4f325193be4f16a9658258fecd525e71917156a0 (diff)
Add toggle button to show/hide subtasks in task list view
Diffstat (limited to 'app/Controller')
-rw-r--r--app/Controller/SubtaskStatusController.php37
-rw-r--r--app/Controller/TaskListController.php14
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']))