From af00e8e3c653979f63b5cb3ffbeb40a8211751c4 Mon Sep 17 00:00:00 2001 From: Noel De Martin Date: Mon, 23 Oct 2023 12:54:57 +0200 Subject: [PATCH] MOBILE-3371 search: Improve course search --- src/addons/block/globalsearch/services/block-handler.ts | 8 ++++---- .../global-search-filters.component.ts | 1 + .../global-search-filters/global-search-filters.html | 2 +- .../search/pages/global-search/global-search.html | 3 ++- .../features/search/pages/global-search/global-search.ts | 7 ++++++- .../features/search/tests/behat/global-search.feature | 6 +++--- 6 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/addons/block/globalsearch/services/block-handler.ts b/src/addons/block/globalsearch/services/block-handler.ts index 609befb5f9d..d338a2777e3 100644 --- a/src/addons/block/globalsearch/services/block-handler.ts +++ b/src/addons/block/globalsearch/services/block-handler.ts @@ -41,14 +41,14 @@ export class AddonBlockGlobalSearchHandlerService extends CoreBlockBaseHandler { * @inheritdoc */ getDisplayData(block: CoreCourseBlock, contextLevel: string, instanceId: number): CoreBlockHandlerData | undefined { + const isCourseSearch = contextLevel === 'course'; + return { - title: 'addon.block_globalsearch.pluginname', + title: isCourseSearch ? 'core.search' : 'addon.block_globalsearch.pluginname', class: 'addon-block-globalsearch', component: CoreBlockOnlyTitleComponent, link: CORE_SEARCH_PAGE_NAME, - linkParams: contextLevel === 'course' - ? { courseId: instanceId } - : {}, + linkParams: isCourseSearch ? { courseId: instanceId } : {}, }; } diff --git a/src/core/features/search/components/global-search-filters/global-search-filters.component.ts b/src/core/features/search/components/global-search-filters/global-search-filters.component.ts index 54be5eea6d2..ca7d6c3b927 100644 --- a/src/core/features/search/components/global-search-filters/global-search-filters.component.ts +++ b/src/core/features/search/components/global-search-filters/global-search-filters.component.ts @@ -39,6 +39,7 @@ export class CoreSearchGlobalSearchFiltersComponent implements OnInit { allCourses: boolean | null = true; courses: Filter[] = []; + @Input() hideCourses?: boolean; @Input() filters?: CoreSearchGlobalSearchFilters; private newFilters: CoreSearchGlobalSearchFilters = {}; diff --git a/src/core/features/search/components/global-search-filters/global-search-filters.html b/src/core/features/search/components/global-search-filters/global-search-filters.html index 5f38275b73c..bc36575d665 100644 --- a/src/core/features/search/components/global-search-filters/global-search-filters.html +++ b/src/core/features/search/components/global-search-filters/global-search-filters.html @@ -35,7 +35,7 @@

{{ 'core.search.filterheader' | translate }}

(ionChange)="onSearchAreaCategoryInputChanged(searchAreaCategory)"> - + diff --git a/src/core/features/search/pages/global-search/global-search.html b/src/core/features/search/pages/global-search/global-search.html index afbaf81af8c..07965f95478 100644 --- a/src/core/features/search/pages/global-search/global-search.html +++ b/src/core/features/search/pages/global-search/global-search.html @@ -4,7 +4,8 @@ -

{{ 'core.search.globalsearch' | translate }}

+

{{ 'core.search' | translate }}

+

{{ 'core.search.globalsearch' | translate }}

diff --git a/src/core/features/search/pages/global-search/global-search.ts b/src/core/features/search/pages/global-search/global-search.ts index 9f6b01f9855..bd5b28e7ed7 100644 --- a/src/core/features/search/pages/global-search/global-search.ts +++ b/src/core/features/search/pages/global-search/global-search.ts @@ -36,6 +36,7 @@ import { CoreSearchBoxComponent } from '@features/search/components/search-box/s }) export class CoreSearchGlobalSearchPage implements OnInit, OnDestroy, AfterViewInit { + courseId: number | null = null; loadMoreError: string | null = null; searchBanner: string | null = null; resultsSource = new CoreSearchGlobalSearchResultsSource('', {}); @@ -56,6 +57,7 @@ export class CoreSearchGlobalSearchPage implements OnInit, OnDestroy, AfterViewI } if (courseId) { + this.courseId = courseId; this.resultsSource.setFilters({ courseIds: [courseId] }); } @@ -139,7 +141,10 @@ export class CoreSearchGlobalSearchPage implements OnInit, OnDestroy, AfterViewI await CoreDomUtils.openSideModal({ component: CoreSearchGlobalSearchFiltersComponent, - componentProps: { filters: this.resultsSource.getFilters() }, + componentProps: { + hideCourses: !!this.courseId, + filters: this.resultsSource.getFilters(), + }, }); if (!this.resultsSource.hasEmptyQuery() && this.resultsSource.isDirty()) { diff --git a/src/core/features/search/tests/behat/global-search.feature b/src/core/features/search/tests/behat/global-search.feature index 381dda73786..721160c6bed 100644 --- a/src/core/features/search/tests/behat/global-search.feature +++ b/src/core/features/search/tests/behat/global-search.feature @@ -139,9 +139,9 @@ Feature: Test Global Search | globalsearch | Course | C1 | And I entered the course "Course 1" as "student1" in the app When I press "Open block drawer" in the app - And I press "Global search" in the app + And I press "Search" in the app Then I should find "What are you searching for?" in the app When I press "Filter" in the app - Then "C1" should be selected in the app - But "C2" should not be selected in the app + Then I should find "Filter results by" in the app + But I should not find "Search in" in the app