MOBILE-4573 forum: Hide search when disabled

main
Noel De Martin 2024-04-15 14:13:29 +02:00
parent a03937d4fe
commit ce86bb42f1
2 changed files with 21 additions and 1 deletions

View File

@ -1,6 +1,6 @@
<!-- Buttons to add to the header. -->
<core-navbar-buttons slot="end">
<ion-button fill="clear" (click)="openSearch()" [attr.aria-label]="'core.search' | translate">
<ion-button fill="clear" *ngIf="showSearch" (click)="openSearch()" [attr.aria-label]="'core.search' | translate">
<ion-icon name="fas-magnifying-glass" slot="icon-only" aria-hidden="true" />
</ion-button>
<ion-button fill="clear" (click)="openModuleSummary()" aria-haspopup="true" [attr.aria-label]="'core.info' | translate">

View File

@ -59,6 +59,7 @@ import { CoreRoutedItemsManagerSourcesTracker } from '@classes/items-management/
import { CorePromisedValue } from '@classes/promised-value';
import { CoreNavigator } from '@services/navigator';
import { ADDON_MOD_FORUM_SEARCH_PAGE_NAME } from '@addons/mod/forum/constants';
import { CoreSearchGlobalSearch } from '@features/search/services/global-search';
/**
* Component that displays a forum entry page.
*/
@ -85,6 +86,7 @@ export class AddonModForumIndexComponent extends CoreCourseModuleMainActivityCom
hasOfflineRatings = false;
showQAMessage = false;
isSetPinAvailable = false;
showSearch = false;
sortOrderSelectorModalOptions: ModalOptions = {
component: AddonModForumSortOrderSelectorComponent,
};
@ -306,6 +308,9 @@ export class AddonModForumIndexComponent extends CoreCourseModuleMainActivityCom
this.hasOffline = this.hasOffline || this.hasOfflineRatings;
}
});
// Initialize search.
this.showSearch = await this.isSearchEnabled();
}
async ngAfterViewInit(): Promise<void> {
@ -690,6 +695,21 @@ export class AddonModForumIndexComponent extends CoreCourseModuleMainActivityCom
}
}
/**
* Check if forum search is available.
*
* @returns Whether forum search is available.
*/
protected async isSearchEnabled(): Promise<boolean> {
if (!CoreSearchGlobalSearch.isEnabled()) {
return false;
}
const searchAreas = await CoreSearchGlobalSearch.getSearchAreas();
return !!searchAreas.find(({ id }) => id === 'mod_forum-post');
}
}
/**