|
|
@@ -10,20 +10,6 @@
|
|
|
<style>
|
|
|
|
|
|
</style>
|
|
|
-<mat-toolbar class="toolbar" color="primary">
|
|
|
- <div class="toolbar-container">
|
|
|
- <!--<button mat-icon-button aria-label="menu">
|
|
|
- <mat-icon>menu</mat-icon>
|
|
|
- </button>-->
|
|
|
- <button mat-icon-button [routerLink]="'/'">
|
|
|
- <mat-icon>home</mat-icon>
|
|
|
- </button>
|
|
|
- <h2 id="title"><i>{{pbTitle.getTitle()}}</i></h2>
|
|
|
- <div class="right-toolbar-panel">
|
|
|
- <ng-container *ngTemplateOutlet="toolbarItems"/>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-</mat-toolbar>
|
|
|
<button mat-button id="installApp" hidden>{{'install_app'|tr:'Install APP'}}</button>
|
|
|
<mat-toolbar class="mobile-toolbar" color="primary">
|
|
|
<ng-container *ngTemplateOutlet="toolbarItems"/>
|
|
|
@@ -88,9 +74,40 @@
|
|
|
<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
|
|
|
<div [ngClass]="theme" class="container">
|
|
|
<div class="main">
|
|
|
- <router-outlet></router-outlet>
|
|
|
- <chat title="{{'fis_ai_chat'|tr:'FIS A.I. Chat'}}"></chat>
|
|
|
- <div class="mobile-buffer"> </div>
|
|
|
+ <mat-sidenav-container>
|
|
|
+ <mat-sidenav opened mode="side" class="sidenav">
|
|
|
+ <div class="logo-container">
|
|
|
+ <img
|
|
|
+ id="logo"
|
|
|
+ src="https://cdn.swopt.com/fis/image/fis-logo.webp"
|
|
|
+ alt="FIS"
|
|
|
+ />
|
|
|
+ <div class="app-name">{{info?.appName}}</div>
|
|
|
+ </div>
|
|
|
+ <ng-container *ngTemplateOutlet="routeMenu;context:{$implicit:'MAIN',items:[{path:'/dashboard',icon:'apps',key:'dashboard',title:'Dashboard'}]}"/>
|
|
|
+ @for (program of programs(); track program) {
|
|
|
+ <ng-container *ngTemplateOutlet="routeMenu;context:{$implicit:program.category,items:program.items}"/>
|
|
|
+ }
|
|
|
+ <ng-container *ngTemplateOutlet="routeMenu;context:{$implicit:'GENERAL',items:[
|
|
|
+ {path:'/company',icon:'business',title:{key:'company',default:'Company'}},
|
|
|
+ {path:'/settings',icon:'settings',title:{key:'settings',default:'Settings'}}
|
|
|
+ ]}"/>
|
|
|
+ </mat-sidenav>
|
|
|
+ <mat-sidenav-content>
|
|
|
+ <mat-toolbar class="toolbar">
|
|
|
+ <div class="toolbar-container">
|
|
|
+ <!--<button mat-icon-button aria-label="menu">
|
|
|
+ <mat-icon>menu</mat-icon>
|
|
|
+ </button>-->
|
|
|
+ <h2 id="title">{{pbTitle.getTitle()}}</h2>
|
|
|
+ <div class="right-toolbar-panel">
|
|
|
+ <ng-container *ngTemplateOutlet="toolbarItems"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </mat-toolbar>
|
|
|
+ <router-outlet></router-outlet>
|
|
|
+ </mat-sidenav-content>
|
|
|
+ </mat-sidenav-container>
|
|
|
</div>
|
|
|
</div>
|
|
|
<footer>
|
|
|
@@ -100,6 +117,22 @@
|
|
|
<a class="version-short"> ver. {{cs.info?.version}}</a>
|
|
|
</footer>
|
|
|
|
|
|
+<ng-template #routeMenu let-category let-items="items">
|
|
|
+ <mat-label class="route-menu-category">{{category.key?(category.key|tr:category.default):category}}</mat-label>
|
|
|
+ <div class="route-menu">
|
|
|
+ @for (item of items; track item) {
|
|
|
+ <button mat-button [routerLink]="[item.path]"
|
|
|
+ [queryParams]="item.queryParams"
|
|
|
+ matBadge="{{item.badge}}" replaceUrl="{{item.path==='/'?'true':'false'}}"
|
|
|
+ [ngClass]="{'active':router.isActive(item.path,true)}"
|
|
|
+ >
|
|
|
+ <mat-icon>{{item.icon}}</mat-icon>
|
|
|
+ <span>{{item.title.key?(item.title.key|tr:item.title.default):item.title}}</span>
|
|
|
+ </button>
|
|
|
+ }
|
|
|
+ </div>
|
|
|
+</ng-template>
|
|
|
+
|
|
|
<!--menus-->
|
|
|
<mat-menu #userMenu="matMenu">
|
|
|
<button mat-menu-item [matMenuTriggerFor]="account" id="account-menu-button">
|