diff --git a/src/core/block/components/components.module.ts b/src/core/block/components/components.module.ts
index 33c80abcf..70627f6bf 100644
--- a/src/core/block/components/components.module.ts
+++ b/src/core/block/components/components.module.ts
@@ -19,6 +19,7 @@ import { TranslateModule } from '@ngx-translate/core';
import { CoreDirectivesModule } from '@directives/directives.module';
import { CoreBlockComponent } from './block/block';
import { CoreBlockOnlyTitleComponent } from './only-title-block/only-title-block';
+import { CoreBlockPreRenderedComponent } from './pre-rendered-block/pre-rendered-block';
import { CoreBlockCourseBlocksComponent } from './course-blocks/course-blocks';
import { CoreComponentsModule } from '@components/components.module';
@@ -26,6 +27,7 @@ import { CoreComponentsModule } from '@components/components.module';
declarations: [
CoreBlockComponent,
CoreBlockOnlyTitleComponent,
+ CoreBlockPreRenderedComponent,
CoreBlockCourseBlocksComponent
],
imports: [
@@ -40,10 +42,12 @@ import { CoreComponentsModule } from '@components/components.module';
exports: [
CoreBlockComponent,
CoreBlockOnlyTitleComponent,
+ CoreBlockPreRenderedComponent,
CoreBlockCourseBlocksComponent
],
entryComponents: [
CoreBlockOnlyTitleComponent,
+ CoreBlockPreRenderedComponent,
CoreBlockCourseBlocksComponent
]
})
diff --git a/src/core/block/components/pre-rendered-block/core-block-pre-rendered.html b/src/core/block/components/pre-rendered-block/core-block-pre-rendered.html
new file mode 100644
index 000000000..84780cabb
--- /dev/null
+++ b/src/core/block/components/pre-rendered-block/core-block-pre-rendered.html
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/core/block/components/pre-rendered-block/pre-rendered-block.ts b/src/core/block/components/pre-rendered-block/pre-rendered-block.ts
new file mode 100644
index 000000000..0acd1712f
--- /dev/null
+++ b/src/core/block/components/pre-rendered-block/pre-rendered-block.ts
@@ -0,0 +1,40 @@
+// (C) Copyright 2015 Martin Dougiamas
+//
+// 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 { Injector, OnInit, Component } from '@angular/core';
+import { CoreBlockBaseComponent } from '../../classes/base-block-component';
+
+/**
+ * Component to render blocks with pre-rendered HTML.
+ */
+@Component({
+ selector: 'core-block-pre-rendered',
+ templateUrl: 'core-block-pre-rendered.html'
+})
+export class CoreBlockPreRenderedComponent extends CoreBlockBaseComponent implements OnInit {
+
+ constructor(injector: Injector) {
+ super(injector, 'CoreBlockPreRenderedComponent');
+ }
+
+ /**
+ * Component being initialized.
+ */
+ ngOnInit(): void {
+ super.ngOnInit();
+
+ this.fetchContentDefaultError = 'Error getting ' + this.block.contents.title + ' data.';
+ }
+
+}
diff --git a/src/core/block/providers/course-option-handler.ts b/src/core/block/providers/course-option-handler.ts
index c7e298c9c..7e38227f5 100644
--- a/src/core/block/providers/course-option-handler.ts
+++ b/src/core/block/providers/course-option-handler.ts
@@ -58,7 +58,9 @@ export class CoreBlockCourseBlocksCourseOptionHandler implements CoreCourseOptio
* @return {boolean|Promise} True or promise resolved with true if enabled.
*/
isEnabledForCourse(courseId: number, accessData: any, navOptions?: any, admOptions?: any): boolean | Promise {
- return true;
+ return this.courseProvider.getCourseBlocks(courseId).then((blocks) => {
+ return blocks && blocks.length > 0;
+ });
}
/**
diff --git a/src/core/course/providers/course.ts b/src/core/course/providers/course.ts
index bb4a55c5a..3131fc869 100644
--- a/src/core/course/providers/course.ts
+++ b/src/core/course/providers/course.ts
@@ -255,7 +255,8 @@ export class CoreCourseProvider {
getCourseBlocks(courseId: number, siteId?: string): Promise {
return this.sitesProvider.getSite(siteId).then((site) => {
const params = {
- courseid: courseId
+ courseid: courseId,
+ returncontents: 1
},
preSets: CoreSiteWSPreSets = {
cacheKey: this.getCourseBlocksCacheKey(courseId),
diff --git a/src/core/courses/providers/dashboard.ts b/src/core/courses/providers/dashboard.ts
index 24ac80e2c..beb6204d0 100644
--- a/src/core/courses/providers/dashboard.ts
+++ b/src/core/courses/providers/dashboard.ts
@@ -47,6 +47,7 @@ export class CoreCoursesDashboardProvider {
getDashboardBlocks(userId?: number, siteId?: string): Promise {
return this.sitesProvider.getSite(siteId).then((site) => {
const params = {
+ returncontents: 1
},
preSets = {
cacheKey: this.getDashboardBlocksCacheKey(userId),