This is an automated email from the ASF dual-hosted git repository.

hshpak pushed a commit to branch feat/DATALAB-2775/update-instance-name-link
in repository https://gitbox.apache.org/repos/asf/incubator-datalab.git

commit 3c336d74993a5578f1595033e5cea238b20f5ba7
Author: Hennadii_Shpak <[email protected]>
AuthorDate: Thu May 19 16:06:09 2022 +0300

    [DATALAB-2775] updated instance name link
---
 .../detail-dialog/detail-dialog.component.html     | 168 ++++++++++-----------
 .../detail-dialog/detail-dialog.component.ts       |  14 +-
 .../resources-grid/resources-grid.component.html   |  20 ++-
 .../resources-grid/resources-grid.component.scss   |   6 +
 .../resources-grid/resources-grid.component.ts     |  16 +-
 .../resources-grid/resources-grid.model.ts         |  10 +-
 .../src/app/shared/navbar/navbar.component.html    |  86 +++++------
 7 files changed, 174 insertions(+), 146 deletions(-)

diff --git 
a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.html
 
b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.html
index 3397676b2..91c46efea 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.html
+++ 
b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.html
@@ -68,15 +68,15 @@
           <!--              </a>-->
           <!--            </p> -->
             <ng-container *ngFor="let item of notebook.exploratory_urls">
-              <span 
-                class="d-none" 
-                *ngIf="item.description.toLowerCase() === 'ungit' 
+              <span
+                class="d-none"
+                *ngIf="item.description.toLowerCase() === 'ungit'
                   && 
notebook.exploratory_urls[0].description.toLowerCase().indexOf('zeppelin') !== 
-1; else ungit"
               ></span>
               <ng-template #ungit>
                 <p (mouseleave)="hideCopyIcon()">
                   <span class="description">{{item.description}}: &nbsp;</span>
-                  <a 
+                  <a
                     (mouseover)="showCopyIcon(item.description)"
                     (click)="logAction(notebook.name, item.description)"
                     class="ellipsis none-select resources-url" 
matTooltip="{{item.url}}"
@@ -87,11 +87,11 @@
                   >
                     &nbsp;{{item.url | truncateTextPipe: urlMaxLength}}
                   </a>
-                  <span 
-                    (click)="logAction(notebook.name, item.description, 
'Copy');$event.stopPropagation()" 
-                    *ngIf="isCopyIconVissible[item.description]" 
-                    [matTooltip]="isCopied ? 'Copy ' + item.description + ' 
url': 'Copied'" 
-                    matTooltipPosition="above" 
+                  <span
+                    (click)="logAction(notebook.name, item.description, 
'Copy');$event.stopPropagation()"
+                    *ngIf="isCopyIconVissible[item.description]"
+                    [matTooltip]="isCopied ? 'Copy ' + item.description + ' 
url': 'Copied'"
+                    matTooltipPosition="above"
                     class="copy-icon-wrapper"
                   >
                     <span  class="link-icon" (click)="copyLink(item.url)" >
@@ -103,24 +103,24 @@
             </ng-container>
           </div>
         </div>
-        <div class="scroll-box" id="scrolling" *ngIf="data.type === 
'resource'">
+        <div class="scroll-box" id="scrolling" *ngIf="isResourcePage">
           <div class="detail-info" *ngIf="!notebook.error_message">
