You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lidarr/src/UI/Series/EpisodeCollection.js

62 lines
1.4 KiB

9 years ago
var Backbone = require('backbone');
var PageableCollection = require('backbone.pageable');
9 years ago
var EpisodeModel = require('./EpisodeModel');
require('./EpisodeCollection');
module.exports = PageableCollection.extend({
url : window.NzbDrone.ApiRoot + '/episode',
model : EpisodeModel,
state : {
sortKey : 'episodeNumber',
order : 1,
pageSize : 100000
9 years ago
},
mode : 'client',
9 years ago
originalFetch : Backbone.Collection.prototype.fetch,
initialize : function(options) {
9 years ago
this.seriesId = options.seriesId;
},
bySeason : function(season) {
var filtered = this.filter(function(episode) {
9 years ago
return episode.get('seasonNumber') === season;
});
9 years ago
var EpisodeCollection = require('./EpisodeCollection');
9 years ago
return new EpisodeCollection(filtered);
},
comparator : function(model1, model2) {
9 years ago
var episode1 = model1.get('episodeNumber');
var episode2 = model2.get('episodeNumber');
if (episode1 < episode2) {
9 years ago
return 1;
}
if (episode1 > episode2) {
9 years ago
return -1;
}
9 years ago
return 0;
},
fetch : function(options) {
if (!this.seriesId) {
9 years ago
throw 'seriesId is required';
}
if (!options) {
9 years ago
options = {};
}
options.data = { seriesId : this.seriesId };
9 years ago
return this.originalFetch.call(this, options);
}
});