mirror of
https://github.com/immich-app/immich.git
synced 2026-01-26 21:57:27 -05:00
refactor: split actions into flow/restore
This commit is contained in:
parent
fae9d10855
commit
770bf7365c
3
mobile/openapi/lib/model/maintenance_action.dart
generated
3
mobile/openapi/lib/model/maintenance_action.dart
generated
@ -25,12 +25,14 @@ class MaintenanceAction {
|
||||
|
||||
static const start = MaintenanceAction._(r'start');
|
||||
static const end = MaintenanceAction._(r'end');
|
||||
static const selectDatabaseRestore = MaintenanceAction._(r'select_database_restore');
|
||||
static const restoreDatabase = MaintenanceAction._(r'restore_database');
|
||||
|
||||
/// List of all possible values in this [enum][MaintenanceAction].
|
||||
static const values = <MaintenanceAction>[
|
||||
start,
|
||||
end,
|
||||
selectDatabaseRestore,
|
||||
restoreDatabase,
|
||||
];
|
||||
|
||||
@ -72,6 +74,7 @@ class MaintenanceActionTypeTransformer {
|
||||
switch (data) {
|
||||
case r'start': return MaintenanceAction.start;
|
||||
case r'end': return MaintenanceAction.end;
|
||||
case r'select_database_restore': return MaintenanceAction.selectDatabaseRestore;
|
||||
case r'restore_database': return MaintenanceAction.restoreDatabase;
|
||||
default:
|
||||
if (!allowNull) {
|
||||
|
||||
@ -17317,6 +17317,7 @@
|
||||
"enum": [
|
||||
"start",
|
||||
"end",
|
||||
"select_database_restore",
|
||||
"restore_database"
|
||||
],
|
||||
"type": "string"
|
||||
|
||||
@ -5264,6 +5264,7 @@ export enum UserAvatarColor {
|
||||
export enum MaintenanceAction {
|
||||
Start = "start",
|
||||
End = "end",
|
||||
SelectDatabaseRestore = "select_database_restore",
|
||||
RestoreDatabase = "restore_database"
|
||||
}
|
||||
export enum StorageFolder {
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
import { ValidateIf } from 'class-validator';
|
||||
import { MaintenanceAction, StorageFolder } from 'src/enum';
|
||||
import { ValidateEnum, ValidateString } from 'src/validation';
|
||||
|
||||
@ -5,7 +6,8 @@ export class SetMaintenanceModeDto {
|
||||
@ValidateEnum({ enum: MaintenanceAction, name: 'MaintenanceAction' })
|
||||
action!: MaintenanceAction;
|
||||
|
||||
@ValidateString({ optional: true })
|
||||
@ValidateIf((o) => o.action === MaintenanceAction.RestoreDatabase)
|
||||
@ValidateString()
|
||||
restoreBackupFilename?: string;
|
||||
}
|
||||
|
||||
|
||||
@ -696,6 +696,7 @@ export enum DatabaseLock {
|
||||
export enum MaintenanceAction {
|
||||
Start = 'start',
|
||||
End = 'end',
|
||||
SelectDatabaseRestore = 'select_database_restore',
|
||||
RestoreDatabase = 'restore_database',
|
||||
}
|
||||
|
||||
|
||||
@ -303,12 +303,8 @@ export class MaintenanceWorkerService {
|
||||
case MaintenanceAction.End: {
|
||||
return this.endMaintenance();
|
||||
}
|
||||
case MaintenanceAction.RestoreDatabase: {
|
||||
if (!action.restoreBackupFilename) {
|
||||
return;
|
||||
}
|
||||
|
||||
break;
|
||||
case MaintenanceAction.SelectDatabaseRestore: {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@ -330,6 +326,10 @@ export class MaintenanceWorkerService {
|
||||
try {
|
||||
switch (action.action) {
|
||||
case MaintenanceAction.RestoreDatabase: {
|
||||
if (!action.restoreBackupFilename) {
|
||||
throw new Error("Expected restoreBackupFilename but it's missing!");
|
||||
}
|
||||
|
||||
await this.restoreBackup(action.restoreBackupFilename);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -65,7 +65,7 @@ export class MaintenanceService extends BaseService {
|
||||
|
||||
return this.startMaintenance(
|
||||
{
|
||||
action: MaintenanceAction.RestoreDatabase,
|
||||
action: MaintenanceAction.SelectDatabaseRestore,
|
||||
},
|
||||
'admin',
|
||||
);
|
||||
|
||||
@ -31,11 +31,11 @@
|
||||
</script>
|
||||
|
||||
<AuthPageLayout
|
||||
withHeader={$status?.action !== MaintenanceAction.RestoreDatabase}
|
||||
withHeader={$status?.action === MaintenanceAction.Start || $status?.action === MaintenanceAction.End}
|
||||
withBackdrop={$status?.action === MaintenanceAction.Start}
|
||||
>
|
||||
<div class="flex flex-col place-items-center text-center gap-4">
|
||||
{#if $status?.action === MaintenanceAction.RestoreDatabase && $status.task}
|
||||
{#if $status?.action === MaintenanceAction.RestoreDatabase}
|
||||
<Heading size="large" color="primary" tag="h1">{$t('maintenance_action_restore')}</Heading>
|
||||
{#if $status.error}
|
||||
<Scrollable class="max-h-80">
|
||||
@ -51,7 +51,7 @@
|
||||
<Text>{$t('maintenance_task_restore')}</Text>
|
||||
{/if}
|
||||
{/if}
|
||||
{:else if $status?.action === MaintenanceAction.RestoreDatabase && $auth}
|
||||
{:else if $status?.action === MaintenanceAction.SelectDatabaseRestore && $auth}
|
||||
<MaintenanceRestoreFlow {end} />
|
||||
{:else}
|
||||
<Heading size="large" color="primary" tag="h1">{$t('maintenance_title')}</Heading>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user