From 9f11cc53ef385bf667d06cb4f86ff59b068fe045 Mon Sep 17 00:00:00 2001 From: IvashchenkoCW Date: Fri, 10 Jul 2020 15:59:48 +0300 Subject: [PATCH] add auto comple insted of tag select --- src/composer/src/app/app.module.ts | 2 ++ .../manage-project-dialog.component.html | 15 ++++++--------- .../manage-project-dialog.component.ts | 15 ++++++++------- .../src/app/core/services/rest.service.ts | 4 ++-- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/composer/src/app/app.module.ts b/src/composer/src/app/app.module.ts index d05a0eb..d4fd593 100644 --- a/src/composer/src/app/app.module.ts +++ b/src/composer/src/app/app.module.ts @@ -25,6 +25,7 @@ import { MatTooltipModule } from '@angular/material/tooltip' import { MatCheckboxModule } from '@angular/material/checkbox' import { MatMenuModule } from '@angular/material/menu' import { MatStepperModule } from '@angular/material/stepper' +import { MatAutocompleteModule } from '@angular/material/autocomplete' import { RepoSearchComponent, DialogDetails, DialogAddCustom } from './core/components/repo-search/repo-search.component' import { HeaderComponent } from './core/components/header/header.component' @@ -124,6 +125,7 @@ export function getHighlightLanguages() { MatCheckboxModule, MatMenuModule, MatStepperModule, + MatAutocompleteModule, DragDropModule, HighlightModule, FlexLayoutModule, diff --git a/src/composer/src/app/core/components/dialogs/manage-project-dialog/manage-project-dialog.component.html b/src/composer/src/app/core/components/dialogs/manage-project-dialog/manage-project-dialog.component.html index 04fe385..8746030 100644 --- a/src/composer/src/app/core/components/dialogs/manage-project-dialog/manage-project-dialog.component.html +++ b/src/composer/src/app/core/components/dialogs/manage-project-dialog/manage-project-dialog.component.html @@ -10,15 +10,12 @@ Tag - - - {{ tag }} - - - - - - + + + + {{ tag }} + + diff --git a/src/composer/src/app/core/components/dialogs/manage-project-dialog/manage-project-dialog.component.ts b/src/composer/src/app/core/components/dialogs/manage-project-dialog/manage-project-dialog.component.ts index d26ef64..3fdefc8 100644 --- a/src/composer/src/app/core/components/dialogs/manage-project-dialog/manage-project-dialog.component.ts +++ b/src/composer/src/app/core/components/dialogs/manage-project-dialog/manage-project-dialog.component.ts @@ -78,6 +78,11 @@ export class ManageProjectDialogComponent implements OnInit, OnDestroy { networks: new FormControl(), }) + this.formGeneral.get('image').valueChanges.pipe(takeUntil(this.unSubscribe$)).subscribe((value)=> { + if (!value) this.formGeneral.get('tag').disable() + else if (value && this.formGeneral.get('tag').disabled) this.formGeneral.get('tag').enable() + }) + this.project = this.store.select('project') const sub = this.project.pipe(takeUntil(this.unSubscribe$)).subscribe((v) => { @@ -152,15 +157,11 @@ export class ManageProjectDialogComponent implements OnInit, OnDestroy { getTags(): void { this.isLoading = true this.rest - .getRepoTags(this.formGeneral.get('image').value, this.nextTagPage) + .getRepoTags(this.formGeneral.get('image').value, this.nextTagPage, this.formGeneral.get('tag').value) .pipe(takeUntil(this.unSubscribe$)) - .subscribe(({ results, next }) => { - next ? this.nextTagPage++ : (this.nextTagPage = null) + .subscribe(({ results }) => { - results.forEach(({ name }) => { - const index = this.tags.findIndex((prevName) => name === prevName) - index === -1 ? this.tags.push(name) : '' - }) + this.tags = results.map(({name}) => name) this.isLoading = false }) diff --git a/src/composer/src/app/core/services/rest.service.ts b/src/composer/src/app/core/services/rest.service.ts index fba4994..c6d1c28 100644 --- a/src/composer/src/app/core/services/rest.service.ts +++ b/src/composer/src/app/core/services/rest.service.ts @@ -38,8 +38,8 @@ export class RestService { return this.http.get(`${baseDetailUrl}/?r=${repoName}`, httpOptions).pipe(map(this.extractData)) } - getRepoTags(repoName: string, pageNumber: number): Observable { - return this.http.get(`${baseTagsUrl}/?r=${repoName}&page=${pageNumber}`, httpOptions).pipe(map(this.extractData)) + getRepoTags(repoName: string, pageNumber: number, searchSubStr: string): Observable { + return this.http.get(`${baseTagsUrl}/?r=${repoName}&s=${searchSubStr}&page=${pageNumber}`, httpOptions).pipe(map(this.extractData)) } generateCode(data: object): Observable {