forked from EVOgeek/Vmeda.Online
		
	MOBILE-3371 search: Improve course search
This commit is contained in:
		
							parent
							
								
									1edc59f1c0
								
							
						
					
					
						commit
						af00e8e3c6
					
				| @ -41,14 +41,14 @@ export class AddonBlockGlobalSearchHandlerService extends CoreBlockBaseHandler { | |||||||
|      * @inheritdoc |      * @inheritdoc | ||||||
|      */ |      */ | ||||||
|     getDisplayData(block: CoreCourseBlock, contextLevel: string, instanceId: number): CoreBlockHandlerData | undefined { |     getDisplayData(block: CoreCourseBlock, contextLevel: string, instanceId: number): CoreBlockHandlerData | undefined { | ||||||
|  |         const isCourseSearch = contextLevel === 'course'; | ||||||
|  | 
 | ||||||
|         return { |         return { | ||||||
|             title: 'addon.block_globalsearch.pluginname', |             title: isCourseSearch ? 'core.search' : 'addon.block_globalsearch.pluginname', | ||||||
|             class: 'addon-block-globalsearch', |             class: 'addon-block-globalsearch', | ||||||
|             component: CoreBlockOnlyTitleComponent, |             component: CoreBlockOnlyTitleComponent, | ||||||
|             link: CORE_SEARCH_PAGE_NAME, |             link: CORE_SEARCH_PAGE_NAME, | ||||||
|             linkParams: contextLevel === 'course' |             linkParams: isCourseSearch ? { courseId: instanceId } : {}, | ||||||
|                 ? { courseId: instanceId } |  | ||||||
|                 : {}, |  | ||||||
|         }; |         }; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -39,6 +39,7 @@ export class CoreSearchGlobalSearchFiltersComponent implements OnInit { | |||||||
|     allCourses: boolean | null = true; |     allCourses: boolean | null = true; | ||||||
|     courses: Filter<CoreEnrolledCourseData>[] = []; |     courses: Filter<CoreEnrolledCourseData>[] = []; | ||||||
| 
 | 
 | ||||||
|  |     @Input() hideCourses?: boolean; | ||||||
|     @Input() filters?: CoreSearchGlobalSearchFilters; |     @Input() filters?: CoreSearchGlobalSearchFilters; | ||||||
| 
 | 
 | ||||||
|     private newFilters: CoreSearchGlobalSearchFilters = {}; |     private newFilters: CoreSearchGlobalSearchFilters = {}; | ||||||
|  | |||||||
| @ -35,7 +35,7 @@ | |||||||
|                     (ionChange)="onSearchAreaCategoryInputChanged(searchAreaCategory)"></ion-checkbox> |                     (ionChange)="onSearchAreaCategoryInputChanged(searchAreaCategory)"></ion-checkbox> | ||||||
|             </ion-item> |             </ion-item> | ||||||
|         </ng-container> |         </ng-container> | ||||||
|         <ng-container *ngIf="courses.length > 0"> |         <ng-container *ngIf="!hideCourses && courses.length > 0"> | ||||||
|             <core-spacer></core-spacer> |             <core-spacer></core-spacer> | ||||||
|             <ion-item class="ion-text-wrap help"> |             <ion-item class="ion-text-wrap help"> | ||||||
|                 <ion-label> |                 <ion-label> | ||||||
|  | |||||||
| @ -4,7 +4,8 @@ | |||||||
|             <ion-back-button [text]="'core.back' | translate"></ion-back-button> |             <ion-back-button [text]="'core.back' | translate"></ion-back-button> | ||||||
|         </ion-buttons> |         </ion-buttons> | ||||||
|         <ion-title> |         <ion-title> | ||||||
|             <h1>{{ 'core.search.globalsearch' | translate }}</h1> |             <h1 *ngIf="courseId">{{ 'core.search' | translate }}</h1> | ||||||
|  |             <h1 *ngIf="!courseId">{{ 'core.search.globalsearch' | translate }}</h1> | ||||||
|         </ion-title> |         </ion-title> | ||||||
|         <ion-buttons slot="end"> |         <ion-buttons slot="end"> | ||||||
|             <core-user-menu-button></core-user-menu-button> |             <core-user-menu-button></core-user-menu-button> | ||||||
|  | |||||||
| @ -36,6 +36,7 @@ import { CoreSearchBoxComponent } from '@features/search/components/search-box/s | |||||||
| }) | }) | ||||||
| export class CoreSearchGlobalSearchPage implements OnInit, OnDestroy, AfterViewInit { | export class CoreSearchGlobalSearchPage implements OnInit, OnDestroy, AfterViewInit { | ||||||
| 
 | 
 | ||||||
|  |     courseId: number | null = null; | ||||||
|     loadMoreError: string | null = null; |     loadMoreError: string | null = null; | ||||||
|     searchBanner: string | null = null; |     searchBanner: string | null = null; | ||||||
|     resultsSource = new CoreSearchGlobalSearchResultsSource('', {}); |     resultsSource = new CoreSearchGlobalSearchResultsSource('', {}); | ||||||
| @ -56,6 +57,7 @@ export class CoreSearchGlobalSearchPage implements OnInit, OnDestroy, AfterViewI | |||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         if (courseId) { |         if (courseId) { | ||||||
|  |             this.courseId = courseId; | ||||||
|             this.resultsSource.setFilters({ courseIds: [courseId] }); |             this.resultsSource.setFilters({ courseIds: [courseId] }); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| @ -139,7 +141,10 @@ export class CoreSearchGlobalSearchPage implements OnInit, OnDestroy, AfterViewI | |||||||
| 
 | 
 | ||||||
|         await CoreDomUtils.openSideModal<CoreSearchGlobalSearchFilters>({ |         await CoreDomUtils.openSideModal<CoreSearchGlobalSearchFilters>({ | ||||||
|             component: CoreSearchGlobalSearchFiltersComponent, |             component: CoreSearchGlobalSearchFiltersComponent, | ||||||
|             componentProps: { filters: this.resultsSource.getFilters() }, |             componentProps: { | ||||||
|  |                 hideCourses: !!this.courseId, | ||||||
|  |                 filters: this.resultsSource.getFilters(), | ||||||
|  |             }, | ||||||
|         }); |         }); | ||||||
| 
 | 
 | ||||||
|         if (!this.resultsSource.hasEmptyQuery() && this.resultsSource.isDirty()) { |         if (!this.resultsSource.hasEmptyQuery() && this.resultsSource.isDirty()) { | ||||||
|  | |||||||
| @ -139,9 +139,9 @@ Feature: Test Global Search | |||||||
|       | globalsearch | Course       | C1        | |       | globalsearch | Course       | C1        | | ||||||
|     And I entered the course "Course 1" as "student1" in the app |     And I entered the course "Course 1" as "student1" in the app | ||||||
|     When I press "Open block drawer" 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 |     Then I should find "What are you searching for?" in the app | ||||||
| 
 | 
 | ||||||
|     When I press "Filter" in the app |     When I press "Filter" in the app | ||||||
|     Then "C1" should be selected in the app |     Then I should find "Filter results by" in the app | ||||||
|     But "C2" should not be selected in the app |     But I should not find "Search in" in the app | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user