Path: blob/master/webroot/rsrc/js/application/config/behavior-reorder-fields.js
12242 views
/**1* @provides javelin-behavior-config-reorder-fields2* @requires javelin-behavior3* javelin-stratcom4* javelin-dom5* javelin-json6* phabricator-draggable-list7*/89JX.behavior('config-reorder-fields', function(config) {1011var fields = config.fields;12var root = JX.$(config.listID);1314var list = new JX.DraggableList('field-spec', root)15.setFindItemsHandler(function() {16return JX.DOM.scry(root, 'li', 'field-spec');17});1819list.listen('didDrop', function() {20write_state_to_form();21});2223JX.DOM.listen(root, 'click', 'field-spec-toggle', function(e) {24e.kill();2526var key = e.getNodeData('field-spec').fieldKey;27fields[key].disabled = !fields[key].disabled;2829JX.DOM.replace(30e.getNode('field-spec'),31JX.$H(32fields[key].disabled ?33fields[key].disabledMarkup :34fields[key].enabledMarkup));3536write_state_to_form();37});3839var write_state_to_form = function() {40var nodes = list.findItems();41var order = [];42var key;43for (var ii = 0; ii < nodes.length; ii++) {44key = JX.Stratcom.getData(nodes[ii]).fieldKey;45if (key) {46order.push({47key: key,48disabled: fields[key].disabled49});50}51}5253JX.$(config.inputID).value = JX.JSON.stringify(order);54};5556write_state_to_form();57});585960