-            <p>Edge Node IP Address {{notebook.node_ip}}</p>
-            <p *ngIf="notebook.status === 'running'">Up time {{upTimeInHours}} 
hour(s) since
-              {{notebook.time ? (notebook.time | longDate) : "not specified."}}
-            </p>
+<!--            <p>Edge Node IP Address {{notebook.node_ip}}</p>-->
+<!--            <p *ngIf="notebook.status === 'running'">Up time 
{{upTimeInHours}} hour(s) since-->
+<!--              {{notebook.time ? (notebook.time | longDate) : "not 
specified."}}-->
+<!--            </p>-->
             <p *ngIf="notebook.url?.length">Open following URL(s) in your 
browser to access this box:</p>
             <div class="links_block">
               <ng-container *ngFor="let item of notebook.url">
-                <span 
-                  class="d-none" 
-                  *ngIf="item.description.toLowerCase() === 'ungit' 
+                <span
+                  class="d-none"
+                  *ngIf="item.description.toLowerCase() === 'ungit'
                     && notebook.template_name.toLowerCase().indexOf('zeppelin 
') !== -1; else ungit"
                 ></span>
                 <ng-template #ungit>
                   <p (mouseleave)="hideCopyIcon()">
                     <span class="description">{{item.description}}: 
&nbsp;</span>
-                    <a 
+                    <a
                       (mouseover)="showCopyIcon(item.description)"
                       (click)="logAction(notebook.name, item.description)"
                       class="ellipsis none-select resources-url" 
matTooltip="{{item.url}}"
@@ -131,11 +131,11 @@
                     >
                       &nbsp;{{item.url | truncateTextPipe: urlMaxLength}}
                     </a>
-                    <span 
-                      (click)="logAction(notebook.name, item.description, 
'Copy');$event.stopPropagation()" 
-                      *ngIf="isCopyIconVissible[item.description]" 
-                      [matTooltip]="isCopied ? 'Copy ' + item.description + ' 
url': 'Copied'" 
-                      matTooltipPosition="above" 
+                    <span
+                      (click)="logAction(notebook.name, item.description, 
'Copy');$event.stopPropagation()"
+                      *ngIf="isCopyIconVissible[item.description]"
+                      [matTooltip]="isCopied ? 'Copy ' + item.description + ' 
url': 'Copied'"
+                      matTooltipPosition="above"
                       class="copy-icon-wrapper"
                     >
                       <span  class="link-icon" (click)="copyLink(item.url)" >
@@ -153,39 +153,39 @@
               Password: &nbsp;<span class="strong">{{ notebook.password 
}}</span>
             </p>
 
-            <p class="m-top-30">{{ 'Project bucket' }}: &nbsp;</p>
-            <div class="links_block" (mouseleave)="hideCopyIcon()">
-              <p *ngIf="PROVIDER === 'azure' && notebook.account_name" 
class="bucket-info-wrapper">
-                <span
-                  class="bucket-info"
-                  (mouseover)="showCopyIcon('bucket')"
-                  [matTooltip]="notebook.bucket_name + '@' + 
notebook.account_name + '.blob.core.windows.net'"
-                  matTooltipPosition="above"
-                  [matTooltipClass]="'full-size-tooltip'"
-                >
-                  {{notebook.bucket_name + '@' + notebook.account_name + 
'.blob.core.windows.net'}}
-                </span>
+<!--            <p class="m-top-30">{{ 'Project bucket' }}: &nbsp;</p>-->
+<!--            <div class="links_block" (mouseleave)="hideCopyIcon()">-->
+<!--              <p *ngIf="PROVIDER === 'azure' && notebook.account_name" 
class="bucket-info-wrapper">-->
+<!--                <span-->
+<!--                  class="bucket-info"-->
+<!--                  (mouseover)="showCopyIcon('bucket')"-->
+<!--                  [matTooltip]="notebook.bucket_name + '@' + 
notebook.account_name + '.blob.core.windows.net'"-->
+<!--                  matTooltipPosition="above"-->
+<!--                  [matTooltipClass]="'full-size-tooltip'"-->
+<!--                >-->
+<!--                  {{notebook.bucket_name + '@' + notebook.account_name + 
'.blob.core.windows.net'}}-->
+<!--                </span>-->
 
-                <span *ngIf="isCopyIconVissible.bucket" [matTooltip]="isCopied 
? 'Copy bucket name' : 'Copied'" matTooltipPosition="above">
-                  <span class="link-icon" 
(click)="copyLink(notebook.bucket_name + '@' + notebook.account_name + 
'.blob.core.windows.net', true);$event.stopPropagation()" >
-                    <span _ngcontent-xpv-c19="" class="material-icons" 
(click)="this.isCopied = false">content_copy</span>
-                  </span>
-                </span>
-              </p>
-              <p *ngIf="notebook.bucket_name && PROVIDER !== 'azure'">{{ 
DICTIONARY[PROVIDER].container }}
-                <span
-                  class="bucket-info"
-                  (mouseover)="showCopyIcon('bucket')"
-                >
-                  {{ notebook.bucket_name }}
-                </span>
-                <span  *ngIf="isCopyIconVissible.bucket" 
[matTooltip]="isCopied ? 'Copy bucket name' : 'Copied'" 
matTooltipPosition="above">
-                  <span  class="link-icon" 
(click)="copyLink(notebook.bucket_name, true);$event.stopPropagation()" >
-                    <span _ngcontent-xpv-c19="" class="material-icons" 
(click)="this.isCopied = false">content_copy</span>
-                  </span>
-                </span>
-              </p>
-            </div>
+<!--                <span *ngIf="isCopyIconVissible.bucket" 
[matTooltip]="isCopied ? 'Copy bucket name' : 'Copied'" 
matTooltipPosition="above">-->
+<!--                  <span class="link-icon" 
(click)="copyLink(notebook.bucket_name + '@' + notebook.account_name + 
'.blob.core.windows.net', true);$event.stopPropagation()" >-->
+<!--                    <span _ngcontent-xpv-c19="" class="material-icons" 
(click)="this.isCopied = false">content_copy</span>-->
+<!--                  </span>-->
+<!--                </span>-->
+<!--              </p>-->
+<!--              <p *ngIf="notebook.bucket_name && PROVIDER !== 'azure'">{{ 
DICTIONARY[PROVIDER].container }}-->
+<!--                <span-->
+<!--                  class="bucket-info"-->
+<!--                  (mouseover)="showCopyIcon('bucket')"-->
+<!--                >-->
+<!--                  {{ notebook.bucket_name }}-->
+<!--                </span>-->
+<!--                <span  *ngIf="isCopyIconVissible.bucket" 
[matTooltip]="isCopied ? 'Copy bucket name' : 'Copied'" 
matTooltipPosition="above">-->
+<!--                  <span  class="link-icon" 
(click)="copyLink(notebook.bucket_name, true);$event.stopPropagation()" >-->
+<!--                    <span _ngcontent-xpv-c19="" class="material-icons" 
(click)="this.isCopied = false">content_copy</span>-->
+<!--                  </span>-->
+<!--                </span>-->
+<!--              </p>-->
+<!--            </div>-->
             <div class="bucket-info bucket-link">
               <span></span>
               <!--              <button-->
