mirror of https://github.com/Squidex/squidex.git
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.
95 lines
4.0 KiB
95 lines
4.0 KiB
<sqx-title message="{app} | Backups | Settings" parameter1="app" [value1]="appsState.appDisplayName"></sqx-title>
|
|
|
|
<sqx-panel desiredWidth="50rem" [showSidebar]="true">
|
|
<ng-container title>
|
|
Backups
|
|
</ng-container>
|
|
|
|
<ng-container menu>
|
|
<button type="button" class="btn btn-text-secondary mr-1" (click)="reload()" title="Refresh backups (CTRL + SHIFT + R)">
|
|
<i class="icon-reset"></i> Refresh
|
|
</button>
|
|
|
|
<sqx-shortcut keys="ctrl+shift+r" (trigger)="reload()"></sqx-shortcut>
|
|
|
|
<button type="button" class="btn btn-success" [disabled]="backupsState.maxBackupsReached | async" *ngIf="backupsState.canCreate | async" (click)="start()">
|
|
Start Backup
|
|
</button>
|
|
</ng-container>
|
|
|
|
<ng-container content>
|
|
<ng-container *ngIf="(backupsState.isLoaded | async) && (backupsState.backups | async); let backups">
|
|
<div class="panel-alert panel-alert-danger" *ngIf="backupsState.maxBackupsReached | async">
|
|
Your have reached the maximum number of backups: 10.
|
|
</div>
|
|
|
|
<div class="table-items-row table-items-row-empty" *ngIf="backups.length === 0">
|
|
No backups created yet.
|
|
|
|
<button type="button" class="btn btn-success btn-sm ml-2" (click)="start()">
|
|
Start Backup
|
|
</button>
|
|
</div>
|
|
|
|
<div class="table-items-row" *ngFor="let backup of backups; trackBy: trackByBackup">
|
|
<div class="row">
|
|
<div class="col-auto" [ngSwitch]="backup.status">
|
|
<sqx-status-icon size="lg" [status]="backup.status"></sqx-status-icon>
|
|
</div>
|
|
<div class="col-auto">
|
|
<div>
|
|
Started:
|
|
</div>
|
|
<div>
|
|
Duration:
|
|
</div>
|
|
</div>
|
|
<div class="col-3">
|
|
<div>
|
|
{{backup.started | sqxFromNow}}
|
|
</div>
|
|
<div *ngIf="backup.stopped">
|
|
{{backup | sqxBackupDuration}}
|
|
</div>
|
|
</div>
|
|
<div class="col">
|
|
<div>
|
|
<span title="Archived events">
|
|
Events: <strong class="backup-progress">{{backup.handledEvents | sqxKNumber}}</strong>
|
|
</span>,
|
|
<span title="Archived assets">
|
|
Assets: <strong class="backup-progress">{{backup.handledAssets | sqxKNumber}}</strong>
|
|
</span>
|
|
</div>
|
|
<div *ngIf="backup.stopped && !backup.isFailed">
|
|
Download:
|
|
|
|
<a href="{{apiUrl.buildUrl(backup.downloadUrl)}}" sqxExternalLink="noicon">
|
|
Ready <i class="icon-external-link"></i>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div class="col-auto">
|
|
<button type="button" class="btn btn-text-danger mt-1"
|
|
[disabled]="!backup.canDelete"
|
|
(sqxConfirmClick)="delete(backup)"
|
|
confirmTitle="Delete backup"
|
|
confirmText="Do you really want to delete the backup?">
|
|
<i class="icon-bin2"></i>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</ng-container>
|
|
</ng-container>
|
|
|
|
<ng-container sidebar>
|
|
<div class="panel-nav">
|
|
<a class="panel-link" routerLink="help" routerLinkActive="active" title="Help" titlePosition="left">
|
|
<i class="icon-help"></i>
|
|
</a>
|
|
</div>
|
|
</ng-container>
|
|
</sqx-panel>
|
|
|
|
<router-outlet></router-outlet>
|