Readarr/src/UI/Artist/TrackCollection.js
Qstick 916db8d356 Add Track and TrackFile API Resources
Add Track and TrackFile API Resources, Add Rename Track Resource, Add GetFilesByAlbum function to Media File Service, Add Links to Artist Detail Page, Misc other UI work
2017-06-20 23:06:28 -04:00

62 lines
No EOL
1.4 KiB
JavaScript

var Backbone = require('backbone');
var PageableCollection = require('backbone.pageable');
var TrackModel = require('./TrackModel');
require('./TrackCollection');
module.exports = PageableCollection.extend({
url : window.NzbDrone.ApiRoot + '/track',
model : TrackModel,
state : {
sortKey : 'trackNumber',
order : 1,
pageSize : 100000
},
mode : 'client',
originalFetch : Backbone.Collection.prototype.fetch,
initialize : function(options) {
this.artistId = options.artistId;
},
bySeason : function(album) {
var filtered = this.filter(function(track) {
return track.get('albumId') === album;
});
var TrackCollection = require('./TrackCollection');
return new TrackCollection(filtered);
},
comparator : function(model1, model2) {
var track1 = model1.get('trackNumber');
var track2 = model2.get('trackNumber');
if (track1 < track2) {
return 1;
}
if (track1 > track2) {
return -1;
}
return 0;
},
fetch : function(options) {
if (!this.artistId) {
throw 'artistId is required';
}
if (!options) {
options = {};
}
options.data = { artistId : this.artistId };
return this.originalFetch.call(this, options);
}
});