You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by dg...@apache.org on 2020/08/05 07:21:21 UTC
[incubator-dlab] branch develop updated: [DLAB-1970]: Changed
validation for folder creation an other small changes (#843)
This is an automated email from the ASF dual-hosted git repository.
dgnatyshyn pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
The following commit(s) were added to refs/heads/develop by this push:
new 401da28 [DLAB-1970]: Changed validation for folder creation an other small changes (#843)
401da28 is described below
commit 401da288a17352daf7cce679e142501837450c6e
Author: Dmytro Gnatyshyn <42...@users.noreply.github.com>
AuthorDate: Wed Aug 5 10:21:12 2020 +0300
[DLAB-1970]: Changed validation for folder creation an other small changes (#843)
---
.../manage-environment-dilog.component.html | 5 ++++-
.../manage-environment-dilog.component.ts | 5 +++--
.../resources/webapp/src/app/core/util/patterns.ts | 2 +-
.../reporting-grid/reporting-grid.component.html | 2 +-
.../reporting-grid/reporting-grid.component.scss | 5 +++++
.../bucket-browser/bucket-browser.component.scss | 9 +++++++--
.../buckets-tree/bucket-tree.component.scss | 2 +-
.../folder-tree/folder-tree.component.html | 2 +-
.../install-libraries.component.html | 6 +++---
.../resources-grid/resources-grid.component.ts | 22 +++++++++++++++++++++-
.../src/app/resources/resources.component.html | 16 ++++++++--------
.../src/app/resources/resources.component.ts | 10 ++++++++--
12 files changed, 63 insertions(+), 23 deletions(-)
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.html b/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.html
index ed3cc91..591cdee 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.html
@@ -70,7 +70,10 @@
<div class="quotes">
<input type="number" (keypress)="CheckUtils.numberOnly($event)" formControlName="total"
placeholder="Enter total budget, in USD">
- <span class="error" *ngIf="manageUsersForm?.controls['total'].hasError('overrun')">Total budget cannot be lower than a sum of projects quotes</span>
+ <span class="error" *ngIf="manageUsersForm?.controls['total'].hasError('overrun')
+ && !manageUsersForm?.controls['total'].hasError('max')">Total budget cannot be lower than a sum of projects quotes</span>
+ <span class="error"
+ *ngIf="manageUsersForm?.controls['total'].hasError('max')">Total budget cannot be higher than 1000000000</span>
</div>
</mat-list-item>
</div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.ts
index f2f1cf7..4aa2871 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.ts
@@ -64,7 +64,8 @@ export class ManageEnvironmentComponent implements OnInit {
'max' in v.controls['budget'].errors ? null : v.controls['budget'].setErrors(null);
}
);
- this.manageUsersForm.controls['total'].setErrors(null);
+ this.manageUsersForm.controls['total'].errors &&
+ this.manageUsersForm.controls['total'].errors ? null : this.manageUsersForm.controls['total'].setErrors(null);
}
});
}
@@ -107,7 +108,7 @@ export class ManageEnvironmentComponent implements OnInit {
private initForm(): void {
this.manageUsersForm = this._fb.group({
- total: [null, [Validators.min(0), this.totalValidityCheck.bind(this)]],
+ total: [null, [Validators.min(0), this.totalValidityCheck.bind(this), Validators.max(1000000000)]],
projects: this._fb.array([this._fb.group({ project: '', budget: null, status: '' })])
});
}
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/util/patterns.ts b/services/self-service/src/main/resources/webapp/src/app/core/util/patterns.ts
index 8246bba..981e661 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/util/patterns.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/util/patterns.ts
@@ -24,6 +24,6 @@ export const PATTERNS = {
url: '[a-zA-Z0-9.://%#&\\.@:%-_\+~#=]*\.[^\s]*[a-zA-Z0-9]/+',
nodeCountPattern: '^[1-9]\\d*$',
integerRegex: '^[0-9]*$',
- folderRegex: /^[a-zA-Z0-9!@$%^&*()_+\-=\[\]{};':|,.<>~` ]*$/,
+ folderRegex: /^[a-zA-Z0-9!@$^&*()_+\-=\[\]{};':|,.<>~` ]*$/,
fullUrl: /^(http?|ftp|https):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+([.:])(\d{4}|com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*\/$/
};
diff --git a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.html b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.html
index 3e354a3..1481d53 100644
--- a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.html
@@ -279,7 +279,7 @@
<tr [hidden]="reportData?.length" mat-footer-row *matFooterRowDef="['placeholder']"></tr>
</table>
</section>
- <div class="buttons" *ngIf="isScrollButtonsVisible">
+ <div class="buttons" *ngIf="isScrollButtonsVisible && reportData?.length">
<div class="button-container">
<button mat-mini-fab aria-label="Scroll left" (click)="sctollTo('left')" [ngClass]="{'not-allowed': tableWrapper.scrollLeft === 0 }">
<mat-icon [ngClass]="{'highlight': tableWrapper.scrollLeft !== 0}">keyboard_arrow_left</mat-icon>
diff --git a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.scss b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.scss
index b92962d..253d354 100644
--- a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.scss
@@ -211,6 +211,11 @@
.label {
padding-top: 10px;
}
+
+ &.label-header{
+ box-shadow: none;
+ border-bottom: 1px solid lightgrey !important;
+ }
}
.label {
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.scss
index fbdf05b..2cf6731 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.scss
@@ -105,15 +105,20 @@
direction: rtl;
&-folder{
- padding-left: 5px;
+ padding-left: 20px;
padding-right: 5px;
color: #00bcd4;
cursor: pointer;
+
+ &:first-of-type{
+ padding-left: 5px;
+ }
}
&-icon i{
- transform: translateY(2px);
+ transform: translateY(1px);
font-size: 15px;
+ position: absolute;
}
}
}
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.scss
index 5bd774a..736c6ee 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.scss
@@ -18,7 +18,7 @@
*/
.folder{
padding-left: 5px;
- max-width: 350px;
+ max-width: 310px;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.html
index 6f24500..6879271 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.html
@@ -35,7 +35,7 @@
<mat-label>New folder</mat-label>
<input matInput #itemValue [formControl]="folderFormControl" [errorStateMatcher]="matcher">
<mat-error *ngIf="!folderFormControl.hasError('required') && !folderFormControl.hasError('isDuplicate')">
- The folder name can only contain Latin letters, numbers and special characters except for #, ?, /, \, "
+ The folder name can only contain Latin letters, numbers and special characters except for #, ?, /, \, %"
</mat-error>
<mat-error *ngIf="folderFormControl.hasError('required')">
Folder name is <strong>required</strong>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.html
index e37bb0c..654f29b 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.html
@@ -280,7 +280,7 @@
</button>
<button mat-icon-button class="btn apply" (click)="filterLibs()">
- <i class="material-icons" [ngClass]="{'not-allowed': filterModel.length === 0}">done</i>
+ <i class="material-icons" [ngClass]="{'not-allowed': filterModel['length'] === 0}">done</i>
</button>
</div>
</th>
@@ -312,9 +312,9 @@
<span *ngIf="!installingInProgress && item.status === 'installation_error'" (click)="reinstallLibrary(item, lib)" matTooltip="Retry installation" matTooltipPosition="above">
<i class="material-icons">replay</i>
</span>
- <span class="not-allowed" *ngIf="installingInProgress && item.status === 'installation_error'" matTooltip="Please wait until lib installation completes"
+ <span class="not-allow" *ngIf="installingInProgress && item.status === 'installation_error'" matTooltip="Please wait until lib installation completes"
matTooltipPosition="above">
- <i class="material-icons">replay</i>
+ <i class="material-icons not-allowed">replay</i>
</span>
</div>
<div *ngIf="item.status === 'installation_error' && item.error" class="lib-error" (click)="showErrorMessage(item)" matTooltip="Show error message" matTooltipPosition="above">
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 69e8b02..c984a6f 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
@@ -18,7 +18,7 @@
*/
import {Project} from '../../administration/project/project.component';
-import {Component, Input, OnInit} from '@angular/core';
+import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
import { animate, state, style, transition, trigger } from '@angular/animations';
import { ToastrService } from 'ngx-toastr';
import { MatDialog } from '@angular/material/dialog';
@@ -91,6 +91,7 @@ export class ResourcesGridComponent implements OnInit {
readonly DICTIONARY = DICTIONARY;
@Input() projects: Array<any>;
+ @Output() getEnvironments: EventEmitter<any> = new EventEmitter();
environments: Exploratory[];
@@ -146,6 +147,7 @@ export class ResourcesGridComponent implements OnInit {
this.userResourceService.getUserProvisionedResources()
.subscribe((result: any) => {
this.environments = ExploratoryModel.loadEnvironments(result);
+ this.getEnvironments.emit(this.environments);
this.getBuckets();
this.getDefaultFilterConfiguration();
(this.environments.length) ? this.getUserPreferences() : this.filteredEnvironments = [];
@@ -283,6 +285,24 @@ export class ResourcesGridComponent implements OnInit {
});
this.bucketsList = SortUtils.flatDeep(bucketsList, 1).filter(v => v.children.length);
+ // this.bucketsList = [
+ // {
+ // children: [{name: 'SERVICE_BASE_NAME-${EDGE_USER_NAME}-bucket.SERVICE_BASE_NAME-${EDGE_USER_NAME}-bucket', endpoint: 'local'}],
+ // cloud: 'GCP',
+ // name: 'Proj1 (local)'
+ // },
+ // {
+ // children: [{name: 'SERVICE_BASE_NAME-${EDGE_USER_NAME}-bucket.SERVICE_BASE_NAME-${EDGE_USER_NAME}-bucket', endpoint: 'local'}],
+ // cloud: 'GCP',
+ // name: 'Proj1 (local)'
+ // },
+ // {
+ // children: [{name: 'SERVICE_BASE_NAME-${EDGE_USER_NAME}-bucket.SERVICE_BASE_NAME-${EDGE_USER_NAME}-bucket', endpoint: 'local'}],
+ // cloud: 'GCP',
+ // name: 'Proj1 (local)'
+ // },
+ // ],
+ // console.log(this.bucketsList);
}
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.html
index d6b9616..ad6fc53 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.html
@@ -32,15 +32,15 @@
</button>
</span>
<div class="mat-reset">
- <div class="control selector-wrapper" *ngIf="resourcesGrid.activeProjectsList?.length">
+ <div class="control selector-wrapper" *ngIf="projects?.length">
<mat-form-field>
- <mat-label>Select active project</mat-label>
+ <mat-label>Select project</mat-label>
<mat-select [(value)]="resourcesGrid.activeProject">
- <mat-option *ngIf="resourcesGrid.activeProjectsList?.length > 1" (click)="setActiveProject('')">Show all</mat-option>
- <mat-option *ngFor="let project of resourcesGrid.activeProjectsList" [value]="project.name"
- (click)="setActiveProject(project.name)">
- {{ project.name }}</mat-option>
- <mat-option *ngIf="!resourcesGrid.activeProjectsList?.length" class="multiple-select ml-10" disabled>Projects list is empty
+ <mat-option *ngIf="projects?.length > 1" (click)="setActiveProject('')">Show all</mat-option>
+ <mat-option *ngFor="let project of projects" [value]="project"
+ (click)="setActiveProject(project)">
+ {{ project }}</mat-option>
+ <mat-option *ngIf="!projects?.length" class="multiple-select ml-10" disabled>Projects list is empty
</mat-option>
</mat-select>
<button class="caret">
@@ -85,5 +85,5 @@
</div>
</div>
<mat-divider></mat-divider>
- <resources-grid></resources-grid>
+ <resources-grid (getEnvironments)="getEnvironments($event)" ></resources-grid>
</div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts
index f5af0e9..3dadd70 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts
@@ -52,12 +52,11 @@ export class ResourcesComponent implements OnInit, AfterViewInit {
ngOnInit() {
this.getEnvironmentHealthStatus();
- this.exploratoryEnvironments = this.resourcesGrid.environments;
this.projects = this.resourcesGrid.activeProjectsList;
}
ngAfterViewInit() {
- console.log(this.resourcesGrid);
+
}
public createEnvironment(): void {
@@ -87,6 +86,7 @@ export class ResourcesComponent implements OnInit, AfterViewInit {
}
public bucketBrowser(permition): void {
+ console.log(this.exploratoryEnvironments);
const defaultBucket = this.resourcesGrid.bucketsList[0].children[0];
permition && this.dialog.open(BucketBrowserComponent, { data:
{
@@ -117,6 +117,12 @@ export class ResourcesComponent implements OnInit, AfterViewInit {
}
+ public getEnvironments(environment) {
+ this.exploratoryEnvironments = environment;
+ this.projects = environment.map(env => env.project);
+ }
+
+
private getEnvironmentHealthStatus() {
this.healthStatusService.getEnvironmentHealthStatus().subscribe(
(result: any) => {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org