Changeset View
Changeset View
Standalone View
Standalone View
webroot/rsrc/js/application/transactions/behavior-comment-actions.js
| Show All 28 Lines | for (var ii = 0; ii < options.length; ii++) { | ||||
| option = options[ii]; | option = options[ii]; | ||||
| if (option.value == selected) { | if (option.value == selected) { | ||||
| add_row(option); | add_row(option); | ||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| }); | }); | ||||
| JX.DOM.listen(form_node, 'submit', null, function() { | |||||
| var data = []; | |||||
| for (var k in rows) { | |||||
| data.push({ | |||||
| type: k, | |||||
| value: rows[k].getValue() | |||||
| }); | |||||
| } | |||||
| input_node.value = JX.JSON.stringify(data); | |||||
| }); | |||||
| function add_row(option) { | function add_row(option) { | ||||
| var action = action_map[option.value]; | var action = action_map[option.value]; | ||||
| if (!action) { | if (!action) { | ||||
| return; | return; | ||||
| } | } | ||||
| option.disabled = true; | option.disabled = true; | ||||
| Show All 14 Lines | JX.DOM.listen(remove, 'click', null, function(e) { | ||||
| JX.DOM.remove(node); | JX.DOM.remove(node); | ||||
| delete rows[action.key]; | delete rows[action.key]; | ||||
| option.disabled = false; | option.disabled = false; | ||||
| }); | }); | ||||
| place_node.parentNode.insertBefore(node, place_node); | place_node.parentNode.insertBefore(node, place_node); | ||||
| } | } | ||||
| function serialize_actions() { | |||||
| var data = []; | |||||
| for (var k in rows) { | |||||
| data.push({ | |||||
| type: k, | |||||
| value: rows[k].getValue() | |||||
| }); | |||||
| } | |||||
| return JX.JSON.stringify(data); | |||||
| } | |||||
| function get_data() { | |||||
| var data = JX.DOM.convertFormToDictionary(form_node); | |||||
| data.__preview__ = 1; | |||||
| data[input_node.name] = serialize_actions(); | |||||
| return data; | |||||
| } | |||||
| function onresponse(response) { | |||||
| var panel = JX.$(config.panelID); | |||||
| if (!response.xactions.length) { | |||||
| JX.DOM.hide(panel); | |||||
| } else { | |||||
| JX.DOM.setContent( | |||||
| JX.$(config.timelineID), | |||||
| [ | |||||
| JX.$H(response.spacer), | |||||
| JX.$H(response.xactions.join(response.spacer)) | |||||
| ]); | |||||
| JX.DOM.show(panel); | |||||
| } | |||||
| } | |||||
| JX.DOM.listen(form_node, 'submit', null, function() { | |||||
| input_node.value = serialize_actions(); | |||||
| }); | |||||
| if (config.showPreview) { | |||||
| var request = new JX.PhabricatorShapedRequest( | |||||
| config.actionURI, | |||||
| onresponse, | |||||
| get_data); | |||||
| var trigger = JX.bind(request, request.trigger); | |||||
| JX.DOM.listen(form_node, 'keydown', null, trigger); | |||||
| var always_trigger = function() { | |||||
| new JX.Request(config.actionURI, onresponse) | |||||
| .setData(get_data()) | |||||
| .send(); | |||||
| }; | |||||
| JX.DOM.listen(form_node, 'shouldRefresh', null, always_trigger); | |||||
| request.start(); | |||||
| } | |||||
| }); | }); | ||||