summaryrefslogtreecommitdiffstats
path: root/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.store.ts
diff options
context:
space:
mode:
authorshaaban Altanany <shaaban.eltanany.ext@orange.com>2020-01-09 10:15:28 +0200
committershaaban Altanany <shaaban.eltanany.ext@orange.com>2020-01-12 17:44:43 +0200
commitc133b83cb2cbf0b3c7a63aad105a56060db2a6df (patch)
tree6ee9d450ccfd643fa10d133bdfabeacf387186e2 /cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.store.ts
parent4786e0b9ef3b4b82f4ad14bcffafa222628011d6 (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.ts62
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);
+ }
+ }
+
+
}