@@ -199,23 +199,23 @@
               <!--                 [ngClass]="{'not-allow': 
!this.bucketStatus['view'] || !thisdata.buckets.length}"-->
               <!--                (click)="bucketBrowser(notebook.bucket_name, 
notebook.endpoint, this.bucketStatus['view'] && thisdata.buckets.length)"-->
               <!--              >-->
-              <span 
-                class="description open-bucket"
-                [matTooltip]="!this.bucketStatus['view']
-                  ? 'You have not permission to open bucket'
-                  : 'You have not any bucket'"
-                matTooltipDisabled="{{this.bucketStatus['view'] && 
this.data.buckets.length}}"
-                matTooltipPosition="above"
-                [matTooltipClass]="'full-size-tooltip'"
-                [ngClass]="{'not-allow': !this.bucketStatus['view'] || 
!this.data.buckets.length}"
-                (click)="bucketBrowser(
-                  notebook.cloud_provider !== 'azure' ? notebook.bucket_name : 
notebook.account_name + '.' + notebook.bucket_name, 
-                  notebook.endpoint, 
-                  this.bucketStatus['view'] && this.data.buckets.length
-                )"
-              >
-                  Open bucket browser
-                </span>
+<!--              <span-->
+<!--                class="description open-bucket"-->
+<!--                [matTooltip]="!this.bucketStatus['view']-->
+<!--                  ? 'You have not permission to open bucket'-->
+<!--                  : 'You have not any bucket'"-->
+<!--                matTooltipDisabled="{{this.bucketStatus['view'] && 
this.data.buckets.length}}"-->
+<!--                matTooltipPosition="above"-->
+<!--                [matTooltipClass]="'full-size-tooltip'"-->
+<!--                [ngClass]="{'not-allow': !this.bucketStatus['view'] || 
!this.data.buckets.length}"-->
+<!--                (click)="bucketBrowser(-->
+<!--                  notebook.cloud_provider !== 'azure' ? 
notebook.bucket_name : notebook.account_name + '.' + notebook.bucket_name,-->
+<!--                  notebook.endpoint,-->
+<!--                  this.bucketStatus['view'] && this.data.buckets.length-->
+<!--                )"-->
+<!--              >-->
+<!--                  Open bucket browser-->
+<!--                </span>-->
             </div>
             <!--            <p>Shared endpoint bucket: &nbsp;</p>-->
             <!--            <div class="links_block" 
