From b37abd3d16f2d79f4eb9c722a7112294dcb242c7 Mon Sep 17 00:00:00 2001 From: Ramon Wenger Date: Tue, 21 Dec 2021 13:11:34 +0100 Subject: [PATCH] Move VeeValidate calls to own components and config --- client/build/webpack.dev.conf.js | 4 +- .../components/validation/ValidatedInput.vue | 89 +++++++++++++++++++ client/src/main.js | 48 ---------- client/src/pages/beta-login.vue | 9 +- client/src/pages/license-activation.vue | 5 +- client/src/validation/index.js | 24 +++++ 6 files changed, 126 insertions(+), 53 deletions(-) create mode 100644 client/src/components/validation/ValidatedInput.vue create mode 100644 client/src/validation/index.js diff --git a/client/build/webpack.dev.conf.js b/client/build/webpack.dev.conf.js index 0cb69b18..b6c0813e 100755 --- a/client/build/webpack.dev.conf.js +++ b/client/build/webpack.dev.conf.js @@ -66,7 +66,9 @@ const devWebpackConfig = merge(baseWebpackConfig, { }, ], }), - new BundleAnalyzerPlugin(), + new BundleAnalyzerPlugin({ + generateStatsFile: true + }), ], }); diff --git a/client/src/components/validation/ValidatedInput.vue b/client/src/components/validation/ValidatedInput.vue new file mode 100644 index 00000000..2c9f8ff5 --- /dev/null +++ b/client/src/components/validation/ValidatedInput.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/client/src/main.js b/client/src/main.js index cb2aee49..5a1f31ec 100644 --- a/client/src/main.js +++ b/client/src/main.js @@ -7,8 +7,6 @@ import App from './App'; import {router, postLoginRedirectUrlKey} from './router'; import store from '@/store/index'; import VueScrollTo from 'vue-scrollto'; -import {extend, localize} from 'vee-validate'; -import {required, min, double, confirmed} from 'vee-validate/dist/rules'; import {dateFilter, dateTimeFilter} from './filters/date-filter'; import autoGrow from '@/directives/auto-grow'; import clickOutside from '@/directives/click-outside'; @@ -18,7 +16,6 @@ import VueRemoveEdges from '@/plugins/edges'; import VueMatomo from 'vue-matomo'; import VueToast from 'vue-toast-notification'; import VueLogger from 'vuejs-logger'; -import de from 'vee-validate/dist/locale/de.json'; Vue.config.productionTip = false; const isProduction = process.env.NODE_ENV === 'production'; @@ -62,51 +59,6 @@ const apolloProvider = new VueApollo({ defaultClient: privateApolloClient }); -extend('required', required); -extend('min', min); -extend('decimal', double); -extend('confirmed', confirmed); - -// const dict = { -// custom: { -// oldPassword: { -// required: 'Dein aktuelles Passwort fehlt' -// }, -// newPassword: { -// required: 'Dein neues Passwort fehlt', -// min: 'Das neue Passwort muss mindestens 8 Zeichen lang sein' -// } -// } -// }; - -localize('de', { - de: { - ...de, - names: { - password: 'Password', - email: 'E-Mail', - coupon: 'Coupon' - } - } -}); - -// https://github.com/baianat/vee-validate/issues/51 -extend('strongPassword', { - getMessage: field => 'Das Passwort muss Grossbuchstaben, Zahlen und Sonderzeichen beinhalten und mindestens 8 Zeichen lang sein', - validate: value => { - const strongRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*?(),.":{}|<>+])(?=.{8,})/; - return strongRegex.test(value); - } -}); - -extend('email', { - getMessage: field => 'Bitte geben Sie eine gülitge E-Mail an', - validate: value => { - const emailRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/; - return emailRegex.test(value); - } -}); - Vue.filter('date', dateFilter); Vue.filter('datetime', dateTimeFilter); diff --git a/client/src/pages/beta-login.vue b/client/src/pages/beta-login.vue index 501d47e7..69f9727f 100644 --- a/client/src/pages/beta-login.vue +++ b/client/src/pages/beta-login.vue @@ -48,8 +48,9 @@