From 2243eebda97cf9d209110432034a372cc89ded5a Mon Sep 17 00:00:00 2001 From: Matthew Ross Date: Mon, 8 May 2017 17:18:45 -0400 Subject: [PATCH] Add and remove tasks from context menus --- src/api/controllers/Tasks.php | 10 ++-- src/app/board/board.service.ts | 12 +++++ src/app/board/column/column.component.html | 24 +++++----- src/app/board/column/column.component.ts | 37 ++++++++++++++- src/app/board/task/task.component.html | 7 +-- src/app/board/task/task.component.ts | 47 +++++++++++++++---- .../context-menu/context-menu.component.html | 4 +- .../context-menu/context-menu.component.ts | 15 ++++-- 8 files changed, 122 insertions(+), 34 deletions(-) diff --git a/src/api/controllers/Tasks.php b/src/api/controllers/Tasks.php index a4dc230..abd7a3e 100644 --- a/src/api/controllers/Tasks.php +++ b/src/api/controllers/Tasks.php @@ -126,7 +126,7 @@ class Tasks extends BaseController { $id = (int)$args['id']; $task = R::load('task', $id); - if ((int)$task->id !== $id) { + if ((int)$task->id !== $id || (int)$task->id === 0) { $this->logger->addError('Remove Task: ', [$task]); $this->apiJson->addAlert('error', 'Error removing task. ' . 'No task found for ID ' . $id . '.'); @@ -134,8 +134,9 @@ class Tasks extends BaseController { return $this->jsonResponse($response); } - if (!$this->checkBoardAccess( - $this->getBoardId($task->column_id), $request)) { + $boardId = $this->getBoardId($task->column_id); + + if (!$this->checkBoardAccess($boardId, $request)) { return $this->jsonResponse($response, 403); } @@ -151,6 +152,9 @@ class Tasks extends BaseController { $this->apiJson->addAlert('success', 'Task ' . $before->title . ' removed.'); + $board = R::load('board', $boardId); + $this->apiJson->addData(R::exportAll($board)); + return $this->jsonResponse($response); } diff --git a/src/app/board/board.service.ts b/src/app/board/board.service.ts index 7a5f09d..b9ff9be 100644 --- a/src/app/board/board.service.ts +++ b/src/app/board/board.service.ts @@ -64,6 +64,18 @@ export class BoardService { }); } + removeTask(taskId: number): Observable { + return this.http.delete('api/tasks/' + taskId) + .map(res => { + let response: ApiResponse = res.json(); + return response; + }) + .catch((res, caught) => { + let response: ApiResponse = res.json(); + return Observable.of(response); + }); + } + // TODO: Determine when to use this refreshToken(): void { this.http.post('api/refresh', {}).subscribe(); diff --git a/src/app/board/column/column.component.html b/src/app/board/column/column.component.html index 6bddd7a..d1e54f1 100644 --- a/src/app/board/column/column.component.html +++ b/src/app/board/column/column.component.html @@ -29,27 +29,29 @@
+ [task]="task" [add-task]="getShowModalFunction(task.id)" + [remove-task]="getRemoveTaskFunction(task.id)">
- - - - - - - - - + +
Removing a task cannot be undone.
Continue?
+
+ + +
+