MOBILE-2061 sync: Fix errors displayed while syncing
This commit is contained in:
		
							parent
							
								
									e4248a8a44
								
							
						
					
					
						commit
						15b4b6b8d1
					
				| @ -308,7 +308,7 @@ export class AddonModAssignSyncProvider extends CoreSyncBaseProvider { | ||||
|             }).catch((error) => { | ||||
|                 if (error && this.utils.isWebServiceError(error)) { | ||||
|                     // A WebService has thrown an error, this means it cannot be submitted. Discard the submission.
 | ||||
|                     discardError = error.message || error.error || error.content || error.body; | ||||
|                     discardError = this.textUtils.getErrorMessageFromError(error); | ||||
|                 } else { | ||||
|                     // Couldn't connect to server, reject.
 | ||||
|                     return Promise.reject(error); | ||||
| @ -402,7 +402,7 @@ export class AddonModAssignSyncProvider extends CoreSyncBaseProvider { | ||||
|                 }).catch((error) => { | ||||
|                     if (error && this.utils.isWebServiceError(error)) { | ||||
|                         // The WebService has thrown an error, this means it cannot be submitted. Discard the offline data.
 | ||||
|                         discardError = error.message || error.error || error.content || error.body; | ||||
|                         discardError = this.textUtils.getErrorMessageFromError(error); | ||||
|                     } else { | ||||
|                         // Couldn't connect to server, reject.
 | ||||
|                     return Promise.reject(error); | ||||
|  | ||||
| @ -176,7 +176,7 @@ export class AddonModChoiceSyncProvider extends CoreSyncBaseProvider { | ||||
|                         result.warnings.push(this.translate.instant('core.warningofflinedatadeleted', { | ||||
|                             component: this.componentTranslate, | ||||
|                             name: data.name, | ||||
|                             error: error.error | ||||
|                             error: this.textUtils.getErrorMessageFromError(error) | ||||
|                         })); | ||||
|                     }); | ||||
|                 } | ||||
|  | ||||
| @ -295,10 +295,10 @@ export class AddonModDataSyncProvider extends CoreSyncBaseProvider { | ||||
|                 promises.push(actionPromise.catch((error) => { | ||||
|                     if (error && error.wserror) { | ||||
|                         // The WebService has thrown an error, this means it cannot be performed. Discard.
 | ||||
|                         discardError = error.error; | ||||
|                         discardError = this.textUtils.getErrorMessageFromError(error); | ||||
|                     } else { | ||||
|                         // Couldn't connect to server, reject.
 | ||||
|                         return Promise.reject(error && error.error); | ||||
|                         return Promise.reject(error); | ||||
|                     } | ||||
|                 }).then(() => { | ||||
|                     // Delete the offline data.
 | ||||
|  | ||||
| @ -251,12 +251,12 @@ export class AddonModFeedbackSyncProvider extends CoreSyncBaseProvider { | ||||
|                     result.warnings.push(this.translate.instant('core.warningofflinedatadeleted', { | ||||
|                         component: this.componentTranslate, | ||||
|                         name: feedback.name, | ||||
|                         error: error.error | ||||
|                         error: this.textUtils.getErrorMessageFromError(error) | ||||
|                     })); | ||||
|                 }); | ||||
|             } else { | ||||
|                 // Couldn't connect to server, reject.
 | ||||
|                 return Promise.reject(error && error.error); | ||||
|                 return Promise.reject(error); | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
|  | ||||
| @ -227,7 +227,7 @@ export class AddonModForumSyncProvider extends CoreSyncBaseProvider { | ||||
|                             result.warnings.push(this.translate.instant('core.warningofflinedatadeleted', { | ||||
|                                 component: this.componentTranslate, | ||||
|                                 name: data.name, | ||||
|                                 error: error.error | ||||
|                                 error: this.textUtils.getErrorMessageFromError(error) | ||||
|                             })); | ||||
|                         }); | ||||
|                     } else { | ||||
| @ -399,7 +399,7 @@ export class AddonModForumSyncProvider extends CoreSyncBaseProvider { | ||||
|                             result.warnings.push(this.translate.instant('core.warningofflinedatadeleted', { | ||||
|                                 component: this.componentTranslate, | ||||
|                                 name: data.name, | ||||
|                                 error: error.error | ||||
|                                 error: this.textUtils.getErrorMessageFromError(error) | ||||
|                             })); | ||||
|                         }); | ||||
|                     } else { | ||||
|  | ||||
| @ -198,7 +198,7 @@ export class AddonModGlossarySyncProvider extends CoreSyncBaseProvider { | ||||
|                             result.warnings.push(this.translate.instant('core.warningofflinedatadeleted', { | ||||
|                                 component: this.componentTranslate, | ||||
|                                 name: data.concept, | ||||
|                                 error: error.error | ||||
|                                 error: this.textUtils.getErrorMessageFromError(error) | ||||
|                             })); | ||||
|                         }); | ||||
|                     } else { | ||||
|  | ||||
| @ -401,7 +401,7 @@ export class AddonModLessonSyncProvider extends CoreSyncBaseProvider { | ||||
|                                 result.warnings.push(this.translate.instant('core.warningofflinedatadeleted', { | ||||
|                                     component: this.componentTranslate, | ||||
|                                     name: lesson.name, | ||||
|                                     error: error | ||||
|                                     error: this.textUtils.getErrorMessageFromError(error) | ||||
|                                 })); | ||||
|                             }); | ||||
|                         } else { | ||||
| @ -485,7 +485,7 @@ export class AddonModLessonSyncProvider extends CoreSyncBaseProvider { | ||||
|                     result.warnings.push(this.translate.instant('core.warningofflinedatadeleted', { | ||||
|                         component: this.componentTranslate, | ||||
|                         name: lesson.name, | ||||
|                         error: error | ||||
|                         error: this.textUtils.getErrorMessageFromError(error) | ||||
|                     })); | ||||
|                 }); | ||||
|             } else { | ||||
|  | ||||
| @ -173,13 +173,13 @@ export class AddonModSurveySyncProvider extends CoreSyncBaseProvider { | ||||
|                         result.warnings.push(this.translate.instant('core.warningofflinedatadeleted', { | ||||
|                             component: this.componentTranslate, | ||||
|                             name: data.name, | ||||
|                             error: error.error | ||||
|                             error: this.textUtils.getErrorMessageFromError(error) | ||||
|                         })); | ||||
|                     }); | ||||
|                 } | ||||
| 
 | ||||
