@@ -, +, @@ requests in vue modules --- .../vue/components/ERM/AgreementsFormAdd.vue | 28 ++++++++----------- .../intranet-tmpl/prog/js/vue/fetch/fetch.js | 26 +++++++++++++++++ 2 files changed, 37 insertions(+), 17 deletions(-) create mode 100644 koha-tmpl/intranet-tmpl/prog/js/vue/fetch/fetch.js --- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/AgreementsFormAdd.vue +++ a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/AgreementsFormAdd.vue @@ -198,6 +198,7 @@ import { submitted, } from "../../messages" import { fetchAgreement } from "../../fetch/erm.js" +import { submitToAPI } from "../../fetch/fetch.js" import { storeToRefs } from "pinia" export default { @@ -390,23 +391,16 @@ export default { }, } - isSubmitting() - fetch(apiUrl, options) - .then(response => { - if (response.status == 200) { - this.$router.push("/cgi-bin/koha/erm/agreements") - setMessage(this.$__("Agreement updated")) - } else if (response.status == 201) { - this.$router.push("/cgi-bin/koha/erm/agreements") - setMessage(this.$__("Agreement created")) - } else { - setError(response.message || response.statusText) - } - }) - .catch(error => { - setError(error) - }) - .then(() => submitted()) + submitToAPI( + { + apiUrl: apiUrl, + options: options, + success_redirect: '/cgi-bin/koha/erm/agreements', + created_message: this.$__("Agreement created"), + updated_message: this.$__("Agreement updated"), + router: this.$router + } + ) }, onStatusChanged(e) { if (e.authorised_value != "closed") { --- a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/fetch.js +++ a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/fetch.js @@ -0,0 +1,26 @@ +import { + setMessage, + setError, + isSubmitting, + submitted, +} from "../messages" + +export const submitToAPI = async function (args) { + isSubmitting() + await fetch(args.apiUrl, args.options) + .then(response => { + if (response.status == 200) { + args.router.push(args.success_redirect) + setMessage(args.updated_message) + } else if (response.status == 201) { + args.router.push(args.success_redirect) + setMessage(args.created_message) + } else { + setError(response.message || response.statusText) + } + }) + .catch(error => { + setError(error) + }) + .then(() => submitted()) +}; --