From 4fb57006a08e06a344e1a2671b2c61490d472e7e Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Wed, 4 May 2016 22:08:42 -0400 Subject: Added generic controller for task popovers --- app/Controller/BoardPopover.php | 90 +------------------ app/Controller/TaskPopover.php | 100 +++++++++++++++++++++ app/ServiceProvider/AuthenticationProvider.php | 1 + app/Template/board/popover_assignee.php | 20 ----- app/Template/board/popover_category.php | 20 ----- .../board/popover_close_all_tasks_column.php | 18 ---- app/Template/board/task_avatar.php | 2 +- .../board_popover/close_all_tasks_column.php | 18 ++++ app/Template/task/dropdown.php | 6 +- app/Template/task_popover/change_assignee.php | 20 +++++ app/Template/task_popover/change_category.php | 20 +++++ 11 files changed, 164 insertions(+), 151 deletions(-) create mode 100644 app/Controller/TaskPopover.php delete mode 100644 app/Template/board/popover_assignee.php delete mode 100644 app/Template/board/popover_category.php delete mode 100644 app/Template/board/popover_close_all_tasks_column.php create mode 100644 app/Template/board_popover/close_all_tasks_column.php create mode 100644 app/Template/task_popover/change_assignee.php create mode 100644 app/Template/task_popover/change_category.php (limited to 'app') diff --git a/app/Controller/BoardPopover.php b/app/Controller/BoardPopover.php index 10584137..b1a017f4 100644 --- a/app/Controller/BoardPopover.php +++ b/app/Controller/BoardPopover.php @@ -10,94 +10,6 @@ namespace Kanboard\Controller; */ class BoardPopover extends Base { - /** - * Change a task assignee directly from the board - * - * @access public - */ - public function changeAssignee() - { - $task = $this->getTask(); - $project = $this->project->getById($task['project_id']); - - $this->response->html($this->template->render('board/popover_assignee', array( - 'values' => $task, - 'users_list' => $this->projectUserRole->getAssignableUsersList($project['id']), - 'project' => $project, - ))); - } - - /** - * Validate an assignee modification - * - * @access public - */ - public function updateAssignee() - { - $values = $this->request->getValues(); - - list($valid, ) = $this->taskValidator->validateAssigneeModification($values); - - if ($valid && $this->taskModification->update($values)) { - $this->flash->success(t('Task updated successfully.')); - } else { - $this->flash->failure(t('Unable to update your task.')); - } - - $this->response->redirect($this->helper->url->to('board', 'show', array('project_id' => $values['project_id'])), true); - } - - /** - * Change a task category directly from the board - * - * @access public - */ - public function changeCategory() - { - $task = $this->getTask(); - $project = $this->project->getById($task['project_id']); - - $this->response->html($this->template->render('board/popover_category', array( - 'values' => $task, - 'categories_list' => $this->category->getList($project['id']), - 'project' => $project, - ))); - } - - /** - * Validate a category modification - * - * @access public - */ - public function updateCategory() - { - $values = $this->request->getValues(); - - list($valid, ) = $this->taskValidator->validateCategoryModification($values); - - if ($valid && $this->taskModification->update($values)) { - $this->flash->success(t('Task updated successfully.')); - } else { - $this->flash->failure(t('Unable to update your task.')); - } - - $this->response->redirect($this->helper->url->to('board', 'show', array('project_id' => $values['project_id'])), true); - } - - /** - * Screenshot popover - * - * @access public - */ - public function screenshot() - { - $task = $this->getTask(); - - $this->response->html($this->template->render('task_file/screenshot', array( - 'task' => $task, - ))); - } - /** * Confirmation before to close all column tasks * @@ -109,7 +21,7 @@ class BoardPopover extends Base $column_id = $this->request->getIntegerParam('column_id'); $swimlane_id = $this->request->getIntegerParam('swimlane_id'); - $this->response->html($this->template->render('board/popover_close_all_tasks_column', array( + $this->response->html($this->template->render('board_popover/close_all_tasks_column', array( 'project' => $project, 'nb_tasks' => $this->taskFinder->countByColumnAndSwimlaneId($project['id'], $column_id, $swimlane_id), 'column' => $this->column->getColumnTitleById($column_id), diff --git a/app/Controller/TaskPopover.php b/app/Controller/TaskPopover.php new file mode 100644 index 00000000..422a99c7 --- /dev/null +++ b/app/Controller/TaskPopover.php @@ -0,0 +1,100 @@ +getTask(); + $project = $this->project->getById($task['project_id']); + + $this->response->html($this->template->render('task_popover/change_assignee', array( + 'values' => $task, + 'users_list' => $this->projectUserRole->getAssignableUsersList($project['id']), + 'project' => $project, + ))); + } + + /** + * Validate an assignee modification + * + * @access public + */ + public function updateAssignee() + { + $values = $this->request->getValues(); + + list($valid,) = $this->taskValidator->validateAssigneeModification($values); + + if ($valid && $this->taskModification->update($values)) { + $this->flash->success(t('Task updated successfully.')); + } else { + $this->flash->failure(t('Unable to update your task.')); + } + + $this->response->redirect($this->helper->url->to('board', 'show', array('project_id' => $values['project_id'])), true); + } + + /** + * Change a task category directly from the board + * + * @access public + */ + public function changeCategory() + { + $task = $this->getTask(); + $project = $this->project->getById($task['project_id']); + + $this->response->html($this->template->render('task_popover/change_category', array( + 'values' => $task, + 'categories_list' => $this->category->getList($project['id']), + 'project' => $project, + ))); + } + + /** + * Validate a category modification + * + * @access public + */ + public function updateCategory() + { + $values = $this->request->getValues(); + + list($valid,) = $this->taskValidator->validateCategoryModification($values); + + if ($valid && $this->taskModification->update($values)) { + $this->flash->success(t('Task updated successfully.')); + } else { + $this->flash->failure(t('Unable to update your task.')); + } + + $this->response->redirect($this->helper->url->to('board', 'show', array('project_id' => $values['project_id'])), true); + } + + /** + * Screenshot popover + * + * @access public + */ + public function screenshot() + { + $task = $this->getTask(); + + $this->response->html($this->template->render('task_file/screenshot', array( + 'task' => $task, + ))); + } +} diff --git a/app/ServiceProvider/AuthenticationProvider.php b/app/ServiceProvider/AuthenticationProvider.php index 776e65d5..f9abaf59 100644 --- a/app/ServiceProvider/AuthenticationProvider.php +++ b/app/ServiceProvider/AuthenticationProvider.php @@ -72,6 +72,7 @@ class AuthenticationProvider implements ServiceProviderInterface $acl->add('Analytic', '*', Role::PROJECT_MANAGER); $acl->add('Board', 'save', Role::PROJECT_MEMBER); $acl->add('BoardPopover', '*', Role::PROJECT_MEMBER); + $acl->add('TaskPopover', '*', Role::PROJECT_MEMBER); $acl->add('Calendar', 'save', Role::PROJECT_MEMBER); $acl->add('Category', '*', Role::PROJECT_MANAGER); $acl->add('Column', '*', Role::PROJECT_MANAGER); diff --git a/app/Template/board/popover_assignee.php b/app/Template/board/popover_assignee.php deleted file mode 100644 index 87e16816..00000000 --- a/app/Template/board/popover_assignee.php +++ /dev/null @@ -1,20 +0,0 @@ -
- -
- - form->csrf() ?> - - form->hidden('id', $values) ?> - form->hidden('project_id', $values) ?> - - task->selectAssignee($users_list, $values, array(), array('autofocus')) ?> - -
- - - url->link(t('cancel'), 'board', 'show', array('project_id' => $project['id']), false, 'close-popover') ?> -
-
-
\ No newline at end of file diff --git a/app/Template/board/popover_category.php b/app/Template/board/popover_category.php deleted file mode 100644 index e3794760..00000000 --- a/app/Template/board/popover_category.php +++ /dev/null @@ -1,20 +0,0 @@ -
- -
- - form->csrf() ?> - - form->hidden('id', $values) ?> - form->hidden('project_id', $values) ?> - - task->selectCategory($categories_list, $values, array(), array('autofocus'), true) ?> - -
- - - url->link(t('cancel'), 'board', 'show', array('project_id' => $project['id']), false, 'close-popover') ?> -
-
-
\ No newline at end of file diff --git a/app/Template/board/popover_close_all_tasks_column.php b/app/Template/board/popover_close_all_tasks_column.php deleted file mode 100644 index 5090f499..00000000 --- a/app/Template/board/popover_close_all_tasks_column.php +++ /dev/null @@ -1,18 +0,0 @@ -
- -
- form->csrf() ?> - form->hidden('column_id', $values) ?> - form->hidden('swimlane_id', $values) ?> - -

