From bf59465b10c3f360d8c860b55bcd40d78af74f4a Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Sun, 12 Jul 2015 16:51:20 -0400 Subject: Use ajax requests for board collapse/expand --- app/Controller/Board.php | 58 +++++++++++++++++++++++++--------------- app/Template/project/filters.php | 7 ++--- 2 files changed, 40 insertions(+), 25 deletions(-) (limited to 'app') diff --git a/app/Controller/Board.php b/app/Controller/Board.php index ac80a192..50d9c62e 100644 --- a/app/Controller/Board.php +++ b/app/Controller/Board.php @@ -88,15 +88,7 @@ class Board extends Base return $this->response->status(400); } - $this->response->html( - $this->template->render('board/table_container', array( - 'project' => $this->project->getById($project_id), - 'swimlanes' => $this->taskFilter->search($this->userSession->getFilters($project_id))->getBoard($project_id), - 'board_private_refresh_interval' => $this->config->get('board_private_refresh_interval'), - 'board_highlight_period' => $this->config->get('board_highlight_period'), - )), - 201 - ); + $this->response->html($this->renderBoard($project_id), 201); } /** @@ -121,14 +113,7 @@ class Board extends Base return $this->response->status(304); } - $this->response->html( - $this->template->render('board/table_container', array( - 'project' => $this->project->getById($project_id), - 'swimlanes' => $this->taskFilter->search($this->userSession->getFilters($project_id))->getBoard($project_id), - 'board_private_refresh_interval' => $this->config->get('board_private_refresh_interval'), - 'board_highlight_period' => $this->config->get('board_highlight_period'), - )) - ); + $this->response->html($this->renderBoard($project_id)); } /** @@ -318,9 +303,7 @@ class Board extends Base */ public function collapse() { - $project_id = $this->request->getIntegerParam('project_id'); - $this->userSession->setBoardDisplayMode($project_id, true); - $this->response->redirect($this->helper->url->to('board', 'show', array('project_id' => $project_id))); + $this->changeDisplayMode(true); } /** @@ -329,9 +312,40 @@ class Board extends Base * @access public */ public function expand() + { + $this->changeDisplayMode(false); + } + + /** + * Change display mode + * + * @access private + */ + private function changeDisplayMode($mode) { $project_id = $this->request->getIntegerParam('project_id'); - $this->userSession->setBoardDisplayMode($project_id, false); - $this->response->redirect($this->helper->url->to('board', 'show', array('project_id' => $project_id))); + $this->userSession->setBoardDisplayMode($project_id, $mode); + + if ($this->request->isAjax()) { + $this->response->html($this->renderBoard($project_id)); + } + else { + $this->response->redirect($this->helper->url->to('board', 'show', array('project_id' => $project_id))); + } + } + + /** + * Render board + * + * @access private + */ + private function renderBoard($project_id) + { + return $this->template->render('board/table_container', array( + 'project' => $this->project->getById($project_id), + 'swimlanes' => $this->taskFilter->search($this->userSession->getFilters($project_id))->getBoard($project_id), + 'board_private_refresh_interval' => $this->config->get('board_private_refresh_interval'), + 'board_highlight_period' => $this->config->get('board_highlight_period'), + )); } } diff --git a/app/Template/project/filters.php b/app/Template/project/filters.php index cb6f11d3..e2fdc751 100644 --- a/app/Template/project/filters.php +++ b/app/Template/project/filters.php @@ -5,13 +5,14 @@