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