diff --git a/libs/grid/src/lib/containers/accounts-table/accounts-table.component.ts b/libs/grid/src/lib/containers/accounts-table/accounts-table.component.ts index 4a0801f6f..fb654cf59 100644 --- a/libs/grid/src/lib/containers/accounts-table/accounts-table.component.ts +++ b/libs/grid/src/lib/containers/accounts-table/accounts-table.component.ts @@ -105,9 +105,12 @@ export class AccountsTableComponent extends EntitiesComponent res !== false), // tap(res => console.log(res)), - map((res: Account) => { - if (!isNew) { - res.id = entity.id; - } - return res; - }), - concatMap((res: Account) => super.updateOrCreate(res, isNew)), + concatMap((res: Account) => super.updateOrCreate(res, id)), ) .subscribe( _ => { diff --git a/libs/shared/src/lib/containers/entity/entity.component.html b/libs/shared/src/lib/containers/entity/entity.component.html index 58f6c7791..a1f337014 100644 --- a/libs/shared/src/lib/containers/entity/entity.component.html +++ b/libs/shared/src/lib/containers/entity/entity.component.html @@ -1,7 +1,3 @@ - - - -
@@ -87,9 +83,21 @@ - + {{ column.header }} - {{ column.displayFn(row) }} + + + + + {{ column.displayFn(row) }} + diff --git a/libs/shared/src/lib/containers/entity/entity.component.scss b/libs/shared/src/lib/containers/entity/entity.component.scss index a1d7280a0..3aa450e3a 100644 --- a/libs/shared/src/lib/containers/entity/entity.component.scss +++ b/libs/shared/src/lib/containers/entity/entity.component.scss @@ -1,9 +1,3 @@ -:host { - display: block; - padding: 1.5%; - position: relative; -} - mat-toolbar { padding: 8px 24px 0; } diff --git a/libs/shared/src/lib/containers/entity/entity.component.ts b/libs/shared/src/lib/containers/entity/entity.component.ts index 044e53dcd..d5479dea2 100644 --- a/libs/shared/src/lib/containers/entity/entity.component.ts +++ b/libs/shared/src/lib/containers/entity/entity.component.ts @@ -89,11 +89,11 @@ export abstract class EntitiesComponent this.update())); } - updateOrCreate(entity: TEntity, isNew: boolean) { - if (isNew) { - return this.entityService.post(entity).pipe(concatMap(_ => this.update())); + updateOrCreate(entity: TEntity, id: number) { + if (id) { + return this.entityService.put(id, entity).pipe(concatMap(_ => this.update())); } else { - return this.entityService.put(entity).pipe(concatMap(_ => this.update())); + return this.entityService.post(entity).pipe(concatMap(_ => this.update())); } } diff --git a/libs/shared/src/lib/containers/entity/entity.model.ts b/libs/shared/src/lib/containers/entity/entity.model.ts index aa8b21f50..0b58926f3 100644 --- a/libs/shared/src/lib/containers/entity/entity.model.ts +++ b/libs/shared/src/lib/containers/entity/entity.model.ts @@ -1,3 +1,5 @@ +import { TemplateRef } from '@angular/core'; + export abstract class Entity { abstract get id(): number | string; [key: string]: any; @@ -10,6 +12,8 @@ export class EntityColumnDef { readonly property: string; readonly header = this.property; public visible = true; + readonly sticky?: 'start' | 'end'; + readonly template?: TemplateRef; readonly displayFn = (entity: T) => entity[this.property]; public constructor(init?: Partial>) { diff --git a/libs/shared/src/lib/containers/entity/entity.service.ts b/libs/shared/src/lib/containers/entity/entity.service.ts index 2183692eb..fb437bb3a 100644 --- a/libs/shared/src/lib/containers/entity/entity.service.ts +++ b/libs/shared/src/lib/containers/entity/entity.service.ts @@ -68,10 +68,10 @@ export abstract class EntityService { ); } - put(entity: T) { + put(id: number | string, entity: T) { console.log(entity); this.loadingSubject.next(true); - return this.httpClient.put(`${this.baseUrl}/${this.entityPath}`, entity).pipe( + return this.httpClient.put(`${this.baseUrl}/${this.entityPath}/${id}`, entity).pipe( catchError(this.handleError), finalize(() => this.loadingSubject.next(false)), );