diff --git a/src/Signup.vue b/src/Signup.vue
index 0bc4009568d217b25a57d12b6c3112b76834a0a4..a14320aed015694cb211efe343ae749622fbd54a 100644
--- a/src/Signup.vue
+++ b/src/Signup.vue
@@ -10,7 +10,10 @@
v-model="formData"
:language="language"
@form-submitted="submitCaptchaForm" />
-
+
@@ -60,6 +63,7 @@ export default {
showRecoveryEmailForm: false,
showSuccessSection: false,
language: loadState(APPLICATION_NAME, 'lang'),
+ processingCreation: false,
}
},
mounted() {
@@ -102,6 +106,7 @@ export default {
async submitForm(data) {
try {
const url = generateUrl(`/apps/${this.appName}/accounts/create`)
+ this.processingCreation = true
await Axios.post(url, data)
// If the execution reaches here, the response status is in the 2xx range
@@ -110,6 +115,7 @@ export default {
this.showRecoveryEmailForm = false
this.showSuccessSection = true
} catch (error) {
+ this.processingCreation = false
const genericErrorMessage = 'An error occurred while creating your account!'
// Handle network errors and unexpected response structures here
let errorMessage = error.response ? t(this.appName, error.response.data.message) : t(this.appName, error.message)
diff --git a/src/signup/RecoveryEmailForm.vue b/src/signup/RecoveryEmailForm.vue
index 00bc89e9067a3af2f5d22511e8aba809108dd551..84fde0bd219ae460a24bd2a681b9c93587c00503 100644
--- a/src/signup/RecoveryEmailForm.vue
+++ b/src/signup/RecoveryEmailForm.vue
@@ -35,12 +35,14 @@
@@ -53,6 +55,7 @@ const APPLICATION_NAME = 'ecloud-accounts'
export default {
props: {
value: Object,
+ processingCreation: Boolean,
},
data() {
return {
diff --git a/src/signup/RegistrationForm.vue b/src/signup/RegistrationForm.vue
index aee692b64bc728ea34b13bceb306d9081b8df391..34d853424d4ce76d688af8b176fa420426e56533 100644
--- a/src/signup/RegistrationForm.vue
+++ b/src/signup/RegistrationForm.vue
@@ -150,8 +150,14 @@
@@ -199,6 +205,7 @@ export default {
{ message: t(this.appName, 'Incorrect password length: Required length is 8 to 32'), regex: /.{8,32}/ },
],
isUsernameAvailable: false,
+ processing: false,
}
},
computed: {
@@ -285,6 +292,7 @@ export default {
}
},
async submitRegistrationForm() {
+ this.processing = true
this.validateForm(['displayname', 'username', 'password', 'repassword', 'termsandservices'])
await this.checkUsername()
const isFormValid = Object.values(this.validation).every(value => !value)
@@ -292,6 +300,7 @@ export default {
if (isFormValid) {
this.$emit('form-submitted', { isFormValid })
}
+ this.processing = false
},
onLanguageChange() {
window.location.href = window.location.origin + '/apps/' + APPLICATION_NAME + '/accounts/' + this.formData.selectedLanguage + '/signup'