keeweb/app/scripts/models/menu/menu-section-model.js

53 lines
1.2 KiB
JavaScript
Raw Normal View History

2015-10-17 23:49:24 +02:00
'use strict';
var Backbone = require('backbone'),
MenuItemCollection = require('../../collections/menu/menu-item-collection');
var MenuItemModel = Backbone.Model.extend({
defaults: {
items: null,
scrollable: false,
grow: false,
drag: false
},
defaultItems: undefined,
initialize: function(items) {
this.set('items', new MenuItemCollection(items || this.defaultItems));
},
addItem: function(item) {
this.get('items').add(item);
this.trigger('change-items');
},
removeAllItems: function() {
this.get('items').reset(this.defaultItems);
this.trigger('change-items');
},
2015-12-05 14:04:09 +01:00
removeByFile: function(file, skipEvent) {
2015-11-07 21:37:54 +01:00
var items = this.get('items');
var toRemove;
items.each(function(item) {
if (item.file === file || item.get('file') === file) {
toRemove = item;
}
});
if (toRemove) {
items.remove(toRemove);
}
2015-12-05 14:04:09 +01:00
if (!skipEvent) {
this.trigger('change-items');
}
2015-10-17 23:49:24 +02:00
},
setItems: function(items) {
this.get('items').reset(items);
this.trigger('change-items');
}
});
module.exports = MenuItemModel;