From b8c2fbe92d1a1e2885719503c062493f23b85e7a Mon Sep 17 00:00:00 2001 From: sanjacornelius Date: Wed, 24 Mar 2021 13:33:53 -0700 Subject: [PATCH 1/2] Prevent GET request from being triggered multiple times on the same select list --- src/components/FormSelectList.vue | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/components/FormSelectList.vue b/src/components/FormSelectList.vue index 3c3f5b23..689d171c 100644 --- a/src/components/FormSelectList.vue +++ b/src/components/FormSelectList.vue @@ -236,7 +236,10 @@ sourceConfig: { immediate:true, deep: true, - handler() { + handler(newValue,oldValue) { + if (_.isEqual(newValue,oldValue)) { + return; + } this.fillSelectListOptions(); } }, @@ -244,7 +247,10 @@ validationData: { immediate:true, deep: true, - handler() { + handler(newValue, oldValue) { + if (_.isEqual(newValue,oldValue)) { + return; + } this.fillSelectListOptions(); } }, From c2db86d4299acb33c6ee011843f29a778123aa6f Mon Sep 17 00:00:00 2001 From: Nolan Ehrstrom Date: Thu, 25 Mar 2021 15:53:11 -0700 Subject: [PATCH 2/2] Do not re-run the same requests --- src/components/FormSelectList.vue | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/components/FormSelectList.vue b/src/components/FormSelectList.vue index 689d171c..25346fe9 100644 --- a/src/components/FormSelectList.vue +++ b/src/components/FormSelectList.vue @@ -90,6 +90,7 @@ ], data() { return { + lastRequest: {}, apiClient: window.ProcessMaker.apiClient.create(), selectListOptions: [], doDebounce: _.debounce(options => { @@ -108,6 +109,13 @@ dataSourceUrl += '?pmql=' + encodeURIComponent(pmql); } + // Do not re-run the same request + const request = { dataSourceUrl, selectedEndPoint }; + if (_.isEqual(this.lastRequest, request)) { + return; + } + this.lastRequest = _.cloneDeep(request); + this.apiClient .post(dataSourceUrl, { config: { endpoint: selectedEndPoint, } }) .then(response => { @@ -236,10 +244,7 @@ sourceConfig: { immediate:true, deep: true, - handler(newValue,oldValue) { - if (_.isEqual(newValue,oldValue)) { - return; - } + handler() { this.fillSelectListOptions(); } }, @@ -247,10 +252,7 @@ validationData: { immediate:true, deep: true, - handler(newValue, oldValue) { - if (_.isEqual(newValue,oldValue)) { - return; - } + handler() { this.fillSelectListOptions(); } },