diff --git a/src/addons/storagemanager/services/handlers/settings.ts b/src/addons/storagemanager/services/handlers/settings.ts new file mode 100644 index 000000000..9bcaf413c --- /dev/null +++ b/src/addons/storagemanager/services/handlers/settings.ts @@ -0,0 +1,52 @@ +// (C) Copyright 2015 Moodle Pty Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { Injectable } from '@angular/core'; + +import { makeSingleton } from '@singletons'; +import { CoreSettingsHandler, CoreSettingsHandlerData } from '@features/settings/services/settings-delegate'; + +/** + * Mange storage settings handler. + */ +@Injectable({ providedIn: 'root' }) +export class AddonStorageManagerSettingsHandlerService implements CoreSettingsHandler { + + static readonly PAGE_NAME = 'storage'; + + name = 'AddonStorageManager'; + priority = 400; + + /** + * @inheritdoc + */ + async isEnabled(): Promise { + return true; + } + + /** + * @inheritdoc + */ + getDisplayData(): CoreSettingsHandlerData { + return { + icon: 'fas-archive', + title: 'addon.storagemanager.managestorage', + page: AddonStorageManagerSettingsHandlerService.PAGE_NAME, + class: 'addon-storagemanager-settings-handler', + }; + } + +} + +export const AddonStorageManagerSettingsHandler = makeSingleton(AddonStorageManagerSettingsHandlerService); diff --git a/src/addons/storagemanager/storagemanager.module.ts b/src/addons/storagemanager/storagemanager.module.ts index 2a32b1c19..187d66cdd 100644 --- a/src/addons/storagemanager/storagemanager.module.ts +++ b/src/addons/storagemanager/storagemanager.module.ts @@ -17,7 +17,10 @@ import { Routes } from '@angular/router'; import { CoreCourseOptionsDelegate } from '@features/course/services/course-options-delegate'; import { CoreMainMenuRoutingModule } from '@features/mainmenu/mainmenu-routing.module'; import { CoreMainMenuTabRoutingModule } from '@features/mainmenu/mainmenu-tab-routing.module'; +import { CoreSitePreferencesRoutingModule } from '@features/settings/pages/site/site-routing'; +import { CoreSettingsDelegate } from '@features/settings/services/settings-delegate'; import { AddonStorageManagerCourseMenuHandler } from './services/handlers/course-menu'; +import { AddonStorageManagerSettingsHandler } from './services/handlers/settings'; const routes: Routes = [ { @@ -30,6 +33,7 @@ const routes: Routes = [ imports: [ CoreMainMenuTabRoutingModule.forChild(routes), CoreMainMenuRoutingModule.forChild({ children: routes }), + CoreSitePreferencesRoutingModule.forChild(routes), ], exports: [CoreMainMenuRoutingModule], providers: [ @@ -38,6 +42,7 @@ const routes: Routes = [ multi: true, useValue: () => { CoreCourseOptionsDelegate.registerHandler(AddonStorageManagerCourseMenuHandler.instance); + CoreSettingsDelegate.registerHandler(AddonStorageManagerSettingsHandler.instance); }, }, ],