1
0
mirror of https://github.com/hrfee/jfa-go.git synced 2024-12-22 09:00:10 +00:00

web: fix intermittent "coudln't connect" on page load

was caused by language selector loader, simply added a
"noConnectionError" param to the _get/_post... methods which is enabled
for it.
This commit is contained in:
Harvey Tindall 2024-08-04 21:57:17 +01:00
parent 51e3c37694
commit a9dc601751
Signed by: hrfee
GPG Key ID: BBC65952848FB1A2
2 changed files with 7 additions and 7 deletions

View File

@ -21,7 +21,7 @@ export function toDateString(date: Date): string {
return date.toLocaleDateString(locale, args1) + " " + date.toLocaleString(locale, args2); return date.toLocaleDateString(locale, args1) + " " + date.toLocaleString(locale, args2);
} }
export const _get = (url: string, data: Object, onreadystatechange: (req: XMLHttpRequest) => void): void => { export const _get = (url: string, data: Object, onreadystatechange: (req: XMLHttpRequest) => void, noConnectionError: boolean = false): void => {
let req = new XMLHttpRequest(); let req = new XMLHttpRequest();
if (window.URLBase) { url = window.URLBase + url; } if (window.URLBase) { url = window.URLBase + url; }
req.open("GET", url, true); req.open("GET", url, true);
@ -30,7 +30,7 @@ export const _get = (url: string, data: Object, onreadystatechange: (req: XMLHtt
req.setRequestHeader('Content-Type', 'application/json; charset=UTF-8'); req.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
req.onreadystatechange = () => { req.onreadystatechange = () => {
if (req.status == 0) { if (req.status == 0) {
window.notifications.connectionError(); if (!noConnectionError) window.notifications.connectionError();
return; return;
} else if (req.status == 401) { } else if (req.status == 401) {
window.notifications.customError("401Error", window.lang.notif("error401Unauthorized")); window.notifications.customError("401Error", window.lang.notif("error401Unauthorized"));
@ -65,7 +65,7 @@ export const _upload = (url: string, formData: FormData): void => {
req.send(formData); req.send(formData);
}; };
export const _post = (url: string, data: Object, onreadystatechange: (req: XMLHttpRequest) => void, response?: boolean, statusHandler?: (req: XMLHttpRequest) => void): void => { export const _post = (url: string, data: Object, onreadystatechange: (req: XMLHttpRequest) => void, response?: boolean, statusHandler?: (req: XMLHttpRequest) => void, noConnectionError: boolean = false): void => {
let req = new XMLHttpRequest(); let req = new XMLHttpRequest();
req.open("POST", window.URLBase + url, true); req.open("POST", window.URLBase + url, true);
if (response) { if (response) {
@ -76,7 +76,7 @@ export const _post = (url: string, data: Object, onreadystatechange: (req: XMLHt
req.onreadystatechange = () => { req.onreadystatechange = () => {
if (statusHandler) { statusHandler(req); } if (statusHandler) { statusHandler(req); }
else if (req.status == 0) { else if (req.status == 0) {
window.notifications.connectionError(); if (!noConnectionError) window.notifications.connectionError();
return; return;
} else if (req.status == 401) { } else if (req.status == 401) {
window.notifications.customError("401Error", window.lang.notif("error401Unauthorized")); window.notifications.customError("401Error", window.lang.notif("error401Unauthorized"));
@ -86,14 +86,14 @@ export const _post = (url: string, data: Object, onreadystatechange: (req: XMLHt
req.send(JSON.stringify(data)); req.send(JSON.stringify(data));
}; };
export function _delete(url: string, data: Object, onreadystatechange: (req: XMLHttpRequest) => void): void { export function _delete(url: string, data: Object, onreadystatechange: (req: XMLHttpRequest) => void, noConnectionError: boolean = false): void {
let req = new XMLHttpRequest(); let req = new XMLHttpRequest();
req.open("DELETE", window.URLBase + url, true); req.open("DELETE", window.URLBase + url, true);
req.setRequestHeader("Authorization", "Bearer " + window.token); req.setRequestHeader("Authorization", "Bearer " + window.token);
req.setRequestHeader('Content-Type', 'application/json; charset=UTF-8'); req.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
req.onreadystatechange = () => { req.onreadystatechange = () => {
if (req.status == 0) { if (req.status == 0) {
window.notifications.connectionError(); if (!noConnectionError) window.notifications.connectionError();
return; return;
} else if (req.status == 401) { } else if (req.status == 401) {
window.notifications.customError("401Error", window.lang.notif("error401Unauthorized")); window.notifications.customError("401Error", window.lang.notif("error401Unauthorized"));

View File

@ -88,5 +88,5 @@ export const loadLangSelector = (page: string) => {
} }
list.innerHTML = innerHTML; list.innerHTML = innerHTML;
} }
}); }, true);
}; };