|
|
|
@ -1,20 +1,18 @@ |
|
|
|
import Backbone from 'backbone'; |
|
|
|
import { Collection } from 'common'; |
|
|
|
import { isString, isArray } from 'underscore'; |
|
|
|
import Trait from './Trait'; |
|
|
|
import TraitFactory from './TraitFactory'; |
|
|
|
|
|
|
|
export default Backbone.Collection.extend({ |
|
|
|
model: Trait, |
|
|
|
|
|
|
|
export default class Traits extends Collection { |
|
|
|
initialize(coll, options = {}) { |
|
|
|
this.em = options.em; |
|
|
|
this.listenTo(this, 'add', this.handleAdd); |
|
|
|
this.listenTo(this, 'reset', this.handleReset); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
handleReset(coll, { previousModels = [] } = {}) { |
|
|
|
previousModels.forEach(model => model.trigger('remove')); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
handleAdd(model) { |
|
|
|
model.em = this.em; |
|
|
|
@ -23,11 +21,11 @@ export default Backbone.Collection.extend({ |
|
|
|
if (target) { |
|
|
|
model.target = target; |
|
|
|
} |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
setTarget(target) { |
|
|
|
this.target = target; |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
add(models, opt) { |
|
|
|
const em = this.em; |
|
|
|
@ -50,6 +48,8 @@ export default Backbone.Collection.extend({ |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return Backbone.Collection.prototype.add.apply(this, [models, opt]); |
|
|
|
}, |
|
|
|
}); |
|
|
|
return Collection.prototype.add.apply(this, [models, opt]); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
Traits.prototype.model = Trait; |
|
|
|
|