Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/webroot/rsrc/js/application/projects/WorkboardDropEffect.js
12242 views
1
/**
2
* @provides javelin-workboard-drop-effect
3
* @requires javelin-install
4
* javelin-dom
5
* @javelin
6
*/
7
8
JX.install('WorkboardDropEffect', {
9
10
properties: {
11
icon: null,
12
color: null,
13
content: null,
14
isTriggerEffect: false,
15
isHeader: false,
16
conditions: []
17
},
18
19
statics: {
20
newFromDictionary: function(map) {
21
return new JX.WorkboardDropEffect()
22
.setIcon(map.icon)
23
.setColor(map.color)
24
.setContent(JX.$H(map.content))
25
.setIsTriggerEffect(map.isTriggerEffect)
26
.setIsHeader(map.isHeader)
27
.setConditions(map.conditions || []);
28
}
29
},
30
31
members: {
32
newNode: function() {
33
var icon = new JX.PHUIXIconView()
34
.setIcon(this.getIcon())
35
.setColor(this.getColor())
36
.getNode();
37
38
var attributes = {};
39
40
if (this.getIsHeader()) {
41
attributes.className = 'workboard-drop-preview-header';
42
}
43
44
return JX.$N('li', attributes, [icon, this.getContent()]);
45
},
46
47
isEffectVisibleForCard: function(card) {
48
var conditions = this.getConditions();
49
50
var properties = card.getProperties();
51
for (var ii = 0; ii < conditions.length; ii++) {
52
var condition = conditions[ii];
53
54
var field = properties[condition.field];
55
var value = condition.value;
56
57
var result = true;
58
switch (condition.operator) {
59
case '!=':
60
result = (field !== value);
61
break;
62
}
63
64
if (!result) {
65
return false;
66
}
67
}
68
69
return true;
70
}
71
72
}
73
});
74
75