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 @@
+
+
+
+
Step 3: Fill in order details
+
+
+
+
+
+
+
+
+
+
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'
-
-
-
+