From 3983a364920c298fce1568f3febb014b2860c9a1 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Thu, 2 May 2013 00:09:35 -0700 Subject: [PATCH] Fixed default sorting for series grid --- NzbDrone.Core/Tv/EpisodeRepository.cs | Bin 9328 -> 9468 bytes UI/Missing/MissingLayout.js | 6 ------ UI/Mixins/backbone.Backgrid.mixin.js | 30 +++++++++++++++++++++++--- UI/Series/SeriesCollection.js | 9 +++++++- 4 files changed, 35 insertions(+), 10 deletions(-) diff --git a/NzbDrone.Core/Tv/EpisodeRepository.cs b/NzbDrone.Core/Tv/EpisodeRepository.cs index a539ba78abc7a30b9c7df6f4ae89a98db3ce0c34..e15c6bed88e37eb43f44c031f06230c540641ca3 100644 GIT binary patch delta 105 zcmez1@yByRA+LFSN@7W(Z(>0~YLT8}N=iUtQDSatNotXXQgUfgQEFa^OJYf?l8yq1 v3dzh()e9|2_RBBd9M8L%QQFbZMZqz%2qdRqXRF|Vq-Am-zs6=E{y0$pGC(Cp delta 17 Zcmez4`N3mDA@Am0ybBpO&*P611prTa2b%x@ diff --git a/UI/Missing/MissingLayout.js b/UI/Missing/MissingLayout.js index 08fc99b12..2955f168e 100644 --- a/UI/Missing/MissingLayout.js +++ b/UI/Missing/MissingLayout.js @@ -49,12 +49,6 @@ define([ editable : false, cell : 'airDate', headerCell: 'nzbDrone' -// headerCell: Backgrid.NzbDroneHeaderCell.extend({ -// initialize: function(options) { -// this.constructor.__super__.initialize.apply(this, [options]); -// this.direction('descending'); -// } -// }) }, { name : 'edit', diff --git a/UI/Mixins/backbone.Backgrid.mixin.js b/UI/Mixins/backbone.Backgrid.mixin.js index e89645285..25343ea83 100644 --- a/UI/Mixins/backbone.Backgrid.mixin.js +++ b/UI/Mixins/backbone.Backgrid.mixin.js @@ -25,6 +25,25 @@ Backgrid.NzbDroneHeaderCell = Backgrid.HeaderCell.extend({ if (this.column.get('sortable')) { this.$el.append(" "); + + if (this.collection.state) { + var sortKey = this.collection.state.sortKey; + var sortDir = this._convertIntToDirection(this.collection.state.order); + + if (sortKey === this.column.get('name')) { + this.$el.children('i').addClass(this._convertDirectionToIcon(sortDir)); + this._direction = sortDir; + } + } + else if (this.collection.defaultSortKey) { + var sortKey = this.collection.defaultSortKey; + var sortDir = this._convertIntToDirection(this.collection.defaultSortDir); + + if (sortKey === this.column.get('name')) { + this.$el.children('i').addClass(this._convertDirectionToIcon(sortDir)); + this._direction = sortDir; + } + } } this.delegateEvents(); return this; @@ -57,9 +76,6 @@ Backgrid.NzbDroneHeaderCell = Backgrid.HeaderCell.extend({ return 1; }); } - else if (this.direction() === "descending") { - this.sort(columnName, "ascending"); - } else { this.sort(columnName, "ascending", function (left, right) { var leftVal = left.get(columnName); @@ -80,6 +96,14 @@ Backgrid.NzbDroneHeaderCell = Backgrid.HeaderCell.extend({ } return 'icon-sort-down'; + }, + + _convertIntToDirection: function (dir) { + if (dir === '-1') { + return 'ascending'; + } + + return 'descending'; } }); diff --git a/UI/Series/SeriesCollection.js b/UI/Series/SeriesCollection.js index 5f56714d4..6d1eb1409 100644 --- a/UI/Series/SeriesCollection.js +++ b/UI/Series/SeriesCollection.js @@ -1,6 +1,13 @@ define(['app', 'Series/SeriesModel'], function () { NzbDrone.Series.SeriesCollection = Backbone.Collection.extend({ url : NzbDrone.Constants.ApiRoot + '/series', - model: NzbDrone.Series.SeriesModel + model: NzbDrone.Series.SeriesModel, + + defaultSortKey: 'title', + defaultSortDir: '-1', + + comparator: function (model) { + return model.get(this.defaultSortKey); + } }); }); \ No newline at end of file