MOBILE-3833 courses: Add site home link handler
parent
be28e1c2e4
commit
9514f1e719
|
@ -15,17 +15,18 @@
|
|||
import { Injectable } from '@angular/core';
|
||||
import { CoreContentLinksHandlerBase } from '@features/contentlinks/classes/base-handler';
|
||||
import { CoreContentLinksAction } from '@features/contentlinks/services/contentlinks-delegate';
|
||||
import { CoreMainMenuHomeHandlerService } from '@features/mainmenu/services/handlers/mainmenu';
|
||||
import { CoreNavigator } from '@services/navigator';
|
||||
import { makeSingleton } from '@singletons';
|
||||
import { CoreDashboardHomeHandler, CoreDashboardHomeHandlerService } from './dashboard-home';
|
||||
|
||||
/**
|
||||
* Handler to treat links to my overview.
|
||||
* Handler to treat links to dashboard.
|
||||
*/
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class CoreCoursesDashboardLinkHandlerService extends CoreContentLinksHandlerBase {
|
||||
|
||||
name = 'CoreCoursesMyOverviewLinkHandler';
|
||||
name = 'CoreCoursesDashboardLinkHandler';
|
||||
pattern = /\/my\/?$/;
|
||||
|
||||
/**
|
||||
|
@ -37,7 +38,13 @@ export class CoreCoursesDashboardLinkHandlerService extends CoreContentLinksHand
|
|||
return [{
|
||||
action: (siteId): void => {
|
||||
// Use redirect to select the tab.
|
||||
CoreNavigator.navigateToSitePath(CoreDashboardHomeHandlerService.PAGE_NAME, { siteId });
|
||||
CoreNavigator.navigateToSitePath(
|
||||
`/${CoreMainMenuHomeHandlerService.PAGE_NAME}/${CoreDashboardHomeHandlerService.PAGE_NAME}`,
|
||||
{
|
||||
siteId,
|
||||
preferCurrentTab: false,
|
||||
},
|
||||
);
|
||||
},
|
||||
}];
|
||||
}
|
||||
|
|
|
@ -20,6 +20,8 @@ import { CoreContentLinksAction } from '@features/contentlinks/services/contentl
|
|||
import { CoreSiteHome } from '../sitehome';
|
||||
import { makeSingleton } from '@singletons';
|
||||
import { CoreNavigator } from '@services/navigator';
|
||||
import { CoreSiteHomeHomeHandlerService } from './sitehome-home';
|
||||
import { CoreMainMenuHomeHandlerService } from '@features/mainmenu/services/handlers/mainmenu';
|
||||
|
||||
/**
|
||||
* Handler to treat links to site home index.
|
||||
|
@ -29,7 +31,7 @@ export class CoreSiteHomeIndexLinkHandlerService extends CoreContentLinksHandler
|
|||
|
||||
name = 'CoreSiteHomeIndexLinkHandler';
|
||||
featureName = 'CoreMainMenuDelegate_CoreSiteHome';
|
||||
pattern = /\/course\/view\.php.*([?&]id=\d+)/;
|
||||
pattern = /\/course\/view\.php.*([?&]id=\d+)|\/index\.php(\?redirect=0)?/;
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
|
@ -37,10 +39,13 @@ export class CoreSiteHomeIndexLinkHandlerService extends CoreContentLinksHandler
|
|||
getActions(): CoreContentLinksAction[] | Promise<CoreContentLinksAction[]> {
|
||||
return [{
|
||||
action: (siteId: string): void => {
|
||||
CoreNavigator.navigateToSitePath('/home/site', {
|
||||
preferCurrentTab: false,
|
||||
siteId,
|
||||
});
|
||||
CoreNavigator.navigateToSitePath(
|
||||
`/${CoreMainMenuHomeHandlerService.PAGE_NAME}/${CoreSiteHomeHomeHandlerService.PAGE_NAME}`,
|
||||
{
|
||||
preferCurrentTab: false,
|
||||
siteId,
|
||||
},
|
||||
);
|
||||
},
|
||||
}];
|
||||
}
|
||||
|
@ -51,7 +56,7 @@ export class CoreSiteHomeIndexLinkHandlerService extends CoreContentLinksHandler
|
|||
async isEnabled(siteId: string, url: string, params: Record<string, string>, courseId?: number): Promise<boolean> {
|
||||
courseId = parseInt(params.id, 10);
|
||||
if (!courseId) {
|
||||
return false;
|
||||
return url.includes('index.php');
|
||||
}
|
||||
|
||||
const site = await CoreSites.getSite(siteId);
|
||||
|
|
Loading…
Reference in New Issue