Fix #1186 Reorder of admin fields

Fix tests
This commit is contained in:
Nicolas Le Goff
2013-05-30 13:48:24 +02:00
parent 91185e6f3c
commit 4057e98131
2 changed files with 11 additions and 14 deletions

View File

@@ -114,25 +114,22 @@ define([
},
updateSortAction: function(event, model, ui) {
var newPosition = ui.item.index();
var curPosition = this.collection.indexOf(model);
// reorder all collection model
this.collection.each(function(el, index) {
if (newPosition > curPosition && (index > curPosition && index <= curPosition)) index -= 1;
else if (newPosition < curPosition && (index >= curPosition && index < curPosition)) index += 1;
el.set("sorter", index);
this.collection.remove(model, {silent: true});
this.collection.each(function (model, index) {
var ordinal = index;
if (index >= newPosition) ordinal += 1;
model.set({'sorter': ordinal}, {silent: true});
});
this.render();
model.set({'sorter': newPosition}, {silent: true});
this.collection.add(model, {at: newPosition});
this.itemViews[0].animate(Math.abs(ui.firstItemPosition));
// update edit view model
AdminFieldApp.fieldEditView.model = this.collection.find(function(el) {
AdminFieldApp.fieldEditView.updateModel(this.collection.find(function(el) {
return el.get("id") === AdminFieldApp.fieldEditView.model.get("id");
});
}));
AdminFieldApp.fieldEditView.render();
AdminFieldApp.saveView.updateStateButton();
return this;

View File

@@ -304,7 +304,7 @@ define([
it("should reorder collection on drop action", function() {
var ui = {item: {index: function() {return 2;}}};
AdminFieldApp.fieldListView.itemViews[0].dropAction({},ui);
assert.equal(AdminFieldApp.fieldListView.collection.last().get('sorter'), 3, 'model is updated');
assert.equal(AdminFieldApp.fieldListView.collection.last().get('sorter'), 2, 'model is updated');
});
});
});