MOBILE-3631 core: Fix HTML linting
This commit is contained in:
		
							parent
							
								
									ec97894f74
								
							
						
					
					
						commit
						cf2ea354a2
					
				| @ -33,10 +33,10 @@ | |||||||
|     </core-context-menu> |     </core-context-menu> | ||||||
| </ion-item-divider> | </ion-item-divider> | ||||||
| <core-loading [hideUntil]="loaded" class="core-loading-center"> | <core-loading [hideUntil]="loaded" class="core-loading-center"> | ||||||
|     <div class="ion-padding" [hidden]="showFilter || !showSelectorFilter" class="safe-padding-horizontal"> |     <div class="ion-padding safe-padding-horizontal" [hidden]="showFilter || !showSelectorFilter"> | ||||||
|         <!-- "Time" selector. --> |         <!-- "Time" selector. --> | ||||||
|         <ion-select class="ion-text-start" [title]="'core.show' | translate" [(ngModel)]="selectedFilter" |         <ion-select class="core-button-select ion-text-start" [title]="'core.show' | translate" [(ngModel)]="selectedFilter" | ||||||
|             (ngModelChange)="selectedChanged()" interface="popover" class="core-button-select"> |             (ngModelChange)="selectedChanged()" interface="popover"> | ||||||
|             <ion-select-option value="allincludinghidden" *ngIf="showFilters.allincludinghidden != 'hidden'"> |             <ion-select-option value="allincludinghidden" *ngIf="showFilters.allincludinghidden != 'hidden'"> | ||||||
|                 {{ 'addon.block_myoverview.allincludinghidden' | translate }} |                 {{ 'addon.block_myoverview.allincludinghidden' | translate }} | ||||||
|             </ion-select-option> |             </ion-select-option> | ||||||
|  | |||||||
| @ -1,22 +1,27 @@ | |||||||
| <ion-item-divider> | <ion-item-divider> | ||||||
|     <ion-label> |     <ion-label> | ||||||
|         <h2>{{ 'addon.block_recentlyaccessedcourses.pluginname' | translate }}</h2> |         <h2>{{ 'addon.block_recentlyaccessedcourses.pluginname' | translate }}</h2> | ||||||
|         </ion-label> |     </ion-label> | ||||||
|     <div *ngIf="downloadCoursesEnabled && downloadEnabled && courses && courses.length > 1" class="core-button-spinner" slot="end"> |     <div *ngIf="downloadCoursesEnabled && downloadEnabled && courses && courses.length > 1" class="core-button-spinner" slot="end"> | ||||||
|         <ion-button *ngIf="prefetchCoursesData.icon && !prefetchCoursesData.loading" fill="clear" color="dark" (click)="prefetchCourses()"> |         <ion-button *ngIf="prefetchCoursesData.icon && !prefetchCoursesData.loading" fill="clear" color="dark" | ||||||
|  |             (click)="prefetchCourses()"> | ||||||
|             <ion-icon [name]="prefetchCoursesData.icon" slot="icon-only"> |             <ion-icon [name]="prefetchCoursesData.icon" slot="icon-only"> | ||||||
|             </ion-icon> |             </ion-icon> | ||||||
|         </ion-button> |         </ion-button> | ||||||
|         <ion-badge class="core-course-download-courses-progress" *ngIf="prefetchCoursesData.badge">{{prefetchCoursesData.badge}}</ion-badge> |         <ion-badge class="core-course-download-courses-progress" *ngIf="prefetchCoursesData.badge"> | ||||||
|  |             {{prefetchCoursesData.badge}} | ||||||
|  |         </ion-badge> | ||||||
|         <ion-spinner *ngIf="!prefetchCoursesData.icon || prefetchCoursesData.loading"></ion-spinner> |         <ion-spinner *ngIf="!prefetchCoursesData.icon || prefetchCoursesData.loading"></ion-spinner> | ||||||
|     </div> |     </div> | ||||||
| </ion-item-divider> | </ion-item-divider> | ||||||
| <core-loading [hideUntil]="loaded" class="core-loading-center safe-area-page"> | <core-loading [hideUntil]="loaded" class="core-loading-center safe-area-page"> | ||||||
|     <core-empty-box *ngIf="courses.length == 0" image="assets/img/icons/courses.svg" [message]="'addon.block_recentlyaccessedcourses.nocourses' | translate"></core-empty-box> |     <core-empty-box *ngIf="courses.length == 0" image="assets/img/icons/courses.svg" | ||||||
|  |         [message]="'addon.block_recentlyaccessedcourses.nocourses' | translate"></core-empty-box> | ||||||
|     <!-- List of courses. --> |     <!-- List of courses. --> | ||||||
|      <div class="core-horizontal-scroll"> |      <div class="core-horizontal-scroll"> | ||||||
|         <ng-container *ngFor="let course of courses"> |         <ng-container *ngFor="let course of courses"> | ||||||
|             <core-courses-course-progress [course]="course" class="core-recentlyaccessedcourses" [showDownload]="downloadCourseEnabled && downloadEnabled"></core-courses-course-progress> |             <core-courses-course-progress [course]="course" class="core-recentlyaccessedcourses" | ||||||
|  |                 [showDownload]="downloadCourseEnabled && downloadEnabled"></core-courses-course-progress> | ||||||
|         </ng-container> |         </ng-container> | ||||||
|     </div> |     </div> | ||||||
| </core-loading> | </core-loading> | ||||||
|  | |||||||
| @ -12,6 +12,7 @@ | |||||||
|             </ion-label> |             </ion-label> | ||||||
|         </ion-item> |         </ion-item> | ||||||
| 
 | 
 | ||||||
