diff --git a/ui/scripts/ui/widgets/multiEdit.js b/ui/scripts/ui/widgets/multiEdit.js index 83d1e521659..5e30d030605 100755 --- a/ui/scripts/ui/widgets/multiEdit.js +++ b/ui/scripts/ui/widgets/multiEdit.js @@ -854,6 +854,8 @@ $loading.prependTo($multi); reorder.moveDrag.action({ targetIndex: ui.item.index(), + nextItem: ui.item.next().size() ? ui.item.next().data('json-obj') : null, + prevItem: ui.item.prev().size() ? ui.item.prev().data('json-obj') : null, context: $.extend(true, {}, context, { // Passes all rules, so that each index can be updated multiRule: [ui.item.data('json-obj')] diff --git a/ui/scripts/vpc.js b/ui/scripts/vpc.js index 0b670ddfd75..94a42f571e0 100644 --- a/ui/scripts/vpc.js +++ b/ui/scripts/vpc.js @@ -31,13 +31,25 @@ moveDrag: { action: function(args) { var rule = args.context.multiRule[0]; - var index = args.targetIndex; + var number = 0; + var prevItem = args.prevItem ? args.prevItem.number : null; + var nextItem = args.nextItem ? args.nextItem.number : null; + + if (!nextItem) { // Last item + number = prevItem + 100; + } else { + if (nextItem - prevItem <= 10) { + number = nextItem - parseInt(((nextItem - prevItem) / 2)); + } else { + number = nextItem > 1 ? nextItem - 10 : 1; + } + } $.ajax({ url: createURL('updateNetworkACLItem'), data: { id: rule.id, - number: index + 1 + number: number }, success: function(json) { var pollTimer = setInterval(function() {