From b3ac7a2c19f50a56d64ec2f49974057c67207905 Mon Sep 17 00:00:00 2001 From: Constance Okoghenun Date: Wed, 10 Apr 2019 07:32:23 +0200 Subject: Backported changes from EE for board issue model --- app/assets/javascripts/boards/models/issue.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'app') diff --git a/app/assets/javascripts/boards/models/issue.js b/app/assets/javascripts/boards/models/issue.js index 2edb6723ada..b4d913f5d69 100644 --- a/app/assets/javascripts/boards/models/issue.js +++ b/app/assets/javascripts/boards/models/issue.js @@ -5,6 +5,7 @@ import Vue from 'vue'; import '~/vue_shared/models/label'; +import { isEE } from '~/lib/utils/common_utils'; import IssueProject from './project'; import boardsStore from '../stores/boards_store'; @@ -28,7 +29,6 @@ class ListIssue { this.referencePath = obj.reference_path; this.path = obj.real_path; this.toggleSubscriptionEndpoint = obj.toggle_subscription_endpoint; - this.milestone_id = obj.milestone_id; this.project_id = obj.project_id; this.timeEstimate = obj.time_estimate; this.assignableLabelsEndpoint = obj.assignable_labels_endpoint; @@ -39,6 +39,7 @@ class ListIssue { if (obj.milestone) { this.milestone = new ListMilestone(obj.milestone); + this.milestone_id = obj.milestone.id; } obj.labels.forEach(label => { @@ -88,6 +89,19 @@ class ListIssue { this.assignees = []; } + addMilestone(milestone) { + const miletoneId = this.milestone ? this.milestone.id : null; + if (isEE && milestone.id !== miletoneId) { + this.milestone = new ListMilestone(milestone); + } + } + + removeMilestone(removeMilestone) { + if (isEE && removeMilestone && removeMilestone.id === this.milestone.id) { + this.milestone = {}; + } + } + getLists() { return boardsStore.state.lists.filter(list => list.findIssue(this.id)); } -- cgit v1.2.1