diff --git a/src/App.vue b/src/App.vue index e5c1cec..2515eb0 100644 --- a/src/App.vue +++ b/src/App.vue @@ -5,15 +5,17 @@ import { RouterView } from 'vue-router' diff --git a/src/i18n.js b/src/i18n.js index b6bc2bd..8c4d5e4 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -3,8 +3,10 @@ import en from './locales/en.json' import de from './locales/de.json' export const SUPPORT_LOCALES = ['en', 'de'] +export let instance = null + export function createI18n() { - return _createI18n({ + instance = _createI18n({ legacy: false, globalInjection: true, locale: 'de', @@ -14,4 +16,5 @@ export function createI18n() { de } }) + return instance } diff --git a/src/locales/de.json b/src/locales/de.json index b278909..81da3fc 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -2,5 +2,9 @@ "hello": "Hallo i18n in SFC!", "welcome": "Willkommen!", "yes-button": "Ja", - "no-button": "Nein!" + "no-button": "Nein!", + "validations": { + "required": "{property} ist erforerlig.", + "minLength": "Das Feld {property} muss eine Mindestlänge von {min} haben." + } } \ No newline at end of file diff --git a/src/locales/en.json b/src/locales/en.json index 8bfb062..6a165fe 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -2,5 +2,9 @@ "hello": "Hello i18n in SFC!", "welcome": "Welcome!", "yes-button": "Yes", - "no-button": "No!" + "no-button": "No!", + "validations": { + "required": "{property} is required.", + "minLength": "The {property} field has a value of '{model}', but it must have a min length of {min}." + } } \ No newline at end of file diff --git a/src/main.js b/src/main.js index c31bce1..f58b20d 100644 --- a/src/main.js +++ b/src/main.js @@ -3,6 +3,7 @@ import App from './App.vue' import router from './router' import { createI18n } from './i18n' import store from './store' +import * as validators from '@vuelidate/validators' import { library } from '@fortawesome/fontawesome-svg-core' import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome' import { @@ -30,6 +31,17 @@ library.add(faChalkboardUser) const i18n = createI18n() +const { createI18nMessage } = validators + +const withI18nMessage = createI18nMessage({ t: i18n.global.t.bind(i18n) }) + +// wrap each validator. +export const required = withI18nMessage(validators.required) +// validators that expect a parameter should have `{ withArguments: true }` passed as a second parameter, to annotate they should be wrapped +export const minLength = withI18nMessage(validators.minLength, { withArguments: true }) +// or you can provide the param at definition, statically +export const maxLength = withI18nMessage(validators.maxLength(10)) + let app = createApp(App) app.use(router) diff --git a/src/service/ContractsService.js b/src/service/ContractsService.js index ff94d96..5a8cc42 100644 --- a/src/service/ContractsService.js +++ b/src/service/ContractsService.js @@ -74,3 +74,20 @@ export async function misapply(contractID) { router.push('/error?message=' + error.message + '&code=' + error.code) }) } + +export async function createContract(contractId, contractName, contractClient, contractPassword) { + return HttpClient.post('/contract/create', { + id: contractId, + name: contractName, + client: contractClient, + password: contractPassword + }) + .then(resp => { + //TODO: send also auth token with request + return resp.data + }) + .catch(error => { + console.error(error) + router.push('/error?message=' + error.message + '&code=' + error.code) + }) +} \ No newline at end of file diff --git a/src/views/ClientContractView.vue b/src/views/ClientContractView.vue new file mode 100644 index 0000000..4ddb949 --- /dev/null +++ b/src/views/ClientContractView.vue @@ -0,0 +1,19 @@ + + diff --git a/src/views/ContractsView.vue b/src/views/ContractsView.vue index 46ba138..e5c2415 100644 --- a/src/views/ContractsView.vue +++ b/src/views/ContractsView.vue @@ -14,13 +14,12 @@ import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
- - - +