diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree-metadata/center-matmenu.directive.ts b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree-metadata/center-matmenu.directive.ts
deleted file mode 100644
index 0c63cb1f104..00000000000
--- a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree-metadata/center-matmenu.directive.ts
+++ /dev/null
@@ -1,110 +0,0 @@
-import { FlexibleConnectedPositionStrategy, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';
-import { Directive, ElementRef, HostListener, Input, Renderer2 } from '@angular/core';
-import { MatLegacyMenuPanel as MatMenuPanel, MatLegacyMenuTrigger as MatMenuTrigger } from '@angular/material/legacy-menu';
-
-@Directive({
- // eslint-disable-next-line @angular-eslint/directive-selector
- selector: '[center-mat-menu]',
-})
-export class CenterMatmenuDirective {
- overlayRef: OverlayRef;
- overlayConf: OverlayConfig;
- dropDown: HTMLElement;
- overlayPositionBox: HTMLElement;
- menu: MatMenuPanel;
- button: HTMLElement;
- buttonWidth: number;
- buttonLeft: number;
- buttonBottom: number;
- arrowDiv: HTMLDivElement;
-
- @Input('center-mat-menu') private menuTrigger: MatMenuTrigger;
-
- constructor(
- private _menuButton: ElementRef,
- private _renderer: Renderer2,
- ) {}
-
- @HostListener('click', ['$event'])
- // @ts-ignore
- onclick(e) {
- console.log('cliquer ?');
- this._setVariables();
- // menu not opened by keyboard down arrow, have to set this so MatMenuTrigger knows the menu was opened with a mouse click
- this.menuTrigger._openedBy = e.button === 0 ? 'mouse' : null;
-
- this._overrideMatMenu();
-
- this.dropDown = this.overlayRef.overlayElement.children[0].children[0] as HTMLElement;
- this.overlayPositionBox = this.overlayRef.hostElement;
-
- setTimeout(() => {
- this._styleDropDown(this.dropDown);
- this._setOverlayPosition(this.dropDown, this.overlayPositionBox);
- this._openMenu();
- });
- }
-
- private _setVariables() {
- const config = this.menuTrigger['_getOverlayConfig']();
- this.menuTrigger['_overlayRef'] = this.menuTrigger['_overlay'].create(config);
- this.overlayRef = this.menuTrigger['_overlayRef'];
- this.overlayConf = this.overlayRef.getConfig();
- this.overlayRef.keydownEvents().subscribe();
- this.menu = this.menuTrigger.menu;
- this._setButtonVars();
- }
-
- private _setButtonVars() {
- this.button = this._menuButton.nativeElement;
- this.buttonWidth = this.button.getBoundingClientRect().width;
- this.buttonLeft = this.button.getBoundingClientRect().left;
- this.buttonBottom = this.button.getBoundingClientRect().bottom;
- }
-
- private _overrideMatMenu() {
- console.log(this.overlayConf);
- const strat = this.overlayConf.positionStrategy as FlexibleConnectedPositionStrategy;
- this.menuTrigger['_setPosition'](strat);
- strat.positionChanges.subscribe(() => {
- this._setButtonVars();
- this._setOverlayPosition(this.dropDown, this.overlayPositionBox);
- });
- this.overlayConf.hasBackdrop = this.menu.hasBackdrop == null ? !this.menuTrigger.triggersSubmenu() : this.menu.hasBackdrop;
- this.overlayRef.attach(this.menuTrigger['_getPortal']());
-
- if (this.menu.lazyContent) {
- this.menu.lazyContent.attach();
- }
-
- // @ts-ignore
- this.menuTrigger['_closeSubscription'] = this.menuTrigger['_menuClosingActions']().subscribe(() => {
- this.menuTrigger.closeMenu();
- setTimeout(() => {
- this._renderer.removeChild(this.button, this.arrowDiv);
- }, 75);
- });
- this.menuTrigger['_initMenu']();
- }
-
- private _styleDropDown(dropDown: HTMLElement) {
- this.arrowDiv = this._renderer.createElement('div');
- this._renderer.addClass(this.arrowDiv, 'dialog-arrow');
- this._renderer.appendChild(this.button, this.arrowDiv);
- this._renderer.setStyle(this.arrowDiv, 'left', this.buttonWidth / 2 - 10 + 'px');
- this._renderer.setStyle(this._renderer.parentNode(dropDown), 'transform-origin', 'center top 0px');
- }
-
- private _setOverlayPosition(dropDown: HTMLElement, overlayPositionBox: HTMLElement) {
- const dropDownleft = this.buttonWidth / 2 + this.buttonLeft - dropDown.offsetWidth / 2;
-
- this._renderer.setStyle(overlayPositionBox, 'top', this.buttonBottom + 1 + 'px');
- this._renderer.setStyle(overlayPositionBox, 'left', dropDownleft + 'px');
- this._renderer.setStyle(overlayPositionBox, 'height', '100%');
- }
-
- private _openMenu() {
- // @ts-ignore
- this.menuTrigger.menu['_startAnimation']();
- }
-}
diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree-metadata/file-tree-metadata.component.html b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree-metadata/file-tree-metadata.component.html
index b8cfee46575..c1bd906295f 100644
--- a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree-metadata/file-tree-metadata.component.html
+++ b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree-metadata/file-tree-metadata.component.html
@@ -201,12 +201,12 @@
-
-
+
+
+
+
+
|
diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree-metadata/file-tree-metadata.component.scss b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree-metadata/file-tree-metadata.component.scss
index 2a3f327b3fa..a2c23a551b0 100644
--- a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree-metadata/file-tree-metadata.component.scss
+++ b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree-metadata/file-tree-metadata.component.scss
@@ -426,6 +426,11 @@ dp-day-calendar .dp-day-calendar-container {
padding-bottom: 30px;
}
+.cdk-overlay-connected-position-bounding-box:has(.pastis-menu-item-vitam) {
+ width: fit-content !important;
+ transform: translateX(calc(-50% + 20px));
+}
+
.pastis-menu-item-vitam {
@extend .vitamui-menu-panel;
.mat-menu-item:hover:not([disabled]),
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 be895c3b6f9..257bb58c6af 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
@@ -29,7 +29,6 @@
import { CdkTextareaAutosize } from '@angular/cdk/text-field';
import { Component, EventEmitter, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
-import { MatLegacyCheckboxChange as MatCheckboxChange } from '@angular/material/legacy-checkbox';
import { MatLegacyTableDataSource as MatTableDataSource } from '@angular/material/legacy-table';
import { Router } from '@angular/router';
import { LangChangeEvent, TranslateService } from '@ngx-translate/core';
@@ -49,9 +48,9 @@ import {
FileNode,
FileNodeInsertAttributeParams,
FileNodeInsertParams,
+ nodeNameToLabel,
TypeConstants,
ValueOrDataConstants,
- nodeNameToLabel,
} from '../../../models/file-node';
import { CardinalityValues, MetadataHeaders } from '../../../models/models';
import { ProfileType } from '../../../models/profile-type.enum';
@@ -221,6 +220,7 @@ export class FileTreeMetadataComponent implements OnInit, OnDestroy {
commentaire: string;
enumeration: string[];
additionalPropertiesMetadonnee: boolean;
+ buttonClickedId?: number;
constructor(
private fileService: FileService,
@@ -748,18 +748,15 @@ export class FileTreeMetadataComponent implements OnInit, OnDestroy {
onButtonClicked(elementId: number) {
this.hoveredElementId = elementId;
+ this.buttonClickedId = elementId;
}
- isButtonClicked(elementId: number, data: MetadataHeaders) {
- if (data) {
- this.hoveredElementId = elementId;
- this.buttonIsClicked = true;
- return data.id === this.hoveredElementId;
- }
+ isButtonClicked(elementId: number) {
+ return this.buttonClickedId === elementId;
}
isRowHovered(elementId: number) {
- return this.hoveredElementId === elementId;
+ return this.hoveredElementId === elementId || this.buttonClickedId === elementId;
}
onMouseOver(row: MetadataHeaders) {
@@ -1013,9 +1010,8 @@ export class FileTreeMetadataComponent implements OnInit, OnDestroy {
return !(nomDuChamp === 'Content');
}
- changeAutorisation($event: MatCheckboxChange, element: any) {
- console.log($event.checked + 'test' + element.nomDuChamp);
- this.additionalPropertiesMetadonnee = $event.checked;
+ toggleAutorisation(element: any) {
+ this.additionalPropertiesMetadonnee = !this.getNodeAdditionalProperties(element);
this.setNodeAdditionalPropertiesChange(this.additionalPropertiesMetadonnee, element);
}
diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/shared.module.ts b/ui/ui-frontend/projects/pastis/src/app/shared/shared.module.ts
index df514b72b44..d90cf00fa60 100644
--- a/ui/ui-frontend/projects/pastis/src/app/shared/shared.module.ts
+++ b/ui/ui-frontend/projects/pastis/src/app/shared/shared.module.ts
@@ -44,7 +44,6 @@ import { MatLegacyTooltipModule as MatTooltipModule } from '@angular/material/le
import { TranslateModule } from '@ngx-translate/core';
import { VitamUICommonModule } from 'vitamui-library';
import { PastisMaterialModule } from '../material.module';
-import { CenterMatmenuDirective } from '../profile/edit-profile/file-tree-metadata/center-matmenu.directive';
import { ModifyTextButtonComponent } from './modify-text-button/modify-text-button.component';
import { PastisBreadcrumbComponent } from './pastis-breadcrumb-components/pastis-breadcrumb/pastis-breadcrumb.component';
import { PastisTitleBreadcrumbComponent } from './pastis-breadcrumb-components/pastis-title-breadcrumb/pastis-title-breadcrumb.component';
@@ -57,7 +56,6 @@ import { PastisUnderConstructionComponent } from './pastis-under-construction/pa
@NgModule({
declarations: [
PastisUnderConstructionComponent,
- CenterMatmenuDirective,
PastisPopupMetadataLanguageComponent,
PastisDialogConfirmComponent,
PastisBreadcrumbComponent,
@@ -81,7 +79,6 @@ import { PastisUnderConstructionComponent } from './pastis-under-construction/pa
MatTooltipModule,
PastisMaterialModule,
PastisDialogConfirmComponent,
- CenterMatmenuDirective,
PastisPopupMetadataLanguageComponent,
PastisBreadcrumbComponent,
PastisTitleBreadcrumbComponent,