(click)="bucketBrowser(notebook.shared_bucket_name, notebook.endpoint, 
this.bucketStatus['view'])"-->
@@ -265,10 +265,10 @@
                           </p> -->
           </div>
 
-          <div 
-            class="checkbox-group" 
+          <div
+            class="checkbox-group"
             *ngIf="notebook.image !== 'docker.datalab-zeppelin'; else 
not_support"
-            [hidden]="notebook.status !== 'running' || notebook.image === 
'docker.datalab-superset' 
+            [hidden]="notebook.status !== 'running' || notebook.image === 
'docker.datalab-superset'
               || notebook.image === 'docker.datalab-jupyterlab'"
           >
             <label>
@@ -277,15 +277,15 @@
             <div class="checkbox-group">
               <form [formGroup]="configurationForm" novalidate>
                 <div class="config-details" 
*ngIf="configuration?.nativeElement['checked'] || false">
-                  <textarea 
-                    formControlName="configuration_parameters" 
+                  <textarea
+                    formControlName="configuration_parameters"
                     id="config"
-                    placeholder="Cluster configuration template, JSON" 
+                    placeholder="Cluster configuration template, JSON"
                     data-gramm_editor="false"
                   ></textarea>
-                  <span 
+                  <span
                     class="danger_color"
-                    
*ngIf="!configurationForm.controls.configuration_parameters.valid 
+                    
*ngIf="!configurationForm.controls.configuration_parameters.valid
                       && 
configurationForm.controls['configuration_parameters'].dirty"
                   >
                     Configuration parameters is not in a valid format
@@ -320,10 +320,10 @@
             <div *ngFor="let url of odahu.url" class="odahu-links">
               <div class="odahu-link">
                 <span class="description">{{url.description }}: &nbsp;</span>
-                <a 
-                  class="ellipsis" 
-                  matTooltip="{{ url.url}}" 
-                  matTooltipPosition="above" 
+                <a
+                  class="ellipsis"
+                  matTooltip="{{ url.url}}"
+                  matTooltipPosition="above"
                   href="{{ url.url}}"
                   target="_blank"
                 >
diff --git 
a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts
 
