Fix prepare initiating overriding states, and add handling of failed file prep
This commit is contained in:
parent
0c43eb0d22
commit
d6a74b0cfe
@ -83,11 +83,13 @@ const initiatedPrepare = ref(false);
|
|||||||
const preparingFile = computed(() => {
|
const preparingFile = computed(() => {
|
||||||
const task = props.backup.task?.file;
|
const task = props.backup.task?.file;
|
||||||
return (
|
return (
|
||||||
initiatedPrepare.value || (task && task.progress < 1 && !inactiveStates.includes(task.state))
|
(!task && initiatedPrepare.value) ||
|
||||||
|
(task && task.progress < 1 && !inactiveStates.includes(task.state))
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
const failedToRestore = computed(() => props.backup.task?.restore?.state === "failed");
|
const failedToRestore = computed(() => props.backup.task?.restore?.state === "failed");
|
||||||
|
const failedToPrepareFile = computed(() => props.backup.task?.file?.state === "failed");
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
locked: {
|
locked: {
|
||||||
@ -122,6 +124,10 @@ const messages = defineMessages({
|
|||||||
id: "servers.backups.item.prepare-download",
|
id: "servers.backups.item.prepare-download",
|
||||||
defaultMessage: "Prepare download",
|
defaultMessage: "Prepare download",
|
||||||
},
|
},
|
||||||
|
prepareDownloadAgain: {
|
||||||
|
id: "servers.backups.item.prepare-download-again",
|
||||||
|
defaultMessage: "Try preparing again",
|
||||||
|
},
|
||||||
alreadyPreparing: {
|
alreadyPreparing: {
|
||||||
id: "servers.backups.item.already-preparing",
|
id: "servers.backups.item.already-preparing",
|
||||||
defaultMessage: "Already preparing backup for download",
|
defaultMessage: "Already preparing backup for download",
|
||||||
@ -142,6 +148,10 @@ const messages = defineMessages({
|
|||||||
id: "servers.backups.item.failed-to-restore-backup",
|
id: "servers.backups.item.failed-to-restore-backup",
|
||||||
defaultMessage: "Failed to restore from backup",
|
defaultMessage: "Failed to restore from backup",
|
||||||
},
|
},
|
||||||
|
failedToPrepareFile: {
|
||||||
|
id: "servers.backups.item.failed-to-prepare-backup",
|
||||||
|
defaultMessage: "Failed to prepare download",
|
||||||
|
},
|
||||||
automated: {
|
automated: {
|
||||||
id: "servers.backups.item.automated",
|
id: "servers.backups.item.automated",
|
||||||
defaultMessage: "Automated",
|
defaultMessage: "Automated",
|
||||||
@ -175,7 +185,7 @@ const messages = defineMessages({
|
|||||||
<span class="font-bold text-contrast">
|
<span class="font-bold text-contrast">
|
||||||
{{ backup.name }}
|
{{ backup.name }}
|
||||||
</span>
|
</span>
|
||||||
<div class="flex items-center gap-2 text-sm">
|
<div class="flex flex-wrap items-center gap-2 text-sm">
|
||||||
<span v-if="backup.locked" class="flex items-center gap-1 text-sm text-secondary">
|
<span v-if="backup.locked" class="flex items-center gap-1 text-sm text-secondary">
|
||||||
<LockIcon /> {{ formatMessage(messages.locked) }}
|
<LockIcon /> {{ formatMessage(messages.locked) }}
|
||||||
</span>
|
</span>
|
||||||
@ -185,13 +195,17 @@ const messages = defineMessages({
|
|||||||
</span>
|
</span>
|
||||||
<span v-if="(failedToCreate || failedToRestore) && (automated || backup.locked)">•</span>
|
<span v-if="(failedToCreate || failedToRestore) && (automated || backup.locked)">•</span>
|
||||||
<span
|
<span
|
||||||
v-if="failedToCreate || failedToRestore"
|
v-if="failedToCreate || failedToRestore || failedToPrepareFile"
|
||||||
class="flex items-center gap-1 text-sm text-red"
|
class="flex items-center gap-1 text-sm text-red"
|
||||||
>
|
>
|
||||||
<XIcon />
|
<XIcon />
|
||||||
{{
|
{{
|
||||||
formatMessage(
|
formatMessage(
|
||||||
failedToCreate ? messages.failedToCreateBackup : messages.failedToRestoreBackup,
|
failedToCreate
|
||||||
|
? messages.failedToCreateBackup
|
||||||
|
: failedToRestore
|
||||||
|
? messages.failedToRestoreBackup
|
||||||
|
: messages.failedToPrepareFile,
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
</span>
|
</span>
|
||||||
@ -274,7 +288,13 @@ const messages = defineMessages({
|
|||||||
<SpinnerIcon v-if="preparingFile" class="animate-spin" />
|
<SpinnerIcon v-if="preparingFile" class="animate-spin" />
|
||||||
<DownloadIcon v-else />
|
<DownloadIcon v-else />
|
||||||
{{
|
{{
|
||||||
formatMessage(preparingFile ? messages.preparingDownload : messages.prepareDownload)
|
formatMessage(
|
||||||
|
preparingFile
|
||||||
|
? messages.preparingDownload
|
||||||
|
: failedToPrepareFile
|
||||||
|
? messages.prepareDownloadAgain
|
||||||
|
: messages.prepareDownload,
|
||||||
|
)
|
||||||
}}
|
}}
|
||||||
</button>
|
</button>
|
||||||
</ButtonStyled>
|
</ButtonStyled>
|
||||||
|
|||||||
@ -977,6 +977,9 @@
|
|||||||
"servers.backups.item.failed-to-create-backup": {
|
"servers.backups.item.failed-to-create-backup": {
|
||||||
"message": "Failed to create backup"
|
"message": "Failed to create backup"
|
||||||
},
|
},
|
||||||
|
"servers.backups.item.failed-to-prepare-backup": {
|
||||||
|
"message": "Failed to prepare download"
|
||||||
|
},
|
||||||
"servers.backups.item.failed-to-restore-backup": {
|
"servers.backups.item.failed-to-restore-backup": {
|
||||||
"message": "Failed to restore from backup"
|
"message": "Failed to restore from backup"
|
||||||
},
|
},
|
||||||
@ -989,6 +992,9 @@
|
|||||||
"servers.backups.item.prepare-download": {
|
"servers.backups.item.prepare-download": {
|
||||||
"message": "Prepare download"
|
"message": "Prepare download"
|
||||||
},
|
},
|
||||||
|
"servers.backups.item.prepare-download-again": {
|
||||||
|
"message": "Try preparing again"
|
||||||
|
},
|
||||||
"servers.backups.item.preparing-download": {
|
"servers.backups.item.preparing-download": {
|
||||||
"message": "Preparing download..."
|
"message": "Preparing download..."
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user