commit
						00c8bd56fe
					
				| @ -248,6 +248,11 @@ | |||||||
|         <edit-config file="*-Info.plist" mode="merge" target="CFBundleShortVersionString"> |         <edit-config file="*-Info.plist" mode="merge" target="CFBundleShortVersionString"> | ||||||
|             <string>3.9.5</string> |             <string>3.9.5</string> | ||||||
|         </edit-config> |         </edit-config> | ||||||
|  |         <edit-config target="CFBundleLocalizations" file="*-Info.plist" mode="overwrite"> | ||||||
|  |             <array> | ||||||
|  |                 <string>en</string> | ||||||
|  |             </array> | ||||||
|  |         </edit-config> | ||||||
|         <config-file parent="FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED" target="*-Info.plist"> |         <config-file parent="FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED" target="*-Info.plist"> | ||||||
|             <string>YES</string> |             <string>YES</string> | ||||||
|         </config-file> |         </config-file> | ||||||
|  | |||||||
| @ -2,9 +2,10 @@ | |||||||
|     <ion-label> |     <ion-label> | ||||||
|         <h2>{{ 'addon.block_myoverview.pluginname' | translate }}</h2> |         <h2>{{ 'addon.block_myoverview.pluginname' | translate }}</h2> | ||||||
|     </ion-label> |     </ion-label> | ||||||
|  |     <div slot="end" class="flex-row"> | ||||||
|         <!-- Download all courses. --> |         <!-- Download all courses. --> | ||||||
|     <div *ngIf="downloadCoursesEnabled && downloadEnabled && filteredCourses.length > 1 && !showFilter" class="core-button-spinner" |         <div *ngIf="downloadCoursesEnabled && downloadEnabled && filteredCourses.length > 1 && !showFilter" | ||||||
|         slot="end"> |             class="core-button-spinner"> | ||||||
|             <ion-button *ngIf="!prefetchCoursesData[selectedFilter].loading" fill="clear" color="dark" (click)="prefetchCourses()" |             <ion-button *ngIf="!prefetchCoursesData[selectedFilter].loading" fill="clear" color="dark" (click)="prefetchCourses()" | ||||||
|                 [attr.aria-label]="'core.courses.downloadcourses' | translate"> |                 [attr.aria-label]="'core.courses.downloadcourses' | translate"> | ||||||
|                 <ion-icon [name]="prefetchCoursesData[selectedFilter].icon" slot="icon-only" aria-hidden="true"> |                 <ion-icon [name]="prefetchCoursesData[selectedFilter].icon" slot="icon-only" aria-hidden="true"> | ||||||
| @ -19,7 +20,7 @@ | |||||||
|             <ion-spinner *ngIf="prefetchCoursesData[selectedFilter].loading" [attr.aria-label]="'core.loading' | translate"> |             <ion-spinner *ngIf="prefetchCoursesData[selectedFilter].loading" [attr.aria-label]="'core.loading' | translate"> | ||||||
|             </ion-spinner> |             </ion-spinner> | ||||||
|         </div> |         </div> | ||||||
|     <core-context-menu slot="end"> |         <core-context-menu> | ||||||
|             <core-context-menu-item *ngIf="loaded && showFilterSwitchButton()" [priority]="1000" |             <core-context-menu-item *ngIf="loaded && showFilterSwitchButton()" [priority]="1000" | ||||||
|                 [content]="'core.courses.filtermycourses' | translate" (action)="switchFilter()" iconAction="fas-filter" |                 [content]="'core.courses.filtermycourses' | translate" (action)="switchFilter()" iconAction="fas-filter" | ||||||
|                 (onClosed)="switchFilterClosed()"></core-context-menu-item> |                 (onClosed)="switchFilterClosed()"></core-context-menu-item> | ||||||
| @ -36,6 +37,7 @@ | |||||||
|                 (action)="switchSort('lastaccess')" [iconAction]="sort == 'lastaccess' ? 'far-dot-circle' : 'far-circle'"> |                 (action)="switchSort('lastaccess')" [iconAction]="sort == 'lastaccess' ? 'far-dot-circle' : 'far-circle'"> | ||||||
|             </core-context-menu-item> |             </core-context-menu-item> | ||||||
|         </core-context-menu> |         </core-context-menu> | ||||||
|  |     </div> | ||||||
| </ion-item-divider> | </ion-item-divider> | ||||||
| <core-loading [hideUntil]="loaded" [fullscreen]="false" class="margin"> | <core-loading [hideUntil]="loaded" [fullscreen]="false" class="margin"> | ||||||
|     <div class="safe-padding-horizontal" [hidden]="showFilter || !showSelectorFilter"> |     <div class="safe-padding-horizontal" [hidden]="showFilter || !showSelectorFilter"> | ||||||
|  | |||||||
| @ -109,7 +109,8 @@ | |||||||
| 
 | 
 | ||||||
