forked from EVOgeek/Vmeda.Online
		
	Merge pull request #3485 from NoelDeMartin/MOBILE-4176
MOBILE-4176: Grades improvements
This commit is contained in:
		
						commit
						4d152f93c1
					
				
							
								
								
									
										14
									
								
								.eslintrc.js
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								.eslintrc.js
									
									
									
									
									
								
							| @ -103,12 +103,22 @@ const appConfig = { | ||||
|             'error', | ||||
|             { | ||||
|                 selector: 'property', | ||||
|                 modifiers: ['readonly'], | ||||
|                 format: ['camelCase'], | ||||
|             }, | ||||
|             { | ||||
|                 selector: 'property', | ||||
|                 modifiers: ['public', 'readonly'], | ||||
|                 format: ['UPPER_CASE'], | ||||
|             }, | ||||
|             { | ||||
|                 selector: 'property', | ||||
|                 format: ['camelCase'], | ||||
|                 modifiers: ['protected', 'readonly'], | ||||
|                 format: ['UPPER_CASE'], | ||||
|             }, | ||||
|             { | ||||
|                 selector: 'property', | ||||
|                 modifiers: ['private', 'readonly'], | ||||
|                 format: ['UPPER_CASE'], | ||||
|             }, | ||||
|             { | ||||
|                 selector: 'property', | ||||
|  | ||||
							
								
								
									
										1
									
								
								.github/workflows/acceptance.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/workflows/acceptance.yml
									
									
									
									
										vendored
									
									
								
							| @ -50,6 +50,7 @@ jobs: | ||||
|       run: | | ||||
|         export MOODLE_DOCKER_WWWROOT=$GITHUB_WORKSPACE/moodle | ||||
|         cp $GITHUB_WORKSPACE/moodle-docker/config.docker-template.php $GITHUB_WORKSPACE/moodle/config.php | ||||
|         sed -i "61i\$CFG->behat_increasetimeout = 2;" $GITHUB_WORKSPACE/moodle/config.php | ||||
|         sed -i "61i\$CFG->behat_ionic_wwwroot = 'http://moodleapp';" $GITHUB_WORKSPACE/moodle/config.php | ||||
|         echo "define('TEST_MOD_BIGBLUEBUTTONBN_MOCK_SERVER', 'http://bbbmockserver/hash' . sha1(\$CFG->behat_wwwroot));" >> $GITHUB_WORKSPACE/moodle/config.php | ||||
|         $GITHUB_WORKSPACE/moodle-docker/bin/moodle-docker-compose pull | ||||
|  | ||||
| @ -30,6 +30,11 @@ import { CoreConstants } from '@/core/constants'; | ||||
| }) | ||||
| export class CoreFaIconDirective implements AfterViewInit, OnChanges { | ||||
| 
 | ||||
|     /** | ||||
|      * Object used to store whether icons exist or not during development. | ||||
|      */ | ||||
|     private static readonly DEV_ICONS_STATUS: Record<string, Promise<boolean>> = {}; | ||||
| 
 | ||||
|     @Input() name = ''; | ||||
| 
 | ||||
|     protected element: HTMLElement; | ||||
| @ -89,14 +94,7 @@ export class CoreFaIconDirective implements AfterViewInit, OnChanges { | ||||
|         const src = `assets/fonts/${font}/${library}/${iconName}.svg`; | ||||
|         this.element.setAttribute('src', src); | ||||
|         this.element.classList.add('faicon'); | ||||
| 
 | ||||
|         if (CoreConstants.BUILD.isDevelopment || CoreConstants.BUILD.isTesting) { | ||||
|             try { | ||||
|                 await Http.get(src, { responseType: 'text' }).toPromise(); | ||||
|             } catch (error) { | ||||
|                 this.logger.error(`Icon ${this.name} not found`); | ||||
|             } | ||||
|         } | ||||
|         this.validateIcon(this.name, src); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
| @ -123,4 +121,32 @@ export class CoreFaIconDirective implements AfterViewInit, OnChanges { | ||||
|         this.setIcon(); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Validate that an icon exists, or show warning otherwise (only in development and testing environments). | ||||
|      * | ||||
|      * @param name Icon name. | ||||
|      * @param src Icon source url. | ||||
|      */ | ||||
|     private validateIcon(name: string, src: string): void { | ||||
|         if (!CoreConstants.BUILD.isDevelopment && !CoreConstants.BUILD.isTesting) { | ||||
|             return; | ||||
|         } | ||||
| 
 | ||||
|         if (!(src in CoreFaIconDirective.DEV_ICONS_STATUS)) { | ||||
|             CoreFaIconDirective.DEV_ICONS_STATUS[src] = Http.get(src, { responseType: 'text' }) | ||||
|                 .toPromise() | ||||
|                 .then(() => true) | ||||
|                 .catch(() => false); | ||||
|         } | ||||
| 
 | ||||
|         // eslint-disable-next-line promise/catch-or-return
 | ||||
|         CoreFaIconDirective.DEV_ICONS_STATUS[src].then(exists => { | ||||
|             if (exists) { | ||||
|                 return; | ||||
|             } | ||||
| 
 | ||||
|             return this.logger.error(`Icon ${name} not found`); | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
|  | ||||
| @ -36,6 +36,7 @@ import { CoreNavigator } from '@services/navigator'; | ||||
| import { makeSingleton, Translate } from '@singletons'; | ||||
| import { CoreError } from '@classes/errors/error'; | ||||
| import { CoreCourseHelper } from '@features/course/services/course-helper'; | ||||
| import { CoreAppProvider } from '@services/app'; | ||||
| 
 | ||||
| export const GRADES_PAGE_NAME = 'grades'; | ||||
| 
 | ||||
| @ -136,8 +137,15 @@ export class CoreGradesHelperProvider { | ||||
|                 row.rowclass += itemNameColumn.class.indexOf('hidden') >= 0 ? ' hidden' : ''; | ||||
|                 row.rowclass += itemNameColumn.class.indexOf('dimmed_text') >= 0 ? ' dimmed_text' : ''; | ||||
| 
 | ||||
|                 if (useLegacyLayout) { | ||||
|                     content = content.replace(/<\/span>/gi, '\n'); | ||||
|                     content = CoreTextUtils.cleanTags(content); | ||||
|                 } else { | ||||
|                     // The activity type won't be included in the webservice response if behat is running.
 | ||||
|                     content = CoreAppProvider.isAutomated() ? content : content.replace(/<span[^>]+>.+?<\/span>/gi, ''); | ||||
|                     content = CoreTextUtils.cleanTags(content, true); | ||||
|                 } | ||||
| 
 | ||||
|                 name = 'gradeitem'; | ||||
|             } else if (name === 'grade') { | ||||
|                 // Add the pass/fail class if present.
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user