diff --git a/src/main/webapp/app/facet-composer/facet-composer.component.html b/src/main/webapp/app/facet-composer/facet-composer.component.html
index 574c38f..7c7b399 100644
--- a/src/main/webapp/app/facet-composer/facet-composer.component.html
+++ b/src/main/webapp/app/facet-composer/facet-composer.component.html
@@ -30,6 +30,12 @@
occurr. max
+
+ counter (hide)
+
+
@@ -53,12 +59,11 @@
type="{{typeSpec.facetSpecs[ind].guiProps[i].type}}"/>
-
-
+
@@ -78,7 +83,8 @@
diff --git a/src/main/webapp/app/facet-composer/facet-composer.component.ts b/src/main/webapp/app/facet-composer/facet-composer.component.ts
index 4ee02ac..6ed26f2 100644
--- a/src/main/webapp/app/facet-composer/facet-composer.component.ts
+++ b/src/main/webapp/app/facet-composer/facet-composer.component.ts
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/restrict-plus-operands */
/* eslint-disable @typescript-eslint/member-ordering */
/* eslint-disable @typescript-eslint/explicit-function-return-type */
/* eslint-disable no-console */
@@ -99,15 +100,10 @@ export class FacetComposerComponent implements OnInit {
this.fieldsMap = new Map(res.facetSpecs.map((obj) => [obj.name+' ('+obj.relation+')', obj]));
//parto con una facet per tipo
this.counterMap = new Map(res.facetSpecs.map((obj) => [obj.name+'_'+obj.relation, 1]));
- /*
- this.fieldsMap.forEach(function(value,key){
- // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
- console.debug(`Map key is:${key} and value is:${value}`);
- console.debug('************************');
- });
- */
this.addableFacets = this.fillFacetSelect(this.fieldsMap);
this.createForm(res);
+ console.debug('**************CounterMap****************');
+ console.debug(this.counterMap);
});
@@ -189,13 +185,18 @@ export class FacetComposerComponent implements OnInit {
const minFc = this.fb.control(item.min);
facetFg.addControl('min', minFc);
-
+
const descriptionFc = this.fb.control(item.description);
facetFg.addControl('description', descriptionFc);
const relationFc = this.fb.control(item.relation,Validators.required);
facetFg.addControl('relation', relationFc);
+ const counterFc = this.fb.control(1);
+ // alert(this.counterMap.get('counter_'+nameFc.value+'_'+relationFc.value));
+ // eslint-disable-next-line @typescript-eslint/restrict-plus-operands
+ facetFg.addControl('counter_'+nameFc.value+'_'+relationFc.value, counterFc);
+
//1. creo formArray con le properties
const propertiesFa = this.fb.array([]);
for(let j=0; jthis.fieldsMap.get(nameplus);
//TODO CHECK THIS
this.typeSpec.facetSpecs.push(icf);
@@ -249,18 +254,23 @@ export class FacetComposerComponent implements OnInit {
const maxFc = this.fb.control(icf.max);
facetFg.addControl('max', maxFc);
- //ogni facet aggiunta può essere rimossa
- const minFc = this.fb.control('many');
+ const minFc = this.fb.control(icf.min);
facetFg.addControl('min', minFc);
+ const newCounter = (this.counterMap.get(nameplus)!)+1;
+ //alert('addFacet...nameplus...'+nameplus);
+ // alert('addFacet...'+this.counterMap.get(nameplus));
+ this.counterMap.set(icf.name+'_'+icf.relation,newCounter);
+ const counterFc = this.fb.control(this.counterMap.get(nameplus));
+ facetFg.addControl('counter_'+icf.name+'_'+icf.relation,counterFc);
+ facetFg.patchValue;
+
const descriptionFc = this.fb.control(icf.description);
facetFg.addControl('description', descriptionFc);
//aggiorno il counter
- /*
let oldCounter = this.counterMap.get(icf.name+'_'+icf.relation)!;
this.counterMap.set(icf.name+'_'+icf.relation,oldCounter++);
- */
const relationFc = this.fb.control(icf.relation,Validators.required);
facetFg.addControl('relation', relationFc);
@@ -269,46 +279,40 @@ export class FacetComposerComponent implements OnInit {
for(let j=0; j1;
- if (facetSpec.min==='1' && (this.counterMap.get(facetSpec.name+'_'+facetSpec.relation)!)===1){
- return true;
- } else {
- return false;
- }
- }
- */
+
removeFacet(index: number): void {
+ // eslint-disable-next-line @typescript-eslint/restrict-plus-operands
+ const nameplus = this.facetArray.at(index).get('name')?.value+'_'+this.facetArray.at(index).get('relation')?.value;
+ const newCounter = this.counterMap.get(nameplus)!-1;
+ this.counterMap.set(nameplus,newCounter);
+ //modifico il formcontrol
+ console.log("*********WHEN REMOVING...")
+ console.debug(nameplus);
+ console.log("*********")
+
+ this.facetArray.get('counter_'+nameplus)?.setValue(newCounter);
+ this.facetArray.at(index).get('counter_'+nameplus)?.patchValue;
+
const controls: FormArray = this.myForm.controls['facets'];
+
controls.removeAt(index);
this.facetArray.removeAt(index);
this.typeSpec.facetSpecs.splice(index,1);
- /*
- for(let j=0; j(this.facetArray.controls[index]).controls.propertyArray).push(this.propertyGroup);
- */
}