diff --git a/ui/scripts/ui/widgets/multiEdit.js b/ui/scripts/ui/widgets/multiEdit.js
index ea177c57848..37c5abf642d 100755
--- a/ui/scripts/ui/widgets/multiEdit.js
+++ b/ui/scripts/ui/widgets/multiEdit.js
@@ -832,15 +832,24 @@ $.fn.multiEdit = function(args) {
handle: '.action.moveDrag',
update: function(event, ui) {
+ var $loading = $('
').addClass('loading-overlay');
+
+ $loading.prependTo($multi);
reorder.moveDrag.action({
+ targetIndex: ui.item.index(),
context: $.extend(true, {}, context, {
// Passes all rules, so that each index can be updated
- multiRule: $multi.find('.data-item').map(function(index, item) {
- return $(item).data('json-obj');
- })
+ multiRule: [ui.item.data('json-obj')]
}),
response: {
success: function(args) {
+ $multi.trigger('refresh');
+ $loading.remove();
+ },
+ error: function(msg) {
+ $multi.trigger('refresh');
+ cloudStack.dialog.notice(msg);
+ $loading.remove();
}
}
});
diff --git a/ui/scripts/vpc.js b/ui/scripts/vpc.js
index 97706815bb8..c510871dcbe 100644
--- a/ui/scripts/vpc.js
+++ b/ui/scripts/vpc.js
@@ -30,28 +30,30 @@
reorder: {
moveDrag: {
action: function(args) {
- $(args.context.multiRule.toArray().reverse()).map(function(index, rule) {
- $.ajax({
- url: createURL('updateNetworkACLItem'),
- data: {
- id: rule.id,
- number: index + 1
- },
- success: function(json) {
- var pollTimer = setInterval(function() {
- pollAsyncJobResult({
- _custom: { jobId: json.createnetworkaclresponse.jobid },
- complete: function() {
- clearInterval(pollTimer);
- },
- error: function(errorMsg) {
- clearInterval(pollTimer);
- cloudStack.dialog.notice(errorMsg);
- }
- });
- }, 1000);
- }
- });
+ var rule = args.context.multiRule[0];
+ var index = args.targetIndex;
+
+ $.ajax({
+ url: createURL('updateNetworkACLItem'),
+ data: {
+ id: rule.id,
+ number: index + 1
+ },
+ success: function(json) {
+ var pollTimer = setInterval(function() {
+ pollAsyncJobResult({
+ _custom: { jobId: json.createnetworkaclresponse.jobid },
+ complete: function() {
+ clearInterval(pollTimer);
+ args.response.success();
+ },
+ error: function(errorMsg) {
+ clearInterval(pollTimer);
+ args.response.error(parseXMLHttpResponse(errorMsg));
+ }
+ });
+ }, 1000);
+ }
});
}
}