Fix update progress display

This commit is contained in:
Girish Ramakrishnan
2025-09-10 21:35:26 +02:00
parent c2e5f19226
commit 2f4766af9d
2 changed files with 21 additions and 8 deletions
+17 -7
View File
@@ -64,6 +64,7 @@ const updateCheckError = ref({});
const checkingBusy = ref(false);
const pendingUpdate = ref(null);
const skipBackup = ref(false);
const lastTask = ref({});
const canUpdate = computed(() => {
return apps.value.every(function (app) {
@@ -103,7 +104,7 @@ async function refreshApps() {
apps.value = result;
}
async function refreshInfo() {
async function refreshPendingUpdateInfo() {
const [error, result] = await updaterModel.getBoxUpdate();
if (error) return console.error(error);
@@ -165,18 +166,21 @@ async function onShowUpdate() {
updateDialog.value.open();
}
const lastTask = ref({});
async function waitForTask() {
if (!lastTask.value.id) return;
const [error, result] = await tasksModel.get(lastTask.value.id);
if (error) return console.error(error);
if (error) {
setTimeout(waitForTask, 2000);
return console.error(error);
}
lastTask.value = result;
// task done, refresh menu
if (!result.active) {
refreshInfo();
refreshPendingUpdateInfo();
refreshTasks();
return;
}
@@ -198,6 +202,8 @@ async function refreshTasks() {
};
});
updateBusy.value = lastTask.value.active;
// if last task is currently active, start polling
if (lastTask.value.active) waitForTask();
}
@@ -229,7 +235,7 @@ async function onCheck() {
return;
}
await refreshInfo();
await refreshPendingUpdateInfo();
checkingBusy.value = false;
}
@@ -255,7 +261,7 @@ onMounted(async () => {
version.value = result.version;
ubuntuVersion.value = result.ubuntuVersion;
await refreshInfo();
await refreshPendingUpdateInfo();
await refreshAutoupdatePattern();
await refreshTasks();
});
@@ -285,7 +291,7 @@ onMounted(async () => {
</ul>
</div>
<Checkbox v-model="skipBackup" :label="$t('settings.updateDialog.skipBackupCheckbox')"/>
<Checkbox class="skip-backup" v-model="skipBackup" :label="$t('settings.updateDialog.skipBackupCheckbox')"/>
<p v-if="updateError.generic" class="error-label">{{ updateError.generic }}</p>
</div>
@@ -374,4 +380,8 @@ onMounted(async () => {
margin-bottom: 10px;
}
.skip-backup {
padding-top: 10px;
}
</style>