diff options
| author | Ron Lucke <lucke@elan-ev.de> | 2025-05-23 12:36:27 +0200 |
|---|---|---|
| committer | Ron Lucke <lucke@elan-ev.de> | 2025-05-23 12:36:27 +0200 |
| commit | 57ac6f4a4572cbec207c38fed7b124f3d8ada567 (patch) | |
| tree | 8dc45bb19546063186f8585f9b57e177b621aa38 /resources | |
| parent | 29255657ee3126314ee7138c72817f47f2623aea (diff) | |
Courseware: Suche funktioniert nicht
Closes #5575
Merge request studip/studip!4198
Diffstat (limited to 'resources')
| -rw-r--r-- | resources/vue/components/courseware/structural-element/CoursewareSearchResults.vue | 53 |
1 files changed, 49 insertions, 4 deletions
diff --git a/resources/vue/components/courseware/structural-element/CoursewareSearchResults.vue b/resources/vue/components/courseware/structural-element/CoursewareSearchResults.vue index 961fae3..14b523a 100644 --- a/resources/vue/components/courseware/structural-element/CoursewareSearchResults.vue +++ b/resources/vue/components/courseware/structural-element/CoursewareSearchResults.vue @@ -14,8 +14,13 @@ </template> </ContentBar> <div id="search-results"> - <article v-if="searchResults.length > 0"> - <section v-for="result in searchResults" :key="result['structural-element-id']"> + <article v-if="currentUnitSearchResults.length > 0" class="studip padding-less"> + <header> + <h1 class="search-results-header"> + {{ $gettext('Suchergebnisse in diesem Lernmaterial') }} + </h1> + </header> + <section v-for="result in currentUnitSearchResults" :key="result['structural-element-id']"> <router-link :to="'/structural_element/' + result['structural-element-id']" @click="closeResults" @@ -35,8 +40,31 @@ </router-link> </section> </article> + <article v-if="otherUnitsSearchResults.length > 0" class="studip padding-less"> + <header> + <h1 class="search-results-header"> + {{ $gettext('Suchergebnisse in anderen Lernmaterialien') }} + </h1> + </header> + <section v-for="result in otherUnitsSearchResults" :key="result['unit-id'] + '-' + result['structural-element-id']"> + <a :href="result['url']"> + <div v-show="result.img !== null" class="search-result-img hidden-tiny-down"> + <img :src="result.img" /> + </div> + <div class="search-result-data"> + <div class="search-result-title" v-html="result.name"></div> + <div class="search-result-details"> + <div class="search-result-description" v-html="result.description"></div> + </div> + </div> + <div class="search-result-information"> + <div class="search-result-time" v-html="result.date"></div> + </div> + </a> + </section> + </article> <courseware-companion-box - v-else + v-if="noResults" :msgCompanion="$gettext('Es wurden keine Suchergebnisse gefunden.')" mood="sad" /> @@ -59,8 +87,25 @@ export default { }, computed: { ...mapGetters({ - searchResults: 'searchResults' + searchResults: 'searchResults', + context: 'context' }), + currentUnitId() { + return +this.context.unit; + }, + currentUnitSearchResults() { + return this.searchResults.filter(result => { + return result['unit-id'] === this.currentUnitId; + }); + }, + otherUnitsSearchResults() { + return this.searchResults.filter(result => { + return result['unit-id'] !== this.currentUnitId; + }); + }, + noResults() { + return this.currentUnitSearchResults.length === 0 && this.otherUnitsSearchResults.length === 0; + } }, methods: { ...mapActions({ |