|         <!--<core-course-module *ngFor="let module of mainMenuBlock.modules" [module]="module" [courseId]="siteHomeId" [downloadEnabled]="downloadEnabled" [section]="mainMenuBlock"></core-course-module>--> |         <!--<core-course-module *ngFor="let module of mainMenuBlock.modules" [module]="module" [courseId]="siteHomeId" | ||||||
|  |             [downloadEnabled]="downloadEnabled" [section]="mainMenuBlock"></core-course-module>--> | ||||||
|     </ng-container> |     </ng-container> | ||||||
| </core-loading> | </core-loading> | ||||||
|  | |||||||
| @ -3,20 +3,25 @@ | |||||||
|         <h2>{{ 'addon.block_starredcourses.pluginname' | translate }}</h2> |         <h2>{{ 'addon.block_starredcourses.pluginname' | translate }}</h2> | ||||||
|     </ion-label> |     </ion-label> | ||||||
|     <div *ngIf="downloadCoursesEnabled && downloadEnabled && courses && courses.length > 1" class="core-button-spinner" slot="end"> |     <div *ngIf="downloadCoursesEnabled && downloadEnabled && courses && courses.length > 1" class="core-button-spinner" slot="end"> | ||||||
|         <ion-button *ngIf="prefetchCoursesData.icon && !prefetchCoursesData.loading" fill="clear" color="dark" (click)="prefetchCourses()"> |         <ion-button *ngIf="prefetchCoursesData.icon && !prefetchCoursesData.loading" fill="clear" color="dark" | ||||||
|  |             (click)="prefetchCourses()"> | ||||||
|             <ion-icon [name]="prefetchCoursesData.icon" slot="icon-only"> |             <ion-icon [name]="prefetchCoursesData.icon" slot="icon-only"> | ||||||
|             </ion-icon> |             </ion-icon> | ||||||
|         </ion-button> |         </ion-button> | ||||||
|         <ion-badge class="core-course-download-courses-progress" *ngIf="prefetchCoursesData.badge">{{prefetchCoursesData.badge}}</ion-badge> |         <ion-badge class="core-course-download-courses-progress" *ngIf="prefetchCoursesData.badge"> | ||||||
|  |             {{prefetchCoursesData.badge}} | ||||||
|  |         </ion-badge> | ||||||
|         <ion-spinner *ngIf="!prefetchCoursesData.icon || prefetchCoursesData.loading"></ion-spinner> |         <ion-spinner *ngIf="!prefetchCoursesData.icon || prefetchCoursesData.loading"></ion-spinner> | ||||||
|     </div> |     </div> | ||||||
| </ion-item-divider> | </ion-item-divider> | ||||||
| <core-loading [hideUntil]="loaded" class="core-loading-center safe-area-page"> | <core-loading [hideUntil]="loaded" class="core-loading-center safe-area-page"> | ||||||
|     <core-empty-box *ngIf="courses.length == 0" image="assets/img/icons/courses.svg" [message]="'addon.block_starredcourses.nocourses' | translate"></core-empty-box> |     <core-empty-box *ngIf="courses.length == 0" image="assets/img/icons/courses.svg" | ||||||
|  |         [message]="'addon.block_starredcourses.nocourses' | translate"></core-empty-box> | ||||||
|     <!-- List of courses. --> |     <!-- List of courses. --> | ||||||
|     <div class="core-horizontal-scroll"> |     <div class="core-horizontal-scroll"> | ||||||
|         <ng-container *ngFor="let course of courses"> |         <ng-container *ngFor="let course of courses"> | ||||||
|             <core-courses-course-progress [course]="course" class="core-block_starredcourses" [showDownload]="downloadCourseEnabled && downloadEnabled"></core-courses-course-progress> |             <core-courses-course-progress [course]="course" class="core-block_starredcourses" | ||||||
|  |                 [showDownload]="downloadCourseEnabled && downloadEnabled"></core-courses-course-progress> | ||||||
|         </ng-container> |         </ng-container> | ||||||
|     </div> |     </div> | ||||||
| </core-loading> | </core-loading> | ||||||
|  | |||||||
| @ -32,7 +32,7 @@ | |||||||
|     <ion-grid class="addon-calendar-months"> |     <ion-grid class="addon-calendar-months"> | ||||||
|         <!-- List of days. --> |         <!-- List of days. --> | ||||||
|         <ion-row> |         <ion-row> | ||||||
|             <ion-col class="ion-text-center" *ngFor="let day of weekDays" class="addon-calendar-weekday"> |             <ion-col class="ion-text-center addon-calendar-weekday" *ngFor="let day of weekDays"> | ||||||
|                 <span class="ion-hide-md-up" [title]="day.fullname | translate">{{ day.shortname | translate }}</span> |                 <span class="ion-hide-md-up" [title]="day.fullname | translate">{{ day.shortname | translate }}</span> | ||||||
|                 <span class="ion-hide-md-down">{{ day.fullname | translate }}</span> |                 <span class="ion-hide-md-down">{{ day.fullname | translate }}</span> | ||||||
|             </ion-col> |             </ion-col> | ||||||
| @ -42,10 +42,10 @@ | |||||||
|         <ion-row *ngFor="let week of weeks" class="addon-calendar-week"> |         <ion-row *ngFor="let week of weeks" class="addon-calendar-week"> | ||||||
|             <!-- Empty slots (first week). --> |             <!-- Empty slots (first week). --> | ||||||
|             <ion-col *ngFor="let value of week.prepadding" class="dayblank addon-calendar-day"></ion-col> |             <ion-col *ngFor="let value of week.prepadding" class="dayblank addon-calendar-day"></ion-col> | ||||||
|             <ion-col class="ion-text-center" *ngFor="let day of week.days"  (click)="dayClicked(day.mday)" |             <ion-col class="addon-calendar-day ion-text-center" *ngFor="let day of week.days"  (click)="dayClicked(day.mday)" | ||||||
|             [ngClass]='{"hasevents": day.hasevents, "today": isCurrentMonth && day.istoday, |             [ngClass]='{"hasevents": day.hasevents, "today": isCurrentMonth && day.istoday, | ||||||
|                 "weekend": day.isweekend, "duration_finish": day.haslastdayofevent}' |                 "weekend": day.isweekend, "duration_finish": day.haslastdayofevent}' | ||||||
|             class="addon-calendar-day" [class.addon-calendar-event-past-day]="isPastMonth || day.ispast"> |                 [class.addon-calendar-event-past-day]="isPastMonth || day.ispast"> | ||||||
|                 <p class="addon-calendar-day-number"><span>{{ day.mday }}</span></p> |                 <p class="addon-calendar-day-number"><span>{{ day.mday }}</span></p> | ||||||
| 
 | 
 | ||||||