- -
- - - url->link(t('cancel'), 'board', 'show', array('project_id' => $project['id']), false, 'close-popover') ?> -
-
-
\ No newline at end of file diff --git a/app/Template/board/task_avatar.php b/app/Template/board/task_avatar.php index 39f6b54d..53739b19 100644 --- a/app/Template/board/task_avatar.php +++ b/app/Template/board/task_avatar.php @@ -3,7 +3,7 @@ user->hasProjectAccess('taskmodification', 'edit', $task['project_id'])): ?> class="task-board-assignee task-board-change-assignee" - data-url="url->href('BoardPopover', 'changeAssignee', array('task_id' => $task['id'], 'project_id' => $task['project_id'])) ?>"> + data-url="url->href('TaskPopover', 'changeAssignee', array('task_id' => $task['id'], 'project_id' => $task['project_id'])) ?>"> class="task-board-assignee"> diff --git a/app/Template/board_popover/close_all_tasks_column.php b/app/Template/board_popover/close_all_tasks_column.php new file mode 100644 index 00000000..5090f499 --- /dev/null +++ b/app/Template/board_popover/close_all_tasks_column.php @@ -0,0 +1,18 @@ +
+ +
+ form->csrf() ?> + form->hidden('column_id', $values) ?> + form->hidden('swimlane_id', $values) ?> + +

