[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/webroot/rsrc/js/application/config/ -> behavior-reorder-fields.js (source)

   1  /**
   2   * @provides javelin-behavior-config-reorder-fields
   3   * @requires javelin-behavior
   4   *           javelin-stratcom
   5   *           javelin-dom
   6   *           javelin-json
   7   *           phabricator-draggable-list
   8   */
   9  
  10  JX.behavior('config-reorder-fields', function(config) {
  11  
  12    var fields = config.fields;
  13    var root = JX.$(config.listID);
  14  
  15    var list = new JX.DraggableList('field-spec', root)
  16      .setFindItemsHandler(function() {
  17        return JX.DOM.scry(root, 'li', 'field-spec');
  18      });
  19  
  20    list.listen('didDrop', function() {
  21      write_state_to_form();
  22    });
  23  
  24    JX.DOM.listen(root, 'click', 'field-spec-toggle', function(e) {
  25      e.kill();
  26  
  27      var key = e.getNodeData('field-spec').fieldKey;
  28      fields[key].disabled = !fields[key].disabled;
  29  
  30      JX.DOM.replace(
  31        e.getNode('field-spec'),
  32        JX.$H(
  33          fields[key].disabled ?
  34            fields[key].disabledMarkup :
  35            fields[key].enabledMarkup));
  36  
  37      write_state_to_form();
  38    });
  39  
  40    var write_state_to_form = function() {
  41      var nodes = list.findItems();
  42      var order = [];
  43      var key;
  44      for (var ii = 0; ii < nodes.length; ii++) {
  45        key = JX.Stratcom.getData(nodes[ii]).fieldKey;
  46        if (key) {
  47          order.push({
  48            key: key,
  49            disabled: fields[key].disabled
  50          });
  51        }
  52      }
  53  
  54      JX.$(config.inputID).value = JX.JSON.stringify(order);
  55    };
  56  
  57  });


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