New: Filter visible series on season pass

New: Filter visible series on series editor
This commit is contained in:
Mark McDowall
2014-07-17 17:22:56 -07:00
parent bdfc03ee0b
commit d8543ad533
6 changed files with 157 additions and 50 deletions
+4 -18
View File
@@ -5,7 +5,6 @@ define(
'marionette',
'backgrid',
'vent',
'Series/SeriesCollection',
'Quality/QualityProfileCollection',
'AddSeries/RootFolders/RootFolderCollection',
'Shared/Toolbar/ToolbarLayout',
@@ -16,7 +15,6 @@ define(
Marionette,
Backgrid,
vent,
SeriesCollection,
QualityProfiles,
RootFolders,
ToolbarLayout,
@@ -51,12 +49,14 @@ define(
},
initialize: function (options) {
this.seriesCollection = options.collection;
RootFolders.fetch().done(function () {
RootFolders.synced = true;
});
this.editorGrid = options.editorGrid;
this.listenTo(SeriesCollection, 'backgrid:selected', this._updateInfo);
this.listenTo(this.seriesCollection, 'backgrid:selected', this._updateInfo);
this.listenTo(RootFolders, 'all', this.render);
},
@@ -102,9 +102,7 @@ define(
model.edited = true;
});
SeriesCollection.save();
this.listenTo(SeriesCollection, 'save', this._afterSave);
this.seriesCollection.save();
},
_updateInfo: function () {
@@ -150,18 +148,6 @@ define(
this._rootFolderChanged();
},
_afterSave: function () {
this.ui.monitored.val('noChange');
this.ui.qualityProfile.val('noChange');
this.ui.seasonFolder.val('noChange');
this.ui.rootFolder.val('noChange');
SeriesCollection.each(function (model) {
model.trigger('backgrid:select', model, false);
model.edited = false;
});
},
_organizeFiles: function () {
var selected = this.editorGrid.getSelectedModels();
var updateFilesSeriesView = new UpdateFilesSeriesView({ series: selected });
+60 -10
View File
@@ -11,7 +11,8 @@ define(
'Cells/SeriesStatusCell',
'Cells/SeasonFolderCell',
'Shared/Toolbar/ToolbarLayout',
'Series/Editor/SeriesEditorFooterView'
'Series/Editor/SeriesEditorFooterView',
'Mixins/backbone.signalr.mixin'
], function (vent,
Marionette,
Backgrid,
@@ -99,11 +100,54 @@ define(
]
},
initialize: function () {
this.seriesCollection = SeriesCollection.clone();
this.seriesCollection.shadowCollection.bindSignalR();
this.listenTo(this.seriesCollection, 'save', this.render);
this.filteringOptions = {
type : 'radio',
storeState : true,
menuKey : 'serieseditor.filterMode',
defaultAction: 'all',
items :
[
{
key : 'all',
title : '',
tooltip : 'All',
icon : 'icon-circle-blank',
callback: this._setFilter
},
{
key : 'monitored',
title : '',
tooltip : 'Monitored Only',
icon : 'icon-nd-monitored',
callback: this._setFilter
},
{
key : 'continuing',
title : '',
tooltip : 'Continuing Only',
icon : 'icon-play',
callback: this._setFilter
},
{
key : 'ended',
title : '',
tooltip : 'Ended Only',
icon : 'icon-stop',
callback: this._setFilter
}
]
};
},
onRender: function () {
this._showToolbar();
this._showTable();
this._fetchCollection();
},
onClose: function () {
@@ -111,14 +155,14 @@ define(
},
_showTable: function () {
if (SeriesCollection.length === 0) {
if (this.seriesCollection.shadowCollection.length === 0) {
this.seriesRegion.show(new EmptyView());
this.toolbar.close();
return;
}
this.editorGrid = new Backgrid.Grid({
collection: SeriesCollection,
collection: this.seriesCollection,
columns : this.columns,
className : 'table table-hover'
});
@@ -127,22 +171,28 @@ define(
this._showFooter();
},
_fetchCollection: function () {
SeriesCollection.fetch();
},
_showToolbar: function () {
this.toolbar.show(new ToolbarLayout({
left :
[
this.leftSideButtons
],
right :
[
this.filteringOptions
],
context: this
}));
},
_showFooter: function () {
vent.trigger(vent.Commands.OpenControlPanelCommand, new FooterView({ editorGrid: this.editorGrid }));
vent.trigger(vent.Commands.OpenControlPanelCommand, new FooterView({ editorGrid: this.editorGrid, collection: this.seriesCollection }));
},
_setFilter: function(buttonContext) {
var mode = buttonContext.model.get('key');
this.seriesCollection.setFilterMode(mode);
}
});
});
+10 -7
View File
@@ -333,14 +333,7 @@
.season-grid {
margin-top : 10px;
}
}
.season-status {
font-size : 16px;
vertical-align : middle !important;
}
.seasonpass-series {
.season-pass-button {
display : inline-block;
}
@@ -349,6 +342,16 @@
font-size : 24px;
margin-top : 3px;
}
.help-inline {
margin-top : 7px;
display : inline-block;
}
}
.season-status {
font-size : 16px;
vertical-align : middle !important;
}
//Overview List