Skip to content

Commit 8463074

Browse files
author
Gérard Collin
committed
fix: listdetail now uses model
1 parent 80d39a4 commit 8463074

2 files changed

Lines changed: 15 additions & 23 deletions

File tree

plugins/xt-workflow/projects/workflow/src/lib/list-details/list-details.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ <h1 class="list-details__title">{{ entName }}</h1>
7979
<xt-render
8080
displayMode="LIST_VIEW"
8181
[value]="store?.entities()"
82-
(models)="listModelChanged($event)" [models]="listModel"
82+
[models]="listModel"
8383
[valueType]="entityName()">
8484
</xt-render>
8585
</div>

plugins/xt-workflow/projects/workflow/src/lib/list-details/list-details.component.ts

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,15 @@ import {
22
ChangeDetectionStrategy,
33
Component,
44
computed,
5+
effect,
56
inject,
67
linkedSignal,
8+
model,
79
OnDestroy,
810
OnInit,
911
signal
1012
} from '@angular/core';
11-
import {
12-
updateFormGroupWithValue,
13-
XtBaseModel,
14-
XtComponentModel,
15-
XtMessageHandler,
16-
XtRenderComponent
17-
} from 'xt-components';
13+
import { updateFormGroupWithValue, XtBaseModel, XtMessageHandler, XtRenderComponent } from 'xt-components';
1814
import { FormBuilder, FormGroup, PristineChangeEvent, ReactiveFormsModule } from '@angular/forms';
1915
import { ManagedData } from 'xt-type';
2016
import { Tab, TabList, TabPanel, TabPanels, Tabs } from 'primeng/tabs';
@@ -42,8 +38,6 @@ export class ListDetailsComponent<T extends ManagedData> extends AbstractDcWorkf
4238

4339
editForm = signal<FormGroup>(this.formBuilder.group ({ editor: this.formBuilder.group({}) }));
4440

45-
selectedEntity = signal<T|null>(null);
46-
4741
canEdit= computed(()=> {
4842
if (this.selectedEntity()!=null)
4943
return true;
@@ -64,12 +58,20 @@ export class ListDetailsComponent<T extends ManagedData> extends AbstractDcWorkf
6458
deleting = signal (false);
6559
updating = signal (false);
6660

61+
selectedEntity= model<any>();
62+
6763
listModel =new XtBaseModel<any>();
6864

65+
selectedEntityChanged= effect( ()=> {
66+
const selected=this.selectedEntity();
67+
this.updateEditForm();
68+
});
69+
6970
private subscriptions=new Subscription();
7071

7172
constructor() {
7273
super();
74+
this.listModel.valueSelected=this.selectedEntity;
7375
}
7476

7577
override ngOnInit () {
@@ -96,16 +98,6 @@ export class ListDetailsComponent<T extends ManagedData> extends AbstractDcWorkf
9698
}
9799
}
98100

99-
listModelChanged($event : any) {
100-
const newValue=$event as XtComponentModel;
101-
if (newValue?.valueSelected!=null) {
102-
newValue?.valueSelected.subscribe (selected => {
103-
this.selectedEntity.set(selected);
104-
this.updateEditForm();
105-
});
106-
}
107-
}
108-
109101
updateEditForm () {
110102
const entity = this.selectedEntity();
111103
const form = this.formBuilder.group({}, {updateOn: 'change'});
@@ -126,7 +118,7 @@ export class ListDetailsComponent<T extends ManagedData> extends AbstractDcWorkf
126118
this.saving.set(true);
127119
const savedValue = await this.safeFindStore().storeEntity (toSave);
128120
this.selectedEntity.set(savedValue);
129-
this.updateEditForm();
121+
//this.updateEditForm();
130122
this.canSave.set(false);
131123
this.viewMode.set("list");
132124
} catch (error) {
@@ -172,7 +164,7 @@ export class ListDetailsComponent<T extends ManagedData> extends AbstractDcWorkf
172164
if (deleted) {
173165
this.selectedEntity.set(null);
174166
this.viewMode.set("list");
175-
this.updateEditForm();
167+
//this.updateEditForm();
176168
}
177169
}
178170

@@ -181,7 +173,7 @@ export class ListDetailsComponent<T extends ManagedData> extends AbstractDcWorkf
181173
this.newing.set(true);
182174
const newOne = await this.safeFindStore().storeEntity({} as T);
183175
this.selectedEntity.set(newOne);
184-
this.updateEditForm();
176+
//this.updateEditForm();
185177
this.viewMode.set("edit");
186178

187179
} catch (error) {

0 commit comments

Comments
 (0)