Changeset View
Changeset View
Standalone View
Standalone View
src/resources/js/app.js
Show First 20 Lines • Show All 446 Lines • ▼ Show 20 Lines | window.axios.interceptors.response.use( | ||||
response => { | response => { | ||||
if (response.config.onFinish) { | if (response.config.onFinish) { | ||||
response.config.onFinish() | response.config.onFinish() | ||||
} | } | ||||
return response | return response | ||||
}, | }, | ||||
error => { | error => { | ||||
let error_msg | |||||
let status = error.response ? error.response.status : 200 | |||||
// Do not display the error in a toast message, pass the error as-is | // Do not display the error in a toast message, pass the error as-is | ||||
if (error.config.ignoreErrors) { | if (error.config.ignoreErrors) { | ||||
return Promise.reject(error) | return Promise.reject(error) | ||||
} | } | ||||
if (error.config.onFinish) { | if (error.config.onFinish) { | ||||
error.config.onFinish() | error.config.onFinish() | ||||
} | } | ||||
if (error.response && status == 422) { | let error_msg | ||||
error_msg = "Form validation error" | |||||
const status = error.response ? error.response.status : 200 | |||||
const data = error.response ? error.response.data : {} | |||||
if (status == 422 && data.errors) { | |||||
error_msg = app.$t('error.form') | |||||
const modal = $('div.modal.show') | const modal = $('div.modal.show') | ||||
$(modal.length ? modal : 'form').each((i, form) => { | $(modal.length ? modal : 'form').each((i, form) => { | ||||
form = $(form) | form = $(form) | ||||
$.each(error.response.data.errors || {}, (idx, msg) => { | $.each(data.errors, (idx, msg) => { | ||||
const input_name = (form.data('validation-prefix') || form.find('form').first().data('validation-prefix') || '') + idx | const input_name = (form.data('validation-prefix') || form.find('form').first().data('validation-prefix') || '') + idx | ||||
let input = form.find('#' + input_name) | let input = form.find('#' + input_name) | ||||
if (!input.length) { | if (!input.length) { | ||||
input = form.find('[name="' + input_name + '"]'); | input = form.find('[name="' + input_name + '"]'); | ||||
} | } | ||||
if (input.length) { | if (input.length) { | ||||
Show All 37 Lines | error => { | ||||
input.parent().append(feedback) | input.parent().append(feedback) | ||||
} | } | ||||
} | } | ||||
}) | }) | ||||
form.find('.is-invalid:not(.listinput-widget)').first().focus() | form.find('.is-invalid:not(.listinput-widget)').first().focus() | ||||
}) | }) | ||||
} | } | ||||
else if (error.response && error.response.data) { | else if (data.status == 'error') { | ||||
error_msg = error.response.data.message | error_msg = data.message | ||||
} | } | ||||
else { | else { | ||||
error_msg = error.request ? error.request.statusText : error.message | error_msg = error.request ? error.request.statusText : error.message | ||||
} | } | ||||
app.$toast.error(error_msg || app.$t('error.server')) | app.$toast.error(error_msg || app.$t('error.server')) | ||||
// Pass the error as-is | // Pass the error as-is | ||||
return Promise.reject(error) | return Promise.reject(error) | ||||
} | } | ||||
) | ) |