|             <!-- Summary of submissions with draft status. --> |             <!-- Summary of submissions with draft status. --> | ||||||
|             <ion-item class="ion-text-wrap" *ngIf="assign.submissiondrafts && summary && summary.submissionsenabled" |             <ion-item class="ion-text-wrap" *ngIf="assign.submissiondrafts && summary && summary.submissionsenabled" | ||||||
|                 [detail]="!showNumbers || summary.submissiondraftscount" |                 [class.hide-detail]="showNumbers && !summary.submissiondraftscount" | ||||||
|  |                 detail="true" | ||||||
|                 [button]="!showNumbers || summary.submissiondraftscount" |                 [button]="!showNumbers || summary.submissiondraftscount" | ||||||
|                 (click)="goToSubmissionList(submissionStatusDraft, !!summary.submissiondraftscount)"> |                 (click)="goToSubmissionList(submissionStatusDraft, !!summary.submissiondraftscount)"> | ||||||
|                 <ion-label><h2>{{ 'addon.mod_assign.numberofdraftsubmissions' | translate }}</h2></ion-label> |                 <ion-label><h2>{{ 'addon.mod_assign.numberofdraftsubmissions' | translate }}</h2></ion-label> | ||||||
| @ -124,7 +125,8 @@ | |||||||
| 
 | 
 | ||||||
|             <!-- Summary of submissions with submitted status. --> |             <!-- Summary of submissions with submitted status. --> | ||||||
|             <ion-item class="ion-text-wrap" *ngIf="summary && summary.submissionsenabled" |             <ion-item class="ion-text-wrap" *ngIf="summary && summary.submissionsenabled" | ||||||
|                 [detail]="!showNumbers || summary.submissionssubmittedcount" |                 [class.hide-detail]="showNumbers && !summary.submissionssubmittedcount" | ||||||
|  |                 detail="true" | ||||||
|                 [button]="!showNumbers || summary.submissionssubmittedcount" |                 [button]="!showNumbers || summary.submissionssubmittedcount" | ||||||
|                 (click)="goToSubmissionList(submissionStatusSubmitted, !!summary.submissionssubmittedcount)"> |                 (click)="goToSubmissionList(submissionStatusSubmitted, !!summary.submissionssubmittedcount)"> | ||||||
|                 <ion-label><h2>{{ 'addon.mod_assign.numberofsubmittedassignments' | translate }}</h2></ion-label> |                 <ion-label><h2>{{ 'addon.mod_assign.numberofsubmittedassignments' | translate }}</h2></ion-label> | ||||||
| @ -139,7 +141,9 @@ | |||||||
| 
 | 
 | ||||||
