Browse Source

Refactor the Sorter

multiple-select
Artur Arseniev 8 years ago
parent
commit
934238aac4
  1. 4
      src/commands/view/MoveComponent.js
  2. 2
      src/dom_components/index.js
  3. 23
      src/utils/Sorter.js

4
src/commands/view/MoveComponent.js

@ -82,7 +82,7 @@ module.exports = _.extend({}, SelectPosition, SelectComponent, {
},
/**
* Init sorter from model
* Init sorter from models
* @param {Object} model
* @private
*/
@ -97,6 +97,8 @@ module.exports = _.extend({}, SelectPosition, SelectComponent, {
this.sorter.draggable = lastModel.get('draggable');
this.sorter.toMove = models.reverse();
this.sorter.onEndMove = this.onEndMoveFromModel.bind(this);
this.stopSelectComponent();
on(this.getContentWindow(), 'keydown', this.rollback);
},
onEndMoveFromModel() {

2
src/dom_components/index.js

@ -519,7 +519,6 @@ module.exports = () => {
},
selectAdd(component, opts = {}) {
console.log('ADDED', component);
if (component) {
component.set({
status: 'selected'
@ -531,7 +530,6 @@ module.exports = () => {
},
selectRemove(component, opts = {}) {
console.log('REMOVED', component);
if (component) {
const { em } = this;
component.set({

23
src/utils/Sorter.js

@ -905,8 +905,11 @@ module.exports = Backbone.View.extend({
* */
endMove(e) {
var created;
const moved = [];
const docs = this.getDocuments();
const container = this.getContainerEl();
const onEndMove = this.onEndMove;
const { target, lastPos } = this;
off(container, 'mousemove dragover', this.onMove);
off(docs, 'mouseup dragend', this.endMove);
off(docs, 'keydown', this.rollback);
@ -926,19 +929,10 @@ module.exports = Backbone.View.extend({
if (this.moved) {
const toMove = this.toMove;
const onEndMove = this.onEndMove;
if (!toMove || !toMove.length) {
created = this.move(this.target, src, this.lastPos);
isFunction(onEndMove) && onEndMove(created, this);
} else {
const toMoveArr = isArray(toMove) ? toMove : [toMove];
toMoveArr.forEach(model => {
console.log('toMove', model);
created = this.move(this.target, model, this.lastPos);
isFunction(onEndMove) && onEndMove(created, this);
});
}
const toMoveArr = isArray(toMove) ? toMove : toMove ? [toMove] : [src];
toMoveArr.forEach(model => {
moved.push(this.move(target, model, lastPos));
});
}
if (this.plh) this.plh.style.display = 'none';
@ -951,6 +945,9 @@ module.exports = Backbone.View.extend({
this.selectTargetModel();
this.toggleSortCursor();
this.toMove = null;
isFunction(onEndMove) && onEndMove(moved, this);
},
/**

Loading…
Cancel
Save