Skip to content

Commit c5e74cd

Browse files
committed
[NAE-1684] Frontend component for data field caseRef
- fix according to PR
1 parent 133c7b6 commit c5e74cd

File tree

6 files changed

+28
-23
lines changed

6 files changed

+28
-23
lines changed

projects/netgrif-components-core/src/assets/i18n/en.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@
246246
"maxFilesSizeExceeded": "The maximum size of uploaded files is exceeded: ",
247247
"notSelectedUser": "No user has been selected",
248248
"userAssigned": "User {{userName}} was assigned",
249-
"caseNetGetFailed": "Getting case Net failed"
249+
"caseNetGetFailed": "Getting case net failed"
250250
},
251251
"values": {
252252
"boolean": {

projects/netgrif-components-core/src/lib/data-fields/case-ref-field/abstract-case-ref-field.component.ts

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {AfterViewInit, Component, Input} from '@angular/core';
1+
import {AfterViewInit, Component, Inject, Input, Optional} from '@angular/core';
22
import {
33
PetriflowArc,
44
PetriflowCanvasConfigurationService,
@@ -29,29 +29,34 @@ import {PetriNetImport} from '../../resources/interface/petri-net-import';
2929
import {LoggerService} from '../../logger/services/logger.service';
3030
import {SnackBarService} from '../../snack-bar/services/snack-bar.service';
3131
import {TranslateService} from '@ngx-translate/core';
32+
import {AbstractDataFieldComponent} from '../models/abstract-data-field-component';
33+
import {NAE_INFORM_ABOUT_INVALID_DATA} from '../models/invalid-data-policy-token';
3234

3335
@Component({
3436
selector: 'ncc-abstract-case-ref-field',
3537
template: ''
3638
})
37-
export abstract class AbstractCaseRefFieldComponent implements AfterViewInit {
39+
export abstract class AbstractCaseRefFieldComponent extends AbstractDataFieldComponent implements AfterViewInit {
3840

3941
@Input() public dataField: CaseRefField;
4042

4143
constructor(protected _petriflowCanvasService: PetriflowCanvasService, protected _petriflowFactoryService: PetriflowCanvasFactoryService,
4244
protected _petriflowConfigService: PetriflowCanvasConfigurationService, protected _caseResourceService: CaseResourceService,
4345
protected _petriNetResourceService: PetriNetResourceService, protected _log: LoggerService, protected _snackBar: SnackBarService,
44-
protected _translate: TranslateService) {
46+
protected _translate: TranslateService, @Optional() @Inject(NAE_INFORM_ABOUT_INVALID_DATA) informAboutInvalidData: boolean | null) {
47+
super(informAboutInvalidData);
4548
}
4649

4750
ngAfterViewInit(): void {
48-
this._petriNetResourceService.getNetByCaseId(this.dataField.value).subscribe(net => {
49-
if (net) {
50-
this.createNet(net);
51+
this.formControl.valueChanges.subscribe(value => {
52+
if (value?.length > 0) {
53+
this._petriNetResourceService.getNetByCaseId(value[0]).subscribe(net => {
54+
this.createNet(net);
55+
}, error => {
56+
this._log.error('Getting net by Case ID failed in field ['+ this.dataField.stringId + ']', error);
57+
this._snackBar.openErrorSnackBar(this._translate.instant('dataField.snackBar.caseNetGetFailed'));
58+
});
5159
}
52-
}, error => {
53-
this._log.error('Getting net by Case ID failed in field ['+ this.dataField.stringId + ']', error);
54-
this._snackBar.openErrorSnackBar(this._translate.instant('dataField.snackBar.caseNetGetFailed'));
5560
});
5661
}
5762

@@ -66,16 +71,16 @@ export abstract class AbstractCaseRefFieldComponent implements AfterViewInit {
6671
trans.push(t);
6772
minX = Math.min(minX, value.position.x);
6873
minY = Math.min(minY, value.position.y);
69-
this.setPlaceActions(t.canvasElement.element);
74+
this.setEmptyEvents(t.canvasElement.element);
7075
})
7176
net.places.forEach((value) => {
7277
const p = this.createPlace(value)
7378
places.push(p);
7479
minX = Math.min(minX, value.position.x);
7580
minY = Math.min(minY, value.position.y);
76-
this.setPlaceActions(p.canvasElement.element);
81+
this.setEmptyEvents(p.canvasElement.element);
7782
p.canvasElement.markingTokens.forEach(markingToken => {
78-
this.setPlaceActions(markingToken);
83+
this.setEmptyEvents(markingToken);
7984
});
8085
})
8186
net.arcs.forEach((arc) => {
@@ -85,7 +90,7 @@ export abstract class AbstractCaseRefFieldComponent implements AfterViewInit {
8590
minX = Math.min(minX, value.x);
8691
minY = Math.min(minY, value.y);
8792
});
88-
this.setPlaceActions(a.element.arcLine);
93+
this.setEmptyEvents(a.element.arcLine);
8994
});
9095
trans.forEach(value => {
9196
if (net.assignedTasks.includes(value.canvasElement.label.textContent)) {
@@ -242,7 +247,7 @@ export abstract class AbstractCaseRefFieldComponent implements AfterViewInit {
242247
this.dataField.layout.rows * CaseRefField.FIELD_HEIGHT : CaseRefField.FIELD_HEIGHT;
243248
}
244249

245-
protected setPlaceActions(svgElement: SVGElement) {
250+
protected setEmptyEvents(svgElement: SVGElement) {
246251
svgElement.onmouseenter = () => {};
247252
svgElement.onmouseleave = () => {};
248253
}

projects/netgrif-components-core/src/lib/data-fields/case-ref-field/models/case-ref-field.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import {Validation} from '../../models/validation';
44
import {Component} from '../../models/component';
55
import {DataField} from '../../models/abstract-data-field';
66

7-
export class CaseRefField extends DataField<string> {
7+
export class CaseRefField extends DataField<Array<string>> {
88

99
public static FIELD_HEIGHT: number = 75;
1010

11-
constructor(stringId: string, title: string, value: string, behavior: Behavior, placeholder?: string,
11+
constructor(stringId: string, title: string, value: Array<string>, behavior: Behavior, placeholder?: string,
1212
description?: string, layout?: Layout, validations?: Array<Validation>, _component?: Component, parentTaskId?: string) {
1313
super(stringId, title, value, behavior, placeholder, description, layout, validations, _component, parentTaskId);
1414
}

projects/netgrif-components-core/src/lib/task-content/services/field-converter.service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ export class FieldConverterService {
109109
return new I18nField(item.stringId, item.name, item.value ?? {defaultValue: ''}, item.behavior, item.placeholder,
110110
item.description, item.layout, item.validations, item.component);
111111
case FieldTypeResource.CASE_REF:
112-
return new CaseRefField(item.stringId, item.name, item.value ?? {defaultValue: ''}, item.behavior, item.placeholder,
112+
return new CaseRefField(item.stringId, item.name, item.value ?? [], item.behavior, item.placeholder,
113113
item.description, item.layout, item.validations, item.component);
114114
}
115115
}

projects/netgrif-components/src/lib/data-fields/case-ref-field/case-ref-field.component.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ describe('CaseRefFieldComponent', () => {
6262
template: '<nc-case-ref-field [dataField]="field"></nc-case-ref-field>'
6363
})
6464
class TestWrapperComponent {
65-
field = new CaseRefField('', '', '', {
65+
field = new CaseRefField('', '', [], {
6666
required: true,
6767
});
6868
}

projects/netgrif-components/src/lib/data-fields/case-ref-field/case-ref-field.component.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import {Component} from '@angular/core';
1+
import {Component, Inject, Optional} from '@angular/core';
22
import {
33
AbstractCaseRefFieldComponent,
44
CaseResourceService,
55
PetriNetResourceService,
66
LoggerService,
7-
SnackBarService
7+
SnackBarService, NAE_INFORM_ABOUT_INVALID_DATA
88
} from '@netgrif/components-core';
99
import {
1010
PetriflowCanvasConfigurationService,
@@ -23,9 +23,9 @@ export class CaseRefFieldComponent extends AbstractCaseRefFieldComponent {
2323
constructor(protected _petriflowCanvasService: PetriflowCanvasService, protected _petriflowFactoryService: PetriflowCanvasFactoryService,
2424
protected _petriflowConfigService: PetriflowCanvasConfigurationService, protected _caseResourceService: CaseResourceService,
2525
protected _petriNetResourceService: PetriNetResourceService, protected _log: LoggerService, protected _snackBar: SnackBarService,
26-
protected _translate: TranslateService){
26+
protected _translate: TranslateService, @Optional() @Inject(NAE_INFORM_ABOUT_INVALID_DATA) informAboutInvalidData: boolean | null){
2727
super(_petriflowCanvasService, _petriflowFactoryService, _petriflowConfigService, _caseResourceService, _petriNetResourceService,
28-
_log, _snackBar, _translate);
28+
_log, _snackBar, _translate, informAboutInvalidData);
2929
}
3030

3131
}

0 commit comments

Comments
 (0)