26 lines
787 B
JavaScript
26 lines
787 B
JavaScript
app.collections.Aspects = Backbone.Collection.extend({
|
|
model: app.models.Aspect,
|
|
|
|
selectedAspects: function(attribute){
|
|
return _.pluck(_.filter(this.toJSON(), function(a){
|
|
return a.selected;
|
|
}), attribute);
|
|
},
|
|
|
|
allSelected: function(){
|
|
return this.length === _.filter(this.toJSON(), function(a){ return a.selected; }).length;
|
|
},
|
|
|
|
selectAll: function(){
|
|
this.map(function(a){ a.set({ 'selected' : true })} );
|
|
},
|
|
|
|
deselectAll: function(){
|
|
this.map(function(a){ a.set({ 'selected' : false })} );
|
|
},
|
|
|
|
toSentence: function(){
|
|
var separator = Diaspora.I18n.t("comma") + ' ';
|
|
return this.selectedAspects('name').join(separator).replace(/,\s([^,]+)$/, ' ' + Diaspora.I18n.t("and") + ' $1') || Diaspora.I18n.t("my_aspects");
|
|
}
|
|
})
|