2013-06-05 16:22:27 -07:00
|
|
|
/**
|
|
|
|
|
* @provides javelin-behavior-search-reorder-queries
|
|
|
|
|
* @requires javelin-behavior
|
|
|
|
|
* javelin-stratcom
|
|
|
|
|
* javelin-workflow
|
|
|
|
|
* javelin-dom
|
|
|
|
|
* phabricator-draggable-list
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
JX.behavior('search-reorder-queries', function(config) {
|
|
|
|
|
|
|
|
|
|
var root = JX.$(config.listID);
|
|
|
|
|
|
|
|
|
|
var list = new JX.DraggableList('named-query', root)
|
|
|
|
|
.setFindItemsHandler(function() {
|
|
|
|
|
return JX.DOM.scry(root, 'li', 'named-query');
|
|
|
|
|
});
|
|
|
|
|
|
2014-06-24 03:27:47 +10:00
|
|
|
list.listen('didDrop', function(node) {
|
2013-06-05 16:22:27 -07:00
|
|
|
var nodes = list.findItems();
|
|
|
|
|
var order = [];
|
|
|
|
|
var key;
|
|
|
|
|
for (var ii = 0; ii < nodes.length; ii++) {
|
|
|
|
|
key = JX.Stratcom.getData(nodes[ii]).queryKey;
|
|
|
|
|
if (key) {
|
|
|
|
|
order.push(key);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
list.lock();
|
|
|
|
|
JX.DOM.alterClass(node, 'drag-sending', true);
|
|
|
|
|
|
|
|
|
|
new JX.Workflow(config.orderURI, {order: order.join()})
|
2014-06-24 03:27:47 +10:00
|
|
|
.setHandler(function() {
|
2013-06-05 16:22:27 -07:00
|
|
|
JX.DOM.alterClass(node, 'drag-sending', false);
|
|
|
|
|
list.unlock();
|
|
|
|
|
})
|
|
|
|
|
.start();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
});
|