|                 <!-- In phone, display some dots to indicate the type of events. --> |                 <!-- In phone, display some dots to indicate the type of events. --> | ||||||
|  | |||||||
| @ -4,7 +4,7 @@ | |||||||
| 
 | 
 | ||||||
|     <ion-list *ngIf="filteredEvents && filteredEvents.length"  class="ion-no-margin"> |     <ion-list *ngIf="filteredEvents && filteredEvents.length"  class="ion-no-margin"> | ||||||
|         <ng-container *ngFor="let event of filteredEvents"> |         <ng-container *ngFor="let event of filteredEvents"> | ||||||
|             <ion-item class="ion-text-wrap" [title]="event.name" (click)="eventClicked(event)" class="addon-calendar-event" |             <ion-item class="ion-text-wrap addon-calendar-event" [title]="event.name" (click)="eventClicked(event)" | ||||||
|                 [ngClass]="['addon-calendar-eventtype-'+event.eventtype]"> |                 [ngClass]="['addon-calendar-eventtype-'+event.eventtype]"> | ||||||
|                 <img *ngIf="event.moduleIcon" src="{{event.moduleIcon}}" slot="start" class="core-module-icon"> |                 <img *ngIf="event.moduleIcon" src="{{event.moduleIcon}}" slot="start" class="core-module-icon"> | ||||||
|                 <ion-icon *ngIf="event.eventIcon && !event.moduleIcon" [name]="event.eventIcon" slot="start"> |                 <ion-icon *ngIf="event.eventIcon && !event.moduleIcon" [name]="event.eventIcon" slot="start"> | ||||||
|  | |||||||
| @ -59,9 +59,8 @@ | |||||||
| 
 | 
 | ||||||
|         <ion-list *ngIf="filteredEvents && filteredEvents.length"  class="ion-no-margin"> |         <ion-list *ngIf="filteredEvents && filteredEvents.length"  class="ion-no-margin"> | ||||||
|             <ng-container *ngFor="let event of filteredEvents"> |             <ng-container *ngFor="let event of filteredEvents"> | ||||||
|                 <ion-item class="ion-text-wrap" [title]="event.name" (click)="gotoEvent(event.id)" |                 <ion-item class="addon-calendar-event ion-text-wrap" [title]="event.name" (click)="gotoEvent(event.id)" | ||||||
|                 [class.item-dimmed]="event.ispast" class="addon-calendar-event" |                 [class.item-dimmed]="event.ispast" [ngClass]="['addon-calendar-eventtype-'+event.eventtype]"> | ||||||
|                 [ngClass]="['addon-calendar-eventtype-'+event.eventtype]"> |  | ||||||
|                     <img *ngIf="event.moduleIcon" src="{{event.moduleIcon}}" slot="start" class="core-module-icon"> |                     <img *ngIf="event.moduleIcon" src="{{event.moduleIcon}}" slot="start" class="core-module-icon"> | ||||||
|                     <ion-icon *ngIf="event.eventIcon && !event.moduleIcon" [name]="event.eventIcon" slot="start"> |                     <ion-icon *ngIf="event.eventIcon && !event.moduleIcon" [name]="event.eventIcon" slot="start"> | ||||||
|                     </ion-icon> |                     </ion-icon> | ||||||
|  | |||||||
| @ -97,7 +97,7 @@ | |||||||
|                     </ion-select> |                     </ion-select> | ||||||
|                 </ion-item> |                 </ion-item> | ||||||
|                 <!-- The course has no groups. --> |                 <!-- The course has no groups. --> | ||||||
|                 <ion-item class="ion-text-wrap" *ngIf="!loadingGroups && courseGroupSet && !groups.length" class="core-danger-item"> |                 <ion-item class="ion-text-wrap core-danger-item" *ngIf="!loadingGroups && courseGroupSet && !groups.length"> | ||||||
|                     <ion-label><p>{{ 'core.coursenogroups' | translate }}</p></ion-label> |                     <ion-label><p>{{ 'core.coursenogroups' | translate }}</p></ion-label> | ||||||
|                 </ion-item> |                 </ion-item> | ||||||
|                 <!-- Select the group. --> |                 <!-- Select the group. --> | ||||||
| @ -119,7 +119,7 @@ | |||||||
|             </ng-container> |             </ng-container> | ||||||
| 
 | 
 | ||||||
