diff options
author | Winnie Hellmann <winnie@gitlab.com> | 2019-07-12 20:00:46 +0000 |
---|---|---|
committer | Mike Greiling <mike@pixelcog.com> | 2019-07-12 20:00:46 +0000 |
commit | 822bb974573e7aaccd2c3ecad7cb2f44942e2991 (patch) | |
tree | fcbd4c2964a1a686829188aa91fdc122f42fba88 /app/assets/javascripts | |
parent | d32cdb840f8ebb9ada32f428bede4db637287516 (diff) | |
download | gitlab-ce-822bb974573e7aaccd2c3ecad7cb2f44942e2991.tar.gz |
Add functions for multiple boards to BoardService
(cherry picked from commit 9dbefac95a8b60b93ba7b05fd7bf69b80b395f54)
Diffstat (limited to 'app/assets/javascripts')
-rw-r--r-- | app/assets/javascripts/boards/services/board_service.js | 16 | ||||
-rw-r--r-- | app/assets/javascripts/boards/stores/boards_store.js | 34 |
2 files changed, 50 insertions, 0 deletions
diff --git a/app/assets/javascripts/boards/services/board_service.js b/app/assets/javascripts/boards/services/board_service.js index 580d04a3649..5202620057c 100644 --- a/app/assets/javascripts/boards/services/board_service.js +++ b/app/assets/javascripts/boards/services/board_service.js @@ -62,6 +62,22 @@ export default class BoardService { static toggleIssueSubscription(endpoint) { return boardsStore.toggleIssueSubscription(endpoint); } + + allBoards() { + return boardsStore.allBoards(); + } + + recentBoards() { + return boardsStore.recentBoards(); + } + + createBoard(board) { + return boardsStore.createBoard(board); + } + + deleteBoard({ id }) { + return boardsStore.deleteBoard({ id }); + } } window.BoardService = BoardService; diff --git a/app/assets/javascripts/boards/stores/boards_store.js b/app/assets/javascripts/boards/stores/boards_store.js index b9cd4a143ef..74f0ab1f934 100644 --- a/app/assets/javascripts/boards/stores/boards_store.js +++ b/app/assets/javascripts/boards/stores/boards_store.js @@ -340,6 +340,40 @@ const boardsStore = { toggleIssueSubscription(endpoint) { return axios.post(endpoint); }, + + allBoards() { + return axios.get(this.generateBoardsPath()); + }, + + recentBoards() { + return axios.get(this.state.endpoints.recentBoardsEndpoint); + }, + + createBoard(board) { + const boardPayload = { ...board }; + boardPayload.label_ids = (board.labels || []).map(b => b.id); + + if (boardPayload.label_ids.length === 0) { + boardPayload.label_ids = ['']; + } + + if (boardPayload.assignee) { + boardPayload.assignee_id = boardPayload.assignee.id; + } + + if (boardPayload.milestone) { + boardPayload.milestone_id = boardPayload.milestone.id; + } + + if (boardPayload.id) { + return axios.put(this.generateBoardsPath(boardPayload.id), { board: boardPayload }); + } + return axios.post(this.generateBoardsPath(), { board: boardPayload }); + }, + + deleteBoard({ id }) { + return axios.delete(this.generateBoardsPath(id)); + }, }; BoardsStoreEE.initEESpecific(boardsStore); |