This is an automated email from the ASF dual-hosted git repository. dgnatyshyn pushed a commit to branch DLAB-1749 in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
commit cdecfd13ebe2d02e5b4880dacc5833046fae2f38 Author: Dmytro_Gnatyshyn <di1...@ukr.net> AuthorDate: Mon Jul 13 16:30:02 2020 +0300 [DLAB-1750] Added validation for existing and installed libs --- .../install-libraries/install-libraries.component.html | 10 +++++++++- .../install-libraries/install-libraries.component.scss | 7 ++++++- .../install-libraries/install-libraries.component.ts | 14 ++++++++++---- .../install-libraries/install-libraries.model.ts | 2 +- 4 files changed, 26 insertions(+), 7 deletions(-) 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 285014d..409faeb 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 @@ -62,7 +62,15 @@ [value]="query" [matAutocomplete]="auto" > - <mat-icon matSuffix (click)="addLibrary(query)" class="add-icon">add</mat-icon> + <span class="add-icon" [matTooltip]="!isLibExist ? 'Current library dosen\'t exist' : 'You have already added or installed current library'" + matTooltipPosition="above" + [matTooltipDisabled] = "isLibExist && (isInSelectedList || isInstalled)" + > + <button mat-icon-button class="btn" [disabled]="!isLibExist || query.length < 1 || + isDuplicated({name: query.slice(0, query.indexOf(':')), version: query.slice(query.indexOf(':') + 1) || 'N/A'})" (click)="addLibrary(query);$event.stopPropagation()"> + <mat-icon matSuffix >add</mat-icon> + </button> + </span> <mat-autocomplete #auto="matAutocomplete" class="suggestions" > <ng-template ngFor let-item [ngForOf]="filteredList" let-i="index" *ngIf="query.indexOf(':') === -1"> diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.scss index b87846d..55b68d8 100644 --- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.scss +++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.scss @@ -158,8 +158,13 @@ ul.resources{ } .add-icon{ - margin-right: 10px; cursor: pointer; + position: absolute; + top: -13px; + right: 10px; + .mat-icon{ + font-size: 24px; + } } .search-box { diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.ts index 063e406..a3af674 100644 --- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.ts +++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.ts @@ -29,6 +29,11 @@ import { LibrariesInstallationService } from '../../../core/services'; import { SortUtils, HTTP_STATUS_CODES } from '../../../core/util'; import {FilterLibsModel} from './filter-libs.model'; +interface Library { + name: string; + version: string; +} + @Component({ selector: 'install-libraries', @@ -77,6 +82,7 @@ export class InstallLibrariesComponent implements OnInit, OnDestroy { @ViewChild('groupSelect', { static: false }) group_select; @ViewChild('resourceSelect', { static: false }) resource_select; public isLibInfoOpened = { }; + private isLibExist: boolean; constructor( @Inject(MAT_DIALOG_DATA) public data: any, @@ -91,14 +97,12 @@ export class InstallLibrariesComponent implements OnInit, OnDestroy { ngOnInit() { this.open(this.data); - this.uploadLibGroups(); this.libSearch.valueChanges.pipe( debounceTime(1000)) .subscribe(newValue => { this.query = newValue || ''; this.filterList(); }); - this.getInstalledLibsByResource(); } ngOnDestroy() { @@ -161,7 +165,6 @@ export class InstallLibrariesComponent implements OnInit, OnDestroy { this.destination && this.destination.type === 'СOMPUTATIONAL' ? this.model.computational_name = this.destination.name : this.model.computational_name = null; - this.uploadLibGroups(); this.getInstalledLibsByResource(); } @@ -313,7 +316,10 @@ export class InstallLibrariesComponent implements OnInit, OnDestroy { }); } else { this.model.getLibrariesList(this.group, this.query) - .subscribe(libs => { + .subscribe((libs: Library[]) => { + console.log('libs', libs); + console.log(this.query.slice(0, this.query.indexOf(':'))); + this.isLibExist = libs.some(v => v.name === this.query.slice(0, this.query.indexOf(':'))); this.filteredList = libs; }); } diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.model.ts b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.model.ts index b201904..65896d3 100644 --- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.model.ts +++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.model.ts @@ -60,7 +60,7 @@ export class InstallLibrariesModel { project_name: this.notebook.project, exploratory_name: this.notebook.name, group: group, - start_with: query + start_with: query.slice(0, query.indexOf(':')) }; if (this.computational_name) lib_query.computational_name = this.computational_name; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@dlab.apache.org For additional commands, e-mail: commits-h...@dlab.apache.org