bstlboard-front/src/app/ui/main/main.ui.html

99 lines
4.0 KiB
HTML

<mat-toolbar color="primary">
<a href="javascript:" mat-icon-button (click)="sidenav.toggle()">
<mat-icon>menu</mat-icon>
</a>
<mat-icon svgIcon="logo"></mat-icon>
<a class="main" routerLink="/">
{{'bstlboard' | i18n}}
</a>
<span class="spacer"></span>
<ng-container *ngIf="authenticated">
<a routerLink="/submit" mat-raised-button color="accent">
<mat-icon>edit</mat-icon> {{'submission' |
i18n}}
</a>
</ng-container>
<ng-container>
<button mat-button [matMenuTriggerFor]="menu">
<mat-icon>settings</mat-icon>
<mat-icon>arrow_drop_down</mat-icon>
</button>
<mat-menu #menu="matMenu">
<a *ngIf="!authenticated" routerLink="/login" routerLinkActive="active" mat-menu-item>
<mat-icon>login</mat-icon> {{'login' | i18n}}
</a>
<mat-divider *ngIf="!authenticated"></mat-divider>
<a *ngFor="let locale of locales" mat-menu-item (click)="setLocale(locale)">
<mat-icon *ngIf="locale == currentLocale">done</mat-icon>{{'locale.' + locale + '.long' |
i18n}}
</a>
<a mat-menu-item (click)="toggleDarkTheme()">
<mat-slide-toggle [checked]="darkTheme">
{{'darkTheme' | i18n}}
</mat-slide-toggle>
</a>
<mat-divider *ngIf="authenticated"></mat-divider>
<a *ngIf="authenticated" routerLink="/settings" routerLinkActive="active" mat-menu-item>
<mat-icon>tune</mat-icon> {{'settings' | i18n}}
</a>
<mat-divider *ngIf="authenticated"></mat-divider>
<a *ngIf="authenticated" (click)="logout()" mat-menu-item>
<mat-icon>exit_to_app</mat-icon> {{'logout' | i18n}}
</a>
</mat-menu>
</ng-container>
</mat-toolbar>
<mat-sidenav-container>
<mat-sidenav #sidenav [mode]="isBiggerScreen() ? 'side' : 'over'" [(opened)]="opened || searchFocus"
[autoFocus]="false" (click)="!isBiggerScreen() && this.close()">
<mat-nav-list *ngIf="authenticated">
<ui-viewmenu></ui-viewmenu>
<mat-divider *ngIf="moderator"></mat-divider>
<a *ngIf="moderator" routerLink="/moderation/entries" routerLinkActive="active" mat-list-item>
<mat-icon matListItemIcon>report</mat-icon>
<span>{{'moderation.entries' | i18n}}</span>
</a>
<a *ngIf="moderator" routerLink="/moderation/comments" routerLinkActive="active" mat-list-item>
<mat-icon matListItemIcon>feedback</mat-icon>
<span>{{'moderation.comments' | i18n}}</span>
</a>
<mat-divider></mat-divider>
<a routerLink="/bookmarks" routerLinkActive="active" mat-list-item>
<mat-icon matListItemIcon>bookmarks</mat-icon>
<span>{{'bookmarks' | i18n}}</span>
</a>
</mat-nav-list>
<mat-form-field *ngIf="authenticated" (click)="preventClose($event)">
<mat-label>{{'search' | i18n}}</mat-label>
<input matInput type="text" (change)="search($event.target && $event.target.value || undefined, $event)"
(focus)="searchFocus = true" (blur)="searchFocus = false">
</mat-form-field>
<span class="spacer"></span>
<mat-nav-list>
<a (click)="openExternal($event,'https://wiki.bstly.de/services/bstlboard#faq','_blank')"
routerLinkActive="active" mat-list-item>
<mat-icon matListItemIcon>help</mat-icon>
<span>{{'page.faq' | i18n}}</span>
</a>
</mat-nav-list>
<mat-nav-list>
<mat-divider></mat-divider>
<a (click)="openExternal($event,'https://www.bstly.de/imprint/')" mat-list-item style="font-size: 0.7em;">
{{'page.imprint' | i18n}}
</a>
<a (click)="openExternal($event,'https://www.bstly.de/privacy-policy/#bstlboard')" mat-list-item
style="font-size: 0.7em;">
{{'page.privacy-policy' | i18n}}
</a>
<span style="font-size: 0.7em; margin-right: 1em; float: right;">v{{version}} <span *ngIf="hasUpdate"
(click)="updateSw()">{{'updateSw' | i18n}}</span></span>
</mat-nav-list>
</mat-sidenav>
<!-- Main content -->
<mat-sidenav-content>
<router-outlet></router-outlet>
</mat-sidenav-content>
</mat-sidenav-container>