forked from EVOgeek/Vmeda.Online
		
	MOBILE-2895 file: Show download status on files
This commit is contained in:
		
							parent
							
								
									99809afbad
								
							
						
					
					
						commit
						5b5dcd8b79
					
				| @ -1,16 +1,13 @@ | ||||
| ion-app.app-root core-download-refresh { | ||||
|     font-size: 1.4rem; | ||||
| 
 | ||||
|     button, ion-icon { | ||||
|         cursor: pointer; | ||||
|         pointer-events: auto; | ||||
|         text-align: center; | ||||
|     } | ||||
| 
 | ||||
|     .core-icon-downloaded { | ||||
|     ion-icon, .core-icon-downloaded { | ||||
|         font-size: 1.8em; | ||||
|     } | ||||
| 
 | ||||
|     .spinner { | ||||
|         /*@include position(null, 13px, null, null); | ||||
|         position: absolute;*/ | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -3,13 +3,12 @@ | ||||
|     <h2>{{fileName}}</h2> | ||||
|     <p *ngIf="fileSizeReadable">{{ fileSizeReadable }}</p> | ||||
|     <p *ngIf="showTime">{{ timemodified * 1000 | coreFormatDate }}</p> | ||||
| 
 | ||||
|     <div class="buttons" item-end> | ||||
|         <button ion-button clear icon-only (click)="download($event)" *ngIf="!isDownloading && showDownload" [attr.aria-label]="'core.download' | translate" color="dark"> | ||||
|             <ion-icon [name]="isDownloaded ? 'refresh' : 'cloud-download'"></ion-icon> | ||||
|         </button> | ||||
|         <core-download-refresh [status]="state" [enabled]="canDownload" [loading]="isDownloading" [canTrustDownload]="!alwaysDownload" (action)="download()"></core-download-refresh> | ||||
| 
 | ||||
|         <button ion-button clear icon-only (click)="delete($event)" *ngIf="!isDownloading && canDelete" [attr.aria-label]="'core.delete' | translate" color="danger"> | ||||
|             <ion-icon name="trash"></ion-icon> | ||||
|         </button> | ||||
|     </div> | ||||
|     <ion-spinner *ngIf="isDownloading" item-end></ion-spinner> | ||||
| </a> | ||||
|  | ||||
| @ -7,6 +7,10 @@ ion-app.app-root { | ||||
|     .card-ios core-file + core-file > .item-ios.item-block > .item-inner, | ||||
|     core-file + core-file > .item-ios.item-block > .item-inner { | ||||
|         border-top: $hairlines-width solid $list-ios-border-color; | ||||
|         .buttons { | ||||
|             min-height: 53px; | ||||
|             min-width: 58px; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     .card-wp core-file + core-file > .item-wp.item-block > .item-inner, | ||||
| @ -16,5 +20,16 @@ ion-app.app-root { | ||||
| 
 | ||||
|     core-file > .item.item-block > .item-inner { | ||||
|         border-bottom: 0; | ||||
|         @include padding(null, 0, null, null); | ||||
|         .buttons { | ||||
|             display: flex; | ||||
|             flex-flow: row; | ||||
|             align-items: center; | ||||
|             z-index: 1; | ||||
|             justify-content: space-around; | ||||
|             align-content: center; | ||||
|             min-height: 52px; | ||||
|             min-width: 53px; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -44,9 +44,7 @@ export class CoreFileComponent implements OnInit, OnDestroy { | ||||
|     @Input() showTime?: boolean | string = true; // Whether show file time modified.
 | ||||
|     @Output() onDelete?: EventEmitter<void>; // Will notify when the delete button is clicked.
 | ||||
| 
 | ||||
|     isDownloaded: boolean; | ||||
|     isDownloading: boolean; | ||||
|     showDownload: boolean; | ||||
|     fileIcon: string; | ||||
|     fileName: string; | ||||
|     fileSizeReadable: string; | ||||
| @ -110,13 +108,10 @@ export class CoreFileComponent implements OnInit, OnDestroy { | ||||
|      */ | ||||
|     protected calculateState(): Promise<void> { | ||||
|         return this.filepoolProvider.getFileStateByUrl(this.siteId, this.fileUrl, this.timemodified).then((state) => { | ||||
|             const canDownload = this.sitesProvider.getCurrentSite().canDownloadFiles(); | ||||
|             this.canDownload = this.sitesProvider.getCurrentSite().canDownloadFiles(); | ||||
| 
 | ||||
|             this.state = state; | ||||
|             this.isDownloaded = state === CoreConstants.DOWNLOADED || state === CoreConstants.OUTDATED; | ||||
|             this.isDownloading = canDownload && state === CoreConstants.DOWNLOADING; | ||||
|             this.showDownload = canDownload && (state === CoreConstants.NOT_DOWNLOADED || state === CoreConstants.OUTDATED || | ||||
|                 (this.alwaysDownload && state === CoreConstants.DOWNLOADED)); | ||||
|             this.isDownloading = this.canDownload && state === CoreConstants.DOWNLOADING; | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
| @ -139,12 +134,12 @@ export class CoreFileComponent implements OnInit, OnDestroy { | ||||
|     /** | ||||
|      * Download a file and, optionally, open it afterwards. | ||||
|      * | ||||
|      * @param {Event} e Click event. | ||||
|      * @param {Event} [e] Click event. | ||||
|      * @param {boolean} openAfterDownload Whether the file should be opened after download. | ||||
|      */ | ||||
|     download(e: Event, openAfterDownload: boolean): void { | ||||
|         e.preventDefault(); | ||||
|         e.stopPropagation(); | ||||
|     download(e?: Event, openAfterDownload: boolean = false): void { | ||||
|         e && e.preventDefault(); | ||||
|         e && e.stopPropagation(); | ||||
| 
 | ||||
|         let promise; | ||||
| 
 | ||||
| @ -168,7 +163,8 @@ export class CoreFileComponent implements OnInit, OnDestroy { | ||||
|             return; | ||||
|         } | ||||
| 
 | ||||
|         if (!this.appProvider.isOnline() && (!openAfterDownload || (openAfterDownload && !this.isDownloaded))) { | ||||
|         if (!this.appProvider.isOnline() && (!openAfterDownload || (openAfterDownload && | ||||
|                 !(this.state === CoreConstants.DOWNLOADED || this.state === CoreConstants.OUTDATED)))) { | ||||
|             this.domUtils.showErrorModal('core.networkerrormsg', true); | ||||
| 
 | ||||
|             return; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user