<!--
 *******************************************************************************
 * Copyright (c) 2018 Contributors to the Eclipse Foundation
 *
 * See the NOTICE file(s) distributed with this work for additional
 * information regarding copyright ownership.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * SPDX-License-Identifier: EPL-2.0
 *******************************************************************************
-->


<nav class="navbar navbar-default navbar-fixed-top masthead overview-navbar" role="banner">
  <div class="container-fluid">
    <div class="navbar-header">
      <a href="#/overview" class="navbar-brand">
        <span class="open">Open</span>
        <span class="konsequenz">KONSEQUENZ</span>
      </a>
    </div>
    <div class="nav navbar-nav navbar-right">

      <div *ngIf="router.url === '/overview' || router.url === '/reminders'" style="border-right: solid 1px #c3c3c3; margin: 10px 0 10px 0">
      </div>

      <div class="btn btn-link navbar-btn">
        <span class="glyphicon glyphicon-bell" id="bell" [title]="sessionContext.getUpcomingReminder()? 'Es gibt mindestens einen fälligen Maßnahmeantrag' : ''"
          [style.color]="sessionContext.setBellColor()">
        </span>
      </div>

      <div>
        <button type="button" class="btn btn-link navbar-btn" (click)="goToOverview()">
          <span class="glyphicon glyphicon-home active-navitem-hover" [ngClass]="{'active-navitem': router.url === '/overview'}"></span>
        </button>
      </div>

      <div class="btn btn-link navbar-btn">
        <a href="./assets/userDocumentation.html" title="Hilfe" target="_blank">
          <img src="./assets/img/question mark_openK_color_is_infoColor_RegularSvg.svg" alt="question mark" height="16px">
        </a>
      </div>

      <div class="dropdown-open nav-user nav-overview-user" style="padding-top: 10px">
        <a class="btn btn-logout dropdown-toggle" style="min-width: 160px;" type="button" data-toggle="dropdown" href="#"
          aria-expanded="true">
          {{sessionContext.getAccessTokenDecoded()?.name}}
          <span class="caret"></span>
        </a>
        <ul class="dropdown-menu" style="left: auto; right: auto; top: 40px;">
          <li class="dropdown">
            <a (click)="goToLogout()">Abmelden</a>
          </li>
        </ul>
      </div>
    </div>
  </div>
  <app-version-info class="version-info-simple"></app-version-info>
</nav>
