var PagableCollection = require('backbone.pageable'); var ReleaseModel = require('./ReleaseModel'); var AsSortedCollection = require('../Mixins/AsSortedCollection'); module.exports = (function(){ 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); return Collection; }).call(this);