mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-09-29 13:25:13 +02:00
rjs -> webpack
This commit is contained in:
@@ -1,97 +1,75 @@
|
||||
'use strict';
|
||||
define(
|
||||
[
|
||||
'underscore',
|
||||
'backbone',
|
||||
'backbone.pageable',
|
||||
'Series/SeriesModel',
|
||||
'api!series',
|
||||
'Mixins/AsFilteredCollection',
|
||||
'Mixins/AsSortedCollection',
|
||||
'Mixins/AsPersistedStateCollection',
|
||||
'moment'
|
||||
], function (_, Backbone, PageableCollection, SeriesModel, SeriesData, AsFilteredCollection, AsSortedCollection, AsPersistedStateCollection, moment) {
|
||||
var Collection = PageableCollection.extend({
|
||||
url : window.NzbDrone.ApiRoot + '/series',
|
||||
model: SeriesModel,
|
||||
tableName: 'series',
|
||||
var _ = require('underscore');
|
||||
var Backbone = require('backbone');
|
||||
var PageableCollection = require('backbone.pageable');
|
||||
var SeriesModel = require('./SeriesModel');
|
||||
var ApiData = require('../Shared/ApiData');
|
||||
var AsFilteredCollection = require('../Mixins/AsFilteredCollection');
|
||||
var AsSortedCollection = require('../Mixins/AsSortedCollection');
|
||||
var AsPersistedStateCollection = require('../Mixins/AsPersistedStateCollection');
|
||||
var moment = require('moment');
|
||||
|
||||
state: {
|
||||
sortKey : 'sortTitle',
|
||||
order : -1,
|
||||
pageSize : 100000,
|
||||
secondarySortKey : 'sortTitle',
|
||||
secondarySortOrder : -1
|
||||
},
|
||||
|
||||
mode: 'client',
|
||||
|
||||
save: function () {
|
||||
var self = this;
|
||||
|
||||
var proxy = _.extend( new Backbone.Model(),
|
||||
{
|
||||
id: '',
|
||||
|
||||
url: self.url + '/editor',
|
||||
|
||||
toJSON: function()
|
||||
{
|
||||
return self.filter(function (model) {
|
||||
return model.edited;
|
||||
});
|
||||
}
|
||||
module.exports = (function(){
|
||||
var Collection = PageableCollection.extend({
|
||||
url : window.NzbDrone.ApiRoot + '/series',
|
||||
model : SeriesModel,
|
||||
tableName : 'series',
|
||||
state : {
|
||||
sortKey : 'sortTitle',
|
||||
order : -1,
|
||||
pageSize : 100000,
|
||||
secondarySortKey : 'sortTitle',
|
||||
secondarySortOrder : -1
|
||||
},
|
||||
mode : 'client',
|
||||
save : function(){
|
||||
var self = this;
|
||||
var proxy = _.extend(new Backbone.Model(), {
|
||||
id : '',
|
||||
url : self.url + '/editor',
|
||||
toJSON : function(){
|
||||
return self.filter(function(model){
|
||||
return model.edited;
|
||||
});
|
||||
|
||||
this.listenTo(proxy, 'sync', function (proxyModel, models) {
|
||||
this.add(models, { merge: true });
|
||||
this.trigger('save', this);
|
||||
});
|
||||
|
||||
return proxy.save();
|
||||
},
|
||||
|
||||
// Filter Modes
|
||||
filterModes: {
|
||||
'all' : [null, null],
|
||||
'continuing' : ['status', 'continuing'],
|
||||
'ended' : ['status', 'ended'],
|
||||
'monitored' : ['monitored', true]
|
||||
},
|
||||
|
||||
sortMappings: {
|
||||
'title' : { sortKey: 'sortTitle' },
|
||||
'nextAiring' : {
|
||||
sortValue: function (model, attr, order) {
|
||||
var nextAiring = model.get(attr);
|
||||
|
||||
if (nextAiring) {
|
||||
return moment(nextAiring).unix();
|
||||
}
|
||||
|
||||
if (order === 1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return Number.MAX_VALUE;
|
||||
}
|
||||
});
|
||||
this.listenTo(proxy, 'sync', function(proxyModel, models){
|
||||
this.add(models, {merge : true});
|
||||
this.trigger('save', this);
|
||||
});
|
||||
return proxy.save();
|
||||
},
|
||||
filterModes : {
|
||||
"all" : [null, null],
|
||||
"continuing" : ['status', 'continuing'],
|
||||
"ended" : ['status', 'ended'],
|
||||
"monitored" : ['monitored', true]
|
||||
},
|
||||
sortMappings : {
|
||||
"title" : {sortKey : 'sortTitle'},
|
||||
"nextAiring" : {
|
||||
sortValue : function(model, attr, order){
|
||||
var nextAiring = model.get(attr);
|
||||
if(nextAiring) {
|
||||
return moment(nextAiring).unix();
|
||||
}
|
||||
},
|
||||
|
||||
percentOfEpisodes: {
|
||||
sortValue: function (model, attr) {
|
||||
var percentOfEpisodes = model.get(attr);
|
||||
var episodeCount = model.get('episodeCount');
|
||||
|
||||
return percentOfEpisodes + episodeCount / 1000000;
|
||||
if(order === 1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return Number.MAX_VALUE;
|
||||
}
|
||||
},
|
||||
percentOfEpisodes : {
|
||||
sortValue : function(model, attr){
|
||||
var percentOfEpisodes = model.get(attr);
|
||||
var episodeCount = model.get('episodeCount');
|
||||
return percentOfEpisodes + episodeCount / 1000000;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Collection = AsFilteredCollection.call(Collection);
|
||||
Collection = AsSortedCollection.call(Collection);
|
||||
Collection = AsPersistedStateCollection.call(Collection);
|
||||
|
||||
return new Collection(SeriesData, { full: true });
|
||||
}
|
||||
});
|
||||
Collection = AsFilteredCollection.call(Collection);
|
||||
Collection = AsSortedCollection.call(Collection);
|
||||
Collection = AsPersistedStateCollection.call(Collection);
|
||||
var data = ApiData.get('series');
|
||||
return new Collection(data, {full : true});
|
||||
}).call(this);
|
Reference in New Issue
Block a user