aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/shared/shared-main/misc/top-menu-dropdown.component.html
blob: 530b9e376eba3daa7b1ba197a6c0d9c079e71abc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<div class="sub-menu" [ngClass]="{ 'no-scroll': isModalOpened }">
  <ng-container *ngFor="let menuEntry of menuEntries; index as id">

    <a *ngIf="menuEntry.routerLink && isDisplayed(menuEntry)" [routerLink]="menuEntry.routerLink" routerLinkActive="active" class="title-page title-page-settings">{{ menuEntry.label }}</a>

    <div *ngIf="!menuEntry.routerLink && isDisplayed(menuEntry)" ngbDropdown class="parent-entry"
      #dropdown="ngbDropdown" autoClose="outside">
      <span
        *ngIf="isInSmallView"
        tabindex=0
        [ngClass]="{ active: !!suffixLabels[menuEntry.label] }"
        (click)="openModal(id)" (keydown.enter)="openModal(id)"
        role="button" class="title-page title-page-settings">
        <ng-container i18n>{{ menuEntry.label }}</ng-container>
      </span>

      <span
        *ngIf="!isInSmallView"
        tabindex=0
        [ngClass]="{ active: !!suffixLabels[menuEntry.label] }" ngbDropdownAnchor
        (click)="dropdownAnchorClicked(dropdown)" (keydown.enter)="dropdownAnchorClicked(dropdown)"
        role="button" class="title-page title-page-settings"
      >
        <ng-container i18n>{{ menuEntry.label }}</ng-container>
      </span>

      <div ngbDropdownMenu>
        <ng-container *ngFor="let menuChild of menuEntry.children">
          <a *ngIf="isDisplayed(menuChild)" class="dropdown-item"
            [ngClass]="{ icon: hasIcons, active: suffixLabels[menuEntry.label] === menuChild.label }"
            [routerLink]="menuChild.routerLink">
            <my-global-icon *ngIf="menuChild.iconName" [iconName]="menuChild.iconName" aria-hidden="true"></my-global-icon>

            {{ menuChild.label }}
          </a>
        </ng-container>
      </div>
    </div>
  </ng-container>
</div>

<ng-template #modal let-close="close" let-dismiss="dismiss">
  <div class="modal-body">
    <ng-container *ngFor="let menuEntry of menuEntries; index as id">
      <div [ngClass]="{ hidden: id !== currentMenuEntryIndex }">
        <ng-container *ngFor="let menuChild of menuEntry.children">
          <a *ngIf="isDisplayed(menuChild)"
            [ngClass]="{ icon: hasIcons }"
            [routerLink]="menuChild.routerLink" routerLinkActive="active" (click)="dismissOtherModals()">
            <my-global-icon *ngIf="menuChild.iconName" [iconName]="menuChild.iconName" aria-hidden="true"></my-global-icon>

            {{ menuChild.label }}
          </a>
        </ng-container>
      </div>
    </ng-container>
  </div>
</ng-template>