forked from CIT/Vmeda.Online
		
	MOBILE-2851 user: Fix user not enrolled message
This commit is contained in:
		
							parent
							
								
									f45d37cf0a
								
							
						
					
					
						commit
						f20e34db5c
					
				| @ -1266,9 +1266,11 @@ | ||||
|   "core.course.activitynotyetviewablesiteupgradeneeded": "local_moodlemobileapp", | ||||
|   "core.course.allsections": "local_moodlemobileapp", | ||||
|   "core.course.askadmintosupport": "local_moodlemobileapp", | ||||
|   "core.course.availablespace": "local_moodlemobileapp", | ||||
|   "core.course.confirmdeletemodulefiles": "local_moodlemobileapp", | ||||
|   "core.course.confirmdownload": "local_moodlemobileapp", | ||||
|   "core.course.confirmdownloadunknownsize": "local_moodlemobileapp", | ||||
|   "core.course.confirmlimiteddownload": "local_moodlemobileapp", | ||||
|   "core.course.confirmpartialdownloadsize": "local_moodlemobileapp", | ||||
|   "core.course.contents": "local_moodlemobileapp", | ||||
|   "core.course.couldnotloadsectioncontent": "local_moodlemobileapp", | ||||
| @ -1280,6 +1282,8 @@ | ||||
|   "core.course.errorgetmodule": "local_moodlemobileapp", | ||||
|   "core.course.hiddenfromstudents": "moodle", | ||||
|   "core.course.hiddenoncoursepage": "moodle", | ||||
|   "core.course.insufficientavailablequota": "local_moodlemobileapp", | ||||
|   "core.course.insufficientavailablespace": "local_moodlemobileapp", | ||||
|   "core.course.manualcompletionnotsynced": "local_moodlemobileapp", | ||||
|   "core.course.nocontentavailable": "local_moodlemobileapp", | ||||
|   "core.course.overriddennotice": "grades", | ||||
| @ -1586,6 +1590,7 @@ | ||||
|   "core.nopermissions": "error", | ||||
|   "core.noresults": "moodle", | ||||
|   "core.notapplicable": "local_moodlemobileapp", | ||||
|   "core.notenrolledprofile": "moodle", | ||||
|   "core.notice": "moodle", | ||||
|   "core.notingroup": "moodle", | ||||
|   "core.notsent": "local_moodlemobileapp", | ||||
|  | ||||
| @ -72,7 +72,7 @@ export class AddonNotesUserHandler implements CoreUserProfileHandler { | ||||
|     isEnabledForUser(user: any, courseId: number, navOptions?: any, admOptions?: any): boolean | Promise<boolean> { | ||||
|         // Active course required.
 | ||||
|         if (!courseId || user.id == this.sitesProvider.getCurrentSiteUserId()) { | ||||
|             return Promise.resolve(false); | ||||
|             return false; | ||||
|         } | ||||
| 
 | ||||
|         if (typeof this.noteEnabledCache[courseId] != 'undefined') { | ||||
|  | ||||
| @ -1590,6 +1590,7 @@ | ||||
|     "core.nopermissions": "Sorry, but you do not currently have permissions to do that ({{$a}}).", | ||||
|     "core.noresults": "No results", | ||||
|     "core.notapplicable": "n/a", | ||||
|     "core.notenrolledprofile": "This profile is not available because this user is not enrolled in this course.", | ||||
|     "core.notice": "Notice", | ||||
|     "core.notingroup": "Sorry, but you need to be part of a group to see this page.", | ||||
|     "core.notsent": "Not sent", | ||||
|  | ||||
| @ -8,7 +8,7 @@ | ||||
|         <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content> | ||||
|     </ion-refresher> | ||||
|     <core-loading [hideUntil]="userLoaded"> | ||||
|         <ion-list *ngIf="user && !isDeleted"> | ||||
|         <ion-list *ngIf="user && !isDeleted && isEnrolled"> | ||||
|             <ion-item text-center> | ||||
|                 <ion-avatar core-user-avatar class="item-avatar-center" [user]="user" [userId]="user.id" [linkProfile]="false" [checkOnline]="true"> | ||||
|                     <ion-icon name="create" class="core-icon-foreground" *ngIf="canChangeProfilePicture" (click)="changeProfilePicture()"></ion-icon> | ||||
| @ -58,8 +58,9 @@ | ||||
|                 </button> | ||||
|             </ion-item> | ||||
|         </ion-list> | ||||
|         <core-empty-box *ngIf="!user && !isDeleted" icon="person" [message]=" 'core.user.detailsnotavailable' | translate"></core-empty-box> | ||||
|         <core-empty-box *ngIf="!user && !isDeleted && isEnrolled" icon="person" [message]=" 'core.user.detailsnotavailable' | translate"></core-empty-box> | ||||
| 
 | ||||
|         <core-empty-box *ngIf="isDeleted" icon="person" [message]="'core.userdeleted' | translate"></core-empty-box> | ||||
|         <core-empty-box *ngIf="!isEnrolled" icon="person" [message]="'core.notenrolledprofile' | translate"></core-empty-box> | ||||
|     </core-loading> | ||||
| </ion-content> | ||||
| @ -46,6 +46,7 @@ export class CoreUserProfilePage { | ||||
|     user: any; | ||||
|     title: string; | ||||
|     isDeleted = false; | ||||
|     isEnrolled = true; | ||||
|     canChangeProfilePicture = false; | ||||
|     actionHandlers: CoreUserProfileHandlerData[] = []; | ||||
|     newPageHandlers: CoreUserProfileHandlerData[] = []; | ||||
| @ -85,6 +86,7 @@ export class CoreUserProfilePage { | ||||
|         this.fetchUser().then(() => { | ||||
|             return this.userProvider.logView(this.userId, this.courseId).catch((error) => { | ||||
|                 this.isDeleted = error.errorcode === 'userdeleted'; | ||||
|                 this.isEnrolled = error.errorcode !== 'notenrolledprofile'; | ||||
|             }); | ||||
|         }).finally(() => { | ||||
|             this.userLoaded = true; | ||||
|  | ||||
| @ -16,6 +16,7 @@ import { Injectable } from '@angular/core'; | ||||
| import { NavController } from 'ionic-angular'; | ||||
| import { CoreDelegate, CoreDelegateHandler } from '@classes/delegate'; | ||||
| import { CoreCoursesProvider } from '@core/courses/providers/courses'; | ||||
| import { CoreUtilsProvider } from '@providers/utils/utils'; | ||||
| import { CoreLoggerProvider } from '@providers/logger'; | ||||
| import { CoreSitesProvider } from '@providers/sites'; | ||||
| import { CoreEventsProvider } from '@providers/events'; | ||||
| @ -173,7 +174,8 @@ export class CoreUserDelegate extends CoreDelegate { | ||||
|         }} = {}; | ||||
| 
 | ||||
|     constructor(protected loggerProvider: CoreLoggerProvider, protected sitesProvider: CoreSitesProvider, | ||||
|             private coursesProvider: CoreCoursesProvider, protected eventsProvider: CoreEventsProvider) { | ||||
|             private coursesProvider: CoreCoursesProvider, protected eventsProvider: CoreEventsProvider, | ||||
|             protected utils: CoreUtilsProvider) { | ||||
|         super('CoreUserDelegate', loggerProvider, sitesProvider, eventsProvider); | ||||
| 
 | ||||
|         eventsProvider.on(CoreUserDelegate.UPDATE_HANDLER_EVENT, (data) => { | ||||
| @ -266,8 +268,9 @@ export class CoreUserDelegate extends CoreDelegate { | ||||
|             for (const name in this.enabledHandlers) { | ||||
|                 // Checks if the handler is enabled for the user.
 | ||||
|                 const handler = <CoreUserProfileHandler> this.handlers[name], | ||||
|                     isEnabledForUser = handler.isEnabledForUser(user, courseId, navOptions, admOptions), | ||||
|                     promise = Promise.resolve(isEnabledForUser).then((enabled) => { | ||||
|                     isEnabledForUser = handler.isEnabledForUser(user, courseId, navOptions, admOptions); | ||||
| 
 | ||||
|                 promises.push(Promise.resolve(isEnabledForUser).then((enabled) => { | ||||
|                     if (enabled) { | ||||
|                         userData.handlers.push({ | ||||
|                             name: name, | ||||
| @ -275,16 +278,13 @@ export class CoreUserDelegate extends CoreDelegate { | ||||
|                             priority: handler.priority, | ||||
|                             type: handler.type || CoreUserDelegate.TYPE_NEW_PAGE | ||||
|                         }); | ||||
|                         } else { | ||||
|                             return Promise.reject(null); | ||||
|                     } | ||||
|                 }).catch(() => { | ||||
|                     // Nothing to do here, it is not enabled for this user.
 | ||||
|                     }); | ||||
|                 promises.push(promise); | ||||
|                 })); | ||||
|             } | ||||
| 
 | ||||
|             return Promise.all(promises).then(() => { | ||||
|             return this.utils.allPromises(promises).then(() => { | ||||
|                 // Sort them by priority.
 | ||||
|                 userData.handlers.sort((a, b) => { | ||||
|                     return b.priority - a.priority; | ||||
|  | ||||
| @ -48,7 +48,7 @@ export class CoreUserProfileMailHandler implements CoreUserProfileHandler { | ||||
|      */ | ||||
|     isEnabledForUser(user: any, courseId: number, navOptions?: any, admOptions?: any): boolean | Promise<boolean> { | ||||
|         // Not current user required.
 | ||||
|         return user.id != this.sitesProvider.getCurrentSite().getUserId() && user.email; | ||||
|         return user.id != this.sitesProvider.getCurrentSite().getUserId() && !!user.email; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|  | ||||
| @ -172,6 +172,7 @@ | ||||
|     "nopermissions": "Sorry, but you do not currently have permissions to do that ({{$a}}).", | ||||
|     "noresults": "No results", | ||||
|     "notapplicable": "n/a", | ||||
|     "notenrolledprofile": "This profile is not available because this user is not enrolled in this course.", | ||||
|     "notice": "Notice", | ||||
|     "notingroup": "Sorry, but you need to be part of a group to see this page.", | ||||
|     "notsent": "Not sent", | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user