+ +
+ + + url->link(t('cancel'), 'board', 'show', array('project_id' => $project['id']), false, 'close-popover') ?> +
+
+
\ No newline at end of file diff --git a/app/Template/task/dropdown.php b/app/Template/task/dropdown.php index 567249df..9771b241 100644 --- a/app/Template/task/dropdown.php +++ b/app/Template/task/dropdown.php @@ -9,11 +9,11 @@
  • - url->link(t('Change assignee'), 'BoardPopover', 'changeAssignee', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?> + url->link(t('Change assignee'), 'TaskPopover', 'changeAssignee', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
  • - url->link(t('Change category'), 'BoardPopover', 'changeCategory', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?> + url->link(t('Change category'), 'TaskPopover', 'changeCategory', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
  • @@ -41,7 +41,7 @@
  • - url->link(t('Add a screenshot'), 'BoardPopover', 'screenshot', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?> + url->link(t('Add a screenshot'), 'TaskPopover', 'screenshot', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
  • diff --git a/app/Template/task_popover/change_assignee.php b/app/Template/task_popover/change_assignee.php new file mode 100644 index 00000000..bf68c34d --- /dev/null +++ b/app/Template/task_popover/change_assignee.php @@ -0,0 +1,20 @@ +
    + +
    + + form->csrf() ?> + + form->hidden('id', $values) ?> + form->hidden('project_id', $values) ?> + + task->selectAssignee($users_list, $values, array(), array('autofocus')) ?> + +
    + + + url->link(t('cancel'), 'board', 'show', array('project_id' => $project['id']), false, 'close-popover') ?> +
    +
    +
    diff --git a/app/Template/task_popover/change_category.php b/app/Template/task_popover/change_category.php new file mode 100644 index 00000000..0364e660 --- /dev/null +++ b/app/Template/task_popover/change_category.php @@ -0,0 +1,20 @@ +
    + +
    + + form->csrf() ?> + + form->hidden('id', $values) ?> + form->hidden('project_id', $values) ?> + + task->selectCategory($categories_list, $values, array(), array('autofocus'), true) ?> + +
    + + + url->link(t('cancel'), 'board', 'show', array('project_id' => $project['id']), false, 'close-popover') ?> +
    +
    +
    -- cgit v1.2.3