use metadata file;

properly update available images after update;
This commit is contained in:
Marco Zeisler 2021-01-18 21:59:49 +01:00
parent b0d0a57d24
commit 93539dc6c5
4 changed files with 41 additions and 17 deletions

View File

@ -3,6 +3,8 @@ import {RestService} from '../../services/rest.service';
import {NGXLogger} from 'ngx-logger'; import {NGXLogger} from 'ngx-logger';
import {MatSnackBar} from '@angular/material/snack-bar'; import {MatSnackBar} from '@angular/material/snack-bar';
import {ImageMetadata} from '../../interfaces/interface'; import {ImageMetadata} from '../../interfaces/interface';
// @ts-ignore
import metaFile from '../../../../../iotclient/metadata_full.json';
@Component({ @Component({
selector: 'app-file-uploader', selector: 'app-file-uploader',
@ -47,21 +49,21 @@ export class FileUploaderComponent implements OnInit {
} }
if (this.mode === 'post') { if (this.mode === 'post') {
if (this.longitude && this.latitude) { if (this.meta && this.meta.longitude && this.meta.latitude) {
metaDict['longitude'] = Number.parseFloat(this.longitude);
metaDict['latitude'] = Number.parseFloat(this.latitude);
} else if (this.meta && this.meta.longitude && this.meta.latitude) {
metaDict['longitude'] = this.meta.longitude; metaDict['longitude'] = this.meta.longitude;
metaDict['latitude'] = this.meta.latitude; metaDict['latitude'] = this.meta.latitude;
} else if (this.longitude && this.latitude) {
metaDict['longitude'] = Number.parseFloat(this.longitude);
metaDict['latitude'] = Number.parseFloat(this.latitude);
} else { } else {
throw new Error('Long/Lat necessary if new file!'); throw new Error('Long/Lat necessary if new file!');
} }
} }
if (this.name) { if (this.meta && this.meta.name) {
metaDict['name'] = this.name;
} else if (this.meta && this.meta.name) {
metaDict['name'] = this.meta.name; metaDict['name'] = this.meta.name;
} else if (this.name) {
metaDict['name'] = this.name;
} else { } else {
if (this.mode === 'post') { if (this.mode === 'post') {
throw new Error('Name necessary if new file'); throw new Error('Name necessary if new file');
@ -97,6 +99,7 @@ export class FileUploaderComponent implements OnInit {
} }
ngOnInit(): void { ngOnInit(): void {
this.logger.debug('meta', metaFile);
} }
onFileSelected(fileEvent: Event) { onFileSelected(fileEvent: Event) {
@ -111,6 +114,12 @@ export class FileUploaderComponent implements OnInit {
this.file = e.target.result; this.file = e.target.result;
this.currentFileName = file.name; this.currentFileName = file.name;
this.logger.debug('Selected file', this.currentFileName, this.file); this.logger.debug('Selected file', this.currentFileName, this.file);
const metaData = this.loadMetaForFile();
if (metaData) {
this.name = metaData.name;
this.longitude = metaData.longitude;
this.latitude = metaData.latitude;
}
}; };
reader.readAsArrayBuffer(file); reader.readAsArrayBuffer(file);
@ -152,4 +161,9 @@ export class FileUploaderComponent implements OnInit {
} }
} }
private loadMetaForFile() {
const metaData = metaFile.find(m => m.filename === this.currentFileName);
this.logger.debug('Found corresponding meta', this.currentFileName, metaData);
return metaData;
}
} }

View File

@ -7,9 +7,12 @@
</div> </div>
<mat-expansion-panel <mat-expansion-panel
*ngFor="let image of filterOnlyNewestImageVersion() | slice:paginationGetStart():paginationGetEnd()" *ngFor="let image of filterOnlyNewestImageVersion() | slice:paginationGetStart():paginationGetEnd(); let i = index"
(opened)="loadImage(getImageIndex(image), image.identifier)" (opened)="openImageExpansion[i][0] = true; loadImage(getImageIndex(image), image.identifier)"
(closed)="openImageExpansion[i][0] = false;"
[expanded]="openImageExpansion[i][0]"
> >
{{openImageExpansion}} {{i}}
<!-- (opened)="loadImage(getImageIndex(image), image.filename.split('.')[0])"--> <!-- (opened)="loadImage(getImageIndex(image), image.filename.split('.')[0])"-->
<mat-expansion-panel-header (click)="$event.stopPropagation()"> <mat-expansion-panel-header (click)="$event.stopPropagation()">
<h4 style="width: 25em" <h4 style="width: 25em"
@ -50,10 +53,10 @@
<mat-grid-tile colspan="3"> <mat-grid-tile colspan="3">
<div style="display: block; width: 100%"> <div style="display: block; width: 100%">
<h3>Metadata:</h3> <h3>Metadata:</h3>
<p *ngIf="image.version">version: {{image.version}}</p>
<p *ngIf="image.filename">filename: {{image.filename}}</p> <p *ngIf="image.filename">filename: {{image.filename}}</p>
<p *ngIf="image.latitude">latitude: {{image.latitude}}</p> <p *ngIf="image.latitude">latitude: {{image.latitude}}</p>
<p *ngIf="image.longitude">longitude: {{image.longitude}}</p> <p *ngIf="image.longitude">longitude: {{image.longitude}}</p>
<p *ngIf="image.version">version: {{image.version}}</p>
</div> </div>
</mat-grid-tile> </mat-grid-tile>
</mat-grid-list> </mat-grid-list>
@ -61,23 +64,24 @@
<app-file-uploader [mode]="'put'" <app-file-uploader [mode]="'put'"
[filename]="image.filename.split('.')[0]" [filename]="image.filename.split('.')[0]"
[meta]=image [meta]=image
(reload)="image.image_b64 = undefined; this.loadImage(getImageIndex(image), image.identifier)" (reload)="reload.emit()"
></app-file-uploader> ></app-file-uploader>
<!-- (reload)="image.image_b64 = undefined; this.loadImage(getImageIndex(image), image.identifier)"-->
<ng-container *ngIf="getRelatedImageMeta(image); let relatedImageMetadata"> <ng-container *ngIf="getRelatedImageMeta(image); let relatedImageMetadata">
<mat-expansion-panel *ngIf="relatedImageMetadata.length > 0"> <mat-expansion-panel *ngIf="relatedImageMetadata.length > 0" [expanded]="openImageExpansion[i][1]">
<mat-expansion-panel-header> <mat-expansion-panel-header>
Previous version meta Previous version meta
</mat-expansion-panel-header> </mat-expansion-panel-header>
<ng-template matExpansionPanelContent> <ng-template matExpansionPanelContent>
<div *ngFor="let imageMeta of relatedImageMetadata"> <div *ngFor="let imageMeta of relatedImageMetadata">
<mat-divider></mat-divider> <mat-divider></mat-divider>
<p *ngIf="imageMeta.version">version: {{imageMeta.version}}</p>
<p *ngIf="imageMeta.name">name: {{imageMeta.name}}</p>
<p *ngIf="imageMeta.tag">tag: {{imageMeta.tag}}</p>
<p *ngIf="imageMeta.filename">filename: {{imageMeta.filename}}</p> <p *ngIf="imageMeta.filename">filename: {{imageMeta.filename}}</p>
<p *ngIf="imageMeta.latitude">latitude: {{imageMeta.latitude}}</p> <p *ngIf="imageMeta.latitude">latitude: {{imageMeta.latitude}}</p>
<p *ngIf="imageMeta.longitude">longitude: {{imageMeta.longitude}}</p> <p *ngIf="imageMeta.longitude">longitude: {{imageMeta.longitude}}</p>
<p *ngIf="imageMeta.version">version: {{imageMeta.version}}</p>
<p *ngIf="imageMeta.tag">tag: {{imageMeta.tag}}</p>
<p *ngIf="imageMeta.name">name: {{imageMeta.name}}</p>
</div> </div>
</ng-template> </ng-template>
</mat-expansion-panel> </mat-expansion-panel>
@ -90,8 +94,9 @@
[length]="filterOnlyNewestImageVersion().length" [length]="filterOnlyNewestImageVersion().length"
[pageSize]="pageSizeOptions[0]" [pageSize]="pageSizeOptions[0]"
[pageSizeOptions]="pageSizeOptions" [pageSizeOptions]="pageSizeOptions"
(page)="lastPageEvent = $event" (page)="lastPageEvent = $event; openImageExpansion = ALL_CLOSED_DEFAULT"
showFirstLastButtons showFirstLastButtons
hidePageSize
></mat-paginator> ></mat-paginator>
<mat-divider style="margin-top: 2em"></mat-divider> <mat-divider style="margin-top: 2em"></mat-divider>

View File

@ -20,6 +20,9 @@ export class ImagesComponent implements OnInit, AfterViewInit {
pageSizeOptions: number[] = [5, 10, 25, 100]; pageSizeOptions: number[] = [5, 10, 25, 100];
lastPageEvent: PageEvent; lastPageEvent: PageEvent;
openImageExpansion = [[true, true], [false, false], [false, false], [false, false], [false, false]];
ALL_CLOSED_DEFAULT: [[false, false], [false, false], [false, false], [false, false], [false, false]];
constructor( constructor(
public restService: RestService, public restService: RestService,
private logger: NGXLogger, private logger: NGXLogger,

View File

@ -17,7 +17,9 @@
"es2017", "es2017",
"dom" "dom"
], ],
"allowJs": true "allowJs": true,
"resolveJsonModule": true,
"esModuleInterop": true
} }
} }