launcher.component.html 3.86 KB
Newer Older
1
2


Chris Hines's avatar
Chris Hines committed
3
4
<div  fxFlex style="flex: 1 1 0%; box-sizing: border-box">
<div fxLayout="column" fxLayoutAlign="space-around stretch" style="height: 100%; width: 100%" >
Chris Hines's avatar
Chris Hines committed
5
6
7
<mat-toolbar color="primary">
  <mat-toolbar-row>
    <button mat-icon-button (click)=idSideNav.toggle()><mat-icon>menu</mat-icon></button>
Chris Hines's avatar
Chris Hines committed
8

Chris Hines's avatar
Chris Hines committed
9
10
11
12
    <span>Strudel v2.0</span>
    <span class="fill-horizontal-space"></span>
    </mat-toolbar-row>
  </mat-toolbar>
13
<mat-sidenav-container style="height: 100%; width: 100%">
Chris Hines's avatar
Chris Hines committed
14
  <mat-sidenav #idSideNav mode="side" opened>
15
16
17
    <div fxLayout="column" style="height: 100%">
        <div>
            <mat-accordion>
Chris Hines's avatar
Chris Hines committed
18
19
            <div *ngFor="let id of (computeSitesService.appidentities | async)">
                <mat-expansion-panel (opened)="selectId(id)">
20
                    <mat-expansion-panel-header>
Chris Hines's avatar
Chris Hines committed
21
22
23
                    <mat-panel-title>
                        
                        <!--<button mat-button style="width: 100%">-->
Chris Hines's avatar
Chris Hines committed
24
                            <div fxLayout="row">
Chris Hines's avatar
Chris Hines committed
25
                                <div style="width: 20px;"></div>
Chris Hines's avatar
Chris Hines committed
26
                                <div fxFlex fxLayout="column">
Chris Hines's avatar
Chris Hines committed
27
                                    <div style="height: 15px"></div>
Chris Hines's avatar
Chris Hines committed
28
29
30
                                    <span fxFlex matBadge="{{ (id.healthalerts | async).length }}" 
                                                              [matBadgeHidden]= "(id.healthalerts | async).length == 0"  
                                                              matBadgePosition="above before" 
Chris Hines's avatar
Chris Hines committed
31
                                                              matBadgeColor="warn" style=" text-align: left" matBadgeOverlap="false" matBadgeSize="small">
Chris Hines's avatar
Chris Hines committed
32
33
34
35
                                        {{ id.displayName() }}
                                    </span>
                                </div>
                            </div>
Chris Hines's avatar
Chris Hines committed
36
                            <!--</button>-->
Chris Hines's avatar
Chris Hines committed
37
                        </mat-panel-title>
38
                    </mat-expansion-panel-header>
Chris Hines's avatar
Chris Hines committed
39
                    <app-strudelapplist [applist]=id.site.appCatalog [identity]="id" (appChange)="selectApp($event)"></app-strudelapplist>
40
                </mat-expansion-panel>
Chris Hines's avatar
Chris Hines committed
41
            </div>
42
            </mat-accordion>
43
        </div>
44
        <div fxFlex></div>
Chris Hines's avatar
Chris Hines committed
45
46
47
48
49
        <mat-menu #actionmenu="matMenu">
            <div *ngFor="let az of (authService.loggedInAuthZ | async)">
                <button mat-menu-item routerLink="/logout"><mat-icon>logout</mat-icon>Log out of {{ az.name }}</button>
            </div>
            <button mat-menu-item routerLink="/settings"><mat-icon>settings</mat-icon>Settings</button>
50
            <button *ngIf="(authService.loggedOutAuthZ | async).length > 0" mat-menu-item routerLink="/login"><mat-icon>exit_to_app</mat-icon>Login</button>
Chris Hines's avatar
Chris Hines committed
51
52
53
54
        </mat-menu>
        <button  mat-icon-button [matMenuTriggerFor]="actionmenu">
            <mat-icon>person</mat-icon>
        </button>
55
    </div>
56
  </mat-sidenav>
Chris Hines's avatar
Chris Hines committed
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
  <mat-sidenav-content>
    <div fxLayout="column" style="height: 100%">
        
    <!-- The dialog asking how many resources to use to run a job -->
    <div  *ngIf="app !== null && identity  !== null" >
      <app-launch-dialog [identity]="identitySubject | async" [appSubject]="appSubject"></app-launch-dialog>
    </div>


    <!-- the list of warning either on the computer system or the users account -->
    <div *ngIf="(identitySubject | async) !== null" >
      <mat-list>
      <div *ngFor="let h of ((identitySubject | async).healthalerts | async)">
         <mat-list-item>
         <div *ngIf="h.stat == 'error'">
           <div class='health-warn'>
            {{ h.msg }}
           </div>
         </div>
         </mat-list-item>
      </div>
      </mat-list>
    </div>

    <!-- the list of running jobs -->
    <app-joblist [identitySubject]="identitySubject" [appSubject]="appSubject"></app-joblist>
Chris Hines's avatar
Chris Hines committed
83

Chris Hines's avatar
Chris Hines committed
84
85
  </div>
  </mat-sidenav-content>
Chris Hines's avatar
Chris Hines committed
86

Chris Hines's avatar
Chris Hines committed
87
88
89
</mat-sidenav-container>

<!-- <app-joblist></app-joblist> -->