Commit d056bcee authored by Eric Eastwood's avatar Eric Eastwood

Disable button after submission

parent 0f62e0eb
...@@ -25,6 +25,11 @@ export default { ...@@ -25,6 +25,11 @@ export default {
required: false, required: false,
default: () => ({}), default: () => ({}),
}, },
isSubmitting: {
type: Boolean,
required: false,
default: false,
},
}, },
data() { data() {
...@@ -40,7 +45,7 @@ export default { ...@@ -40,7 +45,7 @@ export default {
computed: { computed: {
isSubmitButtonDisabled() { isSubmitButtonDisabled() {
return this.pendingReferences.length === 0; return this.pendingReferences.length === 0 || this.isSubmitting;
}, },
}, },
......
...@@ -13,6 +13,11 @@ export default { ...@@ -13,6 +13,11 @@ export default {
required: false, required: false,
default: false, default: false,
}, },
isSubmitting: {
type: Boolean,
required: false,
default: false,
},
relatedIssues: { relatedIssues: {
type: Array, type: Array,
required: false, required: false,
...@@ -139,6 +144,7 @@ export default { ...@@ -139,6 +144,7 @@ export default {
'related-issues-add-related-issues-form-with-break': hasRelatedIssues 'related-issues-add-related-issues-form-with-break': hasRelatedIssues
}"> }">
<add-issuable-form <add-issuable-form
:is-submitting="isSubmitting"
:input-value="inputValue" :input-value="inputValue"
:pending-references="pendingReferences" :pending-references="pendingReferences"
add-button-label="Add related issues" add-button-label="Add related issues"
......
...@@ -59,6 +59,7 @@ export default { ...@@ -59,6 +59,7 @@ export default {
return { return {
state: this.store.state, state: this.store.state,
isFetching: false, isFetching: false,
isSubmitting: false,
isFormVisible: false, isFormVisible: false,
inputValue: '', inputValue: '',
}; };
...@@ -103,6 +104,7 @@ export default { ...@@ -103,6 +104,7 @@ export default {
}, },
onPendingFormSubmit() { onPendingFormSubmit() {
if (this.state.pendingReferences.length > 0) { if (this.state.pendingReferences.length > 0) {
this.isSubmitting = true;
this.service.addRelatedIssues(this.state.pendingReferences) this.service.addRelatedIssues(this.state.pendingReferences)
.then(res => res.json()) .then(res => res.json())
.then((data) => { .then((data) => {
...@@ -110,10 +112,15 @@ export default { ...@@ -110,10 +112,15 @@ export default {
this.store.setPendingReferences([]); this.store.setPendingReferences([]);
this.store.setRelatedIssues(data.issues); this.store.setRelatedIssues(data.issues);
this.isSubmitting = false;
// Close the form on submission // Close the form on submission
this.isFormVisible = false; this.isFormVisible = false;
}) })
.catch(res => new Flash(res.data.message || 'An error occurred while submitting related issues.')); .catch((res) => {
this.isSubmitting = false;
// eslint-disable-next-line no-new
new Flash(res.data.message || 'An error occurred while submitting related issues.');
});
} }
}, },
onPendingFormCancel() { onPendingFormCancel() {
...@@ -197,7 +204,8 @@ export default { ...@@ -197,7 +204,8 @@ export default {
<template> <template>
<related-issues-block <related-issues-block
:help-path="helpPath" :help-path="helpPath"
:isFetching="isFetching" :is-fetching="isFetching"
:is-submitting="isSubmitting"
:related-issues="state.relatedIssues" :related-issues="state.relatedIssues"
:can-add-related-issues="canAddRelatedIssues" :can-add-related-issues="canAddRelatedIssues"
:pending-references="state.pendingReferences" :pending-references="state.pendingReferences"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment