diff --git a/backend/services/vocabService.js b/backend/services/vocabService.js index bdddc32..21312cb 100644 --- a/backend/services/vocabService.js +++ b/backend/services/vocabService.js @@ -586,14 +586,13 @@ export default class VocabService { } // Filter nach Muttersprache (die Sprache des Lerners) - if (nativeLanguageId !== undefined) { - if (nativeLanguageId === null) { - // NULL bedeutet "für alle Sprachen" - zeige Kurse ohne native_language_id - where.nativeLanguageId = null; - } else { - where.nativeLanguageId = Number(nativeLanguageId); - } + // Wenn nativeLanguageId nicht gesetzt ist (undefined), zeige alle Kurse (kein Filter) + // Wenn nativeLanguageId === null oder 'null' (aus Frontend), zeige alle Kurse (kein Filter) + // Wenn nativeLanguageId eine Zahl ist, zeige nur Kurse für diese Muttersprache + if (nativeLanguageId !== undefined && nativeLanguageId !== null && nativeLanguageId !== 'null') { + where.nativeLanguageId = Number(nativeLanguageId); } + // Wenn nativeLanguageId null/undefined/'null' ist, wird kein Filter angewendet = alle Kurse // Suche nach Titel oder Beschreibung if (search && search.trim()) { diff --git a/frontend/src/views/social/VocabCourseListView.vue b/frontend/src/views/social/VocabCourseListView.vue index 1956f2e..f05c9c8 100644 --- a/frontend/src/views/social/VocabCourseListView.vue +++ b/frontend/src/views/social/VocabCourseListView.vue @@ -172,9 +172,21 @@ export default { if (this.selectedLanguageId) { params.languageId = this.selectedLanguageId; } + // Nur nativeLanguageId senden, wenn explizit eine Sprache ausgewählt wurde + // Leer bedeutet: zeige alle Kurse + // "null" bedeutet: zeige nur Kurse ohne Muttersprache + // Eine ID bedeutet: zeige nur Kurse für diese Muttersprache if (this.selectedNativeLanguageId !== '') { - params.nativeLanguageId = this.selectedNativeLanguageId === 'null' ? null : this.selectedNativeLanguageId; + if (this.selectedNativeLanguageId === 'null') { + // Explizit Kurse ohne Muttersprache anfordern + params.nativeLanguageId = null; + } else { + // Spezifische Muttersprache + params.nativeLanguageId = this.selectedNativeLanguageId; + } } + // Wenn selectedNativeLanguageId leer ist, wird nativeLanguageId nicht gesetzt + // und das Backend zeigt alle Kurse an if (this.searchTerm.trim()) { params.search = this.searchTerm.trim(); }