Fix update progress display
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user