diff --git a/src/addon/messages/components/contacts/addon-messages-contacts.html b/src/addon/messages/components/contacts/addon-messages-contacts.html
index 06123d70c..a531c3391 100644
--- a/src/addon/messages/components/contacts/addon-messages-contacts.html
+++ b/src/addon/messages/components/contacts/addon-messages-contacts.html
@@ -18,12 +18,12 @@
-
+
-
+
diff --git a/src/addon/messages/components/discussions/addon-messages-discussions.html b/src/addon/messages/components/discussions/addon-messages-discussions.html
index cade6e7c3..5fcb5dfcc 100644
--- a/src/addon/messages/components/discussions/addon-messages-discussions.html
+++ b/src/addon/messages/components/discussions/addon-messages-discussions.html
@@ -16,17 +16,17 @@
{{ 'core.searchresults' | translate }}
{{ search.results.length }}
-
+
-
+
-
+
@@ -38,7 +38,7 @@
-
+
diff --git a/src/addon/mod/assign/components/submission/addon-mod-assign-submission.html b/src/addon/mod/assign/components/submission/addon-mod-assign-submission.html
index 11becfd51..7c43e3561 100644
--- a/src/addon/mod/assign/components/submission/addon-mod-assign-submission.html
+++ b/src/addon/mod/assign/components/submission/addon-mod-assign-submission.html
@@ -201,14 +201,14 @@
-
+
{{ 'addon.mod_assign.gradedby' | translate }}
{{ grader.fullname }}
{{ feedback.gradeddate * 1000 | coreFormatDate:"dfmediumdate" }}
-
+
diff --git a/src/addon/mod/assign/submission/comments/component/addon-mod-assign-submission-comments.html b/src/addon/mod/assign/submission/comments/component/addon-mod-assign-submission-comments.html
index e259a78fc..07a5ae68e 100644
--- a/src/addon/mod/assign/submission/comments/component/addon-mod-assign-submission-comments.html
+++ b/src/addon/mod/assign/submission/comments/component/addon-mod-assign-submission-comments.html
@@ -1,4 +1,4 @@
-
+
{{plugin.name}}
-
+
diff --git a/src/addon/mod/feedback/components/index/addon-mod-feedback-index.html b/src/addon/mod/feedback/components/index/addon-mod-feedback-index.html
index 4f202fd92..2d6339728 100644
--- a/src/addon/mod/feedback/components/index/addon-mod-feedback-index.html
+++ b/src/addon/mod/feedback/components/index/addon-mod-feedback-index.html
@@ -51,13 +51,13 @@
{{groupOpt.name}}
-
+
{{ 'addon.mod_feedback.completed_feedbacks' | translate }}
{{feedback.completedCount}}
-
-
+
+
{{ 'addon.mod_feedback.show_nonrespondents' | translate }}
-
+
{{ 'addon.mod_feedback.questions' | translate }}
{{feedback.itemsCount}}
diff --git a/src/addon/mod/glossary/components/index/addon-mod-glossary-index.html b/src/addon/mod/glossary/components/index/addon-mod-glossary-index.html
index 6f34f15c7..adf3b4689 100644
--- a/src/addon/mod/glossary/components/index/addon-mod-glossary-index.html
+++ b/src/addon/mod/glossary/components/index/addon-mod-glossary-index.html
@@ -36,9 +36,9 @@
{{ 'addon.mod_glossary.entriestobesynced' | translate }}
-
+
{{entry.concept}}
-
+
0">
@@ -48,9 +48,9 @@
{{getDivider(entry)}}
-
+
{{entry.concept}}
-
+
diff --git a/src/addon/mod/workshop/components/assessment/addon-mod-workshop-assessment.html b/src/addon/mod/workshop/components/assessment/addon-mod-workshop-assessment.html
index d277f8eb7..56f433a49 100644
--- a/src/addon/mod/workshop/components/assessment/addon-mod-workshop-assessment.html
+++ b/src/addon/mod/workshop/components/assessment/addon-mod-workshop-assessment.html
@@ -1,5 +1,5 @@
-
+
@@ -23,5 +23,5 @@
{{ 'core.notsent' | translate }}
-
+
diff --git a/src/addon/mod/workshop/components/index/addon-mod-workshop-index.html b/src/addon/mod/workshop/components/index/addon-mod-workshop-index.html
index 2da593043..b403cfab9 100644
--- a/src/addon/mod/workshop/components/index/addon-mod-workshop-index.html
+++ b/src/addon/mod/workshop/components/index/addon-mod-workshop-index.html
@@ -15,11 +15,11 @@
-
+
{{ phases[selectedPhase].title }}
{{ 'addon.mod_workshop.userplancurrentphase' | translate }}
-
+
{{ 'addon.mod_workshop.switchphase' + selectedPhase | translate }}
@@ -28,7 +28,7 @@
-
+
@@ -37,7 +37,7 @@
{{task.title}}
-
+
@@ -102,12 +102,12 @@
-
+
{{ 'addon.mod_workshop.yoursubmission' | translate }}
-
-
+
+
{{ 'addon.mod_workshop.assignedassessments' | translate }}
-
+
@@ -123,14 +123,14 @@
{{ 'addon.mod_workshop.yourgrades' | translate }}
-
+
{{ 'addon.mod_workshop.submissiongrade' | translate }}
-
-
+
+
{{ 'addon.mod_workshop.gradinggrade' | translate }}
-
+
diff --git a/src/addon/mod/workshop/components/submission/addon-mod-workshop-submission.html b/src/addon/mod/workshop/components/submission/addon-mod-workshop-submission.html
index b2cda93ed..8e142ba0b 100644
--- a/src/addon/mod/workshop/components/submission/addon-mod-workshop-submission.html
+++ b/src/addon/mod/workshop/components/submission/addon-mod-workshop-submission.html
@@ -47,7 +47,7 @@
-
+
@@ -78,5 +78,5 @@
{{ 'core.notsent' | translate }}
{{ 'core.deletedoffline' | translate }}
-
+
diff --git a/src/classes/site.ts b/src/classes/site.ts
index ce3693047..e6190d4c0 100644
--- a/src/classes/site.ts
+++ b/src/classes/site.ts
@@ -376,7 +376,10 @@ export class CoreSite {
* @param {any} Config.
*/
setConfig(config: any): void {
- config.tool_mobile_disabledfeatures = this.textUtils.treatDisabledFeatures(config.tool_mobile_disabledfeatures);
+ if (config) {
+ config.tool_mobile_disabledfeatures = this.textUtils.treatDisabledFeatures(config.tool_mobile_disabledfeatures);
+ }
+
this.config = config;
this.calculateOfflineDisabled();
}
diff --git a/src/core/course/components/format/core-course-format.html b/src/core/course/components/format/core-course-format.html
index c3dc312e4..95704b721 100644
--- a/src/core/course/components/format/core-course-format.html
+++ b/src/core/course/components/format/core-course-format.html
@@ -1,3 +1,10 @@
+
+
+
+
+
+
+
diff --git a/src/core/course/pages/section-selector/section-selector.html b/src/core/course/pages/section-selector/section-selector.html
index d96876437..3f24ebe7d 100644
--- a/src/core/course/pages/section-selector/section-selector.html
+++ b/src/core/course/pages/section-selector/section-selector.html
@@ -10,10 +10,10 @@
-
+
{{ 'core.course.nocontentavailable' | translate }}
-
+
diff --git a/src/core/course/pages/section/section.ts b/src/core/course/pages/section/section.ts
index 492266caf..9c3bb2e47 100644
--- a/src/core/course/pages/section/section.ts
+++ b/src/core/course/pages/section/section.ts
@@ -209,7 +209,7 @@ export class CoreCourseSectionPage implements OnDestroy {
// Get the overview files.
if (this.course.overviewfiles) {
this.course.imageThumb = this.course.overviewfiles[0] && this.course.overviewfiles[0].fileurl;
- } else {
+ } else if (this.coursesProvider.isGetCoursesByFieldAvailable()) {
promises.push(this.coursesProvider.getCoursesByField('id', this.course.id).then((coursesInfo) => {
if (coursesInfo[0] && coursesInfo[0].overviewfiles && coursesInfo[0].overviewfiles[0]) {
this.course.imageThumb = coursesInfo[0].overviewfiles[0].fileurl;
diff --git a/src/core/course/providers/default-format.ts b/src/core/course/providers/default-format.ts
index 10919e155..f83dd2057 100644
--- a/src/core/course/providers/default-format.ts
+++ b/src/core/course/providers/default-format.ts
@@ -97,6 +97,15 @@ export class CoreCourseFormatDefaultHandler implements CoreCourseFormatHandler {
* @return {any|Promise} Current section (or promise resolved with current section).
*/
getCurrentSection(course: any, sections: any[]): any | Promise {
+ if (!this.coursesProvider.isGetCoursesByFieldAvailable()) {
+ // Cannot get the current section, return the first one.
+ if (sections[0].id != CoreCourseProvider.ALL_SECTIONS_ID) {
+ return sections[0];
+ }
+
+ return sections[1];
+ }
+
// We need the "marker" to determine the current section.
return this.coursesProvider.getCoursesByField('id', course.id).catch(() => {
// Ignore errors.
diff --git a/src/core/course/providers/helper.ts b/src/core/course/providers/helper.ts
index 9956ac920..46f026e67 100644
--- a/src/core/course/providers/helper.ts
+++ b/src/core/course/providers/helper.ts
@@ -1007,7 +1007,9 @@ export class CoreCourseHelperProvider {
});
// Prefetch other data needed to render the course.
- promises.push(this.coursesProvider.getCoursesByField('id', course.id));
+ if (this.coursesProvider.isGetCoursesByFieldAvailable()) {
+ promises.push(this.coursesProvider.getCoursesByField('id', course.id));
+ }
promises.push(this.courseProvider.getActivitiesCompletionStatus(course.id));
return this.utils.allPromises(promises);
diff --git a/src/core/course/providers/options-delegate.ts b/src/core/course/providers/options-delegate.ts
index 32357a8da..29875d827 100644
--- a/src/core/course/providers/options-delegate.ts
+++ b/src/core/course/providers/options-delegate.ts
@@ -395,7 +395,9 @@ export class CoreCourseOptionsDelegate extends CoreDelegate {
* @return {Promise} Promise resolved when done.
*/
protected loadCourseOptions(course: any, refresh?: boolean): Promise {
- if (typeof course.navOptions == 'undefined' || typeof course.admOptions == 'undefined' || refresh) {
+ if (this.coursesProvider.canGetAdminAndNavOptions() &&
+ (typeof course.navOptions == 'undefined' || typeof course.admOptions == 'undefined' || refresh)) {
+
return this.coursesProvider.getCoursesAdminAndNavOptions([course.id]).then((options) => {
course.navOptions = options.navOptions[course.id];
course.admOptions = options.admOptions[course.id];
diff --git a/src/core/courses/pages/my-courses/my-courses.ts b/src/core/courses/pages/my-courses/my-courses.ts
index 47c28dec8..72ba51a12 100644
--- a/src/core/courses/pages/my-courses/my-courses.ts
+++ b/src/core/courses/pages/my-courses/my-courses.ts
@@ -96,7 +96,7 @@ export class CoreCoursesMyCoursesPage implements OnDestroy {
this.courseIds = courseIds.join(',');
- if (this.courseIds) {
+ if (this.courseIds && this.coursesProvider.isGetCoursesByFieldAvailable()) {
// Load course image of all the courses.
promises.push(this.coursesProvider.getCoursesByField('ids', this.courseIds).then((coursesInfo) => {
coursesInfo = this.utils.arrayToObject(coursesInfo, 'id');
@@ -111,12 +111,14 @@ export class CoreCoursesMyCoursesPage implements OnDestroy {
}));
}
- promises.push(this.coursesProvider.getCoursesAdminAndNavOptions(courseIds).then((options) => {
- courses.forEach((course) => {
- course.navOptions = options.navOptions[course.id];
- course.admOptions = options.admOptions[course.id];
- });
- }));
+ if (this.coursesProvider.canGetAdminAndNavOptions()) {
+ promises.push(this.coursesProvider.getCoursesAdminAndNavOptions(courseIds).then((options) => {
+ courses.forEach((course) => {
+ course.navOptions = options.navOptions[course.id];
+ course.admOptions = options.admOptions[course.id];
+ });
+ }));
+ }
return Promise.all(promises).then(() => {
this.courses = courses;
diff --git a/src/core/courses/pages/my-overview/my-overview.ts b/src/core/courses/pages/my-overview/my-overview.ts
index a698ff34b..7062b90e6 100644
--- a/src/core/courses/pages/my-overview/my-overview.ts
+++ b/src/core/courses/pages/my-overview/my-overview.ts
@@ -223,17 +223,19 @@ export class CoreCoursesMyOverviewPage implements OnDestroy {
return course.id;
});
- // Load course options of the course.
- promises.push(this.coursesProvider.getCoursesAdminAndNavOptions(courseIds).then((options) => {
- courses.forEach((course) => {
- course.navOptions = options.navOptions[course.id];
- course.admOptions = options.admOptions[course.id];
- });
- }));
+ if (this.coursesProvider.canGetAdminAndNavOptions()) {
+ // Load course options of the course.
+ promises.push(this.coursesProvider.getCoursesAdminAndNavOptions(courseIds).then((options) => {
+ courses.forEach((course) => {
+ course.navOptions = options.navOptions[course.id];
+ course.admOptions = options.admOptions[course.id];
+ });
+ }));
+ }
this.courseIds = courseIds.join(',');
- if (this.courseIds) {
+ if (this.courseIds && this.coursesProvider.isGetCoursesByFieldAvailable()) {
// Load course image of all the courses.
promises.push(this.coursesProvider.getCoursesByField('ids', this.courseIds).then((coursesInfo) => {
coursesInfo = this.utils.arrayToObject(coursesInfo, 'id');
diff --git a/src/core/courses/providers/courses.ts b/src/core/courses/providers/courses.ts
index 797f0a5ee..05629e1f1 100644
--- a/src/core/courses/providers/courses.ts
+++ b/src/core/courses/providers/courses.ts
@@ -33,6 +33,16 @@ export class CoreCoursesProvider {
this.logger = logger.getInstance('CoreCoursesProvider');
}
+ /**
+ * Whether current site supports getting course options.
+ *
+ * @return {boolean} Whether current site supports getting course options.
+ */
+ canGetAdminAndNavOptions(): boolean {
+ return this.sitesProvider.wsAvailableInCurrentSite('core_course_get_user_navigation_options') &&
+ this.sitesProvider.wsAvailableInCurrentSite('core_course_get_user_administration_options');
+ }
+
/**
* Get categories. They can be filtered by id.
*
diff --git a/src/core/login/pages/sites/sites.html b/src/core/login/pages/sites/sites.html
index 22cae12bf..bebed6b2c 100644
--- a/src/core/login/pages/sites/sites.html
+++ b/src/core/login/pages/sites/sites.html
@@ -11,7 +11,7 @@
-
+
@@ -22,7 +22,7 @@
-
+