diff --git a/src/app/workspace-admin/files/files.component.html b/src/app/workspace-admin/files/files.component.html index 7a1746ed1b6eb6316ceb03f5f543caaa765feb41..e5098f38c53a5b099f9c282bd2721dde4be12e13 100644 --- a/src/app/workspace-admin/files/files.component.html +++ b/src/app/workspace-admin/files/files.component.html @@ -99,6 +99,8 @@ {{ i }} </p> + <pre>{{fileStats | json}}</pre> + <br/> </div> diff --git a/src/app/workspace-admin/files/files.component.ts b/src/app/workspace-admin/files/files.component.ts index 0d9298808f5364182337961a8fd1dcb9444a032f..766f2bef93c063665c42bfacc058a6156a9f0142 100644 --- a/src/app/workspace-admin/files/files.component.ts +++ b/src/app/workspace-admin/files/files.component.ts @@ -34,6 +34,7 @@ export class FilesComponent implements OnInit { public checkInfos = []; @ViewChild(MatSort, { static: true }) sort: MatSort; + private fileStats: {[type: string]: number}; constructor( @Inject('SERVER_URL') private serverUrl: string, @@ -131,12 +132,27 @@ export class FilesComponent implements OnInit { (fileList: GetFileResponseData[]) => { this.serverfiles = new MatTableDataSource(fileList); this.serverfiles.sort = this.sort; + this.fileStats = FilesComponent.getStats(fileList); this.mds.setSpinnerOff(); } ); } } + private static getStats(fileList: GetFileResponseData[]): {[type: string]: number} { + const stats: {[type: string]: number} = {}; + // TODO filter validity + return fileList.reduce((carry, file) => { + if (typeof carry[file.type] === 'undefined') { + // eslint-disable-next-line no-param-reassign + carry[file.type] = 0; + } + // eslint-disable-next-line no-param-reassign + carry[file.type] += 1; + return carry; + }, stats); + } + download(element: GetFileResponseData): void { this.mds.setSpinnerOn(); this.bs.downloadFile(element.type, element.filename)