aboutsummaryrefslogtreecommitdiffstats
path: root/cds-ui/client-frankfurt/src/app/modules/feature-modules/packages/packages.store.ts
diff options
context:
space:
mode:
authorAhmed Abbas <ahmad.helmy@orange.com>2019-11-27 15:04:18 +0200
committerAhmed Abbas <ahmad.helmy@orange.com>2019-11-27 15:04:18 +0200
commiteea49075a4a8bb62a5a15ec31adfe52e1f1f3b7a (patch)
treed0c8e90ba9ce30262e72b86873c8fde5ff60605c /cds-ui/client-frankfurt/src/app/modules/feature-modules/packages/packages.store.ts
parent341db21b2ac0a14a1ed2b8bf7930914dda054bfe (diff)
filter packages by tag
rename filter-by-keyword to search-by-packages Issue-ID: CCSDK-1968 Issue-ID: CCSDK-1951 Signed-off-by: Ahmed Abbas <ahmad.helmy@orange.com> Change-Id: I4667f2b9e98ba7e217ba7ab15e5cd8c45bee0c33
Diffstat (limited to 'cds-ui/client-frankfurt/src/app/modules/feature-modules/packages/packages.store.ts')
-rw-r--r--cds-ui/client-frankfurt/src/app/modules/feature-modules/packages/packages.store.ts73
1 files changed, 60 insertions, 13 deletions
diff --git a/cds-ui/client-frankfurt/src/app/modules/feature-modules/packages/packages.store.ts b/cds-ui/client-frankfurt/src/app/modules/feature-modules/packages/packages.store.ts
index 799946dbc..d770bf737 100644
--- a/cds-ui/client-frankfurt/src/app/modules/feature-modules/packages/packages.store.ts
+++ b/cds-ui/client-frankfurt/src/app/modules/feature-modules/packages/packages.store.ts
@@ -23,35 +23,82 @@ import {Injectable} from '@angular/core';
import {BluePrintPage} from './model/BluePrint.model';
import {Store} from '../../../common/core/stores/Store';
import {PackagesListService} from './packages-list.service';
+import {PackagesDashboardState} from './model/packages-dashboard.state';
@Injectable({
providedIn: 'root'
})
-export class PackagesStore extends Store<BluePrintPage> {
- private bluePrintModels: BluePrintPage;
-
+export class PackagesStore extends Store<PackagesDashboardState> {
// TDOD fixed for now as there is no requirement to change it from UI
- public pageSize = 2;
+ public pageSize = 5;
constructor(private packagesServiceList: PackagesListService) {
- super(new BluePrintPage());
+ super(new PackagesDashboardState());
+ }
+
+ public getAll() {
+ console.log('getting all packages...');
+ this.getPagedPackages(0, this.pageSize);
+ }
+
+ public search(command: string) {
+ if (command) {
+ this.searchPagedPackages(command, 0, this.pageSize);
+ } else {
+ this.getPagedPackages(0, this.pageSize);
+ }
+ }
+
+ public getPage(pageNumber: number, pageSize: number) {
+ if (this.isCommandExist()) {
+ this.searchPagedPackages(this.state.command, pageNumber, pageSize);
+ } else {
+ this.getPagedPackages(pageNumber, pageSize);
+ }
}
- getPagedPackages(pageNumber: number, pageSize: number) {
- this.packagesServiceList.getPagedPackages(pageNumber, pageSize)
+ public sortPagedPackages(sortBy: string) {
+ if (this.isCommandExist()) {
+ this.searchPagedPackages(this.state.command, this.state.currentPage, this.pageSize, sortBy);
+ } else {
+ this.getPagedPackages(this.state.currentPage, this.pageSize, sortBy);
+ }
+
+ }
+
+ private getPagedPackages(pageNumber: number, pageSize: number, sortBy: string = this.state.sortBy) {
+
+ this.packagesServiceList.getPagedPackages(pageNumber, pageSize, sortBy)
.subscribe((pages: BluePrintPage[]) => {
- this.setState(pages[0]);
+ this.setState({
+ ...this.state,
+ page: 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,
+ sortBy
+ });
});
}
- getPagedPackagesByKeyWord(keyWord: string, pageNumber: number, pageSize: number) {
- this.packagesServiceList.getPagedPackagesByKeyWord(keyWord, pageNumber, pageSize)
+ private searchPagedPackages(keyWord: string, pageNumber: number, pageSize: number, sortBy: string = this.state.sortBy) {
+ this.packagesServiceList.getPagedPackagesByKeyWord(keyWord, pageNumber, pageSize, sortBy)
.subscribe((pages: BluePrintPage[]) => {
- this.setState(pages[0]);
+ this.setState({
+ ...this.state,
+ page: pages[0],
+ command: keyWord,
+ totalPackages: pages[0].totalElements,
+ currentPage: pageNumber,
+ sortBy
+ });
});
-
}
-
+ private isCommandExist() {
+ return this.state.command;
+ }
}