MOBILE-2319 competency: Moved event handlers of delegate handlers
parent
a0c57f46c0
commit
4cefb20455
|
@ -22,10 +22,6 @@ import { AddonCompetencyComponentsModule } from './components/components.module'
|
||||||
import { CoreCourseOptionsDelegate } from '@core/course/providers/options-delegate';
|
import { CoreCourseOptionsDelegate } from '@core/course/providers/options-delegate';
|
||||||
import { CoreMainMenuDelegate } from '@core/mainmenu/providers/delegate';
|
import { CoreMainMenuDelegate } from '@core/mainmenu/providers/delegate';
|
||||||
import { CoreUserDelegate } from '@core/user/providers/user-delegate';
|
import { CoreUserDelegate } from '@core/user/providers/user-delegate';
|
||||||
import { CoreUserProvider } from '@core/user/providers/user';
|
|
||||||
import { CoreEventsProvider } from '@providers/events';
|
|
||||||
import { CoreSitesProvider } from '@providers/sites';
|
|
||||||
import { CoreCoursesProvider } from '@core/courses/providers/courses';
|
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [
|
declarations: [
|
||||||
|
@ -44,24 +40,10 @@ import { CoreCoursesProvider } from '@core/courses/providers/courses';
|
||||||
export class AddonCompetencyModule {
|
export class AddonCompetencyModule {
|
||||||
constructor(mainMenuDelegate: CoreMainMenuDelegate, mainMenuHandler: AddonCompetencyMainMenuHandler,
|
constructor(mainMenuDelegate: CoreMainMenuDelegate, mainMenuHandler: AddonCompetencyMainMenuHandler,
|
||||||
courseOptionsDelegate: CoreCourseOptionsDelegate, courseOptionHandler: AddonCompetencyCourseOptionHandler,
|
courseOptionsDelegate: CoreCourseOptionsDelegate, courseOptionHandler: AddonCompetencyCourseOptionHandler,
|
||||||
userDelegate: CoreUserDelegate, userHandler: AddonCompetencyUserHandler,
|
userDelegate: CoreUserDelegate, userHandler: AddonCompetencyUserHandler) {
|
||||||
eventsProvider: CoreEventsProvider, sitesProvider: CoreSitesProvider) {
|
|
||||||
|
|
||||||
mainMenuDelegate.registerHandler(mainMenuHandler);
|
mainMenuDelegate.registerHandler(mainMenuHandler);
|
||||||
courseOptionsDelegate.registerHandler(courseOptionHandler);
|
courseOptionsDelegate.registerHandler(courseOptionHandler);
|
||||||
userDelegate.registerHandler(userHandler);
|
userDelegate.registerHandler(userHandler);
|
||||||
|
|
||||||
eventsProvider.on(CoreEventsProvider.LOGOUT, () => {
|
|
||||||
courseOptionHandler.clearCoursesNavCache();
|
|
||||||
userHandler.clearUsersNavCache();
|
|
||||||
}, sitesProvider.getCurrentSiteId());
|
|
||||||
|
|
||||||
eventsProvider.on(CoreCoursesProvider.EVENT_MY_COURSES_REFRESHED, () => {
|
|
||||||
courseOptionHandler.clearCoursesNavCache();
|
|
||||||
}, sitesProvider.getCurrentSiteId());
|
|
||||||
|
|
||||||
eventsProvider.on(CoreUserProvider.PROFILE_REFRESHED, () => {
|
|
||||||
userHandler.clearUsersNavCache();
|
|
||||||
}, sitesProvider.getCurrentSiteId());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,17 +26,8 @@ export class AddonCompetencyCourseOptionHandler implements CoreCourseOptionsHand
|
||||||
name = 'AddonCompetency';
|
name = 'AddonCompetency';
|
||||||
priority = 700;
|
priority = 700;
|
||||||
|
|
||||||
protected coursesNavEnabledCache = {};
|
|
||||||
|
|
||||||
constructor(private competencyProvider: AddonCompetencyProvider) {}
|
constructor(private competencyProvider: AddonCompetencyProvider) {}
|
||||||
|
|
||||||
/**
|
|
||||||
* Clear courses nav cache.
|
|
||||||
*/
|
|
||||||
clearCoursesNavCache(): void {
|
|
||||||
this.coursesNavEnabledCache = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether or not the handler is enabled ona site level.
|
* Whether or not the handler is enabled ona site level.
|
||||||
* @return {boolean|Promise<boolean>} Whether or not the handler is enabled on a site level.
|
* @return {boolean|Promise<boolean>} Whether or not the handler is enabled on a site level.
|
||||||
|
@ -63,15 +54,8 @@ export class AddonCompetencyCourseOptionHandler implements CoreCourseOptionsHand
|
||||||
return navOptions.competencies;
|
return navOptions.competencies;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof this.coursesNavEnabledCache[courseId] != 'undefined') {
|
|
||||||
return this.coursesNavEnabledCache[courseId];
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.competencyProvider.isPluginForCourseEnabled(courseId).then((competencies) => {
|
return this.competencyProvider.isPluginForCourseEnabled(courseId).then((competencies) => {
|
||||||
const enabled = competencies ? !competencies.canmanagecoursecompetencies : false;
|
return competencies ? !competencies.canmanagecoursecompetencies : false;
|
||||||
this.coursesNavEnabledCache[courseId] = enabled;
|
|
||||||
|
|
||||||
return enabled;
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,8 @@ import { Injectable } from '@angular/core';
|
||||||
import { CoreUserDelegate, CoreUserProfileHandler, CoreUserProfileHandlerData } from '@core/user/providers/user-delegate';
|
import { CoreUserDelegate, CoreUserProfileHandler, CoreUserProfileHandlerData } from '@core/user/providers/user-delegate';
|
||||||
import { CoreSitesProvider } from '@providers/sites';
|
import { CoreSitesProvider } from '@providers/sites';
|
||||||
import { CoreContentLinksHelperProvider } from '@core/contentlinks/providers/helper';
|
import { CoreContentLinksHelperProvider } from '@core/contentlinks/providers/helper';
|
||||||
|
import { CoreEventsProvider } from '@providers/events';
|
||||||
|
import { CoreUserProvider } from '@core/user/providers/user';
|
||||||
import { AddonCompetencyProvider } from './competency';
|
import { AddonCompetencyProvider } from './competency';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -30,13 +32,15 @@ export class AddonCompetencyUserHandler implements CoreUserProfileHandler {
|
||||||
usersNavEnabledCache = {};
|
usersNavEnabledCache = {};
|
||||||
|
|
||||||
constructor(private linkHelper: CoreContentLinksHelperProvider, protected sitesProvider: CoreSitesProvider,
|
constructor(private linkHelper: CoreContentLinksHelperProvider, protected sitesProvider: CoreSitesProvider,
|
||||||
private competencyProvider: AddonCompetencyProvider) {
|
private competencyProvider: AddonCompetencyProvider, eventsProvider: CoreEventsProvider) {
|
||||||
|
eventsProvider.on(CoreEventsProvider.LOGOUT, this.clearUsersNavCache.bind(this));
|
||||||
|
eventsProvider.on(CoreUserProvider.PROFILE_REFRESHED, this.clearUsersNavCache.bind(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clear users nav cache.
|
* Clear users nav cache.
|
||||||
*/
|
*/
|
||||||
clearUsersNavCache(): void {
|
private clearUsersNavCache(): void {
|
||||||
this.participantsNavEnabledCache = {};
|
this.participantsNavEnabledCache = {};
|
||||||
this.usersNavEnabledCache = {};
|
this.usersNavEnabledCache = {};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue