blob: 1af3ded386b44bbfef862e3e4c65f9e5bb3bc787 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
class ListIssue {
constructor (obj) {
this.id = obj.iid;
this.title = obj.title;
this.confidential = obj.confidential;
if (obj.assignee) {
this.assignee = new ListUser(obj.assignee);
}
this.labels = [];
_.each(obj.labels, (label) => {
this.labels.push(new ListLabel(label));
});
this.priority = _.reduce(this.labels, (max, label) => {
return (label.priority < max) ? label.priority : max;
}, Infinity);
}
addLabel (label) {
if (label) {
const hasLabel = this.findLabel(label);
if (!hasLabel) {
this.labels.push(new ListLabel(label));
}
}
}
findLabel (findLabel) {
return _.find(this.labels, (label) => {
return label.title === findLabel.title;
});
}
removeLabel (removeLabel) {
if (removeLabel) {
this.labels = _.reject(this.labels, (label) => {
return removeLabel.title === label.title;
});
}
}
removeLabels (labels) {
_.each(labels, this.removeLabel.bind(this));
}
getLists () {
return _.filter(BoardsStore.state.lists, (list) => {
return list.findIssue(this.id);
});
}
}
|