diff options
author | shaaban Altanany <shaaban.eltanany.ext@orange.com> | 2020-01-09 10:15:28 +0200 |
---|---|---|
committer | shaaban Altanany <shaaban.eltanany.ext@orange.com> | 2020-01-12 17:44:43 +0200 |
commit | c133b83cb2cbf0b3c7a63aad105a56060db2a6df (patch) | |
tree | 6ee9d450ccfd643fa10d133bdfabeacf387186e2 /cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.store.ts | |
parent | 4786e0b9ef3b4b82f4ad14bcffafa222628011d6 (diff) |
creating meta data creation component(first tab)
Issue-ID: CCSDK-2014
Signed-off-by: shaaban Altanany <shaaban.eltanany.ext@orange.com>
Change-Id: I35283cbb5b48174606493ecb39c20b9f717a9c06
Diffstat (limited to 'cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.store.ts')
-rw-r--r-- | cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.store.ts | 62 |
1 files changed, 61 insertions, 1 deletions
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.store.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.store.ts index b8aa73442..83c695f71 100644 --- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.store.ts +++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.store.ts @@ -24,7 +24,7 @@ import {BluePrintPage} from './model/BluePrint.model'; import {Store} from '../../../common/core/stores/Store'; import {PackagesApiService} from './packages-api.service'; import {PackagesDashboardState} from './model/packages-dashboard.state'; - +import {Observable, of} from 'rxjs'; @Injectable({ providedIn: 'root' @@ -32,6 +32,7 @@ import {PackagesDashboardState} from './model/packages-dashboard.state'; export class PackagesStore extends Store<PackagesDashboardState> { // TDOD fixed for now as there is no requirement to change it from UI public pageSize = 5; + private bluePrintContent: BluePrintPage = new BluePrintPage(); constructor(private packagesServiceList: PackagesApiService) { super(new PackagesDashboardState()); @@ -50,6 +51,13 @@ export class PackagesStore extends Store<PackagesDashboardState> { } } + public filterByTags(tags: string[]) { + console.log(this.state.currentPage); + this.getPagedPackagesByTags(this.state.command, this.state.currentPage, + this.pageSize, this.state.sortBy, tags); + + } + public getPage(pageNumber: number, pageSize: number) { if (this.isCommandExist()) { this.searchPagedPackages(this.state.command, pageNumber, pageSize); @@ -74,11 +82,13 @@ export class PackagesStore extends Store<PackagesDashboardState> { this.setState({ ...this.state, page: pages[0], + filteredPackages: pages[0], command: '', totalPackages: pages[0].totalElements, currentPage: pageNumber, // this param is set only in get all as it represents the total number of pacakges in the server totalPackagesWithoutSearchorFilters: pages[0].totalElements, + tags: [], sortBy }); }); @@ -90,9 +100,11 @@ export class PackagesStore extends Store<PackagesDashboardState> { this.setState({ ...this.state, page: pages[0], + filteredPackages: pages[0], command: keyWord, totalPackages: pages[0].totalElements, currentPage: pageNumber, + tags: [], sortBy }); }); @@ -101,4 +113,52 @@ export class PackagesStore extends Store<PackagesDashboardState> { private isCommandExist() { return this.state.command; } + + private getPagedPackagesByTags(keyWord: string, currentPage1: number, pageSize: number, sortBy1: string, tagsSearchable: string[]) { + this.getPagedPackagesByKeyWordFilteredByTags(tagsSearchable) + .subscribe((pages: BluePrintPage) => { + this.setState({ + ...this.state, + page: this.state.page, + filteredPackages: pages, + command: keyWord, + tags: tagsSearchable, + // totalPackages: pages.totalElements, + currentPage: currentPage1, + sortBy: sortBy1, + totalPackages: this.state.page.totalElements, + }); + }); + } + + private getPagedPackagesByKeyWordFilteredByTags(tagsSearchable: string[]): Observable<any> { + this.bluePrintContent.content = []; + if (tagsSearchable && tagsSearchable.length !== 0 && !tagsSearchable.includes('All')) { + tagsSearchable.forEach(tag => { + if (tag) { + this.state.page.content.forEach(bluePrintModel => { + if (tag.endsWith(',')) { + tag = tag.replace(',', ''); + } + bluePrintModel.tags.split(',').forEach(bluePrintModelTag => { + if (bluePrintModelTag === tag) { + this.bluePrintContent.content.push(bluePrintModel); + } + }); + }); + } else { + this.getPagedPackages(this.state.currentPage, this.pageSize); + return of(this.state.page); + } + }); + this.bluePrintContent.content = this.bluePrintContent.content.filter((value, index, self) => self.indexOf(value) === index); + console.log('the lenght is ' + this.bluePrintContent.content.length); + return of(this.bluePrintContent); + } else { + this.getPagedPackages(this.state.currentPage, this.pageSize); + return of(this.state.page); + } + } + + } |