1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-19 20:10:55 +01:00
phorge-phorge/webroot/rsrc/js/application/maniphest/behavior-transaction-controls.js
epriestley 2a39fd09eb Bring Javelin into Phabricator via git submodule, not copy-and-paste
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
2011-05-08 13:20:10 -07:00

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]));
}
}
});
});