From 89ec974dfcf89a9c7c15d9b2576437f1410b560d Mon Sep 17 00:00:00 2001 From: Bram Wiepjes <bramw@protonmail.com> Date: Mon, 17 Mar 2025 15:41:05 +0000 Subject: [PATCH] Fix various validations and errors --- .../admin/forms/SamlSettingsForm.vue | 15 ++++++--- .../admin/modals/AuditLogExportModal.vue | 1 + .../license/RegisterLicenseForm.vue | 1 + .../admin/users/forms/ChangePasswordForm.vue | 1 - .../files/UploadViaURLUserFileUpload.vue | 1 + web-frontend/modules/core/locales/en.json | 5 +-- .../modules/core/pages/admin/health.vue | 2 +- .../modules/core/pages/resetPassword.vue | 2 +- web-frontend/modules/core/pages/signup.vue | 31 ++----------------- .../database/components/field/FieldForm.vue | 1 + .../components/settings/APITokenForm.vue | 1 + 11 files changed, 20 insertions(+), 41 deletions(-) diff --git a/enterprise/web-frontend/modules/baserow_enterprise/components/admin/forms/SamlSettingsForm.vue b/enterprise/web-frontend/modules/baserow_enterprise/components/admin/forms/SamlSettingsForm.vue index ac4f89096..9f4a34161 100644 --- a/enterprise/web-frontend/modules/baserow_enterprise/components/admin/forms/SamlSettingsForm.vue +++ b/enterprise/web-frontend/modules/baserow_enterprise/components/admin/forms/SamlSettingsForm.vue @@ -3,7 +3,7 @@ <FormGroup small-label required - :error="fieldHasErrors('domain')" + :error="fieldHasErrors('domain') || !!serverErrors.domain" class="margin-bottom-2" > <template #label> @@ -21,13 +21,15 @@ ref="domain" v-model="v$.values.domain.$model" size="large" - :error="fieldHasErrors('domain') || serverErrors.domain" + :error="fieldHasErrors('domain') || !!serverErrors.domain" :placeholder="$t('samlSettingsForm.domainPlaceholder')" @input="onDomainInput()" @blur="v$.values.domain.$touch" ></FormInput> <template #error> - {{ v$.values.domain.$errors[0]?.$message }} + {{ + v$.values.domain.$errors[0]?.$message || serverErrors.domain[0].error + }} </template> </FormGroup> @@ -42,14 +44,17 @@ ref="metadata" v-model="v$.values.metadata.$model" :rows="12" - :error="fieldHasErrors('metadata') || serverErrors.metadata" + :error="fieldHasErrors('metadata') || !!serverErrors.metadata" :placeholder="$t('samlSettingsForm.metadataPlaceholder')" @input="onMetadataInput()" @blur="v$.values.metadata.$touch" ></FormTextarea> <template #error> - {{ v$.values.metadata.$errors[0]?.$message }} + {{ + v$.values.metadata.$errors[0]?.$message || + serverErrors.metadata[0].error + }} </template> </FormGroup> diff --git a/enterprise/web-frontend/modules/baserow_enterprise/components/admin/modals/AuditLogExportModal.vue b/enterprise/web-frontend/modules/baserow_enterprise/components/admin/modals/AuditLogExportModal.vue index df0d726ff..75aa8cae7 100644 --- a/enterprise/web-frontend/modules/baserow_enterprise/components/admin/modals/AuditLogExportModal.vue +++ b/enterprise/web-frontend/modules/baserow_enterprise/components/admin/modals/AuditLogExportModal.vue @@ -42,6 +42,7 @@ <DownloadLink :url="finishedJob.url" :filename="getExportedFilename(finishedJob)" + loading-class="button-icon--loading" > <template #default="{ loading: downloadLoading }"> <div v-if="downloadLoading" class="loading"></div> diff --git a/premium/web-frontend/modules/baserow_premium/components/license/RegisterLicenseForm.vue b/premium/web-frontend/modules/baserow_premium/components/license/RegisterLicenseForm.vue index 93e39e13d..27e1c3398 100644 --- a/premium/web-frontend/modules/baserow_premium/components/license/RegisterLicenseForm.vue +++ b/premium/web-frontend/modules/baserow_premium/components/license/RegisterLicenseForm.vue @@ -11,6 +11,7 @@ v-model="v$.values.license.$model" :error="fieldHasErrors('license')" :rows="6" + @blur="v$.values.license.$touch()" /> <template #error> diff --git a/web-frontend/modules/core/components/admin/users/forms/ChangePasswordForm.vue b/web-frontend/modules/core/components/admin/users/forms/ChangePasswordForm.vue index 187464959..e7859052e 100644 --- a/web-frontend/modules/core/components/admin/users/forms/ChangePasswordForm.vue +++ b/web-frontend/modules/core/components/admin/users/forms/ChangePasswordForm.vue @@ -6,7 +6,6 @@ :label="$t('changePasswordForm.newPassword')" class="margin-bottom-2" > - {{ v$.values }} <PasswordInput v-model="values.password" :validation-state="v$.values.password" diff --git a/web-frontend/modules/core/components/files/UploadViaURLUserFileUpload.vue b/web-frontend/modules/core/components/files/UploadViaURLUserFileUpload.vue index a53c08f32..d037414e8 100644 --- a/web-frontend/modules/core/components/files/UploadViaURLUserFileUpload.vue +++ b/web-frontend/modules/core/components/files/UploadViaURLUserFileUpload.vue @@ -13,6 +13,7 @@ v-model="v$.values.url.$model" size="large" :error="v$.values.url.$error" + @blur="v$.values.url.$touch()" > </FormInput> diff --git a/web-frontend/modules/core/locales/en.json b/web-frontend/modules/core/locales/en.json index 0c34cfb51..7c2227552 100644 --- a/web-frontend/modules/core/locales/en.json +++ b/web-frontend/modules/core/locales/en.json @@ -477,10 +477,7 @@ "passwordPlaceholder": "Enter your password..", "passwordRepeatPlaceholder": "Confirm your password..", "loginText": "Already have an account?", - "login": "Login", - "agreeTerms": "By creating an account, you agree to the {0} {1} {2}", - "terms": "Terms of Service", - "privacyPolicy": "Privacy Policy" + "login": "Login" }, "forgotPassword": { "title": "Forgot password", diff --git a/web-frontend/modules/core/pages/admin/health.vue b/web-frontend/modules/core/pages/admin/health.vue index a8339b262..9dc78a443 100644 --- a/web-frontend/modules/core/pages/admin/health.vue +++ b/web-frontend/modules/core/pages/admin/health.vue @@ -11,7 +11,7 @@ <div> <div v-for="(status, checkName) in healthChecks" - :key="status" + :key="checkName" class="admin-health__check-item" > <div class="admin-health__check-item-label"> diff --git a/web-frontend/modules/core/pages/resetPassword.vue b/web-frontend/modules/core/pages/resetPassword.vue index 94e0d76fc..77e4e05a2 100644 --- a/web-frontend/modules/core/pages/resetPassword.vue +++ b/web-frontend/modules/core/pages/resetPassword.vue @@ -167,7 +167,7 @@ export default { const token = this.$route.params.token await AuthService(this.$client).resetPassword( token, - this.state.password + this.account.password ) this.success = true this.loading = false diff --git a/web-frontend/modules/core/pages/signup.vue b/web-frontend/modules/core/pages/signup.vue index 4d97bc2be..c8e474005 100644 --- a/web-frontend/modules/core/pages/signup.vue +++ b/web-frontend/modules/core/pages/signup.vue @@ -36,11 +36,7 @@ </template> <template v-else> <template v-if="loginButtons.length"> - <LoginButtons - :invitation="invitation" - :original="original" - :hide-if-no-buttons="true" - /> + <LoginButtons :invitation="invitation" :hide-if-no-buttons="true" /> <div class="auth__separator"> {{ $t('common.or') }} @@ -57,25 +53,7 @@ <LoginActions v-if="!shouldShowAdminSignupPage" :invitation="invitation" - > - <!-- <li class="auth__action-link"> - <i18n path="signup.agreeTerms" tag="span"> - <a - href="https://baserow.io/terms-and-conditions" - target="_blank" - @click.stop - >{{ $t('signup.terms') }} - </a> - {{ $t('common.and') }} - <a - href="https://baserow.io/privacy-policy" - target="_blank" - @click.stop - >{{ $t('signup.privacyPolicy') }} - </a> - </i18n> - </li> --> - </LoginActions> + ></LoginActions> </template> </template> </div> @@ -135,11 +113,6 @@ export default { loginButtons: 'authProvider/getAllLoginButtons', passwordLoginEnabled: 'authProvider/getPasswordLoginEnabled', }), - termsofServiceURL() { - return this.$nuxt.$router.resolve({ - name: 'terms', - }).href - }, }, methods: { next(params) { diff --git a/web-frontend/modules/database/components/field/FieldForm.vue b/web-frontend/modules/database/components/field/FieldForm.vue index 7d86ee679..1db00544d 100644 --- a/web-frontend/modules/database/components/field/FieldForm.vue +++ b/web-frontend/modules/database/components/field/FieldForm.vue @@ -7,6 +7,7 @@ v-model="v$.values.name.$model" :error="fieldHasErrors('name')" :placeholder="$t('fieldForm.name')" + @blur="v$.values.name.$touch()" @input="isPrefilledWithSuggestedFieldName = false" @keydown.enter="handleKeydownEnter($event)" ></FormInput> diff --git a/web-frontend/modules/database/components/settings/APITokenForm.vue b/web-frontend/modules/database/components/settings/APITokenForm.vue index 5d20124d2..8916188cd 100644 --- a/web-frontend/modules/database/components/settings/APITokenForm.vue +++ b/web-frontend/modules/database/components/settings/APITokenForm.vue @@ -12,6 +12,7 @@ v-model="v$.values.name.$model" size="large" :error="fieldHasErrors('name')" + @blur="v$.values.name.$touch()" > </FormInput>