diff --git a/src/addon/mod/book/components/components.module.ts b/src/addon/mod/book/components/components.module.ts
index 54e83ef50..4cc338b6e 100644
--- a/src/addon/mod/book/components/components.module.ts
+++ b/src/addon/mod/book/components/components.module.ts
@@ -20,6 +20,7 @@ import { CoreComponentsModule } from '@components/components.module';
import { CoreDirectivesModule } from '@directives/directives.module';
import { CoreCourseComponentsModule } from '@core/course/components/components.module';
import { AddonModBookIndexComponent } from './index/index';
+import { CoreTagComponentsModule } from '@core/tag/components/components.module';
@NgModule({
declarations: [
@@ -31,7 +32,8 @@ import { AddonModBookIndexComponent } from './index/index';
TranslateModule.forChild(),
CoreComponentsModule,
CoreDirectivesModule,
- CoreCourseComponentsModule
+ CoreCourseComponentsModule,
+ CoreTagComponentsModule
],
providers: [
],
diff --git a/src/addon/mod/book/components/index/addon-mod-book-index.html b/src/addon/mod/book/components/index/addon-mod-book-index.html
index 6f4e0be3a..13cc19b7e 100644
--- a/src/addon/mod/book/components/index/addon-mod-book-index.html
+++ b/src/addon/mod/book/components/index/addon-mod-book-index.html
@@ -21,6 +21,10 @@
0 && previousChapter" [next]="nextChapter > 0 && nextChapter" (action)="changeChapter($event)">
+
0">
+ {{ 'core.tag.tags' | translate }}:
+
+
0 && previousChapter" [next]="nextChapter > 0 && nextChapter" (action)="changeChapter($event)">
diff --git a/src/addon/mod/book/components/index/index.ts b/src/addon/mod/book/components/index/index.ts
index 1b154d373..569060aa3 100644
--- a/src/addon/mod/book/components/index/index.ts
+++ b/src/addon/mod/book/components/index/index.ts
@@ -19,6 +19,7 @@ import { CoreCourseProvider } from '@core/course/providers/course';
import { CoreCourseModuleMainResourceComponent } from '@core/course/classes/main-resource-component';
import { AddonModBookProvider, AddonModBookContentsMap, AddonModBookTocChapter } from '../../providers/book';
import { AddonModBookPrefetchHandler } from '../../providers/prefetch-handler';
+import { CoreTagProvider } from '@core/tag/providers/tag';
/**
* Component that displays a book.
@@ -34,6 +35,7 @@ export class AddonModBookIndexComponent extends CoreCourseModuleMainResourceComp
chapterContent: string;
previousChapter: string;
nextChapter: string;
+ tagsEnabled: boolean;
protected chapters: AddonModBookTocChapter[];
protected currentChapter: string;
@@ -41,7 +43,7 @@ export class AddonModBookIndexComponent extends CoreCourseModuleMainResourceComp
constructor(injector: Injector, private bookProvider: AddonModBookProvider, private courseProvider: CoreCourseProvider,
private appProvider: CoreAppProvider, private prefetchDelegate: AddonModBookPrefetchHandler,
- private modalCtrl: ModalController, @Optional() private content: Content) {
+ private modalCtrl: ModalController, private tagProvider: CoreTagProvider, @Optional() private content: Content) {
super(injector);
}
@@ -51,6 +53,8 @@ export class AddonModBookIndexComponent extends CoreCourseModuleMainResourceComp
ngOnInit(): void {
super.ngOnInit();
+ this.tagsEnabled = this.tagProvider.areTagsAvailableInSite();
+
this.loadContent();
}
diff --git a/src/addon/mod/book/providers/book.ts b/src/addon/mod/book/providers/book.ts
index 1655ed164..74fd32706 100644
--- a/src/addon/mod/book/providers/book.ts
+++ b/src/addon/mod/book/providers/book.ts
@@ -24,6 +24,7 @@ import { CoreUtilsProvider } from '@providers/utils/utils';
import { CoreCourseProvider } from '@core/course/providers/course';
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
import { CoreSite } from '@classes/site';
+import { CoreTagItem } from '@core/tag/providers/tag';
/**
* A book chapter inside the toc list.
@@ -52,7 +53,13 @@ export interface AddonModBookTocChapter {
* Map of book contents. For each chapter it has its index URL and the list of paths of the files the chapter has. Each path
* is identified by the relative path in the book, and the value is the URL of the file.
*/
-export type AddonModBookContentsMap = {[chapter: string]: {indexUrl?: string, paths: {[path: string]: string}}};
+export type AddonModBookContentsMap = {
+ [chapter: string]: {
+ indexUrl?: string,
+ paths: {[path: string]: string},
+ tags?: CoreTagItem[]
+ }
+};
/**
* Service that provides some features for books.
@@ -203,8 +210,9 @@ export class AddonModBookProvider {
map[chapter] = map[chapter] || { paths: {} };
if (content.filename == 'index.html' && filepathIsChapter) {
- // Index of the chapter, set indexUrl of the chapter.
+ // Index of the chapter, set indexUrl and tags of the chapter.
map[chapter].indexUrl = content.fileurl;
+ map[chapter].tags = content.tags;
} else {
if (filepathIsChapter) {
// It's a file in the root folder OR the WS isn't returning the filepath as it should (MDL-53671).