1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-27 16:00:59 +01:00
phorge-phorge/webroot/rsrc/js/application/maniphest/behavior-transaction-controls.js

66 lines
1.4 KiB
JavaScript
Raw Normal View History

/**
* @provides javelin-behavior-maniphest-transaction-controls
* @requires javelin-behavior
* javelin-dom
* javelin-tokenizer
* javelin-typeahead
* javelin-typeahead-preloaded-source
*/
JX.behavior('maniphest-transaction-controls', function(config) {
var tokenizers = {};
for (var k in config.tokenizers) {
var tconfig = config.tokenizers[k];
var root = JX.$(tconfig.id);
var datasource;
if (tconfig.ondemand) {
datasource = new JX.TypeaheadOnDemandSource(tconfig.src);
} else {
datasource = new JX.TypeaheadPreloadedSource(tconfig.src);
}
var typeahead = new JX.Typeahead(root);
typeahead.setDatasource(datasource);
var tokenizer = new JX.Tokenizer(root);
tokenizer.setTypeahead(typeahead);
if (tconfig.limit) {
tokenizer.setLimit(tconfig.limit);
}
tokenizer.start();
if (tconfig.value) {
for (var jj in tconfig.value) {
tokenizer.addToken(jj, tconfig.value[jj]);
}
}
tokenizers[k] = tokenizer;
}
JX.DOM.listen(
JX.$(config.select),
'change',
null,
function(e) {
for (var k in config.controlMap) {
if (k == JX.$(config.select).value) {
JX.DOM.show(JX.$(config.controlMap[k]));
if (tokenizers[k]) {
tokenizers[k].refresh();
}
} else {
JX.DOM.hide(JX.$(config.controlMap[k]));
}
}
});
});