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}}

-
+ @@ -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 @@ - + {{ 'core.pictureof' | translate:{$a: site.fullname} }} @@ -22,7 +22,7 @@ - +