Fixed: Initial sorting for Next Airing
This commit is contained in:
parent
442ab2b7c4
commit
4962db3b6a
|
@ -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;
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue