[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 /** 2 * @provides javelin-behavior-reorder-columns 3 * @requires javelin-behavior 4 * javelin-stratcom 5 * javelin-workflow 6 * javelin-dom 7 * phabricator-draggable-list 8 */ 9 10 JX.behavior('reorder-columns', function(config) { 11 12 var root = JX.$(config.listID); 13 14 var list = new JX.DraggableList('board-column', root) 15 .setFindItemsHandler(function() { 16 return JX.DOM.scry(root, 'li', 'board-column'); 17 }); 18 19 list.listen('didDrop', function(node) { 20 var nodes = list.findItems(); 21 22 var node_data = JX.Stratcom.getData(node); 23 24 // Find the column sequence of the previous node. 25 var sequence = null; 26 var data; 27 for (var ii = 0; ii < nodes.length; ii++) { 28 data = JX.Stratcom.getData(nodes[ii]); 29 if (data.columnPHID === node_data.columnPHID) { 30 break; 31 } 32 sequence = data.columnSequence; 33 } 34 35 list.lock(); 36 JX.DOM.alterClass(node, 'drag-sending', true); 37 38 var parameters = { 39 columnPHID: node_data.columnPHID, 40 sequence: (sequence === null) ? 0 : (parseInt(sequence, 10) + 1) 41 }; 42 43 new JX.Workflow(config.reorderURI, parameters) 44 .setHandler(function(r) { 45 46 // Adjust metadata for the new sequence numbers. 47 for (var ii = 0; ii < nodes.length; ii++) { 48 var data = JX.Stratcom.getData(nodes[ii]); 49 data.columnSequence = r.sequenceMap[data.columnPHID]; 50 } 51 52 list.unlock(); 53 JX.DOM.alterClass(node, 'drag-sending', false); 54 }) 55 .start(); 56 }); 57 58 });
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |