From 72efef88a2e6c1575c622a361199fab49d5b57e0 Mon Sep 17 00:00:00 2001 From: Andrey Date: Thu, 21 Mar 2024 17:18:17 +0300 Subject: [PATCH] add edit and delete object-type, group, and fields. fix bugs --- .../item/object-type-list-item.component.html | 14 ++++--- .../item/object-type-list-item.component.ts | 37 +++++++++++++------ src/app/_services/fields.service.ts | 18 +++++++++ src/app/_services/groups.service.ts | 18 +++++++++ 4 files changed, 70 insertions(+), 17 deletions(-) create mode 100644 src/app/_services/fields.service.ts create mode 100644 src/app/_services/groups.service.ts diff --git a/src/app/_modules/administration/object-type/list/item/object-type-list-item.component.html b/src/app/_modules/administration/object-type/list/item/object-type-list-item.component.html index fb69a54..7fe8b57 100644 --- a/src/app/_modules/administration/object-type/list/item/object-type-list-item.component.html +++ b/src/app/_modules/administration/object-type/list/item/object-type-list-item.component.html @@ -21,10 +21,10 @@

Группа объектов: {{group.name}}

-
+
-
+
@@ -35,9 +35,11 @@ type required multiple + filterable + hidden related -
+
@@ -48,14 +50,16 @@ {{field.type}} {{field.required}} {{field.multiple}} + {{field.filterable}} + {{field.hidden}} {{field.related}} -
+
-
+
diff --git a/src/app/_modules/administration/object-type/list/item/object-type-list-item.component.ts b/src/app/_modules/administration/object-type/list/item/object-type-list-item.component.ts index 9009184..0bd9bff 100644 --- a/src/app/_modules/administration/object-type/list/item/object-type-list-item.component.ts +++ b/src/app/_modules/administration/object-type/list/item/object-type-list-item.component.ts @@ -5,6 +5,8 @@ import {DialogService} from "@app/_services/dialog.service"; import {ObjectTypesService} from "@app/_services/object-types.service"; import {group} from "@angular/animations"; import {concatAll} from "rxjs/operators"; +import {GroupsService} from "@app/_services/groups.service"; +import {FieldsService} from "@app/_services/fields.service"; @Component({ selector: 'object-type-list-item', @@ -23,6 +25,8 @@ export class ObjectTypeListItemComponent { public objectTypesService: ObjectTypesService, private formsService: FormsService, private listsService: ListsService, + private groupsService: GroupsService, + private fieldsService: FieldsService, private dialog: DialogService) { } @@ -156,31 +160,40 @@ export class ObjectTypeListItemComponent { this.refresh() } - editGroup() { - this.formsService.editModel('fieldsGroup', this.objectType.groups.id, null, this.listId); + editGroup( id:string) { + this.formsService.editModel('fieldsGroup', id, null, this.listId); + this.refresh() } - deleteGroup() { - this.dialog.confirm(`Удалить страницу ${this.objectType.groups.name}?`).subscribe( + deleteGroup(id:string, name: string) { + this.dialog.confirm(`Удалить группу ${name}?`).subscribe( resp=>{ - if (resp) this.objectTypesService.delete(this.objectType.groups.id).subscribe(res => { - this.listsService.refresh(this.parentListId); + if (resp) this.groupsService.delete(id).subscribe(res => { + // this.listsService.refresh(this.parentListId); this.refresh(); }); } ) } - addField() { - this.formsService.createModel('field'/*,{extraProps: {object_type: this.objectType.id}}*/); + addField(id:string) { + this.formsService.createModel('field',{extraProps: {group:id}}); this.refresh() } - editField() { - + editField(id:string) { + this.formsService.editModel('field', id, null, this.listId); + this.refresh() } - deleteField() { - + deleteField(id:string, title: string) { + this.dialog.confirm(`Удалить группу ${title}?`).subscribe( + resp=>{ + if (resp) this.fieldsService.delete(id).subscribe(res => { + // this.listsService.refresh(this.parentListId); + this.refresh(); + }); + } + ) } } diff --git a/src/app/_services/fields.service.ts b/src/app/_services/fields.service.ts new file mode 100644 index 0000000..f05f31b --- /dev/null +++ b/src/app/_services/fields.service.ts @@ -0,0 +1,18 @@ +import { Injectable } from '@angular/core'; +import {Observable} from "rxjs"; +import {environment} from "@environments/environment"; +import {HttpClient} from "@angular/common/http"; +import {LicenceService} from "@app/_services/licence.service"; +import {DialogService} from "@app/_services/dialog.service"; + +@Injectable({ + providedIn: 'root' +}) +export class FieldsService { + + constructor(private http: HttpClient, private licenceService: LicenceService, private dialog: DialogService) {} + + delete(id: string): Observable { + return this.http.delete(`${environment.apiUrl}/api/fields/${id}`); + } +} diff --git a/src/app/_services/groups.service.ts b/src/app/_services/groups.service.ts new file mode 100644 index 0000000..9443227 --- /dev/null +++ b/src/app/_services/groups.service.ts @@ -0,0 +1,18 @@ +import { Injectable } from '@angular/core'; +import {Observable} from "rxjs"; +import {environment} from "@environments/environment"; +import {HttpClient} from "@angular/common/http"; +import {LicenceService} from "@app/_services/licence.service"; +import {DialogService} from "@app/_services/dialog.service"; + +@Injectable({ + providedIn: 'root' +}) +export class GroupsService { + + constructor(private http: HttpClient, private licenceService: LicenceService, private dialog: DialogService) {} + + delete(id: string): Observable { + return this.http.delete(`${environment.apiUrl}/api/group-fields/${id}`); + } +}