@ -1,4 +1,4 @@
var $ = require ( 'jquery' ) ;
var $ = require ( 'jquery' ) ;
var Backbone = require ( 'backbone' ) ;
var Marionette = require ( 'marionette' ) ;
var SystemInfoLayout = require ( './Info/SystemInfoLayout' ) ;
@ -11,6 +11,7 @@ var StatusModel = require('./StatusModel');
module . exports = Marionette . Layout . extend ( {
template : 'System/SystemLayoutTemplate' ,
regions : {
status : '#status' ,
logs : '#logs' ,
@ -18,6 +19,7 @@ module.exports = Marionette.Layout.extend({
backup : '#backup' ,
tasks : '#tasks'
} ,
ui : {
statusTab : '.x-status-tab' ,
logsTab : '.x-logs-tab' ,
@ -25,6 +27,7 @@ module.exports = Marionette.Layout.extend({
backupTab : '.x-backup-tab' ,
tasksTab : '.x-tasks-tab'
} ,
events : {
'click .x-status-tab' : '_showStatus' ,
'click .x-logs-tab' : '_showLogs' ,
@ -34,6 +37,7 @@ module.exports = Marionette.Layout.extend({
'click .x-shutdown' : '_shutdown' ,
'click .x-restart' : '_restart'
} ,
initialize : function ( options ) {
if ( options . action ) {
this . action = options . action . toLowerCase ( ) ;
@ -43,6 +47,7 @@ module.exports = Marionette.Layout.extend({
authentication : StatusModel . get ( 'authentication' )
} ;
} ,
onShow : function ( ) {
switch ( this . action ) {
case 'logs' :
@ -61,12 +66,14 @@ module.exports = Marionette.Layout.extend({
this . _showStatus ( ) ;
}
} ,
_navigate : function ( route ) {
Backbone . history . navigate ( route , {
trigger : true ,
replace : true
} ) ;
} ,
_showStatus : function ( e ) {
if ( e ) {
e . preventDefault ( ) ;
@ -76,53 +83,65 @@ module.exports = Marionette.Layout.extend({
this . ui . statusTab . tab ( 'show' ) ;
this . _navigate ( 'system/status' ) ;
} ,
_showLogs : function ( e ) {
if ( e ) {
e . preventDefault ( ) ;
}
this . logs . show ( new LogsLayout ( ) ) ;
this . ui . logsTab . tab ( 'show' ) ;
this . _navigate ( 'system/logs' ) ;
} ,
_showUpdates : function ( e ) {
if ( e ) {
e . preventDefault ( ) ;
}
this . updates . show ( new UpdateLayout ( ) ) ;
this . ui . updatesTab . tab ( 'show' ) ;
this . _navigate ( 'system/updates' ) ;
} ,
_showBackup : function ( e ) {
if ( e ) {
e . preventDefault ( ) ;
}
this . backup . show ( new BackupLayout ( ) ) ;
this . ui . backupTab . tab ( 'show' ) ;
this . _navigate ( 'system/backup' ) ;
} ,
_showTasks : function ( e ) {
if ( e ) {
e . preventDefault ( ) ;
}
this . tasks . show ( new TaskLayout ( ) ) ;
this . ui . tasksTab . tab ( 'show' ) ;
this . _navigate ( 'system/tasks' ) ;
} ,
_shutdown : function ( ) {
$ . ajax ( {
url : window . NzbDrone . ApiRoot + '/system/shutdown' ,
type : 'POST'
} ) ;
Messenger . show ( {
message : 'Sonarr will shutdown shortly' ,
type : 'info'
} ) ;
} ,
_restart : function ( ) {
$ . ajax ( {
url : window . NzbDrone . ApiRoot + '/system/restart' ,
type : 'POST'
} ) ;
Messenger . show ( {
message : 'Sonarr will restart shortly' ,
type : 'info'