feat(vocab): add language and course dictionary endpoints and UI components
All checks were successful
Deploy to production / deploy (push) Successful in 2m53s

- Implemented `getLanguageDictionary` and `getCourseDictionary` methods in the VocabService to retrieve vocabulary entries filtered by search terms.
- Updated VocabController and vocabRouter to include new routes for accessing language and course dictionaries.
- Enhanced frontend components to navigate to the new dictionary views, including buttons in VocabCourseView and VocabLanguageView.
- Added localization entries for the dictionary feature in multiple languages, ensuring a consistent user experience across the platform.
This commit is contained in:
Torsten Schulz (local)
2026-04-10 13:08:18 +02:00
parent 9582e7b900
commit d17c8a341d
18 changed files with 443 additions and 16 deletions

View File

@@ -16,6 +16,9 @@
<span v-if="course.shareCode && isOwner" class="share-code">
{{ $t('socialnetwork.vocab.courses.shareCode') }}: <code>{{ course.shareCode }}</code>
</span>
<button type="button" class="course-dictionary-link" @click="goCourseDictionary">
{{ $t('socialnetwork.vocab.dictionary.open') }}
</button>
</div>
<section class="surface-card course-assistant">
@@ -691,6 +694,9 @@ export default {
showApiError(this, e, this.$t('socialnetwork.vocab.courses.deleteLessonError'));
}
},
goCourseDictionary() {
this.$router.push(`/socialnetwork/vocab/courses/${this.courseId}/dictionary`);
},
openLesson(lessonId) {
this.$router.push(`/socialnetwork/vocab/courses/${this.courseId}/lessons/${lessonId}`);
},
@@ -826,6 +832,11 @@ export default {
color: #666;
flex-wrap: wrap;
padding: 16px 18px;
align-items: center;
}
.course-dictionary-link {
margin-left: auto;
}
.course-assistant {