From f2b5c12e6dc57d2cf108f8f4e985446eb9b36eb2 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Thu, 21 Nov 2024 15:53:58 +0100 Subject: [PATCH] add abort controller to autocomplete fields --- .../Details/Kontakt/Address.js | 13 ++++++++++--- .../Details/Kontakt/Contact.js | 19 +++++++++++++++++-- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js b/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js index 05041970a..4f9b5be69 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js @@ -193,8 +193,9 @@ export default{ filteredFirmen: [], abortController: { suggestions: null, - places: null - } + places: null, + firmen: null + }, } }, computed:{ @@ -306,7 +307,13 @@ export default{ }); }, search(event) { - return this.$fhcApi.factory.stv.kontakt.getFirmen(event.query) + if (this.abortController.firmen) { + this.abortController.firmen.abort(); + } + + this.abortController.firmen = new AbortController(); + + return this.$refs.addressData.factory.stv.kontakt.getFirmen(event.query) .then(result => { this.filteredFirmen = result.data.retval; }); diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Contact.js b/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Contact.js index 411a1077f..e42bb2598 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Contact.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Contact.js @@ -140,6 +140,10 @@ export default{ firmen: [], filteredFirmen: [], filteredOrte: null, + abortController: { + firmen: null, + standorte: null + }, } }, watch: { @@ -234,13 +238,24 @@ export default{ this.$refs.table.reloadTable(); }, searchFirma(event) { - return this.$fhcApi - .get('api/frontend/v1/stv/kontakt/getFirmen/' + event.query) + if (this.abortController.firmen) { + this.abortController.firmen.abort(); + } + + this.abortController.firmen = new AbortController(); + + return this.$fhcApi.factory.stv.kontakt.getFirmen(event.query) .then(result => { this.filteredFirmen = result.data.retval; }); }, loadStandorte(firmen_id) { + if (this.abortController.standorte) { + this.abortController.standorte.abort(); + } + + this.abortController.standorte = new AbortController(); + return this.$fhcApi.factory.stv.kontakt.getStandorteByFirma(firmen_id) .then(result => { this.filteredOrte = result.data;