|             <!-- Advanced options. --> |             <!-- Advanced options. --> | ||||||
|             <ion-item-divider class="ion-text-wrap" (click)="toggleAdvanced()" class="core-expandable"> |             <ion-item-divider class="ion-text-wrap core-expandable" (click)="toggleAdvanced()"> | ||||||
|                 <ion-icon *ngIf="!advanced" name="fas-caret-right" slot="start"></ion-icon> |                 <ion-icon *ngIf="!advanced" name="fas-caret-right" slot="start"></ion-icon> | ||||||
|                 <ion-icon *ngIf="advanced" name="fas-caret-down" slot="start"></ion-icon> |                 <ion-icon *ngIf="advanced" name="fas-caret-down" slot="start"></ion-icon> | ||||||
|                 <ion-label> |                 <ion-label> | ||||||
| @ -147,7 +147,7 @@ | |||||||
|                 </ion-item> |                 </ion-item> | ||||||
| 
 | 
 | ||||||
|                 <!-- Duration. --> |                 <!-- Duration. --> | ||||||
|                 <div class="ion-text-wrap" class="addon-calendar-radio-container"> |                 <div class="ion-text-wrap addon-calendar-radio-container"> | ||||||
|                     <ion-radio-group formControlName="duration"> |                     <ion-radio-group formControlName="duration"> | ||||||
|                         <ion-item class="addon-calendar-radio-title"> |                         <ion-item class="addon-calendar-radio-title"> | ||||||
|                             <ion-label> |                             <ion-label> | ||||||
| @ -192,7 +192,7 @@ | |||||||
|                 </ng-container> |                 </ng-container> | ||||||
| 
 | 
 | ||||||
|                 <!-- Apply to all events or just this one (editing repeated events). --> |                 <!-- Apply to all events or just this one (editing repeated events). --> | ||||||
|                 <div *ngIf="eventRepeatId" class="ion-text-wrap" class="addon-calendar-radio-container"> |                 <div *ngIf="eventRepeatId" class="ion-text-wrap addon-calendar-radio-container"> | ||||||
|                     <ion-radio-group formControlName="repeateditall"> |                     <ion-radio-group formControlName="repeateditall"> | ||||||
|                         <ion-item class="addon-calendar-radio-title"> |                         <ion-item class="addon-calendar-radio-title"> | ||||||
|                             <ion-label> |                             <ion-label> | ||||||
|  | |||||||
| @ -42,9 +42,8 @@ | |||||||
|                     <ion-item-divider *ngIf="event.showDate"> |                     <ion-item-divider *ngIf="event.showDate"> | ||||||
|                         <ion-label>{{ event.timestart * 1000 | coreFormatDate: "strftimedayshort" }}</ion-label> |                         <ion-label>{{ event.timestart * 1000 | coreFormatDate: "strftimedayshort" }}</ion-label> | ||||||
|                     </ion-item-divider> |                     </ion-item-divider> | ||||||
|                     <ion-item class="ion-text-wrap" [title]="event.name" (click)="gotoEvent(event.id)" |                     <ion-item class="addon-calendar-event ion-text-wrap" [title]="event.name" (click)="gotoEvent(event.id)" | ||||||
|                     [class.core-selected-item]="event.id == eventId" class="addon-calendar-event" |                     [class.core-selected-item]="event.id == eventId" [ngClass]="['addon-calendar-eventtype-'+event.eventtype]"> | ||||||
|                     [ngClass]="['addon-calendar-eventtype-'+event.eventtype]"> |  | ||||||
|                         <img *ngIf="event.moduleIcon" src="{{event.moduleIcon}}" slot="start" class="core-module-icon"> |                         <img *ngIf="event.moduleIcon" src="{{event.moduleIcon}}" slot="start" class="core-module-icon"> | ||||||
|                         <ion-icon *ngIf="event.eventIcon && !event.moduleIcon" [name]="event.eventIcon" slot="start"> |                         <ion-icon *ngIf="event.eventIcon && !event.moduleIcon" [name]="event.eventIcon" slot="start"> | ||||||
|                         </ion-icon> |                         </ion-icon> | ||||||
|  | |||||||
| @ -216,26 +216,26 @@ export class AddonFilterMathJaxLoaderHandlerService extends CoreFilterDefaultHan | |||||||
|                 document.head.appendChild(script); |                 document.head.appendChild(script); | ||||||
| 
 | 
 | ||||||
|                 // Save the lang config until MathJax is actually loaded.
 |                 // Save the lang config until MathJax is actually loaded.
 | ||||||
|                 this._lang = <string> params.lang; // eslint-disable-line no-underscore-dangle
 |                 this._lang = <string> params.lang; | ||||||
|             }, |             }, | ||||||
|             // Set the correct language for the MathJax menus.
 |             // Set the correct language for the MathJax menus.
 | ||||||
