diff --git a/app/assets/javascripts/boards/models/list.js b/app/assets/javascripts/boards/models/list.js index 0bd606c6297..2aa92f86125 100644 --- a/app/assets/javascripts/boards/models/list.js +++ b/app/assets/javascripts/boards/models/list.js @@ -119,16 +119,12 @@ class List { } moveMultipleIssues({ issues, oldIndicies, newIndex, moveBeforeId, moveAfterId }) { - oldIndicies.reverse().forEach(index => { - this.issues.splice(index, 1); - }); - this.issues.splice(newIndex, 0, ...issues); - boardsStore - .moveMultipleIssues({ - ids: issues.map(issue => issue.id), - fromListId: null, - toListId: null, + .moveListMultipleIssues({ + list: this, + issues, + oldIndicies, + newIndex, moveBeforeId, moveAfterId, }) @@ -170,12 +166,7 @@ class List { } onNewIssueResponse(issue, data) { - issue.refreshData(data); - - if (this.issuesSize > 1) { - const moveBeforeId = this.issues[1].id; - boardsStore.moveIssue(issue.id, null, null, null, moveBeforeId); - } + boardsStore.onNewListIssueResponse(this, issue, data); } } diff --git a/app/assets/javascripts/boards/stores/boards_store.js b/app/assets/javascripts/boards/stores/boards_store.js index a930f39189e..da7d2e19ec1 100644 --- a/app/assets/javascripts/boards/stores/boards_store.js +++ b/app/assets/javascripts/boards/stores/boards_store.js @@ -296,6 +296,15 @@ const boardsStore = { Object.assign(this.moving, { list, issue }); }, + onNewListIssueResponse(list, issue, data) { + issue.refreshData(data); + + if (list.issuesSize > 1) { + const moveBeforeId = list.issues[1].id; + this.moveIssue(issue.id, null, null, null, moveBeforeId); + } + }, + moveMultipleIssuesToList({ listFrom, listTo, issues, newIndex }) { const issueTo = issues.map(issue => listTo.findIssue(issue.id)); const issueLists = issues.map(issue => issue.getLists()).flat(); @@ -675,6 +684,21 @@ const boardsStore = { }); }, + moveListMultipleIssues({ list, issues, oldIndicies, newIndex, moveBeforeId, moveAfterId }) { + oldIndicies.reverse().forEach(index => { + list.issues.splice(index, 1); + }); + list.issues.splice(newIndex, 0, ...issues); + + return this.moveMultipleIssues({ + ids: issues.map(issue => issue.id), + fromListId: null, + toListId: null, + moveBeforeId, + moveAfterId, + }); + }, + newIssue(id, issue) { return axios.post(this.generateIssuesPath(id), { issue, diff --git a/app/assets/javascripts/registry/explorer/components/details_page/tags_list_row.vue b/app/assets/javascripts/registry/explorer/components/details_page/tags_list_row.vue index f95f7dd8d21..da38521b055 100644 --- a/app/assets/javascripts/registry/explorer/components/details_page/tags_list_row.vue +++ b/app/assets/javascripts/registry/explorer/components/details_page/tags_list_row.vue @@ -64,7 +64,12 @@ export default {