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

@@ -14,6 +14,7 @@ const VocabCourseListView = () => import('../views/social/VocabCourseListView.vu
const VocabCourseView = () => import('../views/social/VocabCourseView.vue');
const VocabLessonView = () => import('../views/social/VocabLessonView.vue');
const VocabLessonReviewView = () => import('../views/social/VocabLessonReviewView.vue');
const VocabDictionaryView = () => import('../views/social/VocabDictionaryView.vue');
const EroticAccessView = () => import('../views/social/EroticAccessView.vue');
const EroticPicturesView = () => import('../views/social/EroticPicturesView.vue');
const EroticVideosView = () => import('../views/social/EroticVideosView.vue');
@@ -97,18 +98,6 @@ const socialRoutes = [
component: VocabSubscribeView,
meta: { requiresAuth: true }
},
{
path: '/socialnetwork/vocab/:languageId',
name: 'VocabLanguage',
component: VocabLanguageView,
meta: { requiresAuth: true }
},
{
path: '/socialnetwork/vocab/:languageId/chapters/:chapterId',
name: 'VocabChapter',
component: VocabChapterView,
meta: { requiresAuth: true }
},
{
path: '/socialnetwork/vocab/courses',
name: 'VocabCourses',
@@ -116,10 +105,9 @@ const socialRoutes = [
meta: { requiresAuth: true }
},
{
path: '/socialnetwork/vocab/courses/:courseId',
name: 'VocabCourse',
component: VocabCourseView,
props: true,
path: '/socialnetwork/vocab/courses/:courseId/dictionary',
name: 'VocabCourseDictionary',
component: VocabDictionaryView,
meta: { requiresAuth: true }
},
{
@@ -136,6 +124,31 @@ const socialRoutes = [
props: true,
meta: { requiresAuth: true }
},
{
path: '/socialnetwork/vocab/courses/:courseId',
name: 'VocabCourse',
component: VocabCourseView,
props: true,
meta: { requiresAuth: true }
},
{
path: '/socialnetwork/vocab/:languageId/dictionary',
name: 'VocabLanguageDictionary',
component: VocabDictionaryView,
meta: { requiresAuth: true }
},
{
path: '/socialnetwork/vocab/:languageId/chapters/:chapterId',
name: 'VocabChapter',
component: VocabChapterView,
meta: { requiresAuth: true }
},
{
path: '/socialnetwork/vocab/:languageId',
name: 'VocabLanguage',
component: VocabLanguageView,
meta: { requiresAuth: true }
},
];
export default socialRoutes;