|                 // Couldn't connect to server, reject.
 | ||||
|                 return Promise.reject(error && error.error); | ||||
|                 return Promise.reject(error); | ||||
|             }); | ||||
|         }).then(() => { | ||||
|             if (courseId) { | ||||
|  | ||||
| @ -291,7 +291,7 @@ export class AddonModWikiSyncProvider extends CoreSyncBaseProvider { | ||||
|                             const warning = this.translate.instant('core.warningofflinedatadeleted', { | ||||
|                                 component: this.translate.instant('addon.mod_wiki.wikipage'), | ||||
|                                 name: page.title, | ||||
|                                 error: error | ||||
|                                 error: this.textUtils.getErrorMessageFromError(error) | ||||
|                             }); | ||||
| 
 | ||||
|                             result.discarded.push({ | ||||
|  | ||||
| @ -340,7 +340,7 @@ export class AddonModWorkshopSyncProvider extends CoreSyncBaseProvider { | ||||
|                     }).catch((error) => { | ||||
|                         if (error && this.utils.isWebServiceError(error)) { | ||||
|                             // The WebService has thrown an error, this means it cannot be performed. Discard.
 | ||||
|                             discardError = error.message || error.error; | ||||
|                             discardError = this.textUtils.getErrorMessageFromError(error); | ||||
|                         } else { | ||||
|                             // Couldn't connect to server, reject.
 | ||||
|                             return Promise.reject(error); | ||||
| @ -421,7 +421,7 @@ export class AddonModWorkshopSyncProvider extends CoreSyncBaseProvider { | ||||
|             }).catch((error) => { | ||||
|                 if (error && this.utils.isWebServiceError(error)) { | ||||
|                     // The WebService has thrown an error, this means it cannot be performed. Discard.
 | ||||
|                     discardError = error.message || error.error; | ||||
|                     discardError = this.textUtils.getErrorMessageFromError(error); | ||||
|                 } else { | ||||
|                     // Couldn't connect to server, reject.
 | ||||
|                     return Promise.reject(error); | ||||
| @ -480,10 +480,10 @@ export class AddonModWorkshopSyncProvider extends CoreSyncBaseProvider { | ||||
|                 evaluate.gradeover, siteId).catch((error) => { | ||||
|                 if (error && this.utils.isWebServiceError(error)) { | ||||
|                     // The WebService has thrown an error, this means it cannot be performed. Discard.
 | ||||
|                     discardError = error.message || error.error; | ||||
|                     discardError = this.textUtils.getErrorMessageFromError(error); | ||||
|                 } else { | ||||
|                     // Couldn't connect to server, reject.
 | ||||
|                     return Promise.reject(error && error.error); | ||||
|                     return Promise.reject(error); | ||||
|                 } | ||||
|             }).then(() => { | ||||
|                 // Delete the offline data.
 | ||||
| @ -539,10 +539,10 @@ export class AddonModWorkshopSyncProvider extends CoreSyncBaseProvider { | ||||
|                 evaluate.gradinggradeover, siteId).catch((error) => { | ||||
|                 if (error && this.utils.isWebServiceError(error)) { | ||||
|                     // The WebService has thrown an error, this means it cannot be performed. Discard.
 | ||||
|                     discardError = error.message || error.error; | ||||
|                     discardError = this.textUtils.getErrorMessageFromError(error); | ||||
|                 } else { | ||||
|                     // Couldn't connect to server, reject.
 | ||||
|                     return Promise.reject(error && error.error); | ||||
|                     return Promise.reject(error); | ||||
|                 } | ||||
|             }).then(() => { | ||||
|                 // Delete the offline data.
 | ||||
|  | ||||
| @ -145,7 +145,7 @@ export class CoreCourseSyncProvider extends CoreSyncBaseProvider { | ||||
|                             // Responses deleted, add a warning.
 | ||||
|                             result.warnings.push(this.translate.instant('core.course.warningofflinemanualcompletiondeleted', { | ||||
|                                 name: entry.coursename || courseId, | ||||
|                                 error: error.error | ||||
|                                 error: this.textUtils.getErrorMessageFromError(error) | ||||
|                             })); | ||||
|                         }); | ||||
|                     } | ||||
|  | ||||
| @ -16,6 +16,7 @@ import { Injectable } from '@angular/core'; | ||||
| import { TranslateService } from '@ngx-translate/core'; | ||||
| import { CoreSitesProvider } from '@providers/sites'; | ||||
| import { CoreDomUtilsProvider } from '@providers/utils/dom'; | ||||
| import { CoreTextUtilsProvider } from '@providers/utils/text'; | ||||
| import { CoreContentLinksHandlerBase } from '@core/contentlinks/classes/base-handler'; | ||||
| import { CoreContentLinksAction } from '@core/contentlinks/providers/delegate'; | ||||
| import { CoreLoginHelperProvider } from '@core/login/providers/helper'; | ||||
| @ -34,7 +35,8 @@ export class CoreCoursesCourseLinkHandler extends CoreContentLinksHandlerBase { | ||||
| 
 | ||||
|     constructor(private sitesProvider: CoreSitesProvider, private coursesProvider: CoreCoursesProvider, | ||||
|             private loginHelper: CoreLoginHelperProvider, private domUtils: CoreDomUtilsProvider, | ||||
|             private translate: TranslateService, private courseProvider: CoreCourseProvider) { | ||||
|             private translate: TranslateService, private courseProvider: CoreCourseProvider, | ||||
|             private textUtils: CoreTextUtilsProvider) { | ||||
|         super(); | ||||
|     } | ||||
| 
 | ||||
| @ -150,7 +152,7 @@ export class CoreCoursesCourseLinkHandler extends CoreContentLinksHandlerBase { | ||||
|                     modal.dismiss(); | ||||
| 
 | ||||
|                     if (error) { | ||||
|                         error = error.message || error.error || error.content || error.body || error; | ||||
|                         error = this.textUtils.getErrorMessageFromError(error) || error; | ||||
|                     } | ||||
|                     if (!error) { | ||||
|                         error = this.translate.instant('core.courses.notenroled'); | ||||
| @ -232,7 +234,7 @@ export class CoreCoursesCourseLinkHandler extends CoreContentLinksHandlerBase { | ||||
| 
 | ||||
|                 if (typeof password != 'undefined') { | ||||
|                     // The user attempted a password. Show an error message.
 | ||||
|                     this.domUtils.showErrorModal(error.message); | ||||
|                     this.domUtils.showErrorModal(error); | ||||
|                 } | ||||
| 
 | ||||
|                 return this.domUtils.showPrompt(body, title, placeholder).then((password) => { | ||||
|  | ||||
| @ -276,7 +276,7 @@ export class CoreLoginEmailSignupPage { | ||||
|                         } | ||||
|                     }); | ||||
|                 }).catch((error) => { | ||||
|                     this.domUtils.showErrorModalDefault(error && error.error, 'core.login.usernotaddederror', true); | ||||
|                     this.domUtils.showErrorModalDefault(error, 'core.login.usernotaddederror', true); | ||||
|                 }).finally(() => { | ||||
|                     modal.dismiss(); | ||||
|                 }); | ||||
|  | ||||
| @ -70,7 +70,7 @@ export class CoreLoginForgottenPasswordPage { | ||||
|                 this.navCtrl.pop(); | ||||
|             } | ||||
|         }).catch((error) => { | ||||
|             this.domUtils.showErrorModal(error.error); | ||||
|             this.domUtils.showErrorModal(error); | ||||
|         }).finally(() => { | ||||
|             modal.dismiss(); | ||||
|         }); | ||||
|  | ||||
| @ -88,7 +88,7 @@ export class CoreLoginSitePolicyPage { | ||||
|                 this.policyLoaded = true; | ||||
|             }); | ||||
|         }).catch((error) => { | ||||
|             this.domUtils.showErrorModalDefault(error && error.error, 'Error getting site policy.'); | ||||
|             this.domUtils.showErrorModalDefault(error, 'Error getting site policy.'); | ||||
|             this.cancel(); | ||||
|         }); | ||||
|     } | ||||
| @ -118,7 +118,7 @@ export class CoreLoginSitePolicyPage { | ||||
|                 return this.loginHelper.goToSiteInitialPage(); | ||||
|             }); | ||||
|         }).catch((error) => { | ||||
|             this.domUtils.showErrorModalDefault(error.message, 'Error accepting site policy.'); | ||||
|             this.domUtils.showErrorModalDefault(error, 'Error accepting site policy.'); | ||||
|         }).finally(() => { | ||||
|             modal.dismiss(); | ||||
|         }); | ||||
|  | ||||
| @ -1001,9 +1001,9 @@ export class CoreLoginHelperProvider { | ||||
|      */ | ||||
|     treatUserTokenError(siteUrl: string, error: any): void { | ||||
|         if (error.errorcode == 'forcepasswordchangenotice') { | ||||
|             this.openChangePassword(siteUrl, error.error || error.message || error.body || error.content); | ||||
|             this.openChangePassword(siteUrl, this.textUtils.getErrorMessageFromError(error)); | ||||
|         } else if (error.errorcode == 'legacymoodleversion') { | ||||
|             this.showLegacyNoticeModal(error.error); | ||||
|             this.showLegacyNoticeModal(this.textUtils.getErrorMessageFromError(error)); | ||||
|         } else { | ||||
|             this.domUtils.showErrorModal(error); | ||||
|         } | ||||
|  | ||||
| @ -388,7 +388,7 @@ export class CoreSitesProvider { | ||||
|         const promise = this.http.post(siteUrl + '/login/token.php', data).timeout(CoreConstants.WS_TIMEOUT).toPromise(); | ||||
| 
 | ||||
|         return promise.catch((error) => { | ||||
|             return Promise.reject(error.message); | ||||
|             return Promise.reject(error); | ||||
|         }).then((data: any) => { | ||||
|             if (data.errorcode && (data.errorcode == 'enablewsdescription' || data.errorcode == 'requirecorrectaccess')) { | ||||
|                 return Promise.reject({ errorcode: data.errorcode, error: data.error }); | ||||
|  | ||||
| @ -1005,15 +1005,10 @@ export class CoreDomUtilsProvider { | ||||
|             if (error.coreCanceled) { | ||||
|                 // It's a canceled error, don't display an error.
 | ||||
|                 return; | ||||
|             } else if (typeof error.content != 'undefined') { | ||||
|                 error = error.content; | ||||
|             } else if (typeof error.body != 'undefined') { | ||||
|                 error = error.body; | ||||
|             } else if (typeof error.message != 'undefined') { | ||||
|                 error = error.message; | ||||
|             } else if (typeof error.error != 'undefined') { | ||||
|                 error = error.error; | ||||
|             } else { | ||||
|             } | ||||
| 
 | ||||
|             error = this.textUtils.getErrorMessageFromError(error); | ||||
|             if (!error) { | ||||
|                 // No common properties found, just stringify it.
 | ||||
|                 error = JSON.stringify(error); | ||||
|                 extraInfo = ''; // No need to add extra info because it's already in the error.
 | ||||
| @ -1058,7 +1053,7 @@ export class CoreDomUtilsProvider { | ||||
|         let errorMessage = error; | ||||
| 
 | ||||
|         if (error && typeof error != 'string') { | ||||
|             errorMessage = error.message || error.error || error.content || error.body; | ||||
|             errorMessage = this.textUtils.getErrorMessageFromError(error); | ||||
|         } | ||||
| 
 | ||||
|         return this.showErrorModal(typeof errorMessage == 'string' ? error : defaultError, needsTranslate, autocloseTime); | ||||
|  | ||||
| @ -400,6 +400,16 @@ export class CoreTextUtilsProvider { | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get the error message from an error object. | ||||
|      * | ||||
|      * @param {any} error Error object. | ||||
|      * @return {string} Error message, undefined if not found. | ||||
|      */ | ||||
|     getErrorMessageFromError(error: any): string { | ||||
|         return error && (error.message || error.error || error.content || error.body); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get the pluginfile URL to replace @@PLUGINFILE@@ wildcards. | ||||
|      * | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user