mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-22 18:03:37 +02:00
Fixed error popup window, when a server error occurs
This commit is contained in:
parent
66c1eff79f
commit
927f570283
1 changed files with 53 additions and 1 deletions
|
@ -27,7 +27,9 @@ class ErrorHandlerHelper {
|
||||||
constructor() {
|
constructor() {
|
||||||
console.log('Error Handler registered');
|
console.log('Error Handler registered');
|
||||||
|
|
||||||
const content = document.getElementById('content');
|
//const content = document.getElementById('content');
|
||||||
|
//It seems that the content element is unreliable for these events, so we use the document instead
|
||||||
|
const content = document;
|
||||||
//content.addEventListener('turbo:before-fetch-response', (event) => this.handleError(event));
|
//content.addEventListener('turbo:before-fetch-response', (event) => this.handleError(event));
|
||||||
content.addEventListener('turbo:fetch-request-error', (event) => this.handleError(event));
|
content.addEventListener('turbo:fetch-request-error', (event) => this.handleError(event));
|
||||||
content.addEventListener('turbo:frame-missing', (event) => this.handleError(event));
|
content.addEventListener('turbo:frame-missing', (event) => this.handleError(event));
|
||||||
|
@ -37,6 +39,55 @@ class ErrorHandlerHelper {
|
||||||
|
|
||||||
_showAlert(statusText, statusCode, location, responseHTML)
|
_showAlert(statusText, statusCode, location, responseHTML)
|
||||||
{
|
{
|
||||||
|
const httpStatusToText = {
|
||||||
|
'200': 'OK',
|
||||||
|
'201': 'Created',
|
||||||
|
'202': 'Accepted',
|
||||||
|
'203': 'Non-Authoritative Information',
|
||||||
|
'204': 'No Content',
|
||||||
|
'205': 'Reset Content',
|
||||||
|
'206': 'Partial Content',
|
||||||
|
'300': 'Multiple Choices',
|
||||||
|
'301': 'Moved Permanently',
|
||||||
|
'302': 'Found',
|
||||||
|
'303': 'See Other',
|
||||||
|
'304': 'Not Modified',
|
||||||
|
'305': 'Use Proxy',
|
||||||
|
'306': 'Unused',
|
||||||
|
'307': 'Temporary Redirect',
|
||||||
|
'400': 'Bad Request',
|
||||||
|
'401': 'Unauthorized',
|
||||||
|
'402': 'Payment Required',
|
||||||
|
'403': 'Forbidden',
|
||||||
|
'404': 'Not Found',
|
||||||
|
'405': 'Method Not Allowed',
|
||||||
|
'406': 'Not Acceptable',
|
||||||
|
'407': 'Proxy Authentication Required',
|
||||||
|
'408': 'Request Timeout',
|
||||||
|
'409': 'Conflict',
|
||||||
|
'410': 'Gone',
|
||||||
|
'411': 'Length Required',
|
||||||
|
'412': 'Precondition Required',
|
||||||
|
'413': 'Request Entry Too Large',
|
||||||
|
'414': 'Request-URI Too Long',
|
||||||
|
'415': 'Unsupported Media Type',
|
||||||
|
'416': 'Requested Range Not Satisfiable',
|
||||||
|
'417': 'Expectation Failed',
|
||||||
|
'418': 'I\'m a teapot',
|
||||||
|
'429': 'Too Many Requests',
|
||||||
|
'500': 'Internal Server Error',
|
||||||
|
'501': 'Not Implemented',
|
||||||
|
'502': 'Bad Gateway',
|
||||||
|
'503': 'Service Unavailable',
|
||||||
|
'504': 'Gateway Timeout',
|
||||||
|
'505': 'HTTP Version Not Supported',
|
||||||
|
};
|
||||||
|
|
||||||
|
//If the statusText is empty, we use the status code as text
|
||||||
|
if (!statusText) {
|
||||||
|
statusText = httpStatusToText[statusCode];
|
||||||
|
}
|
||||||
|
|
||||||
//Create error text
|
//Create error text
|
||||||
const title = statusText + ' (Status ' + statusCode + ')';
|
const title = statusText + ' (Status ' + statusCode + ')';
|
||||||
|
|
||||||
|
@ -104,6 +155,7 @@ class ErrorHandlerHelper {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(!response.ok) {
|
if(!response.ok) {
|
||||||
response.text().then(responseHTML => {
|
response.text().then(responseHTML => {
|
||||||
this._showAlert(response.statusText, response.status, response.url, responseHTML);
|
this._showAlert(response.statusText, response.status, response.url, responseHTML);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue