diff options
author | Frédéric Guillot <contact@fredericguillot.com> | 2014-07-04 12:39:47 -0300 |
---|---|---|
committer | Frédéric Guillot <contact@fredericguillot.com> | 2014-07-04 12:39:47 -0300 |
commit | 8c428d377f1570faf1198ae692a6f56bdb66170c (patch) | |
tree | 73f365f681a59328f11ce12086bf5685b3ab821a | |
parent | ccd5e93c163a8bf35787506f70df4d136dd34b85 (diff) | |
parent | 6d65cfd88343aadc68e4963e66dcdc0688b4346c (diff) |
Merge pull request #163 from Typz/popover
Use popover to edit task and description directly from board.
-rw-r--r-- | app/Controller/Task.php | 65 | ||||
-rw-r--r-- | app/Templates/board_task.php | 10 | ||||
-rw-r--r-- | app/Templates/task_edit.php | 11 | ||||
-rw-r--r-- | app/Templates/task_edit_description.php | 7 | ||||
-rw-r--r-- | assets/js/board.js | 6 |
5 files changed, 68 insertions, 31 deletions
diff --git a/app/Controller/Task.php b/app/Controller/Task.php index d44ba268..15482afc 100644 --- a/app/Controller/Task.php +++ b/app/Controller/Task.php @@ -162,17 +162,24 @@ class Task extends Base $task['score'] = $task['score'] ?: ''; - $this->response->html($this->template->layout('task_edit', array( - 'values' => $task, - 'errors' => array(), - 'task' => $task, - 'columns_list' => $this->board->getColumnsList($task['project_id']), - 'users_list' => $this->project->getUsersList($task['project_id']), - 'colors_list' => $this->task->getColors(), - 'categories_list' => $this->category->getList($task['project_id']), - 'menu' => 'tasks', - 'title' => t('Edit a task') - ))); + $params = array( + 'values' => $task, + 'errors' => array(), + 'task' => $task, + 'columns_list' => $this->board->getColumnsList($task['project_id']), + 'users_list' => $this->project->getUsersList($task['project_id']), + 'colors_list' => $this->task->getColors(), + 'categories_list' => $this->category->getList($task['project_id']), + 'ajax' => $this->request->isAjax(), + 'menu' => 'tasks', + 'title' => t('Edit a task') + ); + if ($this->request->isAjax()) { + $this->response->html($this->template->load('task_edit', $params)); + } + else { + $this->response->html($this->template->layout('task_edit', $params)); + } } /** @@ -191,7 +198,13 @@ class Task extends Base if ($this->task->update($values)) { $this->session->flash(t('Task updated successfully.')); - $this->response->redirect('?controller=task&action=show&task_id='.$values['id']); + + if ($this->request->getIntegerParam('ajax')) { + $this->response->redirect('?controller=board&action=show&project_id='.$task['project_id']); + } + else { + $this->response->redirect('?controller=task&action=show&task_id='.$values['id']); + } } else { $this->session->flashError(t('Unable to update your task.')); @@ -357,13 +370,20 @@ class Task extends Base { $task = $this->getTask(); - $this->response->html($this->taskLayout('task_edit_description', array( - 'values' => $task, - 'errors' => array(), - 'task' => $task, - 'menu' => 'tasks', - 'title' => t('Edit the description') - ))); + $params = array( + 'values' => $task, + 'errors' => array(), + 'task' => $task, + 'ajax' => $this->request->isAjax(), + 'menu' => 'tasks', + 'title' => t('Edit the description') + ); + if ($this->request->isAjax()) { + $this->response->html($this->template->load('task_edit_description', $params)); + } + else { + $this->response->html($this->taskLayout('task_edit_description', $params)); + } } /** @@ -387,7 +407,12 @@ class Task extends Base $this->session->flashError(t('Unable to update your task.')); } - $this->response->redirect('?controller=task&action=show&task_id='.$task['id']); + if ($this->request->getIntegerParam('ajax')) { + $this->response->redirect('?controller=board&action=show&project_id='.$task['project_id']); + } + else { + $this->response->redirect('?controller=task&action=show&task_id='.$task['id']); + } } $this->response->html($this->taskLayout('task_edit_description', array( diff --git a/app/Templates/board_task.php b/app/Templates/board_task.php index fa745ac1..89f768e0 100644 --- a/app/Templates/board_task.php +++ b/app/Templates/board_task.php @@ -20,13 +20,13 @@ <?php else: ?> - <a href="?controller=task&action=edit&task_id=<?= $task['id'] ?>" title="<?= t('Edit this task') ?>">#<?= $task['id'] ?></a> - + <a class="task-board-popover" href="?controller=task&action=edit&task_id=<?= $task['id'] ?>" title="<?= t('Edit this task') ?>">#<?= $task['id'] ?></a> - <span class="task-board-user"> <?php if (! empty($task['owner_id'])): ?> - <a href="?controller=board&action=assign&task_id=<?= $task['id'] ?>" title="<?= t('Change assignee') ?>"><?= t('Assigned to %s', $task['username']) ?></a> + <a class="task-board-popover" href="?controller=board&action=assign&task_id=<?= $task['id'] ?>" title="<?= t('Change assignee') ?>"><?= t('Assigned to %s', $task['username']) ?></a> <?php else: ?> - <a href="?controller=board&action=assign&task_id=<?= $task['id'] ?>" title="<?= t('Change assignee') ?>" class="task-board-nobody"><?= t('Nobody assigned') ?></a> + <a class="task-board-popover" href="?controller=board&action=assign&task_id=<?= $task['id'] ?>" title="<?= t('Change assignee') ?>" class="task-board-nobody"><?= t('Nobody assigned') ?></a> <?php endif ?> </span> @@ -69,8 +69,8 @@ <?php endif ?> <?php if (! empty($task['description'])): ?> - <i class="fa fa-file-text-o" title="<?= t('Description') ?>"></i> + <a class="task-board-popover" href='?controller=task&action=editDescription&task_id=<?= $task['id'] ?>'><i class="fa fa-file-text-o" title="<?= t('Description') ?>"></i></a> <?php endif ?> </div> </div> -<?php endif ?>
\ No newline at end of file +<?php endif ?> diff --git a/app/Templates/task_edit.php b/app/Templates/task_edit.php index 015f746d..07c3539b 100644 --- a/app/Templates/task_edit.php +++ b/app/Templates/task_edit.php @@ -1,12 +1,14 @@ <section id="main"> <div class="page-header"> <h2><?= t('Edit a task') ?></h2> +<?php if (!$ajax): ?> <ul> <li><a href="?controller=board&action=show&project_id=<?= $task['project_id'] ?>"><?= t('Back to the board') ?></a></li> </ul> +<?php endif ?> </div> <section> - <form method="post" action="?controller=task&action=update&task_id=<?= $task['id'] ?>" autocomplete="off"> + <form method="post" action="?controller=task&action=update&task_id=<?= $task['id'] ?>&ajax=<?= $ajax ?>" autocomplete="off"> <?= Helper\form_csrf() ?> @@ -47,7 +49,12 @@ <div class="form-actions"> <input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/> - <?= t('or') ?> <a href="?controller=task&action=show&task_id=<?= $task['id'] ?>"><?= t('cancel') ?></a> + <?= t('or') ?> +<?php if ($ajax): ?> + <a href="?controller=board&action=show&project_id=<?= $task['project_id'] ?>"><?= t('cancel') ?></a> +<?php else: ?> + <a href="?controller=task&action=show&task_id=<?= $task['id'] ?>"><?= t('cancel') ?></a> +<?php endif ?> </div> </form> </section> diff --git a/app/Templates/task_edit_description.php b/app/Templates/task_edit_description.php index 550dac73..ba0d3887 100644 --- a/app/Templates/task_edit_description.php +++ b/app/Templates/task_edit_description.php @@ -2,7 +2,7 @@ <h2><?= t('Edit the description') ?></h2> </div> -<form method="post" action="?controller=task&action=saveDescription&task_id=<?= $task['id'] ?>" autocomplete="off"> +<form method="post" action="?controller=task&action=saveDescription&task_id=<?= $task['id'] ?>&ajax=<?= $ajax ?>" autocomplete="off"> <?= Helper\form_csrf() ?> @@ -13,6 +13,11 @@ <div class="form-actions"> <input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/> <?= t('or') ?> +<?php if ($ajax): ?> + <a href="?controller=board&action=show&project_id=<?= $task['project_id'] ?>"><?= t('cancel') ?></a> +<?php else: ?> <a href="?controller=task&action=show&task_id=<?= $task['id'] ?>"><?= t('cancel') ?></a> +<?php endif ?> </div> </form> + diff --git a/assets/js/board.js b/assets/js/board.js index f43f3f57..0487005d 100644 --- a/assets/js/board.js +++ b/assets/js/board.js @@ -15,14 +15,14 @@ }); // Open assignee popover - $(".task-board-user a").click(function(e) { + $(".task-board-popover").click(function(e) { e.preventDefault(); e.stopPropagation(); - var taskId = $(this).parent().parent().attr("data-task-id"); + var href = $(this).attr('href'); - $.get("?controller=board&action=assign&task_id=" + taskId, function(data) { + $.get(href, function(data) { popover_show(data); }); }); |