diff --git a/apps/desktop/src/components/export/ExportProgressPopover.vue b/apps/desktop/src/components/export/ExportProgressPopover.vue index a473cd0e7..5896aeabf 100644 --- a/apps/desktop/src/components/export/ExportProgressPopover.vue +++ b/apps/desktop/src/components/export/ExportProgressPopover.vue @@ -68,7 +68,10 @@ const progressValue = (task: ExportTask) => { }; const taskTitle = (task: ExportTask) => { - if (task.kind === "database-export") return t("exportProgress.databaseExportTitle", { name: task.tableName }); + if (task.kind === "database-export") { + const key = task.databaseExportSource === "scheduled" ? "exportProgress.databaseBackupTitle" : "exportProgress.databaseExportTitle"; + return t(key, { name: task.tableName }); + } if (task.kind === "sql-file") return t("exportProgress.sqlFileTitle", { name: task.tableName }); if (task.kind === "data-transfer") return t("exportProgress.dataTransferTitle", { name: task.tableName }); return `${task.tableName}.${task.format}`; @@ -113,6 +116,18 @@ const elapsedText = (task: ExportTask) => { return t("exportProgress.elapsed", { duration: formatDataTransferDuration(finishedAt - task.startedAt) }); }; +const databaseObjectText = (task: ExportTask) => { + if (task.kind !== "database-export" || !isActive(task.status) || !task.currentObject) return ""; + if (task.preparing || !task.totalObjects) { + return t("databaseExport.preparingObject", { object: task.currentObject }); + } + return t("databaseExport.currentTable", { + table: task.currentObject, + current: (task.objectIndex ?? 0).toLocaleString(), + total: task.totalObjects.toLocaleString(), + }); +}; + const statusIcon = (task: ExportTask) => { if (isActive(task.status)) { if (task.kind === "database-export") return DatabaseBackup; @@ -172,7 +187,7 @@ function failureDetailCount(task: ExportTask) {