From 339d8f22104ccf4bcda15510d6c5bec3647acf18 Mon Sep 17 00:00:00 2001 From: phil Date: Mon, 25 Mar 2024 17:21:39 +0530 Subject: [PATCH] Fix/update admin (WIP) --- .../admin-basket-resolver.service.ts | 3 +- .../basket-upload.component.ts | 17 ++++----- .../admin/admin-basket/basket.component.ts | 5 +-- src/app/admin/admin-basket/data.service.ts | 35 ++++++++----------- .../admin/admin-menu/admin-menu.component.ts | 2 +- src/app/admin/admin-resolver.service.ts | 11 +++--- src/app/admin/admin.component.ts | 3 +- src/app/openapi/index.ts | 1 + src/app/openapi/models/AdminBasket.ts | 3 +- src/app/openapi/models/BasketNameOnly.ts | 8 +++++ src/app/openapi/services/AdminService.ts | 5 +-- 11 files changed, 49 insertions(+), 44 deletions(-) create mode 100644 src/app/openapi/models/BasketNameOnly.ts diff --git a/src/app/admin/admin-basket/admin-basket-resolver.service.ts b/src/app/admin/admin-basket/admin-basket-resolver.service.ts index ec94ff2..db844bb 100644 --- a/src/app/admin/admin-basket/admin-basket-resolver.service.ts +++ b/src/app/admin/admin-basket/admin-basket-resolver.service.ts @@ -3,7 +3,8 @@ import { Router, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/ro import { Observable, forkJoin } from 'rxjs' import { map } from 'rxjs/operators' -import { AdminBasket, AdminBasketDataService } from './data.service' +import { AdminBasketDataService } from './data.service' +import { AdminBasket } from '../../openapi' @Injectable() export class BasketResolver { 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 1b9b967..5f52291 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 @@ -6,7 +6,8 @@ import { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms import { MatTableDataSource } from '@angular/material/table' import { AdminDataService } from '../../admin-data.service' -import { AdminBasketFile, AdminBasket } from '../data.service' +import { AdminBasketFile } from '../data.service' +import { AdminBasket } from '../../../openapi' import { MatSnackBar } from '@angular/material/snack-bar' import { HtmlSnackbarComponent } from '../../../custom-snackbar/custom-snackbar.component' @@ -33,14 +34,14 @@ export class AdminBasketUploadComponent implements OnInit, OnChanges { formGroup: UntypedFormGroup = new UntypedFormGroup({}) ngOnInit() { - let defaults = this.adminDataService.surveyMeta.defaults + let dflt = this.adminDataService.surveyMeta.default this.formGroup = new UntypedFormGroup({ - 'store_misc': new UntypedFormControl(defaults['store_misc'], [Validators.required]), - 'store_line_work': new UntypedFormControl(defaults['store_line_work'], [Validators.required]), - 'status': new UntypedFormControl(defaults['status'], [Validators.required]), - 'project': new UntypedFormControl(defaults['project'], [Validators.required]), - 'surveyor': new UntypedFormControl(defaults['surveyor'], [Validators.required]), - 'equipment': new UntypedFormControl(defaults['equipment'], [Validators.required]), + 'store_misc': new UntypedFormControl(dflt['store_misc'], [Validators.required]), + 'store_line_work': new UntypedFormControl(dflt['store_line_work'], [Validators.required]), + 'status': new UntypedFormControl(dflt.status, [Validators.required]), + 'project': new UntypedFormControl(dflt.project, [Validators.required]), + 'surveyor': new UntypedFormControl(dflt.surveyor, [Validators.required]), + 'equipment': new UntypedFormControl(dflt.equipment, [Validators.required]), 'autoImport': new UntypedFormControl(true), }) this.setupRequired() diff --git a/src/app/admin/admin-basket/basket.component.ts b/src/app/admin/admin-basket/basket.component.ts index debd6ec..287cb15 100644 --- a/src/app/admin/admin-basket/basket.component.ts +++ b/src/app/admin/admin-basket/basket.component.ts @@ -10,7 +10,8 @@ import { MatSort } from '@angular/material/sort' import { MatTableDataSource } from '@angular/material/table' import { AdminDataService } from '../admin-data.service' -import { AdminBasketDataService, AdminBasket, AdminBasketFile } from './data.service' +import { AdminBasketDataService, AdminBasketFile } from './data.service' +import { AdminBasket } from '../../openapi' import { HtmlSnackbarComponent } from '../../custom-snackbar/custom-snackbar.component' @Component({ @@ -79,7 +80,7 @@ export class AdminBasketComponent implements OnInit { importItem(item: AdminBasketFile, dryRun: boolean) { this.adminBasketDataService.importItem(this.basket.name, item.id, dryRun).subscribe( resp => { - this.basket.files.find(row => row.id == item.id).time = new Date(resp.time) + this.basket.files.find(row => row.id == item.id).time = new Date(resp.time).toLocaleString() this.snackBar.openFromComponent(HtmlSnackbarComponent, { data: resp, //duration: 3000 diff --git a/src/app/admin/admin-basket/data.service.ts b/src/app/admin/admin-basket/data.service.ts index 46a6726..b329eff 100644 --- a/src/app/admin/admin-basket/data.service.ts +++ b/src/app/admin/admin-basket/data.service.ts @@ -6,6 +6,7 @@ import { map } from 'rxjs/operators' // import { Apollo, gql } from 'apollo-angular' import { Project } from '../admin-data.service' +import { AdminService, AdminBasket, BasketNameOnly } from '../../openapi' export class AdminBasketFile { constructor( @@ -25,15 +26,15 @@ export class AdminBasketFile { ) {} } -export class AdminBasket { - constructor( - public name: string, - public files?: AdminBasketFile[], - public columns?: string[], - public uploadFields?: string[], - public projects?: Project[], - ) {} -} +// export class AdminBasket { +// constructor( +// public name: string, +// public files?: AdminBasketFile[], +// public columns?: string[], +// public uploadFields?: string[], +// public projects?: Project[], +// ) {} +// } export class BasketImportResult { constructor( @@ -122,21 +123,12 @@ export class AdminBasketUploadFieldData { export class AdminBasketDataService { constructor( // private apollo: Apollo, + public adminService: AdminService, ) {} - getBaskets(): Observable { + getBaskets(): Observable { // Get the list a basket names - console.warn('Migrate Graphql') - return observableOf() - // return this.apollo.query({ - // query: getAdminBasketsQuery, - // }).pipe(map( - // res => res['data']['admin_baskets'].map( - // (data: object) => new AdminBasket( - // data['name'], - // ) - // ) - // )) + return this.adminService.getBasketsApiAdminBasketGet() } getBasketUploadFieldData(): Observable { @@ -160,6 +152,7 @@ export class AdminBasketDataService { getBasket(name: string): Observable { // Get all info and content of a basket + return this.adminService.getBasketApiAdminBasketNameGet(name) console.warn('Migrate Graphql') return observableOf() // return this.apollo.query({ diff --git a/src/app/admin/admin-menu/admin-menu.component.ts b/src/app/admin/admin-menu/admin-menu.component.ts index e53cd6a..5e0bb84 100644 --- a/src/app/admin/admin-menu/admin-menu.component.ts +++ b/src/app/admin/admin-menu/admin-menu.component.ts @@ -1,7 +1,7 @@ import { Component, Input } from '@angular/core' import { AuthenticationService } from '../../_services/authentication.service' -import { AdminBasket } from '../admin-basket/data.service' +import { AdminBasket } from '../../openapi' @Component({ selector: 'gisaf-admin-menu', diff --git a/src/app/admin/admin-resolver.service.ts b/src/app/admin/admin-resolver.service.ts index 2dfcf07..1b5190e 100644 --- a/src/app/admin/admin-resolver.service.ts +++ b/src/app/admin/admin-resolver.service.ts @@ -1,11 +1,10 @@ import { Injectable } from '@angular/core' import { Router, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router' import { Observable, forkJoin } from 'rxjs' -import { map } from 'rxjs/operators' import { AdminDataService } from './admin-data.service' -import { SurveyMeta } from './admin-data.service' -import { AdminBasketDataService, AdminBasket } from './admin-basket/data.service' +import { AdminBasketDataService } from './admin-basket/data.service' +import { BasketNameOnly, SurveyMeta } from '../openapi' @Injectable() @@ -19,11 +18,11 @@ export class AdminResolver { resolve( route: ActivatedRouteSnapshot, state: RouterStateSnapshot, - ): Observable<[AdminBasket[], SurveyMeta/*, object[]*/]> { - return forkJoin( + ): Observable<[BasketNameOnly[], SurveyMeta]> { + return forkJoin([ this.basketDataService.getBaskets(), this.dataService.getSurveyMeta(), //this.dataService.getModelsMenuBar(), - ) + ]) } } diff --git a/src/app/admin/admin.component.ts b/src/app/admin/admin.component.ts index e43be52..a81b0c8 100644 --- a/src/app/admin/admin.component.ts +++ b/src/app/admin/admin.component.ts @@ -2,8 +2,7 @@ import { Component, ViewChild, OnInit } from '@angular/core' import { ActivatedRoute } from '@angular/router' import { AdminListComponent } from './admin-list/admin-list.component' -import { SurveyMeta } from './admin-data.service' -import { AdminBasket } from './admin-basket/data.service' +import { AdminBasket, SurveyMeta } from '../openapi' @Component({ selector: 'gisaf-admin', diff --git a/src/app/openapi/index.ts b/src/app/openapi/index.ts index 009b78f..4b23b34 100644 --- a/src/app/openapi/index.ts +++ b/src/app/openapi/index.ts @@ -12,6 +12,7 @@ export type { Attachment } from './models/Attachment'; export type { BaseMapWithStores } from './models/BaseMapWithStores'; export type { BaseStyle } from './models/BaseStyle'; export type { BasketDefault } from './models/BasketDefault'; +export type { BasketNameOnly } from './models/BasketNameOnly'; export type { Body_login_for_access_token_api_token_post } from './models/Body_login_for_access_token_api_token_post'; export type { BootstrapData } from './models/BootstrapData'; export type { CategoryGroup } from './models/CategoryGroup'; diff --git a/src/app/openapi/models/AdminBasket.ts b/src/app/openapi/models/AdminBasket.ts index 4566765..b467abe 100644 --- a/src/app/openapi/models/AdminBasket.ts +++ b/src/app/openapi/models/AdminBasket.ts @@ -3,11 +3,12 @@ /* tslint:disable */ /* eslint-disable */ import type { FileImport } from './FileImport'; +import type { Project } from './Project'; export type AdminBasket = { name: string; files: Array; columns: Array; uploadFields: Array; - projects?: Array; + projects?: Array; }; diff --git a/src/app/openapi/models/BasketNameOnly.ts b/src/app/openapi/models/BasketNameOnly.ts new file mode 100644 index 0000000..43bd16d --- /dev/null +++ b/src/app/openapi/models/BasketNameOnly.ts @@ -0,0 +1,8 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export type BasketNameOnly = { + name: string; +}; + diff --git a/src/app/openapi/services/AdminService.ts b/src/app/openapi/services/AdminService.ts index eef685e..4d29ee0 100644 --- a/src/app/openapi/services/AdminService.ts +++ b/src/app/openapi/services/AdminService.ts @@ -6,6 +6,7 @@ import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import type { Observable } from 'rxjs'; import type { AdminBasket } from '../models/AdminBasket'; +import type { BasketNameOnly } from '../models/BasketNameOnly'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; @Injectable({ @@ -15,10 +16,10 @@ export class AdminService { constructor(public readonly http: HttpClient) {} /** * Get Baskets - * @returns any Successful Response + * @returns BasketNameOnly Successful Response * @throws ApiError */ - public getBasketsApiAdminBasketGet(): Observable { + public getBasketsApiAdminBasketGet(): Observable> { return __request(OpenAPI, this.http, { method: 'GET', url: '/api/admin/basket',