| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <mat-progress-spinner id="loading-spinner" *ngIf="nfRegistryService.inProgress" mode="indeterminate"></mat-progress-spinner> |
| <mat-sidenav-container> |
| <mat-sidenav #sidenav mode="over" position="end" opened="false" disableClose="true"> |
| <router-outlet name="sidenav"></router-outlet> |
| </mat-sidenav> |
| <div id="nf-registry-app-container"> |
| <mat-toolbar id="nifi-registry-toolbar"> |
| <img id="nifi-registry-logo" src="assets/images/registry-logo-web-app.svg"> |
| <div *ngIf="nfRegistryService.perspective !== 'login' && nfRegistryService.perspective !== 'not-found'" fxFlex="1 1 auto" class="pad-left-xl" [@flyInOut]="nfRegistryService.breadCrumbState"> |
| <span class="pointer" routerLink="explorer/{{(nfRegistryService.explorerViewType) ? nfRegistryService.explorerViewType : 'grid-list'}}">{{nfRegistryService.registry.name}}</span> |
| <mat-menu #availableRegistriesMenu="matMenu" [overlapTrigger]="false"> |
| <button mat-menu-item *ngFor="let registry of nfRegistryService.registries" |
| routerLink="explorer/{{(nfRegistryService.explorerViewType) ? nfRegistryService.explorerViewType : 'grid-list'}}"> |
| <span>{{registry.name}}</span> |
| </button> |
| </mat-menu> |
| <span class="pointer" *ngIf="nfRegistryService.perspective === 'administration'"> / Administration</span> |
| <span class="pointer" *ngIf="(nfRegistryService.perspective === 'explorer') && nfRegistryService.bucket.identifier" |
| [matMenuTriggerFor]="availableBucketsMenu"> / {{nfRegistryService.bucket.name}}<i |
| class="fa fa-caret-down pad-left-sm" aria-hidden="true"></i></span> |
| <span class="pointer" *ngIf="nfRegistryService.perspective === 'explorer' && !nfRegistryService.bucket.identifier" |
| [matMenuTriggerFor]="availableBucketsMenu"> / All<i class="fa fa-caret-down pad-left-sm" |
| aria-hidden="true"></i></span> |
| <mat-menu #availableBucketsMenu="matMenu" [overlapTrigger]="false"> |
| <button mat-menu-item |
| routerLink="explorer/{{(nfRegistryService.explorerViewType) ? nfRegistryService.explorerViewType : 'grid-list'}}"> |
| <span>All buckets</span> |
| </button> |
| <button mat-menu-item *ngFor="let bucket of nfRegistryService.buckets" |
| routerLink="explorer/{{(nfRegistryService.explorerViewType) ? nfRegistryService.explorerViewType : 'grid-list'}}/buckets/{{bucket.identifier}}"> |
| <span>{{bucket.name}}</span> |
| </button> |
| </mat-menu> |
| <span class="pointer" *ngIf="nfRegistryService.perspective === 'explorer' && nfRegistryService.droplet.identifier" |
| [matMenuTriggerFor]="availableDropletsMenu"> / {{nfRegistryService.droplet.name}}<i |
| class="fa fa-caret-down pad-left-sm" aria-hidden="true"></i></span> |
| <span class="pointer" [matMenuTriggerFor]="availableDropletsMenu" |
| *ngIf="nfRegistryService.perspective === 'explorer' && nfRegistryService.bucket.identifier && !nfRegistryService.droplet.identifier"> / All<i |
| class="fa fa-caret-down pad-left-sm" aria-hidden="true"></i></span> |
| <mat-menu #availableDropletsMenu="matMenu" [overlapTrigger]="false"> |
| <button mat-menu-item |
| routerLink="explorer/{{(nfRegistryService.explorerViewType) ? nfRegistryService.explorerViewType : 'grid-list'}}/buckets/{{nfRegistryService.bucket.identifier}}"> |
| <span>All resources</span> |
| </button> |
| <button mat-menu-item *ngFor="let droplet of nfRegistryService.droplets" |
| routerLink="explorer/{{(nfRegistryService.explorerViewType) ? nfRegistryService.explorerViewType : 'grid-list'}}/{{droplet.link.href}}"> |
| <span>{{droplet.name}}</span> |
| </button> |
| </mat-menu> |
| </div> |
| <div id="nifi-registry-alerts-count" *ngIf="nfRegistryService.alerts.length > 0"> |
| {{nfRegistryService.alerts.length}} |
| </div> |
| <button *ngIf="false" matTooltip="Alerts" mat-icon-button> |
| <i class="fa fa-bell" aria-hidden="true"></i> |
| </button> |
| <div *ngIf="nfRegistryService.currentUser.identity && nfRegistryService.perspective !== 'login' && nfRegistryService.perspective !== 'not-found'" fxLayout="column" fxLayoutAlign="space-around end" class="push-right-sm"> |
| <div id="current-user" matTooltip="{{nfRegistryService.currentUser.identity}}">{{nfRegistryService.currentUser.identity}}</div> |
| <a id="logout-link-container" *ngIf="nfRegistryService.currentUser.canLogout" class="link" (click)="logout()">logout</a> |
| <a id="login-link-container" *ngIf="!nfRegistryService.currentUser.canLogout && nfRegistryService.currentUser.anonymous && (nfRegistryService.currentUser.loginSupported || nfRegistryService.currentUser.oidcloginSupported)" class="link" (click)="login()">login</a> |
| </div> |
| <div id="nifi-registry-documentation" *ngIf="nfRegistryService.perspective !== 'login'" class="pad-right-sm"> |
| <a matTooltip="Help" href="{{nfRegistryService.documentation.link}}" target="_blank"><i class="fa fa-question-circle help-icon" aria-hidden="true"></i></a> |
| </div> |
| <button matTooltip="Settings" mat-ripple *ngIf="nfRegistryService.currentUser.resourcePermissions.anyTopLevelResource.canRead && nfRegistryService.perspective === 'explorer'" mat-icon-button |
| routerLink="administration/workflow"> |
| <i class="fa fa-wrench" aria-hidden="true"></i> |
| </button> |
| <button color="primary" matTooltip="Close settings" mat-ripple *ngIf="nfRegistryService.perspective === 'administration'" mat-mini-fab |
| routerLink="explorer/{{(nfRegistryService.explorerViewType) ? nfRegistryService.explorerViewType : 'grid-list'}}"> |
| <mat-icon>close</mat-icon> |
| </button> |
| </mat-toolbar> |
| <div id="nf-registry-perspectives-container"> |
| <router-outlet></router-outlet> |
| </div> |
| </div> |
| </mat-sidenav-container> |