Fix/update admin (WIP)
This commit is contained in:
parent
4994d8314a
commit
339d8f2210
11 changed files with 49 additions and 44 deletions
|
@ -3,7 +3,8 @@ import { Router, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/ro
|
||||||
import { Observable, forkJoin } from 'rxjs'
|
import { Observable, forkJoin } from 'rxjs'
|
||||||
import { map } from 'rxjs/operators'
|
import { map } from 'rxjs/operators'
|
||||||
|
|
||||||
import { AdminBasket, AdminBasketDataService } from './data.service'
|
import { AdminBasketDataService } from './data.service'
|
||||||
|
import { AdminBasket } from '../../openapi'
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class BasketResolver {
|
export class BasketResolver {
|
||||||
|
|
|
@ -6,7 +6,8 @@ import { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms
|
||||||
import { MatTableDataSource } from '@angular/material/table'
|
import { MatTableDataSource } from '@angular/material/table'
|
||||||
|
|
||||||
import { AdminDataService } from '../../admin-data.service'
|
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 { MatSnackBar } from '@angular/material/snack-bar'
|
||||||
import { HtmlSnackbarComponent } from '../../../custom-snackbar/custom-snackbar.component'
|
import { HtmlSnackbarComponent } from '../../../custom-snackbar/custom-snackbar.component'
|
||||||
|
|
||||||
|
@ -33,14 +34,14 @@ export class AdminBasketUploadComponent implements OnInit, OnChanges {
|
||||||
formGroup: UntypedFormGroup = new UntypedFormGroup({})
|
formGroup: UntypedFormGroup = new UntypedFormGroup({})
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
let defaults = this.adminDataService.surveyMeta.defaults
|
let dflt = this.adminDataService.surveyMeta.default
|
||||||
this.formGroup = new UntypedFormGroup({
|
this.formGroup = new UntypedFormGroup({
|
||||||
'store_misc': new UntypedFormControl(defaults['store_misc'], [Validators.required]),
|
'store_misc': new UntypedFormControl(dflt['store_misc'], [Validators.required]),
|
||||||
'store_line_work': new UntypedFormControl(defaults['store_line_work'], [Validators.required]),
|
'store_line_work': new UntypedFormControl(dflt['store_line_work'], [Validators.required]),
|
||||||
'status': new UntypedFormControl(defaults['status'], [Validators.required]),
|
'status': new UntypedFormControl(dflt.status, [Validators.required]),
|
||||||
'project': new UntypedFormControl(defaults['project'], [Validators.required]),
|
'project': new UntypedFormControl(dflt.project, [Validators.required]),
|
||||||
'surveyor': new UntypedFormControl(defaults['surveyor'], [Validators.required]),
|
'surveyor': new UntypedFormControl(dflt.surveyor, [Validators.required]),
|
||||||
'equipment': new UntypedFormControl(defaults['equipment'], [Validators.required]),
|
'equipment': new UntypedFormControl(dflt.equipment, [Validators.required]),
|
||||||
'autoImport': new UntypedFormControl(true),
|
'autoImport': new UntypedFormControl(true),
|
||||||
})
|
})
|
||||||
this.setupRequired()
|
this.setupRequired()
|
||||||
|
|
|
@ -10,7 +10,8 @@ import { MatSort } from '@angular/material/sort'
|
||||||
import { MatTableDataSource } from '@angular/material/table'
|
import { MatTableDataSource } from '@angular/material/table'
|
||||||
|
|
||||||
import { AdminDataService } from '../admin-data.service'
|
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'
|
import { HtmlSnackbarComponent } from '../../custom-snackbar/custom-snackbar.component'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
@ -79,7 +80,7 @@ export class AdminBasketComponent implements OnInit {
|
||||||
importItem(item: AdminBasketFile, dryRun: boolean) {
|
importItem(item: AdminBasketFile, dryRun: boolean) {
|
||||||
this.adminBasketDataService.importItem(this.basket.name, item.id, dryRun).subscribe(
|
this.adminBasketDataService.importItem(this.basket.name, item.id, dryRun).subscribe(
|
||||||
resp => {
|
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, {
|
this.snackBar.openFromComponent(HtmlSnackbarComponent, {
|
||||||
data: resp,
|
data: resp,
|
||||||
//duration: 3000
|
//duration: 3000
|
||||||
|
|
|
@ -6,6 +6,7 @@ import { map } from 'rxjs/operators'
|
||||||
// import { Apollo, gql } from 'apollo-angular'
|
// import { Apollo, gql } from 'apollo-angular'
|
||||||
|
|
||||||
import { Project } from '../admin-data.service'
|
import { Project } from '../admin-data.service'
|
||||||
|
import { AdminService, AdminBasket, BasketNameOnly } from '../../openapi'
|
||||||
|
|
||||||
export class AdminBasketFile {
|
export class AdminBasketFile {
|
||||||
constructor(
|
constructor(
|
||||||
|
@ -25,15 +26,15 @@ export class AdminBasketFile {
|
||||||
) {}
|
) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class AdminBasket {
|
// export class AdminBasket {
|
||||||
constructor(
|
// constructor(
|
||||||
public name: string,
|
// public name: string,
|
||||||
public files?: AdminBasketFile[],
|
// public files?: AdminBasketFile[],
|
||||||
public columns?: string[],
|
// public columns?: string[],
|
||||||
public uploadFields?: string[],
|
// public uploadFields?: string[],
|
||||||
public projects?: Project[],
|
// public projects?: Project[],
|
||||||
) {}
|
// ) {}
|
||||||
}
|
// }
|
||||||
|
|
||||||
export class BasketImportResult {
|
export class BasketImportResult {
|
||||||
constructor(
|
constructor(
|
||||||
|
@ -122,21 +123,12 @@ export class AdminBasketUploadFieldData {
|
||||||
export class AdminBasketDataService {
|
export class AdminBasketDataService {
|
||||||
constructor(
|
constructor(
|
||||||
// private apollo: Apollo,
|
// private apollo: Apollo,
|
||||||
|
public adminService: AdminService,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
getBaskets(): Observable<AdminBasket[]> {
|
getBaskets(): Observable<BasketNameOnly[]> {
|
||||||
// Get the list a basket names
|
// Get the list a basket names
|
||||||
console.warn('Migrate Graphql')
|
return this.adminService.getBasketsApiAdminBasketGet()
|
||||||
return observableOf()
|
|
||||||
// return this.apollo.query({
|
|
||||||
// query: getAdminBasketsQuery,
|
|
||||||
// }).pipe(map(
|
|
||||||
// res => res['data']['admin_baskets'].map(
|
|
||||||
// (data: object) => new AdminBasket(
|
|
||||||
// data['name'],
|
|
||||||
// )
|
|
||||||
// )
|
|
||||||
// ))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getBasketUploadFieldData(): Observable<AdminBasketUploadFieldData> {
|
getBasketUploadFieldData(): Observable<AdminBasketUploadFieldData> {
|
||||||
|
@ -160,6 +152,7 @@ export class AdminBasketDataService {
|
||||||
|
|
||||||
getBasket(name: string): Observable<AdminBasket> {
|
getBasket(name: string): Observable<AdminBasket> {
|
||||||
// Get all info and content of a basket
|
// Get all info and content of a basket
|
||||||
|
return this.adminService.getBasketApiAdminBasketNameGet(name)
|
||||||
console.warn('Migrate Graphql')
|
console.warn('Migrate Graphql')
|
||||||
return observableOf()
|
return observableOf()
|
||||||
// return this.apollo.query({
|
// return this.apollo.query({
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { Component, Input } from '@angular/core'
|
import { Component, Input } from '@angular/core'
|
||||||
|
|
||||||
import { AuthenticationService } from '../../_services/authentication.service'
|
import { AuthenticationService } from '../../_services/authentication.service'
|
||||||
import { AdminBasket } from '../admin-basket/data.service'
|
import { AdminBasket } from '../../openapi'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'gisaf-admin-menu',
|
selector: 'gisaf-admin-menu',
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
import { Injectable } from '@angular/core'
|
import { Injectable } from '@angular/core'
|
||||||
import { Router, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router'
|
import { Router, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router'
|
||||||
import { Observable, forkJoin } from 'rxjs'
|
import { Observable, forkJoin } from 'rxjs'
|
||||||
import { map } from 'rxjs/operators'
|
|
||||||
|
|
||||||
import { AdminDataService } from './admin-data.service'
|
import { AdminDataService } from './admin-data.service'
|
||||||
import { SurveyMeta } from './admin-data.service'
|
import { AdminBasketDataService } from './admin-basket/data.service'
|
||||||
import { AdminBasketDataService, AdminBasket } from './admin-basket/data.service'
|
import { BasketNameOnly, SurveyMeta } from '../openapi'
|
||||||
|
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
|
@ -19,11 +18,11 @@ export class AdminResolver {
|
||||||
resolve(
|
resolve(
|
||||||
route: ActivatedRouteSnapshot,
|
route: ActivatedRouteSnapshot,
|
||||||
state: RouterStateSnapshot,
|
state: RouterStateSnapshot,
|
||||||
): Observable<[AdminBasket[], SurveyMeta/*, object[]*/]> {
|
): Observable<[BasketNameOnly[], SurveyMeta]> {
|
||||||
return forkJoin(
|
return forkJoin([
|
||||||
this.basketDataService.getBaskets(),
|
this.basketDataService.getBaskets(),
|
||||||
this.dataService.getSurveyMeta(),
|
this.dataService.getSurveyMeta(),
|
||||||
//this.dataService.getModelsMenuBar(),
|
//this.dataService.getModelsMenuBar(),
|
||||||
)
|
])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,8 +2,7 @@ import { Component, ViewChild, OnInit } from '@angular/core'
|
||||||
import { ActivatedRoute } from '@angular/router'
|
import { ActivatedRoute } from '@angular/router'
|
||||||
|
|
||||||
import { AdminListComponent } from './admin-list/admin-list.component'
|
import { AdminListComponent } from './admin-list/admin-list.component'
|
||||||
import { SurveyMeta } from './admin-data.service'
|
import { AdminBasket, SurveyMeta } from '../openapi'
|
||||||
import { AdminBasket } from './admin-basket/data.service'
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'gisaf-admin',
|
selector: 'gisaf-admin',
|
||||||
|
|
|
@ -12,6 +12,7 @@ export type { Attachment } from './models/Attachment';
|
||||||
export type { BaseMapWithStores } from './models/BaseMapWithStores';
|
export type { BaseMapWithStores } from './models/BaseMapWithStores';
|
||||||
export type { BaseStyle } from './models/BaseStyle';
|
export type { BaseStyle } from './models/BaseStyle';
|
||||||
export type { BasketDefault } from './models/BasketDefault';
|
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 { 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 { BootstrapData } from './models/BootstrapData';
|
||||||
export type { CategoryGroup } from './models/CategoryGroup';
|
export type { CategoryGroup } from './models/CategoryGroup';
|
||||||
|
|
|
@ -3,11 +3,12 @@
|
||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
import type { FileImport } from './FileImport';
|
import type { FileImport } from './FileImport';
|
||||||
|
import type { Project } from './Project';
|
||||||
export type AdminBasket = {
|
export type AdminBasket = {
|
||||||
name: string;
|
name: string;
|
||||||
files: Array<FileImport>;
|
files: Array<FileImport>;
|
||||||
columns: Array<string>;
|
columns: Array<string>;
|
||||||
uploadFields: Array<string>;
|
uploadFields: Array<string>;
|
||||||
projects?: Array<string>;
|
projects?: Array<Project>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
8
src/app/openapi/models/BasketNameOnly.ts
Normal file
8
src/app/openapi/models/BasketNameOnly.ts
Normal 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;
|
||||||
|
};
|
||||||
|
|
|
@ -6,6 +6,7 @@ import { Injectable } from '@angular/core';
|
||||||
import { HttpClient } from '@angular/common/http';
|
import { HttpClient } from '@angular/common/http';
|
||||||
import type { Observable } from 'rxjs';
|
import type { Observable } from 'rxjs';
|
||||||
import type { AdminBasket } from '../models/AdminBasket';
|
import type { AdminBasket } from '../models/AdminBasket';
|
||||||
|
import type { BasketNameOnly } from '../models/BasketNameOnly';
|
||||||
import { OpenAPI } from '../core/OpenAPI';
|
import { OpenAPI } from '../core/OpenAPI';
|
||||||
import { request as __request } from '../core/request';
|
import { request as __request } from '../core/request';
|
||||||
@Injectable({
|
@Injectable({
|
||||||
|
@ -15,10 +16,10 @@ export class AdminService {
|
||||||
constructor(public readonly http: HttpClient) {}
|
constructor(public readonly http: HttpClient) {}
|
||||||
/**
|
/**
|
||||||
* Get Baskets
|
* Get Baskets
|
||||||
* @returns any Successful Response
|
* @returns BasketNameOnly Successful Response
|
||||||
* @throws ApiError
|
* @throws ApiError
|
||||||
*/
|
*/
|
||||||
public getBasketsApiAdminBasketGet(): Observable<any> {
|
public getBasketsApiAdminBasketGet(): Observable<Array<BasketNameOnly>> {
|
||||||
return __request(OpenAPI, this.http, {
|
return __request(OpenAPI, this.http, {
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
url: '/api/admin/basket',
|
url: '/api/admin/basket',
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue