From 4cd5dfe2ae784e7634b2c8ec749085ead3c5385d Mon Sep 17 00:00:00 2001 From: Brian Federle Date: Mon, 8 Jul 2013 10:58:04 -0700 Subject: [PATCH] CLOUDSTACK-3153: On reorder, only update target ACL item's number --- ui/scripts/ui/widgets/multiEdit.js | 15 ++++++++-- ui/scripts/vpc.js | 46 ++++++++++++++++-------------- 2 files changed, 36 insertions(+), 25 deletions(-) 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); + } }); } }