From 73bae9bb3425089babea5f2effe172e5a0938e2b Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Fri, 18 Mar 2016 21:16:25 -0400 Subject: Rename controller TaskLink to TaskInternalLink --- app/Controller/TaskInternalLink.php | 156 ++++++++++++++++++++++++ app/Controller/Tasklink.php | 158 ------------------------- app/ServiceProvider/AuthenticationProvider.php | 4 +- app/ServiceProvider/RouteProvider.php | 2 - app/Template/board/task_menu.php | 2 +- app/Template/task/dropdown.php | 2 +- app/Template/task/layout.php | 2 +- app/Template/task/menu.php | 2 +- app/Template/task/public.php | 2 +- app/Template/task/show.php | 2 +- app/Template/task/sidebar.php | 2 +- app/Template/task_internal_link/create.php | 33 ++++++ app/Template/task_internal_link/edit.php | 34 ++++++ app/Template/task_internal_link/remove.php | 15 +++ app/Template/task_internal_link/show.php | 14 +++ app/Template/task_internal_link/table.php | 85 +++++++++++++ app/Template/tasklink/create.php | 33 ------ app/Template/tasklink/edit.php | 34 ------ app/Template/tasklink/remove.php | 15 --- app/Template/tasklink/show.php | 14 --- app/Template/tasklink/table.php | 85 ------------- 21 files changed, 345 insertions(+), 351 deletions(-) create mode 100644 app/Controller/TaskInternalLink.php delete mode 100644 app/Controller/Tasklink.php create mode 100644 app/Template/task_internal_link/create.php create mode 100644 app/Template/task_internal_link/edit.php create mode 100644 app/Template/task_internal_link/remove.php create mode 100644 app/Template/task_internal_link/show.php create mode 100644 app/Template/task_internal_link/table.php delete mode 100644 app/Template/tasklink/create.php delete mode 100644 app/Template/tasklink/edit.php delete mode 100644 app/Template/tasklink/remove.php delete mode 100644 app/Template/tasklink/show.php delete mode 100644 app/Template/tasklink/table.php (limited to 'app') diff --git a/app/Controller/TaskInternalLink.php b/app/Controller/TaskInternalLink.php new file mode 100644 index 00000000..ac5e04b7 --- /dev/null +++ b/app/Controller/TaskInternalLink.php @@ -0,0 +1,156 @@ +taskLink->getById($this->request->getIntegerParam('link_id')); + + if (empty($link)) { + return $this->notfound(); + } + + return $link; + } + + /** + * Creation form + * + * @access public + */ + public function create(array $values = array(), array $errors = array()) + { + $task = $this->getTask(); + + $this->response->html($this->template->render('task_internal_link/create', array( + 'values' => $values, + 'errors' => $errors, + 'task' => $task, + 'labels' => $this->link->getList(0, false), + ))); + } + + /** + * Validation and creation + * + * @access public + */ + public function save() + { + $task = $this->getTask(); + $values = $this->request->getValues(); + + list($valid, $errors) = $this->taskLinkValidator->validateCreation($values); + + if ($valid) { + if ($this->taskLink->create($values['task_id'], $values['opposite_task_id'], $values['link_id'])) { + $this->flash->success(t('Link added successfully.')); + return $this->response->redirect($this->helper->url->to('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])), true); + } + + $errors = array('title' => array(t('The exact same link already exists'))); + $this->flash->failure(t('Unable to create your link.')); + } + + $this->create($values, $errors); + } + + /** + * Edit form + * + * @access public + */ + public function edit(array $values = array(), array $errors = array()) + { + $task = $this->getTask(); + $task_link = $this->getTaskLink(); + + if (empty($values)) { + $opposite_task = $this->taskFinder->getById($task_link['opposite_task_id']); + $values = $task_link; + $values['title'] = '#'.$opposite_task['id'].' - '.$opposite_task['title']; + } + + $this->response->html($this->template->render('task_internal_link/edit', array( + 'values' => $values, + 'errors' => $errors, + 'task_link' => $task_link, + 'task' => $task, + 'labels' => $this->link->getList(0, false) + ))); + } + + /** + * Validation and update + * + * @access public + */ + public function update() + { + $task = $this->getTask(); + $values = $this->request->getValues(); + + list($valid, $errors) = $this->taskLinkValidator->validateModification($values); + + if ($valid) { + if ($this->taskLink->update($values['id'], $values['task_id'], $values['opposite_task_id'], $values['link_id'])) { + $this->flash->success(t('Link updated successfully.')); + return $this->response->redirect($this->helper->url->to('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])).'#links'); + } + + $this->flash->failure(t('Unable to update your link.')); + } + + $this->edit($values, $errors); + } + + /** + * Confirmation dialog before removing a link + * + * @access public + */ + public function confirm() + { + $task = $this->getTask(); + $link = $this->getTaskLink(); + + $this->response->html($this->template->render('task_internal_link/remove', array( + 'link' => $link, + 'task' => $task, + ))); + } + + /** + * Remove a link + * + * @access public + */ + public function remove() + { + $this->checkCSRFParam(); + $task = $this->getTask(); + + if ($this->taskLink->remove($this->request->getIntegerParam('link_id'))) { + $this->flash->success(t('Link removed successfully.')); + } else { + $this->flash->failure(t('Unable to remove this link.')); + } + + $this->response->redirect($this->helper->url->to('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']))); + } +} diff --git a/app/Controller/Tasklink.php b/app/Controller/Tasklink.php deleted file mode 100644 index a7f4914b..00000000 --- a/app/Controller/Tasklink.php +++ /dev/null @@ -1,158 +0,0 @@ -taskLink->getById($this->request->getIntegerParam('link_id')); - - if (empty($link)) { - return $this->notfound(); - } - - return $link; - } - - /** - * Creation form - * - * @access public - */ - public function create(array $values = array(), array $errors = array()) - { - $task = $this->getTask(); - - $this->response->html($this->template->render('tasklink/create', array( - 'values' => $values, - 'errors' => $errors, - 'task' => $task, - 'labels' => $this->link->getList(0, false), - 'title' => t('Add a new link') - ))); - } - - /** - * Validation and creation - * - * @access public - */ - public function save() - { - $task = $this->getTask(); - $values = $this->request->getValues(); - - list($valid, $errors) = $this->taskLinkValidator->validateCreation($values); - - if ($valid) { - if ($this->taskLink->create($values['task_id'], $values['opposite_task_id'], $values['link_id'])) { - $this->flash->success(t('Link added successfully.')); - return $this->response->redirect($this->helper->url->to('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])).'#links', true); - } - - $errors = array('title' => array(t('The exact same link already exists'))); - $this->flash->failure(t('Unable to create your link.')); - } - - $this->create($values, $errors); - } - - /** - * Edit form - * - * @access public - */ - public function edit(array $values = array(), array $errors = array()) - { - $task = $this->getTask(); - $task_link = $this->getTaskLink(); - - if (empty($values)) { - $opposite_task = $this->taskFinder->getById($task_link['opposite_task_id']); - $values = $task_link; - $values['title'] = '#'.$opposite_task['id'].' - '.$opposite_task['title']; - } - - $this->response->html($this->template->render('tasklink/edit', array( - 'values' => $values, - 'errors' => $errors, - 'task_link' => $task_link, - 'task' => $task, - 'labels' => $this->link->getList(0, false), - 'title' => t('Edit link') - ))); - } - - /** - * Validation and update - * - * @access public - */ - public function update() - { - $task = $this->getTask(); - $values = $this->request->getValues(); - - list($valid, $errors) = $this->taskLinkValidator->validateModification($values); - - if ($valid) { - if ($this->taskLink->update($values['id'], $values['task_id'], $values['opposite_task_id'], $values['link_id'])) { - $this->flash->success(t('Link updated successfully.')); - return $this->response->redirect($this->helper->url->to('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])).'#links'); - } - - $this->flash->failure(t('Unable to update your link.')); - } - - $this->edit($values, $errors); - } - - /** - * Confirmation dialog before removing a link - * - * @access public - */ - public function confirm() - { - $task = $this->getTask(); - $link = $this->getTaskLink(); - - $this->response->html($this->template->render('tasklink/remove', array( - 'link' => $link, - 'task' => $task, - ))); - } - - /** - * Remove a link - * - * @access public - */ - public function remove() - { - $this->checkCSRFParam(); - $task = $this->getTask(); - - if ($this->taskLink->remove($this->request->getIntegerParam('link_id'))) { - $this->flash->success(t('Link removed successfully.')); - } else { - $this->flash->failure(t('Unable to remove this link.')); - } - - $this->response->redirect($this->helper->url->to('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])).'#links'); - } -} diff --git a/app/ServiceProvider/AuthenticationProvider.php b/app/ServiceProvider/AuthenticationProvider.php index 5ed28fe1..d59ffd9e 100644 --- a/app/ServiceProvider/AuthenticationProvider.php +++ b/app/ServiceProvider/AuthenticationProvider.php @@ -94,10 +94,8 @@ class AuthenticationProvider implements ServiceProviderInterface $acl->add('Taskduplication', '*', Role::PROJECT_MEMBER); $acl->add('TaskRecurrence', '*', Role::PROJECT_MEMBER); $acl->add('TaskImport', '*', Role::PROJECT_MANAGER); - $acl->add('Tasklink', '*', Role::PROJECT_MEMBER); - $acl->add('Tasklink', array('show'), Role::PROJECT_VIEWER); + $acl->add('TaskInternalLink', '*', Role::PROJECT_MEMBER); $acl->add('TaskExternalLink', '*', Role::PROJECT_MEMBER); - $acl->add('TaskExternalLink', array('show'), Role::PROJECT_VIEWER); $acl->add('Taskmodification', '*', Role::PROJECT_MEMBER); $acl->add('Taskstatus', '*', Role::PROJECT_MEMBER); $acl->add('UserHelper', array('mention'), Role::PROJECT_MEMBER); diff --git a/app/ServiceProvider/RouteProvider.php b/app/ServiceProvider/RouteProvider.php index d551f25d..0e7548d4 100644 --- a/app/ServiceProvider/RouteProvider.php +++ b/app/ServiceProvider/RouteProvider.php @@ -101,8 +101,6 @@ class RouteProvider implements ServiceProviderInterface $container['route']->addRoute('project/:project_id/task/:task_id/analytics', 'task', 'analytics'); $container['route']->addRoute('project/:project_id/task/:task_id/subtasks', 'subtask', 'show'); $container['route']->addRoute('project/:project_id/task/:task_id/time-tracking', 'task', 'timetracking'); - $container['route']->addRoute('project/:project_id/task/:task_id/internal/links', 'tasklink', 'show'); - $container['route']->addRoute('project/:project_id/task/:task_id/external/links', 'TaskExternalLink', 'show'); // Exports $container['route']->addRoute('export/tasks/:project_id', 'export', 'tasks'); diff --git a/app/Template/board/task_menu.php b/app/Template/board/task_menu.php index bd582185..51a2e72e 100644 --- a/app/Template/board/task_menu.php +++ b/app/Template/board/task_menu.php @@ -6,7 +6,7 @@
  •  url->link(t('Change description'), 'taskmodification', 'description', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
  •  url->link(t('Edit this task'), 'taskmodification', 'edit', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
  •  url->link(t('Add a comment'), 'comment', 'create', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
  • -
  •  url->link(t('Add a link'), 'tasklink', 'create', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
  • +
  •  url->link(t('Add a link'), 'TaskInternalLink', 'create', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
  •  url->link(t('Add external link'), 'TaskExternalLink', 'find', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
  •  url->link(t('Add a screenshot'), 'BoardPopover', 'screenshot', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
  • diff --git a/app/Template/task/dropdown.php b/app/Template/task/dropdown.php index 3300ccf0..f98f5172 100644 --- a/app/Template/task/dropdown.php +++ b/app/Template/task/dropdown.php @@ -21,7 +21,7 @@
  • - url->link(t('Add internal link'), 'tasklink', 'create', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?> + url->link(t('Add internal link'), 'TaskInternalLink', 'create', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
  • diff --git a/app/Template/task/layout.php b/app/Template/task/layout.php index b588384c..48360664 100644 --- a/app/Template/task/layout.php +++ b/app/Template/task/layout.php @@ -24,7 +24,7 @@ class="sidebar-container" id="task-view" data-edit-url="url->href('taskmodification', 'edit', array('task_id' => $task['id'], 'project_id' => $task['project_id'])) ?>" data-subtask-url="url->href('subtask', 'create', array('task_id' => $task['id'], 'project_id' => $task['project_id'])) ?>" - data-internal-link-url="url->href('tasklink', 'create', array('task_id' => $task['id'], 'project_id' => $task['project_id'])) ?>" + data-internal-link-url="url->href('TaskInternalLink', 'create', array('task_id' => $task['id'], 'project_id' => $task['project_id'])) ?>" data-comment-url="url->href('comment', 'create', array('task_id' => $task['id'], 'project_id' => $task['project_id'])) ?>"> render($sidebar_template, array('task' => $task)) ?> diff --git a/app/Template/task/menu.php b/app/Template/task/menu.php index cddd930a..fe30d06e 100644 --- a/app/Template/task/menu.php +++ b/app/Template/task/menu.php @@ -26,7 +26,7 @@
  • - url->link(t('Add internal link'), 'tasklink', 'create', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?> + url->link(t('Add internal link'), 'TaskInternalLink', 'create', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
  • diff --git a/app/Template/task/public.php b/app/Template/task/public.php index 723882c3..94782163 100644 --- a/app/Template/task/public.php +++ b/app/Template/task/public.php @@ -13,7 +13,7 @@ 'editable' => false )) ?> - render('tasklink/show', array( + render('task_internal_link/show', array( 'task' => $task, 'links' => $links, 'project' => $project, diff --git a/app/Template/task/show.php b/app/Template/task/show.php index 98221bcf..d68f6c48 100644 --- a/app/Template/task/show.php +++ b/app/Template/task/show.php @@ -19,7 +19,7 @@ )) ?> hook->render('template:task:show:before-internal-links', array('task' => $task, 'project' => $project)) ?> -render('tasklink/show', array( +render('task_internal_link/show', array( 'task' => $task, 'links' => $internal_links, 'project' => $project, diff --git a/app/Template/task/sidebar.php b/app/Template/task/sidebar.php index 955b17c4..ee3b1594 100644 --- a/app/Template/task/sidebar.php +++ b/app/Template/task/sidebar.php @@ -44,7 +44,7 @@
  • - url->link(t('Add internal link'), 'tasklink', 'create', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?> + url->link(t('Add internal link'), 'TaskInternalLink', 'create', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
  • diff --git a/app/Template/task_internal_link/create.php b/app/Template/task_internal_link/create.php new file mode 100644 index 00000000..94dcdd66 --- /dev/null +++ b/app/Template/task_internal_link/create.php @@ -0,0 +1,33 @@ + + +
    + + form->csrf() ?> + form->hidden('task_id', array('task_id' => $task['id'])) ?> + form->hidden('opposite_task_id', $values) ?> + + form->label(t('Label'), 'link_id') ?> + form->select('link_id', $labels, $values, $errors) ?> + + form->label(t('Task'), 'title') ?> + form->text( + 'title', + $values, + $errors, + array( + 'required', + 'placeholder="'.t('Start to type task title...').'"', + 'title="'.t('Start to type task title...').'"', + 'data-dst-field="opposite_task_id"', + 'data-search-url="'.$this->url->href('TaskHelper', 'autocomplete', array('exclude_task_id' => $task['id'])).'"', + ), + 'autocomplete') ?> + +
    + + + url->link(t('cancel'), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'close-popover') ?> +
    +
    \ No newline at end of file diff --git a/app/Template/task_internal_link/edit.php b/app/Template/task_internal_link/edit.php new file mode 100644 index 00000000..03622df7 --- /dev/null +++ b/app/Template/task_internal_link/edit.php @@ -0,0 +1,34 @@ + + +
    + + form->csrf() ?> + form->hidden('id', $values) ?> + form->hidden('task_id', $values) ?> + form->hidden('opposite_task_id', $values) ?> + + form->label(t('Label'), 'link_id') ?> + form->select('link_id', $labels, $values, $errors) ?> + + form->label(t('Task'), 'title') ?> + form->text( + 'title', + $values, + $errors, + array( + 'required', + 'placeholder="'.t('Start to type task title...').'"', + 'title="'.t('Start to type task title...').'"', + 'data-dst-field="opposite_task_id"', + 'data-search-url="'.$this->url->href('TaskHelper', 'autocomplete', array('exclude_task_id' => $task['id'])).'"', + ), + 'autocomplete') ?> + +
    + + + url->link(t('cancel'), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'close-popover') ?> +
    +
    \ No newline at end of file diff --git a/app/Template/task_internal_link/remove.php b/app/Template/task_internal_link/remove.php new file mode 100644 index 00000000..82156ece --- /dev/null +++ b/app/Template/task_internal_link/remove.php @@ -0,0 +1,15 @@ + + +
    +

    + +

    + +
    + url->link(t('Yes'), 'TaskInternalLink', 'remove', array('link_id' => $link['id'], 'task_id' => $task['id'], 'project_id' => $task['project_id']), true, 'btn btn-red') ?> + + url->link(t('cancel'), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'close-popover') ?> +
    +
    \ No newline at end of file diff --git a/app/Template/task_internal_link/show.php b/app/Template/task_internal_link/show.php new file mode 100644 index 00000000..cc05429c --- /dev/null +++ b/app/Template/task_internal_link/show.php @@ -0,0 +1,14 @@ +
    +
    +

    +
    +
    + render('task_internal_link/table', array( + 'links' => $links, + 'task' => $task, + 'project' => $project, + 'editable' => $editable, + 'is_public' => $is_public, + )) ?> +
    +
    diff --git a/app/Template/task_internal_link/table.php b/app/Template/task_internal_link/table.php new file mode 100644 index 00000000..8f25b29b --- /dev/null +++ b/app/Template/task_internal_link/table.php @@ -0,0 +1,85 @@ + + + $grouped_links): ?> + + + + + + + + + + + + + + + + + + + + user->hasProjectAccess('Tasklink', 'edit', $task['project_id'])): ?> + + + + + + + \ No newline at end of file diff --git a/app/Template/tasklink/create.php b/app/Template/tasklink/create.php deleted file mode 100644 index 02d38a9b..00000000 --- a/app/Template/tasklink/create.php +++ /dev/null @@ -1,33 +0,0 @@ - - -
    - - form->csrf() ?> - form->hidden('task_id', array('task_id' => $task['id'])) ?> - form->hidden('opposite_task_id', $values) ?> - - form->label(t('Label'), 'link_id') ?> - form->select('link_id', $labels, $values, $errors) ?> - - form->label(t('Task'), 'title') ?> - form->text( - 'title', - $values, - $errors, - array( - 'required', - 'placeholder="'.t('Start to type task title...').'"', - 'title="'.t('Start to type task title...').'"', - 'data-dst-field="opposite_task_id"', - 'data-search-url="'.$this->url->href('TaskHelper', 'autocomplete', array('exclude_task_id' => $task['id'])).'"', - ), - 'autocomplete') ?> - -
    - - - url->link(t('cancel'), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'close-popover') ?> -
    -
    \ No newline at end of file diff --git a/app/Template/tasklink/edit.php b/app/Template/tasklink/edit.php deleted file mode 100644 index b174c348..00000000 --- a/app/Template/tasklink/edit.php +++ /dev/null @@ -1,34 +0,0 @@ - - -
    - - form->csrf() ?> - form->hidden('id', $values) ?> - form->hidden('task_id', $values) ?> - form->hidden('opposite_task_id', $values) ?> - - form->label(t('Label'), 'link_id') ?> - form->select('link_id', $labels, $values, $errors) ?> - - form->label(t('Task'), 'title') ?> - form->text( - 'title', - $values, - $errors, - array( - 'required', - 'placeholder="'.t('Start to type task title...').'"', - 'title="'.t('Start to type task title...').'"', - 'data-dst-field="opposite_task_id"', - 'data-search-url="'.$this->url->href('TaskHelper', 'autocomplete', array('exclude_task_id' => $task['id'])).'"', - ), - 'autocomplete') ?> - -
    - - - url->link(t('cancel'), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'close-popover') ?> -
    -
    \ No newline at end of file diff --git a/app/Template/tasklink/remove.php b/app/Template/tasklink/remove.php deleted file mode 100644 index 42bf3012..00000000 --- a/app/Template/tasklink/remove.php +++ /dev/null @@ -1,15 +0,0 @@ - - -
    -

    - -

    - -
    - url->link(t('Yes'), 'tasklink', 'remove', array('link_id' => $link['id'], 'task_id' => $task['id'], 'project_id' => $task['project_id']), true, 'btn btn-red') ?> - - url->link(t('cancel'), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'close-popover') ?> -
    -
    \ No newline at end of file diff --git a/app/Template/tasklink/show.php b/app/Template/tasklink/show.php deleted file mode 100644 index 9f718fc9..00000000 --- a/app/Template/tasklink/show.php +++ /dev/null @@ -1,14 +0,0 @@ -
    -
    -

    -
    -
    - render('tasklink/table', array( - 'links' => $links, - 'task' => $task, - 'project' => $project, - 'editable' => $editable, - 'is_public' => $is_public, - )) ?> -
    -
    diff --git a/app/Template/tasklink/table.php b/app/Template/tasklink/table.php deleted file mode 100644 index df7bc4f5..00000000 --- a/app/Template/tasklink/table.php +++ /dev/null @@ -1,85 +0,0 @@ - - - $grouped_links): ?> - - - - - - - - - - - - - - - - - - - - user->hasProjectAccess('Tasklink', 'edit', $task['project_id'])): ?> - - - - - - - \ No newline at end of file -- cgit v1.2.3