mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-27 09:12:41 +01:00
2a39fd09eb
Summary: Javelin is currently embedded in Phabricator via copy-and-paste of prebuilt packages. This is not so great. Pull it in as a submodule instead and make all the Phabriator resources declare proper dependency trees. Add Javelin linting. Test Plan: I tried to run through pretty much all the JS functionality on the site. This is still a high-risk change, but I did a pretty thorough test Differential: inline comments, revealing diffs, list tokenizers, comment preview, editing/deleting comments, add review action. Maniphest: list tokenizer, comment actions Herald: rule editing, tokenizers, add/remove rows Reviewed By: tomo Reviewers: aran, tomo, mroch, jungejason, tuomaspelkonen CC: aran, tomo, epriestley Differential Revision: 223
59 lines
1.3 KiB
JavaScript
59 lines
1.3 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 = 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]));
|
|
}
|
|
}
|
|
});
|
|
|
|
});
|
|
|