diff --git a/src/app/admin/admin-basket/admin-basket-item/basket-item.component.ts b/src/app/admin/admin-basket/admin-basket-item/basket-item.component.ts index cf001ed..6825753 100644 --- a/src/app/admin/admin-basket/admin-basket-item/basket-item.component.ts +++ b/src/app/admin/admin-basket/admin-basket-item/basket-item.component.ts @@ -1,9 +1,7 @@ -import { Component, OnInit, Input, +import { Component, Input, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core' -import { ActivatedRoute } from '@angular/router' -import { AdminDataService } from '../../admin-data.service' -import { AdminBasketFile } from '../data.service' +import { FileImport } from '../../../openapi' @Component({ selector: 'gisaf-admin-basket-item', @@ -11,15 +9,10 @@ import { AdminBasketFile } from '../data.service' styleUrls: ['./basket-item.component.css'], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class AdminBasketItemComponent implements OnInit { +export class AdminBasketItemComponent { constructor( - public adminDataService: AdminDataService, - private route: ActivatedRoute, private cdr: ChangeDetectorRef, ) {} - @Input() file: AdminBasketFile - - ngOnInit() { - } + @Input() file: FileImport } \ No newline at end of file diff --git a/src/app/admin/admin-basket/admin-basket-upload/basket-upload.component.ts b/src/app/admin/admin-basket/admin-basket-upload/basket-upload.component.ts index 74dd804..ffa9e5e 100644 --- a/src/app/admin/admin-basket/admin-basket-upload/basket-upload.component.ts +++ b/src/app/admin/admin-basket/admin-basket-upload/basket-upload.component.ts @@ -1,13 +1,11 @@ import { Component, OnInit, Input, ViewChild, ElementRef, ChangeDetectorRef, ChangeDetectionStrategy, SimpleChanges, OnChanges } from '@angular/core' -import { HttpClient } from '@angular/common/http' import { FormGroup, Validators, FormControl } from '@angular/forms' import { MatTableDataSource } from '@angular/material/table' import { AdminDataService } from '../../admin-data.service' -import { AdminBasketFile } from '../data.service' -import { AdminBasket, AdminService } from '../../../openapi' +import { AdminBasket, AdminService, FileImport } from '../../../openapi' import { MatSnackBar } from '@angular/material/snack-bar' import { HtmlSnackbarComponent } from '../../../custom-snackbar/custom-snackbar.component' @@ -21,7 +19,6 @@ export class AdminBasketUploadComponent implements OnInit, OnChanges { constructor( public adminDataService: AdminDataService, private cdr: ChangeDetectorRef, - private http: HttpClient, private snackBar: MatSnackBar, public adminService: AdminService, ) {} @@ -81,33 +78,17 @@ export class AdminBasketUploadComponent implements OnInit, OnChanges { } }).subscribe( resp => { - let importResult = resp['import_result'] - const importTime = resp['time'] || (importResult && importResult['time']) - const fileImport = new AdminBasketFile( - resp['id'], - resp['dir'], - resp['name'], - resp['url'], - resp['md5'], - importTime && new Date(importTime), - resp['comment'], - resp['status'], - resp['store'], - resp['project'], - resp['surveyor'], - resp['equipment'], - ) - this.dataSource.data.push(fileImport) + this.dataSource.data.push(resp.fileImport) this.dataSource.data = this.dataSource.data - let msg = 'File ' + fileImport.name + ' added to basket' - if (importResult) { + if (resp.details) { this.snackBar.openFromComponent(HtmlSnackbarComponent, { - data: importResult + data: resp.details //duration: 3000 }) } else { + let msg = 'File ' + resp.fileImport.name + ' added to basket' this.snackBar.open(msg, 'Close') } this.cdr.markForCheck() diff --git a/src/app/admin/admin-basket/basket.component.ts b/src/app/admin/admin-basket/basket.component.ts index 2f8b5c3..fb16cae 100644 --- a/src/app/admin/admin-basket/basket.component.ts +++ b/src/app/admin/admin-basket/basket.component.ts @@ -10,8 +10,7 @@ import { MatSort } from '@angular/material/sort' import { MatTableDataSource } from '@angular/material/table' import { AdminDataService } from '../admin-data.service' -import { AdminBasketFile } from './data.service' -import { AdminBasket, AdminService } from '../../openapi' +import { AdminBasket, AdminService, FileImport } from '../../openapi' import { HtmlSnackbarComponent } from '../../custom-snackbar/custom-snackbar.component' @Component({ @@ -73,11 +72,11 @@ export class AdminBasketComponent implements OnInit { this.dataSource.filter = this.filterText.trim().toLowerCase() } - download(item: AdminBasketFile) { + download(item: FileImport) { window.open('/api/admin/basket/download/' + this.basket.name + '/' + item.id + '/' + item.name) } - importItem(item: AdminBasketFile, dryRun: boolean) { + importItem(item: FileImport, dryRun: boolean) { return this.adminService.importBasketFileApiAdminBasketImportBasketFileIdGet({ basket: this.basket.name, fileId: item.id, @@ -94,7 +93,7 @@ export class AdminBasketComponent implements OnInit { ) } - deleteItem(item: AdminBasketFile) { + deleteItem(item: FileImport) { return this.adminService.deleteBasketFileApiAdminBasketDeleteBasketFileIdGet({ basket: this.basket.name, fileId: item.id diff --git a/src/app/admin/admin-basket/data.service.ts b/src/app/admin/admin-basket/data.service.ts deleted file mode 100644 index a500b31..0000000 --- a/src/app/admin/admin-basket/data.service.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Injectable } from '@angular/core' - -import { Observable, of as observableOf } from 'rxjs' -import { map } from 'rxjs/operators' - -// import { Apollo, gql } from 'apollo-angular' - -import { AdminService, AdminBasket, BasketNameOnly, Project, - BasketImportResult - } from '../../openapi' - -export class AdminBasketFile { - constructor( - public id: number, - public dir: string, - public name: string, - public url: string, - public md5: string, - public time: Date, - public comment: string, - public status: string, - public store: string, - public project: string, - public surveyor: string, - public equipment: string, - public import_result?: string, - ) {} -} - -export class AdminBasketUploadFieldData { - constructor( - public stores: string[], - public statuses: string[], - public projects: string[], - public surveyors: string[], - public equipments: string[], - ) {} -} \ No newline at end of file diff --git a/src/app/openapi/schemas.gen.ts b/src/app/openapi/schemas.gen.ts index d3f9c42..77081ac 100644 --- a/src/app/openapi/schemas.gen.ts +++ b/src/app/openapi/schemas.gen.ts @@ -196,67 +196,6 @@ export const $AdminBasket = { title: 'AdminBasket' } as const; -export const $AdminBasketFile = { - properties: { - id: { - type: 'integer', - title: 'Id' - }, - dir: { - type: 'string', - title: 'Dir' - }, - name: { - type: 'string', - title: 'Name' - }, - url: { - type: 'string', - title: 'Url' - }, - md5: { - type: 'string', - title: 'Md5' - }, - time: { - type: 'string', - format: 'date-time', - title: 'Time' - }, - comment: { - type: 'string', - title: 'Comment' - }, - status: { - type: 'string', - title: 'Status' - }, - store: { - type: 'string', - title: 'Store' - }, - project: { - type: 'string', - title: 'Project' - }, - surveyor: { - type: 'string', - title: 'Surveyor' - }, - equipment: { - type: 'string', - title: 'Equipment' - }, - import_result: { - type: 'string', - title: 'Import Result' - } - }, - type: 'object', - required: ['id', 'dir', 'name', 'url', 'md5', 'time', 'comment', 'status', 'store', 'project', 'surveyor', 'equipment', 'import_result'], - title: 'AdminBasketFile' -} as const; - export const $Attachment = { properties: { name: { @@ -386,7 +325,14 @@ export const $BasketImportResult = { title: 'Time' }, message: { - type: 'string', + anyOf: [ + { + type: 'string' + }, + { + type: 'null' + } + ], title: 'Message' }, details: { @@ -415,10 +361,19 @@ export const $BasketImportResult = { } ], title: 'Details' + }, + fileImport: { + anyOf: [ + { + '$ref': '#/components/schemas/FileImport' + }, + { + type: 'null' + } + ] } }, type: 'object', - required: ['message'], title: 'BasketImportResult' } as const; @@ -1313,7 +1268,14 @@ export const $FileImport = { title: 'Id' }, url: { - type: 'string', + anyOf: [ + { + type: 'string' + }, + { + type: 'null' + } + ], title: 'Url' }, dir: { @@ -1329,20 +1291,48 @@ export const $FileImport = { title: 'Md5' }, time: { - type: 'string', - format: 'date-time', + anyOf: [ + { + type: 'string', + format: 'date-time' + }, + { + type: 'null' + } + ], title: 'Time' }, comment: { - type: 'string', + anyOf: [ + { + type: 'string' + }, + { + type: 'null' + } + ], title: 'Comment' }, status: { - type: 'string', + anyOf: [ + { + type: 'string' + }, + { + type: 'null' + } + ], title: 'Status' }, store: { - type: 'string', + anyOf: [ + { + type: 'string' + }, + { + type: 'null' + } + ], title: 'Store' }, basket: { @@ -1350,15 +1340,36 @@ export const $FileImport = { title: 'Basket' }, project_id: { - type: 'integer', + anyOf: [ + { + type: 'integer' + }, + { + type: 'null' + } + ], title: 'Project Id' }, surveyor_id: { - type: 'integer', + anyOf: [ + { + type: 'integer' + }, + { + type: 'null' + } + ], title: 'Surveyor Id' }, equipment_id: { - type: 'integer', + anyOf: [ + { + type: 'integer' + }, + { + type: 'null' + } + ], title: 'Equipment Id' }, path: { @@ -1369,7 +1380,7 @@ export const $FileImport = { } }, type: 'object', - required: ['url', 'dir', 'name', 'md5', 'time', 'comment', 'status', 'store', 'basket', 'project_id', 'surveyor_id', 'equipment_id', 'path'], + required: ['dir', 'name', 'md5', 'basket', 'project_id', 'surveyor_id', 'equipment_id', 'path'], title: 'FileImport', description: `Files to import or imported in the DB. Give either url or path.` diff --git a/src/app/openapi/services.gen.ts b/src/app/openapi/services.gen.ts index 672a588..e5662b6 100644 --- a/src/app/openapi/services.gen.ts +++ b/src/app/openapi/services.gen.ts @@ -433,7 +433,7 @@ export class AdminService { /** * Upload Basket File - * @returns AdminBasketFile Successful Response + * @returns BasketImportResult Successful Response * @throws ApiError */ public uploadBasketFileApiAdminBasketUploadNamePost(data: $OpenApiTs['/api/admin/basket/upload/{name}']['post']['req']): Observable<$OpenApiTs['/api/admin/basket/upload/{name}']['post']['res'][200]> { diff --git a/src/app/openapi/types.gen.ts b/src/app/openapi/types.gen.ts index 6aaa1f3..0a1e1e9 100644 --- a/src/app/openapi/types.gen.ts +++ b/src/app/openapi/types.gen.ts @@ -42,22 +42,6 @@ export type AdminBasket = { projects?: Array; }; -export type AdminBasketFile = { - id: number; - dir: string; - name: string; - url: string; - md5: string; - time: string; - comment: string; - status: string; - store: string; - project: string; - surveyor: string; - equipment: string; - import_result: string; -}; - export type Attachment = { name: string; path: string; @@ -89,10 +73,11 @@ export type BasketDefault = { export type BasketImportResult = { time?: string; - message: string; + message?: string | null; details?: { [key: string]: (string | number | boolean); } | null; + fileImport?: FileImport | null; }; export type BasketNameOnly = { @@ -263,18 +248,18 @@ export type FeatureInfo = { */ export type FileImport = { id?: number | null; - url: string; + url?: string | null; dir: string; name: string; md5: string; - time: string; - comment: string; - status: string; - store: string; + time?: string | null; + comment?: string | null; + status?: string | null; + store?: string | null; basket: string; - project_id: number; - surveyor_id: number; - equipment_id: number; + project_id: number | null; + surveyor_id: number | null; + equipment_id: number | null; readonly path: string; }; @@ -848,7 +833,7 @@ export type $OpenApiTs = { /** * Successful Response */ - 200: AdminBasketFile; + 200: BasketImportResult; }; }; };