diff --git a/scripts/langindex.json b/scripts/langindex.json index 2b696380e..d5a8c1769 100644 --- a/scripts/langindex.json +++ b/scripts/langindex.json @@ -1620,8 +1620,8 @@ "core.h5p.originator": "h5p", "core.h5p.pd": "h5p", "core.h5p.pddl": "h5p", - "core.h5p.play": "local_moodlemobileapp", "core.h5p.pdm": "h5p", + "core.h5p.play": "local_moodlemobileapp", "core.h5p.resizescript": "h5p", "core.h5p.resubmitScores": "h5p", "core.h5p.reuse": "h5p", diff --git a/src/assets/lang/en.json b/src/assets/lang/en.json index 5a3093332..93693ba6f 100644 --- a/src/assets/lang/en.json +++ b/src/assets/lang/en.json @@ -1328,7 +1328,7 @@ "core.back": "Back", "core.block.blocks": "Blocks", "core.cancel": "Cancel", - "core.cannotconnect": "Cannot connect: Verify that you have correctly typed the URL and that your site uses Moodle 3.1 or later.", + "core.cannotconnect": "Cannot connect: Verify that you have correctly typed the URL and that your site uses Moodle {{$a}} or later.", "core.cannotdownloadfiles": "File downloading is disabled. Please contact your site administrator.", "core.captureaudio": "Record audio", "core.capturedimage": "Taken picture.", @@ -1670,7 +1670,6 @@ "core.login.changepasswordinstructions": "You cannot change your password in the app. Please click the following button to open the site in a web browser to change your password. Take into account you need to close the browser after changing the password as you will not be redirected to the app.", "core.login.changepasswordlogoutinstructions": "If you prefer to change site or log out, please click the following button:", "core.login.changepasswordreconnectinstructions": "Click the following button to reconnect to the site. (Take into account that if you didn't change your password successfully, you would return to the previous screen).", - "core.login.checksiteversion": "Check that your site uses Moodle 3.1 or later.", "core.login.confirmdeletesite": "Are you sure you want to delete the site {{sitename}}?", "core.login.connect": "Connect!", "core.login.connecttomoodle": "Connect to Moodle", @@ -1700,7 +1699,7 @@ "core.login.invalidaccount": "Please check your login details or ask your site administrator to check the site configuration.", "core.login.invaliddate": "Invalid date", "core.login.invalidemail": "Invalid email address", - "core.login.invalidmoodleversion": "<p>Invalid Moodle site version. The Moodle app only supports Moodle systems 3.1 onwards.</p>\n<p>You can contact your site administrators and ask them to update their Moodle system.</p>\n<p>\"Site Administrators\" are the people who manages the Moodle at your school/university/company or learning organisation. If you don't know how to contact them, please contact your teachers/trainers.</p>", + "core.login.invalidmoodleversion": "<p>Invalid Moodle site version. The Moodle app only supports Moodle systems {{$a}} onwards.</p>\n<p>You can contact your site administrators and ask them to update their Moodle system.</p>\n<p>\"Site Administrators\" are the people who manages the Moodle at your school/university/company or learning organisation. If you don't know how to contact them, please contact your teachers/trainers.</p>", "core.login.invalidsite": "The site URL is invalid.", "core.login.invalidtime": "Invalid time", "core.login.invalidurl": "Invalid URL specified", diff --git a/src/classes/site.ts b/src/classes/site.ts index 574f6be44..e7776a33c 100644 --- a/src/classes/site.ts +++ b/src/classes/site.ts @@ -212,6 +212,7 @@ export class CoreSite { 3.6: 2018120300, 3.7: 2019052000 }; + static MINIMUM_MOODLE_VERSION = 3.1; // Possible cache update frequencies. protected UPDATE_FREQUENCIES = [ @@ -657,7 +658,8 @@ export class CoreSite { const promise = this.getFromCache(method, data, preSets, false, originalData).catch(() => { if (preSets.forceOffline) { // Don't call the WS, just fail. - return Promise.reject(this.wsProvider.createFakeWSError('core.cannotconnect', true)); + return Promise.reject(this.wsProvider.createFakeWSError('core.cannotconnect', true, + {$a: CoreSite.MINIMUM_MOODLE_VERSION})); } // Call the WS. diff --git a/src/core/login/lang/en.json b/src/core/login/lang/en.json index 0e7cbf3cf..fe816b435 100644 --- a/src/core/login/lang/en.json +++ b/src/core/login/lang/en.json @@ -2,7 +2,6 @@ "auth_email": "Email-based self-registration", "authenticating": "Authenticating", "cancel": "Cancel", - "checksiteversion": "Check that your site uses Moodle 3.1 or later.", "changepassword": "Change password", "changepasswordbutton": "Open the change password page", "changepasswordhelp": "If you have problems changing your password, please contact your site administrator. \"Site Administrators\" are the people who manages the Moodle at your school/university/company or learning organisation. If you don't know how to contact them, please contact your teachers/trainers.", @@ -38,7 +37,7 @@ "invalidaccount": "Please check your login details or ask your site administrator to check the site configuration.", "invaliddate": "Invalid date", "invalidemail": "Invalid email address", - "invalidmoodleversion": "<p>Invalid Moodle site version. The Moodle app only supports Moodle systems 3.1 onwards.</p>\n<p>You can contact your site administrators and ask them to update their Moodle system.</p>\n<p>\"Site Administrators\" are the people who manages the Moodle at your school/university/company or learning organisation. If you don't know how to contact them, please contact your teachers/trainers.</p>", + "invalidmoodleversion": "<p>Invalid Moodle site version. The Moodle app only supports Moodle systems {{$a}} onwards.</p>\n<p>You can contact your site administrators and ask them to update their Moodle system.</p>\n<p>\"Site Administrators\" are the people who manages the Moodle at your school/university/company or learning organisation. If you don't know how to contact them, please contact your teachers/trainers.</p>", "invalidsite": "The site URL is invalid.", "invalidtime": "Invalid time", "invalidurl": "Invalid URL specified", diff --git a/src/lang/en.json b/src/lang/en.json index bb56a4a34..4701fe667 100644 --- a/src/lang/en.json +++ b/src/lang/en.json @@ -12,7 +12,7 @@ "areyousure": "Are you sure?", "back": "Back", "cancel": "Cancel", - "cannotconnect": "Cannot connect: Verify that you have correctly typed the URL and that your site uses Moodle 3.1 or later.", + "cannotconnect": "Cannot connect: Verify that you have correctly typed the URL and that your site uses Moodle {{$a}} or later.", "cannotdownloadfiles": "File downloading is disabled. Please contact your site administrator.", "captureaudio": "Record audio", "capturedimage": "Taken picture.", diff --git a/src/providers/sites.ts b/src/providers/sites.ts index 857a52058..0dafd3e3c 100644 --- a/src/providers/sites.ts +++ b/src/providers/sites.ts @@ -371,7 +371,7 @@ export class CoreSitesProvider { } else if (this.textUtils.getErrorMessageFromError(secondError)) { return Promise.reject(secondError); } else { - return this.translate.instant('core.cannotconnect'); + return this.translate.instant('core.cannotconnect', {$a: CoreSite.MINIMUM_MOODLE_VERSION}); } }); }); @@ -463,7 +463,8 @@ export class CoreSitesProvider { error.error = this.translate.instant('core.login.sitehasredirect'); } else { // We can't be sure if there is a redirect or not. Display cannot connect error. - error.error = this.translate.instant('core.cannotconnect'); + error.error = this.translate.instant('core.cannotconnect', + {$a: CoreSite.MINIMUM_MOODLE_VERSION}); } return Promise.reject(error); @@ -508,7 +509,7 @@ export class CoreSitesProvider { return this.http.post(siteUrl + '/login/token.php', {}).timeout(this.wsProvider.getRequestTimeout()).toPromise() .catch(() => { // Default error messages are kinda bad, return our own message. - return Promise.reject({error: this.translate.instant('core.cannotconnect')}); + return Promise.reject({error: this.translate.instant('core.cannotconnect', {$a: CoreSite.MINIMUM_MOODLE_VERSION})}); }).then((data: any) => { if (data.errorcode && (data.errorcode == 'enablewsdescription' || data.errorcode == 'requirecorrectaccess')) { @@ -550,7 +551,7 @@ export class CoreSitesProvider { return promise.then((data: any): any => { if (typeof data == 'undefined') { - return Promise.reject(this.translate.instant('core.cannotconnect')); + return Promise.reject(this.translate.instant('core.cannotconnect', {$a: CoreSite.MINIMUM_MOODLE_VERSION})); } else { if (typeof data.token != 'undefined') { return { token: data.token, siteUrl: siteUrl, privateToken: data.privatetoken }; @@ -582,7 +583,7 @@ export class CoreSitesProvider { } } }, () => { - return Promise.reject(this.translate.instant('core.cannotconnect')); + return Promise.reject(this.translate.instant('core.cannotconnect', {$a: CoreSite.MINIMUM_MOODLE_VERSION})); }); } @@ -676,7 +677,8 @@ export class CoreSitesProvider { */ protected treatInvalidAppVersion(result: number, siteUrl: string, siteId?: string): Promise<any> { let errorCode, - errorKey; + errorKey, + translateParams; switch (result) { case this.MOODLE_APP: @@ -690,6 +692,7 @@ export class CoreSitesProvider { default: errorCode = 'invalidmoodleversion'; errorKey = 'core.login.invalidmoodleversion'; + translateParams = {$a: CoreSite.MINIMUM_MOODLE_VERSION}; } let promise; @@ -702,7 +705,7 @@ export class CoreSitesProvider { return promise.then(() => { return Promise.reject({ - error: this.translate.instant(errorKey), + error: this.translate.instant(errorKey, translateParams), errorcode: errorCode, loggedout: true }); @@ -757,7 +760,7 @@ export class CoreSitesProvider { } const version31 = 2016052300, - release31 = '3.1'; + release31 = CoreSite.MINIMUM_MOODLE_VERSION; // Try to validate by version. if (info.version) { diff --git a/src/providers/ws.ts b/src/providers/ws.ts index e98455c4a..cf8aa1ef8 100644 --- a/src/providers/ws.ts +++ b/src/providers/ws.ts @@ -315,11 +315,12 @@ export class CoreWSProvider { * * @param message The message to include in the error. * @param needsTranslate If the message needs to be translated. + * @param translateParams Translation params, if needed. * @return Fake WS error. */ - createFakeWSError(message: string, needsTranslate?: boolean): CoreWSError { + createFakeWSError(message: string, needsTranslate?: boolean, translateParams?: {}): CoreWSError { if (needsTranslate) { - message = this.translate.instant(message); + message = this.translate.instant(message, translateParams); } return {