Commit e3f80190 authored by Kushal Pandya's avatar Kushal Pandya

Update issue order in store upon reorder success

parent 6c86916c
...@@ -115,9 +115,12 @@ export default { ...@@ -115,9 +115,12 @@ export default {
reordered(event) { reordered(event) {
this.removeDraggingCursor(); this.removeDraggingCursor();
const { beforeId, afterId } = this.getBeforeAfterId(event.item); const { beforeId, afterId } = this.getBeforeAfterId(event.item);
const { oldIndex, newIndex } = event;
this.$emit('saveReorder', { this.$emit('saveReorder', {
issueId: parseInt(event.item.dataset.key, 10), issueId: parseInt(event.item.dataset.key, 10),
oldIndex,
newIndex,
afterId, afterId,
beforeId, beforeId,
}); });
......
...@@ -176,7 +176,7 @@ export default { ...@@ -176,7 +176,7 @@ export default {
Flash('An error occurred while fetching issues.'); Flash('An error occurred while fetching issues.');
}); });
}, },
saveIssueOrder({ issueId, beforeId, afterId }) { saveIssueOrder({ issueId, beforeId, afterId, oldIndex, newIndex }) {
const issueToReorder = _.find(this.state.relatedIssues, issue => issue.id === issueId); const issueToReorder = _.find(this.state.relatedIssues, issue => issue.id === issueId);
if (issueToReorder) { if (issueToReorder) {
...@@ -184,7 +184,14 @@ export default { ...@@ -184,7 +184,14 @@ export default {
endpoint: issueToReorder.relation_path, endpoint: issueToReorder.relation_path,
move_before_id: beforeId, move_before_id: beforeId,
move_after_id: afterId, move_after_id: afterId,
}).catch(() => { })
.then(res => res.json())
.then((res) => {
if (!res.message) {
this.store.updateIssueOrder(oldIndex, newIndex);
}
})
.catch(() => {
Flash('An error occurred while reordering issues.'); Flash('An error occurred while reordering issues.');
}); });
} }
......
...@@ -16,6 +16,13 @@ class RelatedIssuesStore { ...@@ -16,6 +16,13 @@ class RelatedIssuesStore {
this.state.relatedIssues = this.state.relatedIssues.filter(issue => issue.id !== idToRemove); this.state.relatedIssues = this.state.relatedIssues.filter(issue => issue.id !== idToRemove);
} }
updateIssueOrder(oldIndex, newIndex) {
if (this.state.relatedIssues.length > 0) {
const updatedIssue = this.state.relatedIssues.splice(oldIndex, 1)[0];
this.state.relatedIssues.splice(newIndex, 0, updatedIssue);
}
}
setPendingReferences(issues) { setPendingReferences(issues) {
this.state.pendingReferences = issues; this.state.pendingReferences = issues;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment