Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/webroot/rsrc/js/application/files/behavior-icon-composer.js
12241 views
1
/**
2
* @provides javelin-behavior-icon-composer
3
* @requires javelin-behavior
4
* javelin-dom
5
* javelin-stratcom
6
*/
7
8
JX.behavior('icon-composer', function(config) {
9
10
var nodes = {
11
root: JX.$(config.dialogID),
12
colorInput: JX.$(config.colorInputID),
13
iconInput: JX.$(config.iconInputID),
14
preview: JX.$(config.previewID)
15
};
16
17
var selected = {
18
color: config.defaultColor,
19
icon: config.defaultIcon
20
};
21
22
var redraw = function() {
23
var ii;
24
25
var colors = JX.DOM.scry(nodes.root, 'button', 'compose-select-color');
26
for (ii = 0; ii < colors.length; ii++) {
27
JX.DOM.alterClass(
28
colors[ii],
29
'profile-image-button-selected',
30
(JX.Stratcom.getData(colors[ii]).color == selected.color));
31
}
32
33
var icons = JX.DOM.scry(nodes.root, 'button', 'compose-select-icon');
34
for (ii = 0; ii < icons.length; ii++) {
35
JX.DOM.alterClass(
36
icons[ii],
37
'profile-image-button-selected',
38
(JX.Stratcom.getData(icons[ii]).icon == selected.icon));
39
}
40
41
nodes.colorInput.value = selected.color;
42
nodes.iconInput.value = selected.icon;
43
44
var classes = ['phui-icon-view', 'phui-font-fa', 'compose-icon-bg'];
45
classes.push('compose-background-' + selected.color);
46
classes.push(selected.icon);
47
48
nodes.preview.className = classes.join(' ');
49
};
50
51
JX.DOM.listen(
52
nodes.root,
53
'click',
54
'compose-select-color',
55
function (e) {
56
e.kill();
57
58
selected.color = e.getNodeData('compose-select-color').color;
59
redraw();
60
});
61
62
JX.DOM.listen(
63
nodes.root,
64
'click',
65
'compose-select-icon',
66
function (e) {
67
e.kill();
68
69
selected.icon = e.getNodeData('compose-select-icon').icon;
70
redraw();
71
});
72
73
redraw();
74
75
});
76
77