app.component.html 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
  2. <!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->
  3. <!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->
  4. <!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * -->
  5. <!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
  6. <!-- * * * * * * * * * Delete the template below * * * * * * * * * -->
  7. <!-- * * * * * * * to get started with your project! * * * * * * * -->
  8. <!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
  9. <style>
  10. </style>
  11. <mat-toolbar class="toolbar" color="primary">
  12. <button mat-icon-button aria-label="menu">
  13. <mat-icon>menu</mat-icon>
  14. </button>
  15. <button mat-icon-button [routerLink]="'/'">
  16. <mat-icon>home</mat-icon>
  17. </button>
  18. <h2><i>{{title}}</i></h2>
  19. <div class="right-toolbar-panel">
  20. <ng-container *ngTemplateOutlet="toolbarItems"/>
  21. </div>
  22. </mat-toolbar>
  23. <mat-toolbar class="mobile-toolbar">
  24. <ng-container *ngTemplateOutlet="toolbarItems"/>
  25. </mat-toolbar>
  26. <ng-template #toolbarItems>
  27. @for (item of [
  28. {icon:'home',link:'/',title:'Home',titleKey:'home'},
  29. {icon:'notifications',link:'/',title:'Notifications',titleKey:'notifications'},
  30. {icon:'account_circle',menu:userMenu,title:'User',titleKey:'user'}
  31. ]; track $index) {
  32. @switch (true) {
  33. @case (item.link !== undefined) {
  34. <div id="{{item.titleKey}}" class="toolbar-item" [routerLink]="item.link">
  35. <mat-icon>{{item.icon}}</mat-icon>
  36. <mat-label>{{(item.titleKey|tr:item.title)}}</mat-label>
  37. </div>
  38. }
  39. @case (item.menu !== undefined) {
  40. <div id="{{item.titleKey}}" class="toolbar-item" [matMenuTriggerFor]="item.menu">
  41. <mat-icon>{{item.icon}}</mat-icon>
  42. <mat-label>{{(item.titleKey|tr:item.title)}}</mat-label>
  43. </div>
  44. }
  45. @default {
  46. <div id="{{item.titleKey}}" class="toolbar-item">
  47. <mat-icon>{{item.icon}}</mat-icon>
  48. <mat-label>{{(item.titleKey|tr:item.title)}}</mat-label>
  49. </div>
  50. }
  51. }
  52. }
  53. </ng-template>
  54. <!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
  55. <!-- * * * * * * * * * * * The content above * * * * * * * * * * * * -->
  56. <!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * * -->
  57. <!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->
  58. <!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
  59. <!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * * -->
  60. <!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
  61. <div class="container">
  62. <div class="main">
  63. <router-outlet></router-outlet>
  64. </div>
  65. </div>
  66. <!--menus-->
  67. <mat-menu #userMenu="matMenu">
  68. <button mat-menu-item [matMenuTriggerFor]="settings">{{'settings'|tr:'Settings'}}</button>
  69. <button mat-menu-item (click)="loginService.logout()" [disabled]="!loginService.user">
  70. <mat-icon>logout</mat-icon>
  71. {{'logout'|tr:'Logout'}}</button>
  72. </mat-menu>
  73. <mat-menu #settings="matMenu">
  74. <button mat-menu-item [matMenuTriggerFor]="themes">{{'themes'|tr:'Themes'}}</button>
  75. </mat-menu>
  76. <mat-menu #themes="matMenu">
  77. <button mat-menu-item [matMenuTriggerFor]="lightThemes">{{'light'|tr:'Light'}}</button>
  78. <button mat-menu-item [matMenuTriggerFor]="darkThemes">{{'dark'|tr:'Dark'}}</button>
  79. </mat-menu>
  80. <mat-menu #lightThemes="matMenu">
  81. <button mat-menu-item (click)="changeTheme('theme')">{{'main'|tr:'Main'}}</button>
  82. </mat-menu>
  83. <mat-menu #darkThemes="matMenu">
  84. <button mat-menu-item (click)="changeTheme('dark-theme')">{{'main'|tr:'Main'}}</button>
  85. </mat-menu>