From c0cc0e9ae8300f0fe791318f6cf01e87a99ec50d Mon Sep 17 00:00:00 2001 From: naji <naji@cines.fr> Date: Tue, 8 Mar 2022 17:18:10 +0100 Subject: [PATCH] =?UTF-8?q?Remonter=20les=20valeurs=20s=C3=A9lectionner=20?= =?UTF-8?q?pas=20la=20popup=20to=20filetree-metadata?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../file-tree-metadata.component.ts | 56 +++++++++++++--- .../add-pua-control.component.html | 5 -- .../add-pua-control.component.ts | 65 ++++++++++++------- 3 files changed, 89 insertions(+), 37 deletions(-) diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree-metadata/file-tree-metadata.component.ts b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree-metadata/file-tree-metadata.component.ts index 7bdf05f46..8615a9632 100644 --- a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree-metadata/file-tree-metadata.component.ts +++ b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree-metadata/file-tree-metadata.component.ts @@ -131,6 +131,12 @@ export class FileTreeMetadataComponent { isStandalone: boolean = environment.standalone; + enumerationControl: boolean; + valueControl: boolean; + lengthControl: boolean; + expressionControl: boolean; + arrayControl: string[]; + public breadcrumbDataTop: Array<BreadcrumbDataTop>; public breadcrumbDataMetadata: Array<BreadcrumbDataMetadata>; @@ -145,6 +151,9 @@ export class FileTreeMetadataComponent { popupSousTitre: string popupValider: string popupAnnuler: string + popupControlTitleDialog: string + popupControlSubTitleDialog: string + popupControlOkLabel: string @Output() public insertItem: EventEmitter<FileNodeInsertParams> = new EventEmitter<FileNodeInsertParams>(); @@ -217,6 +226,9 @@ export class FileTreeMetadataComponent { this.popupSousTitre= "Edition des attributs de" this.popupValider= "Valider" this.popupAnnuler= "Annuler" + this.popupControlTitleDialog = "Veuillez séléctionner un ou plusieurs contrôles"; + this.popupControlSubTitleDialog = "Ajouter des contrôles supplémentaires à "; + this.popupControlOkLabel = 'AJOUTER LES CONTROLES' } @@ -528,16 +540,44 @@ export class FileTreeMetadataComponent { let popData = {} as PastisDialogData; if (fileNodeId) { popData.fileNode = this.fileService.findChildById(fileNodeId, this.clickedNode); - popData.titleDialog = "Veuillez séléctionner un ou plusieurs contrôles"; - popData.subTitleDialog = "Ajouter des contrôles supplémentaires à Title"; - popData.width = '1120px'; - popData.component = UserActionAddPuaControlComponent - popData.okLabel = 'AJOUTER LES CONTROLES' - popData.cancelLabel = this.popupAnnuler + popData.titleDialog = this.popupControlTitleDialog; + popData.subTitleDialog = this.popupControlSubTitleDialog + ' "' + popData.fileNode.name + '"'; + popData.width = '800px'; + popData.component = UserActionAddPuaControlComponent; + popData.okLabel = this.popupControlOkLabel; + popData.cancelLabel = this.popupAnnuler; + + let popUpAnswer = <string[]>await this.fileService.openPopup(popData); + console.log("The answer for arrays control was ", popUpAnswer); + if(popUpAnswer){ + this.arrayControl = popUpAnswer; + this.setControlsVues(this.arrayControl) + } + } + } - let popUpAnswer = <AttributeData[]>await this.fileService.openPopup(popData); - console.log("The answer for edit attributte was ", popUpAnswer); + resetContols(){ + this.arrayControl = []; + this.enumerationControl = false; + this.expressionControl = false; + this.lengthControl = false; + this.valueControl = false; + } + + setControlsVues(elements: string[]){ + if(elements.includes("Enumération")){ + this.enumerationControl = true; + } + if(elements.includes("Expression régulière")){ + this.expressionControl = true; } + if(elements.includes("Longueur Min/Max")){ + this.lengthControl = true; + } + if(elements.includes("Valeur Min/Max")){ + this.valueControl = true; + } + } onDeleteNode(nodeId: number) { diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/add-pua-control/add-pua-control.component.html b/ui/ui-frontend/projects/pastis/src/app/user-actions/add-pua-control/add-pua-control.component.html index f847c09e8..779edab7f 100644 --- a/ui/ui-frontend/projects/pastis/src/app/user-actions/add-pua-control/add-pua-control.component.html +++ b/ui/ui-frontend/projects/pastis/src/app/user-actions/add-pua-control/add-pua-control.component.html @@ -40,9 +40,4 @@ </mat-selection-list> </mat-list> - <ng-template #noItemsLeftToAdd> - <p class="paragraph-metadata-subtitle" style="margin-top: 40px;"> - {{'USER_ACTION.ADD_METADATA.MESSAGE_PLUS_METADONNEE' | translate}}</p> - </ng-template> - </div> diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/add-pua-control/add-pua-control.component.ts b/ui/ui-frontend/projects/pastis/src/app/user-actions/add-pua-control/add-pua-control.component.ts index 92bece8b2..bce846d08 100644 --- a/ui/ui-frontend/projects/pastis/src/app/user-actions/add-pua-control/add-pua-control.component.ts +++ b/ui/ui-frontend/projects/pastis/src/app/user-actions/add-pua-control/add-pua-control.component.ts @@ -57,12 +57,11 @@ export class UserActionAddPuaControlComponent implements OnInit { btnIsDisabled: boolean; sedaData: SedaData; - allowedChildren: string[] = [ - "Enumération", - "Expression régulière", - "Longueur Min/Max", - "Valeur Min/Max" - ] + enumerationsLabel: string = "Enumération"; + expressionReguliereLabel: string = "Expression régulière"; + lengthMinMaxLabel: string = "Longueur Min/Max"; + valueMinMaxLabel: string = "Valeur Min/Max"; + allowedChildren: string[]; namesFiltered: any = []; sedaNodeFound: SedaData; selectedSedaNode: SedaData; @@ -78,7 +77,9 @@ export class UserActionAddPuaControlComponent implements OnInit { constructor(public dialogRef: MatDialogRef<PastisDialogConfirmComponent>, private fileService: FileService, private sedaService: SedaService, - private popUpService: PopupService, private sedaLanguageService: PastisPopupMetadataLanguageService) { } + private popUpService: PopupService, private sedaLanguageService: PastisPopupMetadataLanguageService) { + this.refreshAllowedChildren(); + } ngOnInit() { this.sedaLanguageSub = this.sedaLanguageService.sedaLanguage.subscribe( @@ -109,10 +110,14 @@ export class UserActionAddPuaControlComponent implements OnInit { } onRemoveSelectedElement(element: string) { - let indexOfElement = this.addedItems.indexOf(element) - console.log(indexOfElement) - if (indexOfElement >= 0) { - this.allowedChildren.push(this.addedItems.splice(indexOfElement, 1)[0]) + if(this.isExclusive(element)){ + this.refreshAllowedChildren(); + }else{ + let indexOfElement = this.addedItems.indexOf(element) + console.log(indexOfElement) + if (indexOfElement >= 0) { + this.allowedChildren.push(this.addedItems.splice(indexOfElement, 1)[0]) + } } console.error(this.allowedChildren) this.addedItems.length > 0 ? this.atLeastOneIsSelected = true : this.atLeastOneIsSelected = false @@ -121,8 +126,11 @@ export class UserActionAddPuaControlComponent implements OnInit { onAddSelectedElement(element: string) { this.addedItems.push(element); - - this.allowedChildren = this.allowedChildren.filter(e => e != element); + if(this.isExclusive(element)){ + this.refreshAllowedChildren(element); + }else{ + this.allowedChildren = this.allowedChildren.filter(e => e != element); + } this.addedItems.length > 0 ? this.atLeastOneIsSelected = true : this.atLeastOneIsSelected = false this.upateButtonStatusAndDataToSend(); } @@ -154,21 +162,30 @@ export class UserActionAddPuaControlComponent implements OnInit { this.dialogRef.close(); } - onResolveName(element: SedaData): string { - if (this.sedaLanguage) { - return element.Name; - } - else { - if (element.NameFr) { - return element.NameFr; - } - } - return element.Name; - } ngOnDestroy(): void { if (this.sedaLanguageSub != null) { this.sedaLanguageSub.unsubscribe(); } } + isExclusive(element: string): boolean{ + return element === this.valueMinMaxLabel || element === this.enumerationsLabel; + } + + refreshAllowedChildren(element?: string){ + + if(element){ + this.addedItems = [element]; + this.allowedChildren = []; + }else{ + this.allowedChildren = [ + this.enumerationsLabel, + this.valueMinMaxLabel, + this.lengthMinMaxLabel, + this.expressionReguliereLabel + ]; + this.addedItems = []; + } + } + } -- GitLab