From 543a2f92590a4b8424c29e6296c32f9a44a42f61 Mon Sep 17 00:00:00 2001 From: Torsten Schulz Date: Wed, 11 Sep 2024 16:23:10 +0200 Subject: [PATCH] Fixed issues --- frontend/src/views/DiaryView.vue | 44 ++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/frontend/src/views/DiaryView.vue b/frontend/src/views/DiaryView.vue index b745cec..9f1e803 100644 --- a/frontend/src/views/DiaryView.vue +++ b/frontend/src/views/DiaryView.vue @@ -50,7 +50,7 @@ - + @@ -76,7 +76,7 @@
{{ activity.name }} ({{ activity.durationText || '' }} / {{ - activity.duration }} Minuten) + activity.duration }} Minuten)
@@ -106,14 +106,15 @@

Aktivitäten

- + @@ -124,7 +125,8 @@

Notizen für {{ selectedMember.firstName }} {{ selectedMember.lastName }}

+ @remove="removeMemberTag" @input="updateMemberTags" :allow-empty="false" + @keydown.enter.prevent="addNewTagForMemberFromInput" />
@@ -381,6 +383,12 @@ export default { closeNotesModal() { this.showNotesModal = false; }, + async addNewTagFromInput(event) { + const inputValue = event.target.value.trim(); + if (inputValue) { + await this.addNewTag(inputValue); + } + }, async addNewTag(newTagName) { try { const response = await apiClient.post('/tags', { name: newTagName }); @@ -392,13 +400,19 @@ export default { alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.'); } }, + async addNewTagForMemberFromInput(event) { + const inputValue = event.target.value.trim(); + if (inputValue) { + await this.addNewTagForMember(inputValue); + } + }, async addNewTagForMember(newTagName) { try { const response = await apiClient.post('/tags', { name: newTagName }); const newTag = response.data; this.availableTags.push(newTag); this.selectedMemberTags.push(newTag); - await this.linkTagToMemberAndDate(newTag.id); + await this.linkTagToMemberAndDate(newTag); } catch (error) { console.error('Fehler beim Hinzufügen eines neuen Tags für das Mitglied:', error); alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.'); @@ -429,27 +443,35 @@ export default { alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.'); } }, - async updateActivityTags(selectedTags) { + async updateActivityTags() { try { + const selectedTags = this.selectedActivityTags; + + if (!selectedTags || !Array.isArray(selectedTags)) { + console.log(typeof selectedTags, JSON.stringify(selectedTags)); + throw new TypeError('Expected selectedTags to be an array'); + } + for (let tag of selectedTags) { if (!this.previousActivityTags.includes(tag)) { await this.linkTagToDiaryDate(tag); } } + this.previousActivityTags = [...selectedTags]; } catch (error) { console.error('Fehler beim Verknüpfen der Tags mit dem Trainingstag:', error); alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.'); } }, - async updateMemberTags(selectedTags) { + async updateMemberTags() { try { - for (let tag of selectedTags) { + for (let tag of this.selectedMemberTags) { if (!this.previousMemberTags.includes(tag)) { await this.linkTagToMemberAndDate(tag); } } - this.previousMemberTags = [...selectedTags]; + this.previousMemberTags = [...this.selectedMemberTags]; } catch (error) { console.error('Fehler beim Verknüpfen der Tags mit dem Mitglied und Datum:', error); alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
Uhrzeit Aktivität Länge / Gesamtzeit (Min)