Move retention and backup schedule interval into a separate settings dialog

This commit is contained in:
Johannes Zellner
2020-05-19 16:13:20 +02:00
parent 1f0b0d7bd1
commit d2a81ce907
2 changed files with 125 additions and 18 deletions

View File

@@ -15,6 +15,39 @@
</div>
</div>
<!-- modal backup config -->
<div class="modal fade" id="configureScheduleAndRetentionModal" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Configure Backup Schedule and Retention</h4>
</div>
<div class="modal-body">
<form name="configureScheduleAndRetentionForm" role="form" novalidate ng-submit="configureScheduleAndRetention.submit()" autocomplete="off">
<fieldset>
<p class="has-error text-center" ng-show="configureScheduleAndRetention.error">{{ configureScheduleAndRetention.error.generic }}</p>
<div class="form-group">
<label class="control-label" for="storageInterval">Backup Interval</label>
<select class="form-control" id="storageInterval" ng-model="configureScheduleAndRetention.intervalSecs" ng-options="a.value as a.name for a in intervalTimes"></select>
</div>
<div class="form-group">
<label class="control-label" for="storageRetention">Retention Policy</label>
<select class="form-control" id="storageRetention" ng-model="configureScheduleAndRetention.retentionPolicy" ng-options="a.value as a.name for a in retentionPolicies"></select>
</div>
</fieldset>
</form>
</div>
<div class="modal-footer ">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-outline btn-success pull-right" ng-click="configureScheduleAndRetention.submit()" ng-disabled="configureScheduleAndRetention.$invalid || configureScheduleAndRetention.busy"><i class="fa fa-circle-notch fa-spin" ng-show="configureScheduleAndRetention.busy"></i><span> Save</span></button>
</div>
</div>
</div>
</div>
<!-- modal backup config -->
<div class="modal fade" id="configureBackupModal" tabindex="-1" role="dialog">
<div class="modal-dialog">
@@ -143,16 +176,6 @@
<select class="form-control" id="storageFormat" ng-model="configureBackup.format" ng-options="a.value as a.name for a in formats"></select>
</div>
<div class="form-group" ng-show="configureBackup.provider !== 'noop'">
<label class="control-label" for="storageInterval">Backup Interval</label>
<select class="form-control" id="storageInterval" ng-model="configureBackup.intervalSecs" ng-options="a.value as a.name for a in intervalTimes"></select>
</div>
<div class="form-group" ng-show="configureBackup.provider !== 'noop'">
<label class="control-label" for="storageRetention">Retention Policy</label>
<select class="form-control" id="storageRetention" ng-model="configureBackup.retentionPolicy" ng-options="a.value as a.name for a in retentionPolicies"></select>
</div>
<div class="form-group" ng-class="{ 'has-error': configureBackup.error.password }" ng-show="configureBackup.provider !== 'noop'">
<label class="control-label" for="inputConfigureBackupPassword">Encryption Password (optional) <sup><a ng-href="{{ config.webServerOrigin }}/documentation/backups/#encryption" class="help" target="_blank"><i class="fa fa-question-circle"></i></a></sup></label>
<p class="small">Save this passphrase in a safe place. Cloudron does not store this password. Backups cannot be decrypted without the passphrase</p>
@@ -182,7 +205,7 @@
</div>
<div class="card" style="margin-bottom: 15px;">
<p>Cloudron makes a complete backup of your system based on this configuration.
<p>Cloudron makes a complete backup of your system at the configured location.
<span ng-show="manualBackupApps.length">
The following apps have automatic backups disabled:
<span ng-repeat="app in manualBackupApps">
@@ -238,6 +261,36 @@
</div>
</div>
<div class="text-left">
<h3>Schedule and Retention</h3>
</div>
<div class="card" style="margin-bottom: 15px;">
<p>Cloudron makes a complete backup of your system based on this scheduled interval and keeps backups with the specified retention policy. </p>
<div class="row">
<div class="col-xs-6">
<span class="text-muted">Interval</span>
</div>
<div class="col-xs-6 text-right">
<span>{{ prettyBackupInterval(backupConfig.intervalSecs) }}</span>
</div>
</div>
<div class="row">
<div class="col-xs-6">
<span class="text-muted">Retention Policy</span>
</div>
<div class="col-xs-6 text-right">
<span>{{ prettyBackupRetentionPolicy(backupConfig.retentionPolicy) }}</span>
</div>
</div>
<br/>
<div class="row">
<div class="col-md-12 text-right">
<button class="btn btn-outline btn-primary pull-right" ng-show="user.role === 'owner'" ng-click="configureScheduleAndRetention.show()">Configure</button>
</div>
</div>
</div>
<div class="text-left">
<h3>Listing</h3>
</div>