Changeset View
Changeset View
Standalone View
Standalone View
src/resources/js/app.js
Show First 20 Lines • Show All 200 Lines • ▼ Show 20 Lines | window.axios.interceptors.response.use( | ||||
}, | }, | ||||
error => { | error => { | ||||
let error_msg | let error_msg | ||||
let status = error.response ? error.response.status : 200 | let status = error.response ? error.response.status : 200 | ||||
if (error.response && status == 422) { | if (error.response && status == 422) { | ||||
error_msg = "Form validation error" | error_msg = "Form validation error" | ||||
const modal = $('div.modal.show') | |||||
$(modal.length ? modal : 'form').each((i, form) => { | |||||
form = $(form) | |||||
$.each(error.response.data.errors || {}, (idx, msg) => { | $.each(error.response.data.errors || {}, (idx, msg) => { | ||||
$('form').each((i, form) => { | const input_name = (form.data('validation-prefix') || '') + idx | ||||
const input_name = ($(form).data('validation-prefix') || '') + idx | let input = form.find('#' + input_name) | ||||
const input = $('#' + input_name) | |||||
if (!input.length) { | |||||
input = form.find('[name="' + input_name + '"]'); | |||||
} | |||||
if (input.length) { | if (input.length) { | ||||
// Create an error message\ | // Create an error message\ | ||||
// API responses can use a string, array or object | // API responses can use a string, array or object | ||||
let msg_text = '' | let msg_text = '' | ||||
if ($.type(msg) !== 'string') { | if ($.type(msg) !== 'string') { | ||||
$.each(msg, (index, str) => { | $.each(msg, (index, str) => { | ||||
msg_text += str + ' ' | msg_text += str + ' ' | ||||
Show All 17 Lines | error => { | ||||
input.after(feedback) | input.after(feedback) | ||||
} | } | ||||
else { | else { | ||||
// Standard form element | // Standard form element | ||||
input.addClass('is-invalid') | input.addClass('is-invalid') | ||||
input.parent().find('.invalid-feedback').remove() | input.parent().find('.invalid-feedback').remove() | ||||
input.parent().append(feedback) | input.parent().append(feedback) | ||||
} | } | ||||
return false | |||||
} | } | ||||
}); | |||||
}) | }) | ||||
$('form .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 (error.response && error.response.data) { | ||||
error_msg = error.response.data.message | error_msg = error.response.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 || "Server Error") | app.$toast.error(error_msg || "Server Error") | ||||
// Pass the error as-is | // Pass the error as-is | ||||
return Promise.reject(error) | return Promise.reject(error) | ||||
} | } | ||||
) | ) |