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.
56 lines
1.5 KiB
56 lines
1.5 KiB
var PagableCollection = require('backbone.pageable');
|
|
var ReleaseModel = require('./ReleaseModel');
|
|
var AsSortedCollection = require('../Mixins/AsSortedCollection');
|
|
|
|
var Collection = PagableCollection.extend({
|
|
url : window.NzbDrone.ApiRoot + '/release',
|
|
model : ReleaseModel,
|
|
|
|
state : {
|
|
pageSize : 2000,
|
|
sortKey : 'download',
|
|
order : -1
|
|
},
|
|
|
|
mode : 'client',
|
|
|
|
sortMappings : {
|
|
'quality' : {
|
|
sortKey : 'qualityWeight'
|
|
},
|
|
'rejections' : {
|
|
sortValue : function(model) {
|
|
var rejections = model.get('rejections');
|
|
var releaseWeight = model.get('releaseWeight');
|
|
|
|
if (rejections.length !== 0) {
|
|
return releaseWeight + 1000000;
|
|
}
|
|
|
|
return releaseWeight;
|
|
}
|
|
},
|
|
'download' : {
|
|
sortKey : 'releaseWeight'
|
|
},
|
|
'seeders' : {
|
|
sortValue : function(model) {
|
|
var seeders = model.get('seeders') || 0;
|
|
var leechers = model.get('leechers') || 0;
|
|
|
|
return seeders * 1000000 + leechers;
|
|
}
|
|
},
|
|
'age' : {
|
|
sortKey : 'ageMinutes'
|
|
}
|
|
},
|
|
|
|
fetchEpisodeReleases : function(episodeId) {
|
|
return this.fetch({ data : { episodeId : episodeId } });
|
|
}
|
|
});
|
|
|
|
Collection = AsSortedCollection.call(Collection);
|
|
|
|
module.exports = Collection; |