]> source.dussan.org Git - gitea.git/commitdiff
Improve logout from worker (#30775) (#30789)
authorGiteabot <teabot@gitea.io>
Tue, 30 Apr 2024 21:19:13 +0000 (05:19 +0800)
committerGitHub <noreply@github.com>
Tue, 30 Apr 2024 21:19:13 +0000 (05:19 +0800)
Backport #30775 by wxiaoguang

A quick fix for #30756

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
web_src/js/features/notification.js
web_src/js/features/stopwatch.js
web_src/js/modules/worker.js [new file with mode: 0644]

index 2de640e6742c098ceba07a538b45492270765281..8e5a1f83db8034b893af97e4438bbdd1d8845d07 100644 (file)
@@ -1,6 +1,7 @@
 import $ from 'jquery';
 import {GET} from '../modules/fetch.js';
 import {toggleElem} from '../utils/dom.js';
+import {logoutFromWorker} from '../modules/worker.js';
 
 const {appSubUrl, notificationSettings, assetVersionEncoded} = window.config;
 let notificationSequenceNumber = 0;
@@ -95,7 +96,7 @@ export function initNotificationCount() {
           type: 'close',
         });
         worker.port.close();
-        window.location.href = `${appSubUrl}/`;
+        logoutFromWorker();
       } else if (event.data.type === 'close') {
         worker.port.postMessage({
           type: 'close',
index 2ec74344fcfeb9cd05120a37ff9d69d50c453381..c58a446075fc6bdb92eb8bf7c892f06056b326a8 100644 (file)
@@ -2,6 +2,7 @@ import prettyMilliseconds from 'pretty-ms';
 import {createTippy} from '../modules/tippy.js';
 import {GET} from '../modules/fetch.js';
 import {hideElem, showElem} from '../utils/dom.js';
+import {logoutFromWorker} from '../modules/worker.js';
 
 const {appSubUrl, notificationSettings, enableTimeTracking, assetVersionEncoded} = window.config;
 
@@ -75,7 +76,7 @@ export function initStopwatch() {
           type: 'close',
         });
         worker.port.close();
-        window.location.href = `${appSubUrl}/`;
+        logoutFromWorker();
       } else if (event.data.type === 'close') {
         worker.port.postMessage({
           type: 'close',
diff --git a/web_src/js/modules/worker.js b/web_src/js/modules/worker.js
new file mode 100644 (file)
index 0000000..ef3f1de
--- /dev/null
@@ -0,0 +1,9 @@
+import {sleep} from '../utils.js';
+
+const {appSubUrl} = window.config;
+
+export async function logoutFromWorker() {
+  // wait for a while because other requests (eg: logout) may be in the flight
+  await sleep(5000);
+  window.location.href = `${appSubUrl}/`;
+}