1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-22 13:30:55 +01:00
phorge-phorge/webroot/rsrc/js/application/passphrase/passphrase-credential-control.js

64 lines
1.6 KiB
JavaScript
Raw Normal View History

/**
* @provides javelin-behavior-passphrase-credential-control
* @requires javelin-behavior
* javelin-dom
* javelin-stratcom
* javelin-workflow
* javelin-util
* javelin-uri
* @javelin
*/
JX.behavior('passphrase-credential-control', function() {
JX.Stratcom.listen(
'click',
'passphrase-credential-add',
function(e) {
var control = e.getNode('passphrase-credential-control');
var data = e.getNodeData('passphrase-credential-control');
var uri = JX.$U('/passphrase/edit/');
uri.setQueryParam('type', data.type);
uri.setQueryParam('username', data.username);
new JX.Workflow(uri)
.setHandler(JX.bind(null, onadd, control))
.start();
e.kill();
});
function onadd(control, response) {
var select = JX.DOM.find(control, 'select', 'passphrase-credential-select');
var data = JX.Stratcom.getData(control);
// If this allows the user to select "No Credential" (`allowNull`),
// put the new credential in the menu below the "No Credential" option.
// Otherwise, remove the "(No Existing Credentials)" if it exists and
// put the new credential at the top.
var target = 0;
for (var ii = 0; ii < select.options.length; ii++) {
if (!select.options[ii].value) {
if (!data.allowNull) {
select.remove(ii);
} else {
target = ii + 1;
}
break;
}
}
select.add(
JX.$N('option', {value: response.phid}, response.name),
select.options[target] || null);
select.value = response.phid;
select.disabled = null;
}
});