use metadata file;
properly update available images after update;
This commit is contained in:
parent
b0d0a57d24
commit
93539dc6c5
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -17,7 +17,9 @@
|
|||||||
"es2017",
|
"es2017",
|
||||||
"dom"
|
"dom"
|
||||||
],
|
],
|
||||||
"allowJs": true
|
"allowJs": true,
|
||||||
|
"resolveJsonModule": true,
|
||||||
|
"esModuleInterop": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user