[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/webroot/rsrc/js/application/projects/ -> behavior-reorder-columns.js (source)

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


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1