Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/webroot/rsrc/js/application/passphrase/passphrase-credential-control.js
12242 views
1
/**
2
* @provides javelin-behavior-passphrase-credential-control
3
* @requires javelin-behavior
4
* javelin-dom
5
* javelin-stratcom
6
* javelin-workflow
7
* javelin-util
8
* javelin-uri
9
* @javelin
10
*/
11
12
JX.behavior('passphrase-credential-control', function() {
13
14
JX.Stratcom.listen(
15
'click',
16
'passphrase-credential-add',
17
function(e) {
18
var control = e.getNode('passphrase-credential-control');
19
var data = e.getNodeData('passphrase-credential-control');
20
21
var uri = JX.$U('/passphrase/edit/');
22
uri.setQueryParam('type', data.type);
23
uri.setQueryParam('username', data.username);
24
25
new JX.Workflow(uri)
26
.setHandler(JX.bind(null, onadd, control))
27
.start();
28
29
e.kill();
30
});
31
32
function onadd(control, response) {
33
var select = JX.DOM.find(control, 'select', 'passphrase-credential-select');
34
35
var data = JX.Stratcom.getData(control);
36
37
// If this allows the user to select "No Credential" (`allowNull`),
38
// put the new credential in the menu below the "No Credential" option.
39
40
// Otherwise, remove the "(No Existing Credentials)" if it exists and
41
// put the new credential at the top.
42
43
var target = 0;
44
for (var ii = 0; ii < select.options.length; ii++) {
45
if (!select.options[ii].value) {
46
if (!data.allowNull) {
47
select.remove(ii);
48
} else {
49
target = ii + 1;
50
}
51
break;
52
}
53
}
54
55
select.add(
56
JX.$N('option', {value: response.phid}, response.name),
57
select.options[target] || null);
58
59
select.value = response.phid;
60
select.disabled = null;
61
}
62
63
});
64
65