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); - */ }