diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index 97b751019..be4574e6d 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -46,7 +46,11 @@ "thx":"Danke", "sorry":"Entschuldigung", "send_transaction_success":"Deine Transaktion wurde erfolgreich ausgeführt", - "send_transaction_error":"Leider konnte die Transaktion nicht ausgeführt werden!" + "send_transaction_error":"Leider konnte die Transaktion nicht ausgeführt werden!", + "validation": { + "double": "Das Feld {field} muss eine Dezimalzahl mit zwei Nachkommastellen sein", + "is-not": "Du kannst Dir selbst keine Gradidos überweisen" + } }, "error": { "error":"Fehler" diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index f3a4a1dfb..fc2e15cc7 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -46,7 +46,11 @@ "thx":"Thank you", "sorry":"Sorry", "send_transaction_success":"Your transaction was successfully completed", - "send_transaction_error":"Unfortunately, the transaction could not be executed!" + "send_transaction_error":"Unfortunately, the transaction could not be executed!", + "validation": { + "double": "The {field} field must be a decimal with two digits", + "is-not": "You cannot send Gradidos to yourself" + } }, "error": { "error":"Error" diff --git a/frontend/src/main.js b/frontend/src/main.js index bd57c6e57..5584ae508 100755 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -2,6 +2,9 @@ import Vue from 'vue' import DashboardPlugin from './plugins/dashboard-plugin' import App from './App.vue' import i18n from './i18n.js' +import { configure, extend } from 'vee-validate' +// eslint-disable-next-line camelcase +import { required, email, min, between, double, is_not } from 'vee-validate/dist/rules' // store import { store } from './store/store' @@ -21,6 +24,45 @@ router.beforeEach((to, from, next) => { } }) +configure({ + defaultMessage: (field, values) => { + values._field_ = i18n.t(`fields.${field}`) + return i18n.t(`validations.messages.${values._rule_}`, values) + }, +}) + +extend('email', { + ...email, + message: (_, values) => i18n.t('validations.messages.email', values), +}) + +extend('required', { + ...required, + message: (_, values) => i18n.t('validations.messages.required', values), +}) + +extend('min', { + ...min, + message: (_, values) => i18n.t('validations.messages.min', values), +}) + +extend('double', { + ...double, + message: (_, values) => i18n.t('form.validation.double', values), +}) + +extend('between', { + ...between, + message: (_, values) => i18n.t('validations.messages.between', values), +}) + +// eslint-disable-next-line camelcase +extend('is_not', { + // eslint-disable-next-line camelcase + ...is_not, + message: (_, values) => i18n.t('form.validation.is-not', values), +}) + /* eslint-disable no-new */ new Vue({ el: '#app', diff --git a/frontend/src/vee-validate.js b/frontend/src/vee-validate.js deleted file mode 100644 index 42e4c9c94..000000000 --- a/frontend/src/vee-validate.js +++ /dev/null @@ -1,25 +0,0 @@ -import { configure, extend } from 'vee-validate' -import { required, email, min } from 'vee-validate/dist/rules' -import i18n from './i18n' - -configure({ - defaultMessage: (field, values) => { - values._field_ = i18n.t(`fields.${field}`) - return i18n.t(`validations.messages.${values._rule_}`, values) - }, -}) - -extend('email', { - ...email, - message: (_, values) => i18n.t('validations.messages.email', values), -}) - -extend('required', { - ...required, - message: (_, values) => i18n.t('validations.messages.required', values), -}) - -extend('min', { - ...min, - message: (_, values) => i18n.t('validations.messages.min', values), -}) diff --git a/frontend/src/views/Pages/AccountOverview/GddSend.spec.js b/frontend/src/views/Pages/AccountOverview/GddSend.spec.js index 3cd0afad0..d7130aeca 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend.spec.js +++ b/frontend/src/views/Pages/AccountOverview/GddSend.spec.js @@ -24,6 +24,10 @@ describe('GddSend', () => { $moment: jest.fn((m) => ({ format: () => m, })), + $i18n: { + locale: jest.fn(() => 'en'), + }, + $n: jest.fn((n) => String(n)), } const Wrapper = () => { diff --git a/frontend/src/views/Pages/AccountOverview/GddSend.vue b/frontend/src/views/Pages/AccountOverview/GddSend.vue index 9053d0ea4..8d5b93217 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend.vue +++ b/frontend/src/views/Pages/AccountOverview/GddSend.vue @@ -55,69 +55,92 @@
-->
- {{ $t('form.receiver') }} - - - - - - - + + {{ $t('form.receiver') }} + + {{ error }} + + + + + + + + +

- {{ $t('form.amount') }} - - {{ $t('form.max_gdd_info') }} - - - -
GDD
-
- -
- {{ $t('form.memo') }} - - - - - - + + {{ $t('form.amount') }} + + {{ error }} + + + + +
GDD
+
+ +
+ {{ $t('form.memo') }} + + + + + + +

@@ -317,4 +340,7 @@ video { max-height: 665px; max-width: 665px; } +span.errors { + color: red; +}