From 15ab49ad7f9f071442d5aa0fe19998b21af10c56 Mon Sep 17 00:00:00 2001 From: Denys Seredenko Date: Wed, 11 Jan 2023 20:36:20 +0100 Subject: [PATCH] * delete action feature: #6 --- src/App.vue | 4 +- src/components/modals/DeleteModal.vue | 111 ++++++++++++++++++++++++++ src/locales/de.json | 5 +- src/locales/en.json | 3 +- src/main.js | 5 +- src/service/ContractsService.js | 16 +++- src/views/ContractsView.vue | 7 +- 7 files changed, 140 insertions(+), 11 deletions(-) create mode 100644 src/components/modals/DeleteModal.vue diff --git a/src/App.vue b/src/App.vue index 2515eb0..48c0b26 100644 --- a/src/App.vue +++ b/src/App.vue @@ -6,16 +6,18 @@ import { RouterView } from 'vue-router' + diff --git a/src/locales/de.json b/src/locales/de.json index 81da3fc..6ce5db7 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -4,7 +4,8 @@ "yes-button": "Ja", "no-button": "Nein!", "validations": { - "required": "{property} ist erforerlig.", - "minLength": "Das Feld {property} muss eine Mindestlänge von {min} haben." + "required" : "{property} ist erforerlig.", + "minLength" : "Das Feld {property} muss eine Mindestlänge von {min} haben.", + "sameAsState" : "Falsches {property}!" } } \ No newline at end of file diff --git a/src/locales/en.json b/src/locales/en.json index 6a165fe..5626d31 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -5,6 +5,7 @@ "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}." + "minLength": "The {property} field has a value of '{model}', but it must have a min length of {min}.", + "sameAsState" : "{property} muss gleich sein" } } \ No newline at end of file diff --git a/src/main.js b/src/main.js index f58b20d..6322aa2 100644 --- a/src/main.js +++ b/src/main.js @@ -37,10 +37,9 @@ 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)) +export const maxLength = withI18nMessage(validators.maxLength, { withArguments: true }) +export const sameAs = withI18nMessage(validators.sameAs, { withArguments: true }) let app = createApp(App) diff --git a/src/service/ContractsService.js b/src/service/ContractsService.js index 5a8cc42..fe5da6a 100644 --- a/src/service/ContractsService.js +++ b/src/service/ContractsService.js @@ -90,4 +90,18 @@ export async function createContract(contractId, contractName, contractClient, c console.error(error) router.push('/error?message=' + error.message + '&code=' + error.code) }) -} \ No newline at end of file +} + +export async function deleteContract(contractId) { + return HttpClient.delete('/contract', { + id: contractId + }) + .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) + }) +} diff --git a/src/views/ContractsView.vue b/src/views/ContractsView.vue index e5c2415..c864b32 100644 --- a/src/views/ContractsView.vue +++ b/src/views/ContractsView.vue @@ -61,7 +61,7 @@ import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome' v-if="isVerwaltung" class="bg-red-500 text-white active:bg-red-600 font-bold uppercase text-xs px-4 py-2 rounded shadow hover:shadow-md outline-none focus:outline-none mr-1 mb-1 ease-linear transition-all duration-150" type="button" - @click="openDeleteDialog()"> + @click="deleteContract(contract.id)"> Delete