mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-09-29 21:39:34 +02:00
Fixed: Initial sorting for Next Airing
This commit is contained in:
@@ -63,6 +63,21 @@ define(
|
|||||||
return '1';
|
return '1';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
_.extend(this.prototype, {
|
||||||
|
initialSort: function () {
|
||||||
|
var key = this.state.sortKey;
|
||||||
|
var order = this.state.order;
|
||||||
|
|
||||||
|
if (this.sorters && this.sorters[key] && this.mode === 'client') {
|
||||||
|
var sortValue = this[key];
|
||||||
|
|
||||||
|
var comparator = this._makeComparator(key, order, sortValue);
|
||||||
|
this.fullCollection.comparator = comparator;
|
||||||
|
this.fullCollection.sort();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -17,8 +17,7 @@ define(
|
|||||||
'Series/Index/FooterView',
|
'Series/Index/FooterView',
|
||||||
'Series/Index/FooterModel',
|
'Series/Index/FooterModel',
|
||||||
'Shared/Toolbar/ToolbarLayout',
|
'Shared/Toolbar/ToolbarLayout',
|
||||||
'underscore',
|
'underscore'
|
||||||
'moment'
|
|
||||||
], function (Marionette,
|
], function (Marionette,
|
||||||
Backgrid,
|
Backgrid,
|
||||||
PosterCollectionView,
|
PosterCollectionView,
|
||||||
@@ -35,8 +34,7 @@ define(
|
|||||||
FooterView,
|
FooterView,
|
||||||
FooterModel,
|
FooterModel,
|
||||||
ToolbarLayout,
|
ToolbarLayout,
|
||||||
_,
|
_) {
|
||||||
Moment) {
|
|
||||||
return Marionette.Layout.extend({
|
return Marionette.Layout.extend({
|
||||||
template: 'Series/Index/SeriesIndexLayoutTemplate',
|
template: 'Series/Index/SeriesIndexLayoutTemplate',
|
||||||
|
|
||||||
@@ -77,15 +75,7 @@ define(
|
|||||||
name : 'nextAiring',
|
name : 'nextAiring',
|
||||||
label : 'Next Airing',
|
label : 'Next Airing',
|
||||||
cell : RelativeDateCell,
|
cell : RelativeDateCell,
|
||||||
sortValue : function (model) {
|
sortValue : SeriesCollection.sorters.nextAiring
|
||||||
var nextAiring = model.get('nextAiring');
|
|
||||||
|
|
||||||
if (!nextAiring) {
|
|
||||||
return Number.MAX_VALUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Moment(nextAiring).unix();
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name : 'percentOfEpisodes',
|
name : 'percentOfEpisodes',
|
||||||
@@ -162,15 +152,7 @@ define(
|
|||||||
{
|
{
|
||||||
title : 'Next Airing',
|
title : 'Next Airing',
|
||||||
name : 'nextAiring',
|
name : 'nextAiring',
|
||||||
sortValue : function (model) {
|
sortValue : SeriesCollection.sorters.nextAiring
|
||||||
var nextAiring = model.get('nextAiring');
|
|
||||||
|
|
||||||
if (!nextAiring) {
|
|
||||||
return Number.MAX_VALUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Moment(nextAiring).unix();
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Episodes',
|
title: 'Episodes',
|
||||||
@@ -272,10 +254,6 @@ define(
|
|||||||
this.viewButtons
|
this.viewButtons
|
||||||
];
|
];
|
||||||
|
|
||||||
if (this.showSortingButton) {
|
|
||||||
rightButtons.splice(0, 0, this.sortingOptions);
|
|
||||||
}
|
|
||||||
|
|
||||||
rightButtons.splice(0, 0, this.sortingOptions);
|
rightButtons.splice(0, 0, this.sortingOptions);
|
||||||
|
|
||||||
this.toolbar.show(new ToolbarLayout({
|
this.toolbar.show(new ToolbarLayout({
|
||||||
|
@@ -6,8 +6,9 @@ define(
|
|||||||
'backbone.pageable',
|
'backbone.pageable',
|
||||||
'Series/SeriesModel',
|
'Series/SeriesModel',
|
||||||
'api!series',
|
'api!series',
|
||||||
'Mixins/AsPersistedStateCollection'
|
'Mixins/AsPersistedStateCollection',
|
||||||
], function (_, Backbone, PageableCollection, SeriesModel, SeriesData, AsPersistedStateCollection) {
|
'moment'
|
||||||
|
], function (_, Backbone, PageableCollection, SeriesModel, SeriesData, AsPersistedStateCollection, Moment) {
|
||||||
var Collection = PageableCollection.extend({
|
var Collection = PageableCollection.extend({
|
||||||
url : window.NzbDrone.ApiRoot + '/series',
|
url : window.NzbDrone.ApiRoot + '/series',
|
||||||
model: SeriesModel,
|
model: SeriesModel,
|
||||||
@@ -19,6 +20,18 @@ define(
|
|||||||
pageSize: 1000
|
pageSize: 1000
|
||||||
},
|
},
|
||||||
|
|
||||||
|
sorters: {
|
||||||
|
nextAiring: function (model) {
|
||||||
|
var nextAiring = model.get('nextAiring');
|
||||||
|
|
||||||
|
if (!nextAiring) {
|
||||||
|
return Number.MAX_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Moment(nextAiring).unix();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
mode: 'client',
|
mode: 'client',
|
||||||
|
|
||||||
save: function () {
|
save: function () {
|
||||||
@@ -49,5 +62,7 @@ define(
|
|||||||
|
|
||||||
var MixedIn = AsPersistedStateCollection.call(Collection);
|
var MixedIn = AsPersistedStateCollection.call(Collection);
|
||||||
var collection = new MixedIn(SeriesData);
|
var collection = new MixedIn(SeriesData);
|
||||||
|
collection.initialSort();
|
||||||
|
|
||||||
return collection;
|
return collection;
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user