Fix/update admin (WIP)

This commit is contained in:
phil 2024-03-25 17:21:39 +05:30
parent 4994d8314a
commit 339d8f2210
11 changed files with 49 additions and 44 deletions

View file

@ -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 {

View file

@ -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()

View file

@ -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

View file

@ -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<AdminBasket[]> {
getBaskets(): Observable<BasketNameOnly[]> {
// 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<AdminBasketUploadFieldData> {
@ -160,6 +152,7 @@ export class AdminBasketDataService {
getBasket(name: string): Observable<AdminBasket> {
// Get all info and content of a basket
return this.adminService.getBasketApiAdminBasketNameGet(name)
console.warn('Migrate Graphql')
return observableOf()
// return this.apollo.query({

View file

@ -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',

View file

@ -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(),
)
])
}
}

View file

@ -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',

View file

@ -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';

View file

@ -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<FileImport>;
columns: Array<string>;
uploadFields: Array<string>;
projects?: Array<string>;
projects?: Array<Project>;
};

View file

@ -0,0 +1,8 @@
/* generated using openapi-typescript-codegen -- do no edit */
/* istanbul ignore file */
/* tslint:disable */
/* eslint-disable */
export type BasketNameOnly = {
name: string;
};

View file

@ -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<any> {
public getBasketsApiAdminBasketGet(): Observable<Array<BasketNameOnly>> {
return __request(OpenAPI, this.http, {
method: 'GET',
url: '/api/admin/basket',