|             <!-- Summary of submissions that need grading. --> |             <!-- Summary of submissions that need grading. --> | ||||||
|             <ion-item class="ion-text-wrap" *ngIf="summary && summary.submissionsenabled && !assign.teamsubmission && showNumbers" |             <ion-item class="ion-text-wrap" *ngIf="summary && summary.submissionsenabled && !assign.teamsubmission && showNumbers" | ||||||
|                 [detail]="needsGradingAvailable" [button]="needsGradingAvailable" |                 [class.hide-detail]="!needsGradingAvailable" | ||||||
|  |                 detail="true" | ||||||
|  |                 [button]="needsGradingAvailable" | ||||||
|                 (click)="goToSubmissionList(needGrading, needsGradingAvailable)"> |                 (click)="goToSubmissionList(needGrading, needsGradingAvailable)"> | ||||||
|                 <ion-label><h2>{{ 'addon.mod_assign.numberofsubmissionsneedgrading' | translate }}</h2></ion-label> |                 <ion-label><h2>{{ 'addon.mod_assign.numberofsubmissionsneedgrading' | translate }}</h2></ion-label> | ||||||
|                 <ion-badge slot="end" color="primary"> |                 <ion-badge slot="end" color="primary"> | ||||||
|  | |||||||
| @ -73,7 +73,9 @@ | |||||||
|                 </ion-select-option> |                 </ion-select-option> | ||||||
|             </ion-select> |             </ion-select> | ||||||
|         </ion-item> |         </ion-item> | ||||||
|         <ion-item class="ion-text-wrap" (click)="openRespondents()" [detail]="access.canviewreports && completedCount > 0" |         <ion-item class="ion-text-wrap" (click)="openRespondents()" | ||||||
|  |             [class.hide-detail]="!(access.canviewreports && completedCount > 0)" | ||||||
|  |             detail="true" | ||||||
|             [button]="access.canviewreports && completedCount > 0"> |             [button]="access.canviewreports && completedCount > 0"> | ||||||
|             <ion-label> |             <ion-label> | ||||||
|                 <h2>{{ 'addon.mod_feedback.completed_feedbacks' | translate }}</h2> |                 <h2>{{ 'addon.mod_feedback.completed_feedbacks' | translate }}</h2> | ||||||
|  | |||||||
| @ -63,7 +63,7 @@ | |||||||
| <!-- Template to render a list of conversations. --> | <!-- Template to render a list of conversations. --> | ||||||
| <ng-template #attemptsTemplate let-attempts="attempts"> | <ng-template #attemptsTemplate let-attempts="attempts"> | ||||||
|     <!-- "Header" of the table --> |     <!-- "Header" of the table --> | ||||||
|     <ion-item class="ion-text-wrap addon-mod_h5pactivity-table-header" detail="true"> |     <ion-item class="ion-text-wrap addon-mod_h5pactivity-table-header hide-detail" detail="true"> | ||||||
|         <ion-label> |         <ion-label> | ||||||
|             <ion-row class="ion-align-items-center"> |             <ion-row class="ion-align-items-center"> | ||||||
|                 <ion-col class="ion-text-center">#</ion-col> |                 <ion-col class="ion-text-center">#</ion-col> | ||||||
|  | |||||||
| @ -1,6 +1,5 @@ | |||||||
| :host { | :host { | ||||||
|     .addon-mod_h5pactivity-table-header { |     .addon-mod_h5pactivity-table-header { | ||||||
|         --detail-icon-opacity: 0; |  | ||||||
|         font-weight: bold; |         font-weight: bold; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -74,7 +74,7 @@ | |||||||
|         </ion-card-header> |         </ion-card-header> | ||||||
|         <ion-card-content role="table"> |         <ion-card-content role="table"> | ||||||
|             <!-- "Header" of the table --> |             <!-- "Header" of the table --> | ||||||
|             <ion-item class="ion-text-wrap addon-mod_quiz-table-header"> |             <ion-item class="ion-text-wrap addon-mod_quiz-table-header detail-hide"> | ||||||
|                 <ion-label role="rowgroup"> |                 <ion-label role="rowgroup"> | ||||||
|                     <ion-row class="ion-align-items-center" role="row"> |                     <ion-row class="ion-align-items-center" role="row"> | ||||||
|                         <ion-col class="ion-text-center" *ngIf="quiz.showAttemptColumn" role="columnheader"> |                         <ion-col class="ion-text-center" *ngIf="quiz.showAttemptColumn" role="columnheader"> | ||||||
|  | |||||||
| @ -1,10 +1,6 @@ | |||||||
| :host { | :host { | ||||||
| 
 | 
 | ||||||
|     .addon-mod_quiz-table { |     .addon-mod_quiz-table { | ||||||
|         .addon-mod_quiz-table-header { |  | ||||||
|             --detail-icon-opacity: 0; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         ion-card-content { |         ion-card-content { | ||||||
|             padding-left: 0; |             padding-left: 0; | ||||||
|             padding-right: 0; |             padding-right: 0; | ||||||
|  | |||||||
| @ -24,7 +24,6 @@ import { CoreStyleHandler, CoreStylesService } from '@features/styles/services/s | |||||||
| import { CoreLogger } from '@singletons/logger'; | import { CoreLogger } from '@singletons/logger'; | ||||||
| import { CoreUtils } from '@services/utils/utils'; | import { CoreUtils } from '@services/utils/utils'; | ||||||
| 
 | 
 | ||||||
| const SEPARATOR_35 = /\/\*\*? *3\.5(\.0)? *styles? *\*\//i; // A comment like "/* 3.5 styles */".
 |  | ||||||
| const COMPONENT = 'mmaRemoteStyles'; | const COMPONENT = 'mmaRemoteStyles'; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
| @ -61,7 +60,7 @@ export class AddonRemoteThemesHandlerService implements CoreStyleHandler { | |||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             // Config received, it's a temp site.
 |             // Config received, it's a temp site.
 | ||||||
|             return await this.get35Styles(config.mobilecssurl); |             return await this.getRemoteStyles(config.mobilecssurl); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         const site = await CoreSites.getSite(siteId); |         const site = await CoreSites.getSite(siteId); | ||||||
| @ -86,7 +85,7 @@ export class AddonRemoteThemesHandlerService implements CoreStyleHandler { | |||||||
|         this.logger.debug('Loading styles from: ', fileUrl); |         this.logger.debug('Loading styles from: ', fileUrl); | ||||||
| 
 | 
 | ||||||
|         // Get the CSS content using HTTP because we will treat the styles before saving them in the file.
 |         // Get the CSS content using HTTP because we will treat the styles before saving them in the file.
 | ||||||
|         const style = await this.get35Styles(fileUrl); |         const style = await this.getRemoteStyles(fileUrl); | ||||||
| 
 | 
 | ||||||
|         if (style != '') { |         if (style != '') { | ||||||
|             // Treat the CSS.
 |             // Treat the CSS.
 | ||||||
| @ -99,24 +98,17 @@ export class AddonRemoteThemesHandlerService implements CoreStyleHandler { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * Check if the CSS code has a separator for 3.5 styles. If it does, get only the styles after the separator. |      * Get styles from the url. | ||||||
|      * |      * | ||||||
|      * @param url Url to get the code from. |      * @param url Url to get the code from. | ||||||
|      * @return The filtered styles. |      * @return The styles. | ||||||
|      */ |      */ | ||||||
|     protected async get35Styles(url?: string): Promise<string> { |     protected async getRemoteStyles(url?: string): Promise<string> { | ||||||
|         if (!url) { |         if (!url) { | ||||||
|             return ''; |             return ''; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         const cssCode = await CoreWS.getText(url); |         return await CoreWS.getText(url); | ||||||
| 
 |  | ||||||
|         const separatorPos = cssCode.search(SEPARATOR_35); |  | ||||||
|         if (separatorPos > -1) { |  | ||||||
|             return cssCode.substr(separatorPos).replace(SEPARATOR_35, ''); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         return cssCode; |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|  | |||||||
| @ -284,7 +284,7 @@ core-format-text { | |||||||
| 
 | 
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| core-format-text, | core-format-text .core-format-text-content, | ||||||
| core-rich-text-editor .core-rte-editor { | core-rich-text-editor .core-rte-editor { | ||||||
|     @include core-headings(); |     @include core-headings(); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -148,22 +148,22 @@ | |||||||
| 
 | 
 | ||||||
| @mixin core-headings() { | @mixin core-headings() { | ||||||
|     h1 { |     h1 { | ||||||
|         font-size: 3rem; |         font-size: 26px; | ||||||
|     } |     } | ||||||
|     h2, .item-heading { |     h2, .item-heading { | ||||||
|         font-size: 2.8rem; |         font-size: 24px; | ||||||
|     } |     } | ||||||
|     h3 { |     h3 { | ||||||
|         font-size: 2.6rem; |         font-size: 22px; | ||||||
|     } |     } | ||||||
|     h4 { |     h4 { | ||||||
|         font-size: 2.2rem; |         font-size: 20px; | ||||||
|     } |     } | ||||||
|     h5 { |     h5 { | ||||||
|         font-size: 1.8rem; |         font-size: 18px; | ||||||
|     } |     } | ||||||
|     h6 { |     h6 { | ||||||
|         font-size: 1.4rem; |         font-size: 16px; | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -881,6 +881,11 @@ ion-datetime.datetime-disabled { | |||||||
|     opacity: .8 !important; |     opacity: .8 !important; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // Hide details on items to align badges. | ||||||
|  | ion-item.hide-detail { | ||||||
|  |     --detail-icon-opacity: 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // Make links clickable when inside radio or checkbox items. Style part. | // Make links clickable when inside radio or checkbox items. Style part. | ||||||
| @media (hover: hover) { | @media (hover: hover) { | ||||||
|     ion-item.item-multiple-inputs:hover::part(native) { |     ion-item.item-multiple-inputs:hover::part(native) { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user