You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
250 lines
7.6 KiB
250 lines
7.6 KiB
var _ = require('underscore');
|
|
var vent = require('vent');
|
|
var Marionette = require('marionette');
|
|
var Backgrid = require('backgrid');
|
|
var EmptyView = require('../Index/EmptyView');
|
|
var FullMovieCollection = require ('../FullMovieCollection');
|
|
var MoviesCollection = require('../MoviesCollection');
|
|
var MovieTitleCell = require('../../Cells/MovieTitleCell');
|
|
var DownloadedQualityCell = require('../../Cells/DownloadedQualityCell');
|
|
var ProfileCell = require('../../Cells/ProfileCell');
|
|
var SelectAllCell = require('../../Cells/SelectAllCell');
|
|
var ToolbarLayout = require('../../Shared/Toolbar/ToolbarLayout');
|
|
var FooterView = require('./MovieEditorFooterView');
|
|
var GridPager = require('../../Shared/Grid/Pager');
|
|
require('../../Mixins/backbone.signalr.mixin');
|
|
var DeleteSelectedView = require('./Delete/DeleteSelectedView');
|
|
var Config = require('../../Config');
|
|
|
|
window.shownOnce = false;
|
|
module.exports = Marionette.Layout.extend({
|
|
template : 'Movies/Editor/MovieEditorLayoutTemplate',
|
|
|
|
regions : {
|
|
seriesRegion : '#x-series-editor',
|
|
toolbar : '#x-toolbar',
|
|
pagerTop : "#x-movie-pager-top",
|
|
pager : "#x-movie-pager"
|
|
},
|
|
|
|
ui : {
|
|
monitored : '.x-monitored',
|
|
profiles : '.x-profiles',
|
|
rootFolder : '.x-root-folder',
|
|
selectedCount : '.x-selected-count'
|
|
},
|
|
|
|
events : {
|
|
'click .x-save' : '_updateAndSave',
|
|
'change .x-root-folder' : '_rootFolderChanged'
|
|
},
|
|
|
|
columns : [
|
|
{
|
|
name : '',
|
|
cell : SelectAllCell,
|
|
headerCell : 'select-all',
|
|
sortable : false
|
|
},
|
|
{
|
|
name : 'title',
|
|
label : 'Title',
|
|
cell : MovieTitleCell,
|
|
cellValue : 'this'
|
|
},
|
|
{
|
|
name: "downloadedQuality",
|
|
label: "Downloaded",
|
|
cell: DownloadedQualityCell,
|
|
},
|
|
{
|
|
name : 'profileId',
|
|
label : 'Profile',
|
|
cell : ProfileCell
|
|
},
|
|
{
|
|
name : 'path',
|
|
label : 'Path',
|
|
cell : 'string'
|
|
}
|
|
],
|
|
|
|
initialize : function() {
|
|
|
|
this.movieCollection = MoviesCollection.clone();
|
|
var pageSize = parseInt(Config.getValue("pageSize")) || 10;
|
|
this.movieCollection.switchMode('client', {fetch: false});
|
|
this.movieCollection.setPageSize(pageSize, {fetch: true});
|
|
this.movieCollection.bindSignalR();
|
|
this.movieCollection.fullCollection.bindSignalR();
|
|
|
|
var selected = FullMovieCollection.where( { selected : true });
|
|
_.each(selected, function(model) {
|
|
model.set('selected', false);
|
|
});
|
|
|
|
this.listenTo(this.movieCollection, 'sync', function() {
|
|
this._showToolbar();
|
|
this._showTable();
|
|
this._showPager();
|
|
window.shownOnce = true;
|
|
});
|
|
|
|
this.listenTo(this.movieCollection.fullCollection, 'sync', function() {
|
|
});
|
|
|
|
|
|
this.leftSideButtons = {
|
|
type : 'default',
|
|
storeState : false,
|
|
collapse: true,
|
|
items : [
|
|
{
|
|
title : 'Update library',
|
|
icon : 'icon-sonarr-refresh',
|
|
command : 'refreshmovie',
|
|
successMessage : 'Library was updated!',
|
|
errorMessage : 'Library update failed!'
|
|
},
|
|
{
|
|
title : 'Delete selected',
|
|
icon : 'icon-radarr-delete-white',
|
|
className: 'btn-danger',
|
|
callback : this._deleteSelected
|
|
}
|
|
]
|
|
};
|
|
//this.listenTo(FullMovieCollection, 'save', function() {
|
|
// window.alert('Done Saving');
|
|
//});
|
|
|
|
this.filteringOptions = {
|
|
type : 'radio',
|
|
storeState : false,
|
|
menuKey : 'serieseditor.filterMode',
|
|
defaultAction : 'all',
|
|
items : [
|
|
{
|
|
key : 'all',
|
|
title : '',
|
|
tooltip : 'All',
|
|
icon : 'icon-sonarr-all',
|
|
callback : this._setFilter
|
|
},
|
|
{
|
|
key : 'monitored',
|
|
title : '',
|
|
tooltip : 'Monitored Only',
|
|
icon : 'icon-sonarr-monitored',
|
|
callback : this._setFilter
|
|
},
|
|
{
|
|
key : 'missing',
|
|
title : '',
|
|
tooltip : 'Missing Only',
|
|
icon : 'icon-sonarr-missing',
|
|
callback : this._setFilter
|
|
},
|
|
{
|
|
key : 'released',
|
|
title : '',
|
|
tooltip : 'Released',
|
|
icon : 'icon-sonarr-movie-released',
|
|
callback : this._setFilter
|
|
},
|
|
{
|
|
key : 'announced',
|
|
title : '',
|
|
tooltip : 'Announced',
|
|
icon : 'icon-sonarr-movie-announced',
|
|
callback : this._setFilter
|
|
},
|
|
{
|
|
key : 'cinemas',
|
|
title : '',
|
|
tooltip : 'In Cinemas',
|
|
icon : 'icon-sonarr-movie-cinemas',
|
|
callback : this._setFilter
|
|
}
|
|
]
|
|
};
|
|
},
|
|
|
|
onRender : function() {
|
|
//this._showToolbar();
|
|
//this._showTable();
|
|
//this._showPager();
|
|
//if (window.shownOnce){
|
|
// this.movieCollection.fetch();
|
|
//}
|
|
//window.shownOnce = true;
|
|
},
|
|
|
|
onClose : function() {
|
|
vent.trigger(vent.Commands.CloseControlPanelCommand);
|
|
},
|
|
|
|
_showPager : function(){
|
|
var pager = new GridPager({
|
|
columns : this.columns,
|
|
collection : this.movieCollection
|
|
});
|
|
var pagerTop = new GridPager({
|
|
columns : this.columns,
|
|
collection : this.movieCollection,
|
|
});
|
|
this.pager.show(pager);
|
|
this.pagerTop.show(pagerTop);
|
|
},
|
|
|
|
_showTable : function() {
|
|
if (this.movieCollection.length === 0) {
|
|
this.seriesRegion.show(new EmptyView());
|
|
this.toolbar.close();
|
|
return;
|
|
}
|
|
this.columns[0].sortedCollection = this.movieCollection;
|
|
|
|
this.editorGrid = new Backgrid.Grid({
|
|
collection : this.movieCollection,
|
|
columns : this.columns,
|
|
className : 'table table-hover'
|
|
});
|
|
|
|
this.seriesRegion.show(this.editorGrid);
|
|
this._showFooter();
|
|
|
|
},
|
|
|
|
_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,
|
|
collection : this.movieCollection
|
|
}));
|
|
},
|
|
|
|
_setFilter : function(buttonContext) {
|
|
var mode = buttonContext.model.get('key');
|
|
this.movieCollection.setFilterMode(mode);
|
|
},
|
|
|
|
_deleteSelected: function() {
|
|
var selected = FullMovieCollection.where({ selected : true });
|
|
var updateFilesMoviesView = new DeleteSelectedView({ movies : selected });
|
|
|
|
vent.trigger(vent.Commands.OpenModalCommand, updateFilesMoviesView);
|
|
}
|
|
});
|