mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-22 05:20:56 +01:00
1e3c10379a
Summary: the details pages are using preload instead of ondemand for typeahead, but the most common actions on the pages are commenting which would not need the preloaded info. To improve the performance of the pages, turn on ondemand according to the setting in the config file. Test Plan: verify it is working with both modes, for both pages. Reviewers: epriestley, nh Reviewed By: epriestley CC: aran, epriestley Differential Revision: 995
65 lines
1.4 KiB
JavaScript
65 lines
1.4 KiB
JavaScript
/**
|
|
* @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]));
|
|
}
|
|
}
|
|
});
|
|
|
|
});
|
|
|