You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datalab.apache.org by hs...@apache.org on 2022/05/20 15:52:26 UTC
[incubator-datalab] 01/01: [DATALAB-2775] updated instance name link
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 <bo...@gmail.com>
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}}: </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 @@
>
{{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}}: </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 @@
>
{{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: <span class="strong">{{ notebook.password }}</span>
</p>
- <p class="m-top-30">{{ 'Project bucket' }}: </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' }}: </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: </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 }}: </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: commits-unsubscribe@datalab.apache.org
For additional commands, e-mail: commits-help@datalab.apache.org