Correctly exit from web request

This commit is contained in:
Yukino Song
2024-08-24 05:42:56 +08:00
parent 94e0542157
commit 29e20eb02d
3 changed files with 28 additions and 45 deletions

View File

@@ -129,21 +129,18 @@ function removeCmd(index) {
</button>
</div>
<!--hide_tray_controls-->
<!-- Hide Tray Controls -->
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="hide_tray_controls" v-model="config.hide_tray_controls" true-value="enabled" false-value="disabled"/>
<label for="qp" class="form-check-label">{{ $t('config.hide_tray_controls') }}</label>
<label for="hide_tray_controls" class="form-check-label">{{ $t('config.hide_tray_controls') }}</label>
<div class="form-text">{{ $t('config.hide_tray_controls_desc') }}</div>
</div>
<!-- Notify Pre-Releases -->
<div class="mb-3">
<label for="notify_pre_releases" class="form-label">{{ $t('config.notify_pre_releases') }}</label>
<select id="notify_pre_releases" class="form-select" v-model="config.notify_pre_releases">
<option value="disabled">{{ $t('_common.disabled') }}</option>
<option value="enabled">{{ $t('_common.enabled') }}</option>
</select>
<div class="form-text">{{ $t('config.notify_pre_releases_desc') }}</div>
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="notify_pre_releases" v-model="config.notify_pre_releases" true-value="enabled" false-value="disabled"/>
<label for="notify_pre_releases" class="form-check-label">{{ $t('config.notify_pre_releases') }}</label>
<div class="form-text">{{ $t('config.notify_pre_releases_desc') }}</div>
</div>
</div>
</template>

View File

@@ -260,34 +260,17 @@
quit() {
if (window.confirm("Do you really want to quit Apollo? You'll not be able to start Apollo again if you have no other methods to operate your computer.")) {
this.serverQuitting = true;
const timeoutID = setTimeout(() => {
this.serverQuitting = false;
}, 5000);
fetch("/api/quit", {
method: "POST",
})
.then(() => {
clearTimeout(timeoutID);
return new Promise((resolve, reject) => {
setTimeout(() => {
fetch("/", {
signal: AbortSignal.timeout(1000)
}).then(() => {
reject();
}).catch(() => {
resolve();
})
}, 1000);
});
})
.then(() => {
this.serverQuitting = false;
this.serverQuit = true;
})
.catch(() => {
this.serverQuitting = false;
this.serverQuit = false;
alert("Exit failed!");
})
.catch(() => {
this.serverQuitting = false;
this.serverQuit = true;
});
}
}