Files
Readarr/src/UI/System/SystemLayout.js
Keivan Beigi 428a1439e5 rjs -> webpack
2015-02-02 17:43:14 -08:00

125 lines
3.6 KiB
JavaScript

var $ = require('jquery');
var Backbone = require('backbone');
var Marionette = require('marionette');
var SystemInfoLayout = require('./Info/SystemInfoLayout');
var LogsLayout = require('./Logs/LogsLayout');
var UpdateLayout = require('./Update/UpdateLayout');
var BackupLayout = require('./Backup/BackupLayout');
var TaskLayout = require('./Task/TaskLayout');
var Messenger = require('../Shared/Messenger');
module.exports = Marionette.Layout.extend({
template : 'System/SystemLayoutTemplate',
regions : {
info : '#info',
logs : '#logs',
updates : '#updates',
backup : '#backup',
tasks : '#tasks'
},
ui : {
infoTab : '.x-info-tab',
logsTab : '.x-logs-tab',
updatesTab : '.x-updates-tab',
backupTab : '.x-backup-tab',
tasksTab : '.x-tasks-tab'
},
events : {
"click .x-info-tab" : '_showInfo',
"click .x-logs-tab" : '_showLogs',
"click .x-updates-tab" : '_showUpdates',
"click .x-backup-tab" : '_showBackup',
"click .x-tasks-tab" : '_showTasks',
"click .x-shutdown" : '_shutdown',
"click .x-restart" : '_restart'
},
initialize : function(options){
if(options.action) {
this.action = options.action.toLowerCase();
}
},
onShow : function(){
switch (this.action) {
case 'logs':
this._showLogs();
break;
case 'updates':
this._showUpdates();
break;
case 'backup':
this._showBackup();
break;
case 'tasks':
this._showTasks();
break;
default:
this._showInfo();
}
},
_navigate : function(route){
Backbone.history.navigate(route, {
trigger : true,
replace : true
});
},
_showInfo : function(e){
if(e) {
e.preventDefault();
}
this.info.show(new SystemInfoLayout());
this.ui.infoTab.tab('show');
this._navigate('system/info');
},
_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'
});
}
});