b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts
index 15845a6b2..370b7b8d6 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts
+++ 
b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts
@@ -151,10 +151,10 @@ export class DetailDialogComponent implements OnInit {
     bucketName = this.isBucketAllowed ? bucketName : 
this.data.buckets[0].children[0].name;
     // bucketName = 'ofuks-1304-pr2-local-bucket';
     this.dialog.open(BucketBrowserComponent, { data:
-      { 
-        bucket: bucketName, 
-        endpoint: endpoint, 
-        bucketStatus: this.bucketStatus, 
+      {
+        bucket: bucketName,
+        endpoint: endpoint,
+        bucketStatus: this.bucketStatus,
         buckets: this.data.buckets
       },
       panelClass: 'modal-fullscreen' }
@@ -164,7 +164,7 @@ export class DetailDialogComponent implements OnInit {
   public showCopyIcon(element) {
     this.isCopyIconVissible[element] = true;
   }
-  
+
   public hideCopyIcon() {
     for (const key in this.isCopyIconVissible) {
       this.isCopyIconVissible[key] = false;
@@ -184,4 +184,8 @@ export class DetailDialogComponent implements OnInit {
       this.auditService.sendDataToAudit({resource_name: name, info: `Follow 
${description} link`, type: 'NOTEBOOK'}).subscribe();
     }
   }
+
+  get isResourcePage(): boolean {
+    return this.data.type === 'resource';
+  }
 }
diff --git 
a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.html
 
b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.html
index 2b7a85719..f961bc133 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.html
+++ 
b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.html
@@ -128,15 +128,17 @@
 
           <tr *ngFor="let element of element.exploratory; let i = index" 
class="element-row mat-row">
             <td class="name-col">
-              <span
-                *ngIf="element.shape !== 'odahu cluster';else odahu"
-                [matTooltip]="element.name"
-                matTooltipPosition="above"
-                (click)="printDetailEnvironmentModal(element)"
-              >
+              <div *ngIf="checkLinkList(element.url); else instanceLink">
+                <span
+                  *ngIf="element.shape !== 'odahu cluster';else odahu"
+                  [matTooltip]="element.name"
+                  matTooltipPosition="above"
+                  (click)="printDetailEnvironmentModal(element)"
+                  class="instances-name__link"
+                >
                 {{ element.name }}
               </span>
-              <ng-template #odahu>
+                <ng-template #odahu>
                 <span
                   [matTooltip]=" element.name "
                   matTooltipPosition="above"
@@ -144,6 +146,10 @@
                 >
                   {{ element.name }}
                 </span>
+                </ng-template>
+              </div>
+              <ng-template #instanceLink>
+                <a target="_blank" class="instances-name__link" 
[href]="getFirstUrl(element.url)">{{ element.name }}</a>
               </ng-template>
             </td>
             <td class="status-col status" ngClass="{{ 
element.status.toLowerCase() || ''}}">
diff --git 
a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.scss
 
b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.scss
index 6728ed70d..cff3c5ee7 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.scss
+++ 
b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.scss
@@ -464,3 +464,9 @@ table.resources {
 .content-row {
   background-clip: padding-box;
 }
+
+.instances-name__link{
+  cursor: pointer;
+  color: #35afd5;
+  text-decoration: underline;
+}
diff --git 
a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts
 
b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts
index 55c824d95..7679b4f7b 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts
+++ 
b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts
@@ -29,7 +29,7 @@ import { animate, state, style, transition, trigger } from 
'@angular/animations'
 import { ToastrService } from 'ngx-toastr';
 import { MatDialog } from '@angular/material/dialog';
 import { ProjectService, UserResourceService, OdahuDeploymentService } from 
'../../core/services';
-import { ExploratoryModel } from './resources-grid.model';
+import {ExploratoryModel, Link} from './resources-grid.model';
 import { FilterConfigurationModel } from './filter-configuration.model';
 import { GeneralEnvironmentStatus } from 
'../../administration/management/management.model';
 import { ConfirmationDialogType } from '../../shared';
@@ -448,6 +448,20 @@ export class ResourcesGridComponent implements OnInit {
     this.filteredEnvironments = filteredData;
   }
 
+  checkLinkList(linkList: Link[]): boolean {
+    const filteredLinkList = this.filterLinkList(linkList);
+    return filteredLinkList.length > 0;
+  }
+
+  getFirstUrl(linkList: Link[]): string {
+    const filteredLinkList = this.filterLinkList(linkList);
+    return filteredLinkList[0].url;
+  }
+
+  private filterLinkList(linkList: Link[]): Link[] {
+    return linkList.filter(({description}) => description !== 'Ungit');
+  }
+
   private modifyGrid(): void {
     this.displayedColumns = this.displayedColumns.filter(el => el !== 'cost');
     this.displayedFilterColumns = this.displayedFilterColumns.filter(el => el 
!== 'cost-filter');
diff --git 
a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.model.ts
 
b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.model.ts
index 8c8d8d7d8..6350163bd 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.model.ts
+++ 
b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.model.ts
@@ -149,9 +149,7 @@ export class ExploratoryModel {
   }
 }
 
-// export interface Exploratory {
-//   project: string;
-//   endpoints: [];
-//   projectEndpoints: [];
-//   exploratory: ExploratoryModel[];
-// }
+export interface Link {
+  description: string;
+  url: string;
+}
diff --git 
a/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.html
 
b/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.html
index 8c52c46f9..03a49e729 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.html
+++ 
b/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.html
@@ -37,11 +37,11 @@
     <!-- <a *ngIf="healthStatus.status" 
[routerLink]="['/environment_management']" class="statusbar">
       <span class="material-icons" ngClass="{{healthStatus.status || 
''}}">radio_button_checked</span>
     </a> -->
-    
-    <a 
-      *ngIf="metadata" 
-      class="statusbar about-btn--wrapper" 
-      #info 
+
+    <a
+      *ngIf="metadata"
+      class="statusbar about-btn--wrapper"
+      #info
       (click)="actions.toggle($event, info)">
         <span class="about-btn">About</span>
     </a>
@@ -72,7 +72,7 @@
       <a class="help-link" 
href="https://github.com/apache/incubator-datalab/blob/master/USER_GUIDE.md"; 
target="_blank">Help</a>
     </span>
 
-    <span 
+    <span
       class="material-icons account-icon--nav-bar account-icon" #login 
(click)="loginInfo.toggle($event, login)">
         account_circle
     </span>
@@ -85,28 +85,28 @@
         <span class="user-mail">{{userData.email}}</span>
         <button type="button" class="logout-btn" (click)="logout_btnClick()">
           Log out from account
-        </button> 
+        </button>
       </div>
     </bubble-up>
   </div>
 </div>
 
 <mat-sidenav-container class="example-container" autosize >
-  <mat-sidenav 
-    #drawer 
-    mode="side" 
-    opened 
-    role="navigation" 
-    [style.width]="isExpanded ? '220px' : '60px'" 
-    disableClose 
+  <mat-sidenav
+    #drawer
+    mode="side"
+    opened
+    role="navigation"
+    [style.width]="isExpanded ? '220px' : '60px'"
+    disableClose
     *ngIf="healthStatus"
   >
     <mat-nav-list >
       <nav>
         <div>
-          <a 
-            class="nav-item" 
-            [routerLink]="['/resources_list']" 
+          <a
+            class="nav-item"
+            [routerLink]="['/resources_list']"
             [routerLinkActive]="['active']"
             [routerLinkActiveOptions]="{exact:true}"
           >
@@ -115,23 +115,23 @@
           </a>
           <a class="nav-item has-children" *ngIf="healthStatus?.billingEnabled 
|| healthStatus?.auditEnabled">
             <span *ngIf="isExpanded">{{sideBarNames.reports}}</span>
-            <a 
-              *ngIf="healthStatus?.auditEnabled" 
-              class="sub-nav-item" 
-              [routerLink]="['/audit']" 
+            <a
+              *ngIf="healthStatus?.auditEnabled"
+              class="sub-nav-item"
+              [routerLink]="['/audit']"
               [style.margin-left.px]="isExpanded ? '30' : '0'"
-              [routerLinkActive]="['active']" 
+              [routerLinkActive]="['active']"
               [routerLinkActiveOptions]="{exact:true}"
             >
               <span *ngIf="isExpanded; else 
audit">{{sideBarNames.audit}}</span>
               <ng-template #audit><i 
class="material-icons">library_books</i></ng-template>
             </a>
-            <a 
-              *ngIf="healthStatus?.billingEnabled" 
-              class="sub-nav-item" 
+            <a
+              *ngIf="healthStatus?.billingEnabled"
+              class="sub-nav-item"
               [routerLink]="['/billing_report']"
-              [routerLinkActive]="['active']" 
-              [routerLinkActiveOptions]="{exact:true}" 
+              [routerLinkActive]="['active']"
+              [routerLinkActiveOptions]="{exact:true}"
               [style.margin-left.px]="isExpanded ? '30' : '0'"
             >
               <span *ngIf="isExpanded; else 
billing">{{sideBarNames.billing}}</span>
@@ -141,21 +141,21 @@
           <a class="nav-item has-children" *ngIf="healthStatus?.admin || 
healthStatus?.projectAdmin">
             <span *ngIf="isExpanded">{{sideBarNames.administration}}</span>
 
-            <a 
-              class="sub-nav-item" 
-              [style.margin-left.px]="isExpanded ? '30' : '0'" 
+            <a
+              class="sub-nav-item"
+              [style.margin-left.px]="isExpanded ? '30' : '0'"
               [routerLink]="['/roles']"
-              [routerLinkActive]="['active']" 
+              [routerLinkActive]="['active']"
               [routerLinkActiveOptions]="{exact:true}"
             >
               <span *ngIf="isExpanded; else 
roles">{{sideBarNames.users}}</span>
               <ng-template #roles><i 
class="material-icons">account_box</i></ng-template>
             </a>
-            <a 
-              class="sub-nav-item" 
-              [style.margin-left.px]="isExpanded ? '30' : '0'" 
+            <a
+              class="sub-nav-item"
+              [style.margin-left.px]="isExpanded ? '30' : '0'"
               [routerLink]="['/projects']"
-              [routerLinkActive]="['active']" 
+              [routerLinkActive]="['active']"
               [routerLinkActiveOptions]="{exact:true}"
             >
               <span *ngIf="isExpanded; else 
projects">{{sideBarNames.projects}}</span>
@@ -166,21 +166,21 @@
             <!--              <span *ngIf="isExpanded; else odahu">Odahu 
deployment</span>-->
             <!--              <ng-template #odahu><i 
class="material-icons">get_app</i></ng-template>-->
             <!--            </a>-->
-            <a 
-              class="sub-nav-item" 
+            <a
+              class="sub-nav-item"
               [style.margin-left.px]="isExpanded ? '30' : '0'"
-              [routerLink]="['/environment_management']" 
+              [routerLink]="['/environment_management']"
               [routerLinkActive]="['active']"
               [routerLinkActiveOptions]="{exact:true}"
             >
               <span *ngIf="isExpanded; else 
env">{{sideBarNames.resources}}</span>
               <ng-template #env><i 
class="material-icons">settings</i></ng-template>
             </a>
-            <a 
-              *ngIf="healthStatus?.admin" 
-              class="sub-nav-item" 
+            <a
+              *ngIf="healthStatus?.admin"
+              class="sub-nav-item"
               [style.margin-left.px]="isExpanded ? '30' : '0'"
-              [routerLink]="['/configuration']" 
+              [routerLink]="['/configuration']"
               [routerLinkActive]="['active']"
               [routerLinkActiveOptions]="{exact:true}"
             >
@@ -188,7 +188,7 @@
               <ng-template #env><i 
class="material-icons">build_circle</i></ng-template>
             </a>
           </a>
-          
+
         </div>
         <!--        <div>-->
         <!--          <a class="nav-item" [routerLink]="['/swagger']" 
[routerLinkActive]="['active']"-->


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to