mirror of https://github.com/apache/cloudstack.git
CLOUDSTACK-3153: Fix numbering of ACL items
Re-number dragged items in increments of ten, and use an average of the previous and next number, so that multiple reorders can occur before conflicts happen.
This commit is contained in:
parent
cd51303f20
commit
bcfe4c2e99
|
|
@ -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')]
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue