From 6475a280556c043e836085028fb90e92a9dc86be Mon Sep 17 00:00:00 2001 From: matthieuaudemard Date: Sun, 7 May 2023 15:41:17 +0200 Subject: [PATCH] refact: modifie le sidemenu pour qu'il puisse inclure des collapsibles --- .../pages/admin-page/admin-page.component.ts | 16 ++++- .../sidemenu/sidemenu.component.html | 62 ++++++++++++++++--- .../sidemenu/sidemenu.component.scss | 23 +++++-- .../components/sidemenu/sidemenu.component.ts | 20 +++++- 4 files changed, 103 insertions(+), 18 deletions(-) diff --git a/frontend-implicaction/src/app/admin/pages/admin-page/admin-page.component.ts b/frontend-implicaction/src/app/admin/pages/admin-page/admin-page.component.ts index 01b24e42..902f3643 100644 --- a/frontend-implicaction/src/app/admin/pages/admin-page/admin-page.component.ts +++ b/frontend-implicaction/src/app/admin/pages/admin-page/admin-page.component.ts @@ -24,7 +24,7 @@ export class AdminPageComponent { label: 'Offres', routerLink: `/${Univers.ADMIN.url}/jobs`, icon: 'fas fa-briefcase', - routerLinkActiveOptions: {exact: true} + routerLinkActiveOptions: {queryParams: 'subset'} }, { label: 'Entreprises', @@ -36,7 +36,19 @@ export class AdminPageComponent { label: 'Forum', routerLink: `/${Univers.ADMIN.url}/forum`, icon: 'fas fa-comments', - routerLinkActiveOptions: {exact: true} + routerLinkActiveOptions: {queryParams: 'subset', exact: false}, + items: [ + { + label: 'Catégories', + routerLink: `/${Univers.ADMIN.url}/forum`, + routerLinkActiveOptions: {exact: true}, + }, + { + label: 'Messages', + routerLink: `/${Univers.ADMIN.url}/forum`, + routerLinkActiveOptions: {exact: true}, + } + ] }, ]; } diff --git a/frontend-implicaction/src/app/shared/components/sidemenu/sidemenu.component.html b/frontend-implicaction/src/app/shared/components/sidemenu/sidemenu.component.html index 63f24e5a..a4a5f406 100644 --- a/frontend-implicaction/src/app/shared/components/sidemenu/sidemenu.component.html +++ b/frontend-implicaction/src/app/shared/components/sidemenu/sidemenu.component.html @@ -1,18 +1,62 @@ diff --git a/frontend-implicaction/src/app/shared/components/sidemenu/sidemenu.component.scss b/frontend-implicaction/src/app/shared/components/sidemenu/sidemenu.component.scss index 3646a3b3..0d15fe24 100644 --- a/frontend-implicaction/src/app/shared/components/sidemenu/sidemenu.component.scss +++ b/frontend-implicaction/src/app/shared/components/sidemenu/sidemenu.component.scss @@ -17,11 +17,20 @@ background-color: $secondary; } - &:after { - position: absolute; - right: 10px; - font-family: FontAwesome; - content: "\f054"; + &.collapsed, &.expanded { + &:after { + position: absolute; + right: 10px; + font-family: FontAwesome; + } + } + + &.collapsed:after { + content: '\f107' + } + + &.expanded:after { + content: '\f106' } .badge { @@ -29,3 +38,7 @@ } } } + +li.active { + list-style-type: disc; +} diff --git a/frontend-implicaction/src/app/shared/components/sidemenu/sidemenu.component.ts b/frontend-implicaction/src/app/shared/components/sidemenu/sidemenu.component.ts index 842606ff..9e6dc855 100644 --- a/frontend-implicaction/src/app/shared/components/sidemenu/sidemenu.component.ts +++ b/frontend-implicaction/src/app/shared/components/sidemenu/sidemenu.component.ts @@ -1,13 +1,29 @@ -import {Component, Input} from '@angular/core'; +import {Component, Input, OnInit} from '@angular/core'; import {MenuItem} from "primeng/api"; +import {NavigationEnd, Router} from "@angular/router"; @Component({ selector: 'app-sidemenu', templateUrl: './sidemenu.component.html', styleUrls: ['./sidemenu.component.scss'] }) -export class SidemenuComponent { +export class SidemenuComponent implements OnInit { @Input() menuItems: MenuItem[]; + constructor(private router: Router) { + } + + ngOnInit(): void { + this.router.events.subscribe(routerEvent => { + if (routerEvent instanceof NavigationEnd) { + // Get your url + console.log(routerEvent.url); + console.log(this.menuItems.find(item => !!item.items && item.items.find(i => i.url && this.router.isActive(i.url, false)))); + } + }); + + + } + }