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