mirror of
https://github.com/Readarr/Readarr.git
synced 2026-04-20 21:54:25 -04:00
Backups
New: Backup drone's database and configuration from the UI New: Download Backup files from the UI Fixed: Run a database backup before upgrade
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
'use strict';
|
||||
define(
|
||||
[
|
||||
'vent',
|
||||
'marionette',
|
||||
'backgrid',
|
||||
'System/Backup/BackupCollection',
|
||||
'Cells/RelativeDateCell',
|
||||
'System/Backup/BackupFilenameCell',
|
||||
'System/Backup/BackupTypeCell',
|
||||
'System/Backup/BackupEmptyView',
|
||||
'Shared/LoadingView',
|
||||
'Shared/Toolbar/ToolbarLayout'
|
||||
], function (vent, Marionette, Backgrid, BackupCollection, RelativeDateCell, BackupFilenameCell, BackupTypeCell, EmptyView, LoadingView, ToolbarLayout) {
|
||||
return Marionette.Layout.extend({
|
||||
template: 'System/Backup/BackupLayoutTemplate',
|
||||
|
||||
regions: {
|
||||
backups : '#x-backups',
|
||||
toolbar : '#x-backup-toolbar'
|
||||
},
|
||||
|
||||
columns: [
|
||||
{
|
||||
name : 'type',
|
||||
label : '',
|
||||
sortable : false,
|
||||
cell : BackupTypeCell
|
||||
},
|
||||
{
|
||||
name : 'this',
|
||||
label : 'Name',
|
||||
sortable : false,
|
||||
cell : BackupFilenameCell
|
||||
},
|
||||
{
|
||||
name : 'time',
|
||||
label : 'Time',
|
||||
sortable : false,
|
||||
cell : RelativeDateCell
|
||||
}
|
||||
],
|
||||
|
||||
leftSideButtons: {
|
||||
type : 'default',
|
||||
storeState: false,
|
||||
collapse : false,
|
||||
items :
|
||||
[
|
||||
{
|
||||
title : 'Backup',
|
||||
icon : 'icon-file-text',
|
||||
command : 'backup',
|
||||
properties : { type: 'manual' },
|
||||
successMessage: 'Database and settings were backed up successfully',
|
||||
errorMessage : 'Backup Failed!'
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
initialize: function () {
|
||||
this.backupCollection = new BackupCollection();
|
||||
|
||||
this.listenTo(this.backupCollection, 'sync', this._showBackups);
|
||||
this.listenTo(vent, vent.Events.CommandComplete, this._commandComplete);
|
||||
},
|
||||
|
||||
onRender: function () {
|
||||
this._showToolbar();
|
||||
this.backups.show(new LoadingView());
|
||||
|
||||
this.backupCollection.fetch();
|
||||
},
|
||||
|
||||
_showBackups: function () {
|
||||
|
||||
if (this.backupCollection.length === 0) {
|
||||
this.backups.show(new EmptyView());
|
||||
}
|
||||
|
||||
else {
|
||||
this.backups.show(new Backgrid.Grid({
|
||||
columns : this.columns,
|
||||
collection: this.backupCollection,
|
||||
className : 'table table-hover'
|
||||
}));
|
||||
}
|
||||
},
|
||||
|
||||
_showToolbar : function () {
|
||||
this.toolbar.show(new ToolbarLayout({
|
||||
left :
|
||||
[
|
||||
this.leftSideButtons
|
||||
],
|
||||
context: this
|
||||
}));
|
||||
},
|
||||
|
||||
_commandComplete: function (options) {
|
||||
if (options.command.get('name') === 'backup') {
|
||||
this.backupCollection.fetch();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user