|             _setLocale: function (): void { |             _setLocale: function (): void { | ||||||
|                 if (!this._configured) {  // eslint-disable-line no-underscore-dangle
 |                 if (!this._configured) { | ||||||
|                     const lang = this._lang;  // eslint-disable-line no-underscore-dangle
 |                     const lang = this._lang; | ||||||
| 
 | 
 | ||||||
|                     if (typeof that.window.MathJax != 'undefined') { |                     if (typeof that.window.MathJax != 'undefined') { | ||||||
|                         that.window.MathJax.Hub.Queue(() => { |                         that.window.MathJax.Hub.Queue(() => { | ||||||
|                             that.window.MathJax.Localization.setLocale(lang); |                             that.window.MathJax.Localization.setLocale(lang); | ||||||
|                         }); |                         }); | ||||||
|                         that.window.MathJax.Hub.Configured(); |                         that.window.MathJax.Hub.Configured(); | ||||||
|                         this._configured = true;  // eslint-disable-line no-underscore-dangle
 |                         this._configured = true; | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             }, |             }, | ||||||
|             // Called by the filter when an equation is found while rendering the page.
 |             // Called by the filter when an equation is found while rendering the page.
 | ||||||
|             typeset: function (container: HTMLElement): void { |             typeset: function (container: HTMLElement): void { | ||||||
|                 if (!this._configured) { // eslint-disable-line no-underscore-dangle
 |                 if (!this._configured) { | ||||||
|                     this._setLocale(); // eslint-disable-line no-underscore-dangle
 |                     this._setLocale(); | ||||||
|                 } |                 } | ||||||
| 
 | 
 | ||||||
|                 if (typeof that.window.MathJax != 'undefined') { |                 if (typeof that.window.MathJax != 'undefined') { | ||||||
|  | |||||||
| @ -42,9 +42,8 @@ | |||||||
|         </ion-item-divider> |         </ion-item-divider> | ||||||
| 
 | 
 | ||||||
|         <!-- List of results --> |         <!-- List of results --> | ||||||
|         <ion-item class="ion-text-wrap" *ngFor="let result of item.results" [title]="result.fullname" |         <ion-item class="addon-message-discussion ion-text-wrap" *ngFor="let result of item.results" [title]="result.fullname" | ||||||
|             (click)="openConversation(result)" [class.core-selected-item]="result == selectedResult" |             (click)="openConversation(result)" [class.core-selected-item]="result == selectedResult" detail> | ||||||
|             class="addon-message-discussion" detail> |  | ||||||
|             <core-user-avatar slot="start" [user]="result" [checkOnline]="true" [linkProfile]="false"></core-user-avatar> |             <core-user-avatar slot="start" [user]="result" [checkOnline]="true" [linkProfile]="false"></core-user-avatar> | ||||||
|             <ion-label> |             <ion-label> | ||||||
|                 <h2> |                 <h2> | ||||||
|  | |||||||
| @ -73,7 +73,8 @@ | |||||||
|                                     !(notification.processorsByName[currentProcessor!.name][state] && |                                     !(notification.processorsByName[currentProcessor!.name][state] && | ||||||
|                                     notification.processorsByName[currentProcessor!.name][state].updating)"> |                                     notification.processorsByName[currentProcessor!.name][state].updating)"> | ||||||
|                                 </ion-spinner> |                                 </ion-spinner> | ||||||
|                                 <ion-toggle *ngIf="preferences!.enableall && !notification.processorsByName[currentProcessor!.name].locked" |                                 <ion-toggle | ||||||
|  |                                     *ngIf="preferences!.enableall && !notification.processorsByName[currentProcessor!.name].locked" | ||||||
|                                     [(ngModel)]="notification.processorsByName[currentProcessor!.name][state].checked" |                                     [(ngModel)]="notification.processorsByName[currentProcessor!.name][state].checked" | ||||||
|                                     (ngModelChange)="changePreference(notification, state)" |                                     (ngModelChange)="changePreference(notification, state)" | ||||||
|                                     [disabled]="notification.processorsByName[currentProcessor!.name][state].updating"> |                                     [disabled]="notification.processorsByName[currentProcessor!.name][state].updating"> | ||||||
| @ -95,15 +96,19 @@ | |||||||
|                     <!-- If notifications enabled, show toggles. If disabled, show "Disabled" instead of toggle. --> |                     <!-- If notifications enabled, show toggles. If disabled, show "Disabled" instead of toggle. --> | ||||||
|                     <ion-item *ngFor="let state of ['loggedin', 'loggedoff']" class="ion-text-wrap ion-hide-md-up" lines="none"> |                     <ion-item *ngFor="let state of ['loggedin', 'loggedoff']" class="ion-text-wrap ion-hide-md-up" lines="none"> | ||||||
|                         <ion-label>{{ 'core.settings.' + state | translate }}</ion-label> |                         <ion-label>{{ 'core.settings.' + state | translate }}</ion-label> | ||||||
|                         <ion-spinner slot="end" *ngIf="preferences!.enableall && (notification.processorsByName[currentProcessor!.name][state] && |                         <ion-spinner slot="end" | ||||||
|  |                             *ngIf="preferences!.enableall && (notification.processorsByName[currentProcessor!.name][state] && | ||||||
|                             notification.processorsByName[currentProcessor!.name][state].updating)"> |                             notification.processorsByName[currentProcessor!.name][state].updating)"> | ||||||
|                         </ion-spinner> |                         </ion-spinner> | ||||||
|                         <ion-toggle slot="end" *ngIf="preferences!.enableall && !notification.processorsByName[currentProcessor!.name].locked" |                         <ion-toggle slot="end" | ||||||
|  |                             *ngIf="preferences!.enableall && !notification.processorsByName[currentProcessor!.name].locked" | ||||||
|                             [(ngModel)]="notification.processorsByName[currentProcessor!.name][state].checked" |                             [(ngModel)]="notification.processorsByName[currentProcessor!.name][state].checked" | ||||||
|                             (ngModelChange)="changePreference(notification, state)" |                             (ngModelChange)="changePreference(notification, state)" | ||||||
|                             [disabled]="notification.processorsByName[currentProcessor!.name][state].updating"> |                             [disabled]="notification.processorsByName[currentProcessor!.name][state].updating"> | ||||||
|                         </ion-toggle> |                         </ion-toggle> | ||||||
|                         <span slot="end" *ngIf="preferences!.enableall && notification.processorsByName[currentProcessor!.name].locked" class="text-gray"> |                         <span slot="end" | ||||||
|  |                             *ngIf="preferences!.enableall && notification.processorsByName[currentProcessor!.name].locked" | ||||||
|  |                             class="text-gray"> | ||||||
|                             {{'core.settings.locked' | translate }} |                             {{'core.settings.locked' | translate }} | ||||||
|                         </span> |                         </span> | ||||||
|                         <ion-note slot="end" *ngIf="!preferences!.enableall">{{ 'core.settings.disabled' | translate }}</ion-note> |                         <ion-note slot="end" *ngIf="!preferences!.enableall">{{ 'core.settings.disabled' | translate }}</ion-note> | ||||||
|  | |||||||
| @ -8,7 +8,7 @@ | |||||||
|             <!-- Course expand="block"s. --> |             <!-- Course expand="block"s. --> | ||||||
|             <ng-container *ngFor="let block of blocks"> |             <ng-container *ngFor="let block of blocks"> | ||||||
|                 <core-block *ngIf="block.visible" [block]="block" contextLevel="course" [instanceId]="courseId" |                 <core-block *ngIf="block.visible" [block]="block" contextLevel="course" [instanceId]="courseId" | ||||||
|                 [extraData]="{'downloadEnabled': downloadEnabled}"></core-block> |                     [extraData]="{'downloadEnabled': downloadEnabled}"></core-block> | ||||||
|             </ng-container> |             </ng-container> | ||||||
|         </ion-list> |         </ion-list> | ||||||
|     </core-loading> |     </core-loading> | ||||||
|  | |||||||
| @ -22,8 +22,9 @@ | |||||||
|                 </core-course-module-completion> |                 </core-course-module-completion> | ||||||
| 
 | 
 | ||||||
|                 <div class="core-module-buttons-more"> |                 <div class="core-module-buttons-more"> | ||||||
|                     <!-- @todo <core-download-refresh [status]="downloadStatus" [enabled]="downloadEnabled" [canTrustDownload]="canCheckUpdates" |                     <!-- @todo <core-download-refresh [status]="downloadStatus" [enabled]="downloadEnabled" | ||||||
|                         [loading]="spinner || module.handlerData.spinner" (action)="download($event)"> |                         [canTrustDownload]="canCheckUpdates" [loading]="spinner || module.handlerData.spinner" | ||||||
|  |                         (action)="download($event)"> | ||||||
|                     </core-download-refresh> --> |                     </core-download-refresh> --> | ||||||
| 
 | 
 | ||||||
|                     <!-- Buttons defined by the module handler. --> |                     <!-- Buttons defined by the module handler. --> | ||||||
|  | |||||||
| @ -39,7 +39,8 @@ | |||||||
|                 </ion-label> |                 </ion-label> | ||||||
|             </ion-item-divider> |             </ion-item-divider> | ||||||
|             <section *ngFor="let category of categories"> |             <section *ngFor="let category of categories"> | ||||||
|                 <ion-item class="ion-text-wrap" router-direction="forward" [routerLink]="['/main/home/courses/categories', category.id]" |                 <ion-item class="ion-text-wrap" router-direction="forward" | ||||||
|  |                 [routerLink]="['/main/home/courses/categories', category.id]" | ||||||
|                 [title]="category.name" detail> |                 [title]="category.name" detail> | ||||||
|                     <ion-icon name="fas-folder" slot="start"></ion-icon> |                     <ion-icon name="fas-folder" slot="start"></ion-icon> | ||||||
|                     <ion-label> |                     <ion-label> | ||||||
| @ -61,7 +62,8 @@ | |||||||
|             </ion-item-divider> |             </ion-item-divider> | ||||||
|             <core-courses-course-list-item *ngFor="let course of courses" [course]="course"></core-courses-course-list-item> |             <core-courses-course-list-item *ngFor="let course of courses" [course]="course"></core-courses-course-list-item> | ||||||
|         </div> |         </div> | ||||||
|         <core-empty-box *ngIf="!categories.length && !courses.length" icon="fas-graduation-cap" [message]="'core.courses.nocoursesyet' | translate"> |         <core-empty-box *ngIf="!categories.length && !courses.length" icon="fas-graduation-cap" | ||||||
|  |             [message]="'core.courses.nocoursesyet' | translate"> | ||||||
|         </core-empty-box> |         </core-empty-box> | ||||||
|     </core-loading> |     </core-loading> | ||||||
| </ion-content> | </ion-content> | ||||||
|  | |||||||
| @ -3,7 +3,9 @@ | |||||||
|         <ion-buttons slot="start"> |         <ion-buttons slot="start"> | ||||||
|             <ion-back-button [attr.aria-label]="'core.back' | translate"></ion-back-button> |             <ion-back-button [attr.aria-label]="'core.back' | translate"></ion-back-button> | ||||||
|         </ion-buttons> |         </ion-buttons> | ||||||
|         <ion-title><core-format-text [text]="course?.fullname" contextLevel="course" [contextInstanceId]="course?.id"></core-format-text></ion-title> |         <ion-title> | ||||||
|  |             <core-format-text [text]="course?.fullname" contextLevel="course" [contextInstanceId]="course?.id"></core-format-text> | ||||||
|  |         </ion-title> | ||||||
|     </ion-toolbar> |     </ion-toolbar> | ||||||
| </ion-header> | </ion-header> | ||||||
| <ion-content> | <ion-content> | ||||||
| @ -17,10 +19,14 @@ | |||||||
|             </div> |             </div> | ||||||
|         </div> |         </div> | ||||||
|         <div class="core-course-thumb-parallax-content" *ngIf="course"> |         <div class="core-course-thumb-parallax-content" *ngIf="course"> | ||||||
|             <ion-item class="ion-text-wrap" (click)="openCourse()" [title]="course.fullname" [attr.details]="!avoidOpenCourse && canAccessCourse"> |             <ion-item class="ion-text-wrap" (click)="openCourse()" [title]="course.fullname" | ||||||
|  |                 [attr.details]="!avoidOpenCourse && canAccessCourse"> | ||||||
|                 <ion-icon name="fas-graduation-cap" fixed-width slot="start"></ion-icon> |                 <ion-icon name="fas-graduation-cap" fixed-width slot="start"></ion-icon> | ||||||
|                 <ion-label> |                 <ion-label> | ||||||
|                     <h2><core-format-text [text]="course.fullname" contextLevel="course" [contextInstanceId]="course.id"></core-format-text></h2> |                     <h2> | ||||||
|  |                         <core-format-text [text]="course.fullname" contextLevel="course" [contextInstanceId]="course.id"> | ||||||
|  |                         </core-format-text> | ||||||
|  |                     </h2> | ||||||
|                     <p *ngIf="course.categoryname"><core-format-text [text]="course.categoryname" |                     <p *ngIf="course.categoryname"><core-format-text [text]="course.categoryname" | ||||||
|                         contextLevel="coursecat" [contextInstanceId]="course.categoryid"></core-format-text></p> |                         contextLevel="coursecat" [contextInstanceId]="course.categoryid"></core-format-text></p> | ||||||
|                     <p *ngIf="course.startdate"> |                     <p *ngIf="course.startdate"> | ||||||
|  | |||||||
| @ -14,11 +14,13 @@ | |||||||
|         <core-empty-box *ngIf="!grade" icon="stats" [message]="'core.grades.nogradesreturned' | translate"></core-empty-box> |         <core-empty-box *ngIf="!grade" icon="stats" [message]="'core.grades.nogradesreturned' | translate"></core-empty-box> | ||||||
| 
 | 
 | ||||||
|         <ion-list *ngIf="grade"> |         <ion-list *ngIf="grade"> | ||||||
|             <ion-item *ngIf="grade.itemname && grade.link" class="ion-text-wrap" detail="true" [href]="grade.link" core-link capture="true"> |             <ion-item *ngIf="grade.itemname && grade.link" class="ion-text-wrap" detail="true" [href]="grade.link" core-link | ||||||
|  |             capture="true"> | ||||||
|                 <ion-icon *ngIf="grade.icon" name="{{grade.icon}}" slot="start"></ion-icon> |                 <ion-icon *ngIf="grade.icon" name="{{grade.icon}}" slot="start"></ion-icon> | ||||||
|                 <img *ngIf="grade.image" [src]="grade.image" slot="start" class="core-module-icon" /> |                 <img *ngIf="grade.image" [src]="grade.image" slot="start" class="core-module-icon" /> | ||||||
|                 <ion-label> |                 <ion-label> | ||||||
|                     <h2><core-format-text [text]="grade.itemname" contextLevel="course" [contextInstanceId]="courseId"></core-format-text></h2> |                     <h2><core-format-text [text]="grade.itemname" contextLevel="course" [contextInstanceId]="courseId"> | ||||||
|  |                     </core-format-text></h2> | ||||||
|                 </ion-label> |                 </ion-label> | ||||||
|             </ion-item> |             </ion-item> | ||||||
| 
 | 
 | ||||||
| @ -26,7 +28,8 @@ | |||||||
|                 <ion-icon *ngIf="grade.icon" name="{{grade.icon}}" slot="start"></ion-icon> |                 <ion-icon *ngIf="grade.icon" name="{{grade.icon}}" slot="start"></ion-icon> | ||||||
|                 <img *ngIf="grade.image" [src]="grade.image" slot="start" class="core-module-icon" /> |                 <img *ngIf="grade.image" [src]="grade.image" slot="start" class="core-module-icon" /> | ||||||
|                 <ion-label> |                 <ion-label> | ||||||
|                     <h2><core-format-text [text]="grade.itemname" contextLevel="course" [contextInstanceId]="courseId"></core-format-text></h2> |                     <h2><core-format-text [text]="grade.itemname" contextLevel="course" [contextInstanceId]="courseId"> | ||||||
|  |                     </core-format-text></h2> | ||||||
|                 </ion-label> |                 </ion-label> | ||||||
|             </ion-item> |             </ion-item> | ||||||
| 
 | 
 | ||||||
| @ -82,7 +85,8 @@ | |||||||
|             <ion-item class="ion-text-wrap" *ngIf="grade.feedback"> |             <ion-item class="ion-text-wrap" *ngIf="grade.feedback"> | ||||||
|                 <ion-label> |                 <ion-label> | ||||||
|                     <h2>{{ 'core.grades.feedback' | translate}}</h2> |                     <h2>{{ 'core.grades.feedback' | translate}}</h2> | ||||||
|                     <p><core-format-text [fullTitle]="'core.grades.feedback' | translate" maxHeight="60" fullOnClick="true" [text]="grade.feedback" contextLevel="course" [contextInstanceId]="courseId"></core-format-text></p> |                     <p><core-format-text [fullTitle]="'core.grades.feedback' | translate" maxHeight="60" fullOnClick="true" | ||||||
|  |                         [text]="grade.feedback" contextLevel="course" [contextInstanceId]="courseId"></core-format-text></p> | ||||||
|                 </ion-label> |                 </ion-label> | ||||||
|             </ion-item> |             </ion-item> | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -67,7 +67,7 @@ | |||||||
|                 <h2><b>{{ 'core.login.faqwhereisqrcode' | translate }}</b></h2> |                 <h2><b>{{ 'core.login.faqwhereisqrcode' | translate }}</b></h2> | ||||||
|             </ion-label> |             </ion-label> | ||||||
|         </ion-item> |         </ion-item> | ||||||
|         <ion-item class="ion-text-wrap" *ngIf="canScanQR" class="core-login-faqwhereisqrcodeanswer"> |         <ion-item class="ion-text-wrap core-login-faqwhereisqrcodeanswer" *ngIf="canScanQR"> | ||||||
|             <ion-label> |             <ion-label> | ||||||
|                 <p [innerHTML]="'core.login.faqwhereisqrcodeanswer' | translate: {$image: qrCodeImageHtml}"></p> |                 <p [innerHTML]="'core.login.faqwhereisqrcodeanswer' | translate: {$image: qrCodeImageHtml}"></p> | ||||||
|             </ion-label> |             </ion-label> | ||||||
|  | |||||||
| @ -22,10 +22,12 @@ | |||||||
|                     <!-- Site home main contents. --> |                     <!-- Site home main contents. --> | ||||||
|                     <!-- @todo <ng-container *ngIf="section && section.hasContent"> |                     <!-- @todo <ng-container *ngIf="section && section.hasContent"> | ||||||
|                         <ion-item class="ion-text-wrap" *ngIf="section.summary"> |                         <ion-item class="ion-text-wrap" *ngIf="section.summary"> | ||||||
|                             <core-format-text [text]="section.summary" contextLevel="course" [contextInstanceId]="siteHomeId"></core-format-text> |                             <core-format-text [text]="section.summary" contextLevel="course" [contextInstanceId]="siteHomeId"> | ||||||
|  |                             </core-format-text> | ||||||
|                         </ion-item> |                         </ion-item> | ||||||
| 
 | 
 | ||||||
|                         <core-course-module *ngFor="let module of section.modules" [module]="module" [courseId]="siteHomeId" [downloadEnabled]="downloadEnabled" [section]="section"></core-course-module> |                         <core-course-module *ngFor="let module of section.modules" [module]="module" [courseId]="siteHomeId" | ||||||
|  |                             [downloadEnabled]="downloadEnabled" [section]="section"></core-course-module> | ||||||
|                     </ng-container> --> |                     </ng-container> --> | ||||||
| 
 | 
 | ||||||
|                     <!-- Site home items: news, categories, courses, etc. --> |                     <!-- Site home items: news, categories, courses, etc. --> | ||||||
| @ -72,7 +74,8 @@ | |||||||
|     <ion-item> |     <ion-item> | ||||||
|         <ion-label>News (TODO)</ion-label> |         <ion-label>News (TODO)</ion-label> | ||||||
|     </ion-item> |     </ion-item> | ||||||
|     <!-- @todo <core-course-module class="core-sitehome-news" *ngIf="newsForumModule" [module]="module" [courseId]="siteHomeId"></core-course-module> --> |     <!-- @todo <core-course-module class="core-sitehome-news" *ngIf="newsForumModule" [module]="module" [courseId]="siteHomeId"> | ||||||
|  |     </core-course-module> --> | ||||||
| </ng-template> | </ng-template> | ||||||
| 
 | 
 | ||||||
| <ng-template #categories> | <ng-template #categories> | ||||||
|  | |||||||
| @ -18,8 +18,8 @@ | |||||||
|                     searchArea="CoreTag"></core-search-box> |                     searchArea="CoreTag"></core-search-box> | ||||||
|             </ion-col> |             </ion-col> | ||||||
|             <ion-col size="12" size-sm="6" *ngIf="collections && collections.length > 1"> |             <ion-col size="12" size-sm="6" *ngIf="collections && collections.length > 1"> | ||||||
|                 <ion-select class="ion-text-start" [(ngModel)]="collectionId" (ngModelChange)="searchTags(query)" |                 <ion-select class="core-button-select ion-text-start" [(ngModel)]="collectionId" (ngModelChange)="searchTags(query)" | ||||||
|                     [disabled]="searching" interface="popover" class="core-button-select"> |                     [disabled]="searching" interface="popover"> | ||||||
|                     <ion-select-option [value]="0">{{ 'core.tag.inalltagcoll' | translate }}</ion-select-option> |                     <ion-select-option [value]="0">{{ 'core.tag.inalltagcoll' | translate }}</ion-select-option> | ||||||
|                     <ion-select-option *ngFor="let collection of collections" [value]="collection.id"> |                     <ion-select-option *ngFor="let collection of collections" [value]="collection.id"> | ||||||
|                         {{ collection.name }}</ion-select-option> |                         {{ collection.name }}</ion-select-option> | ||||||
|  | |||||||
| @ -1556,7 +1556,7 @@ export class CoreUtilsProvider { | |||||||
|                 throw e; |                 throw e; | ||||||
|             } |             } | ||||||
|         } catch (error) { |         } catch (error) { | ||||||
|             // eslint-disable-next-line no-underscore-dangle, @typescript-eslint/naming-convention
 |             // eslint-disable-next-line @typescript-eslint/naming-convention
 | ||||||
|             error.message = error.message || (error as { _message?: string })._message; |             error.message = error.message || (error as { _message?: string })._message; | ||||||
| 
 | 
 | ||||||
|             throw error; |             throw error; | ||||||
|  | |||||||
| @ -13,7 +13,6 @@ | |||||||
| // limitations under the License.
 | // limitations under the License.
 | ||||||
| 
 | 
 | ||||||
| // Prevents Angular change detection from running with certain Web Component callbacks.
 | // Prevents Angular change detection from running with certain Web Component callbacks.
 | ||||||
| // eslint-disable-next-line no-underscore-dangle
 |  | ||||||
| window.__Zone_disable_customElements = true; | window.__Zone_disable_customElements = true; | ||||||
| 
 | 
 | ||||||
| // Zone JS is required by default for Angular itself.
 | // Zone JS is required by default for Angular itself.
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user