diff options
author | elisa castro <elisa.castro@iot.bzh> | 2018-10-18 17:23:15 +0200 |
---|---|---|
committer | Stéphane Desneux <stephane.desneux@iot.bzh> | 2018-10-19 23:43:34 +0000 |
commit | 0e0e584adab9322fe6b5bb0ad61e860d04cb64ad (patch) | |
tree | c72fcdcf9de09e263290c55528703534b33592e8 | |
parent | dea62f2f108934a4df26fcaaf4c0369cd881b1ba (diff) |
Fix sdk filters on page refresh
Change-Id: I55e7c6f16eec3fdf6cca73f3c6f5cae08abc4a2b
Signed-off-by: elisa castro <elisa.castro@iot.bzh>
-rw-r--r-- | webapp/src/app/pages/sdks/sdk-management/sdk-management.component.ts | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/webapp/src/app/pages/sdks/sdk-management/sdk-management.component.ts b/webapp/src/app/pages/sdks/sdk-management/sdk-management.component.ts index 6e9b81b..051b6ef 100644 --- a/webapp/src/app/pages/sdks/sdk-management/sdk-management.component.ts +++ b/webapp/src/app/pages/sdks/sdk-management/sdk-management.component.ts @@ -48,7 +48,6 @@ interface ISdkMgt extends ISdk { export class SdkManagementComponent implements OnInit { - sdks$: Observable<ISdk[]>; sdks: ISdkMgt[]; source: LocalDataSource = new LocalDataSource(); @@ -68,8 +67,8 @@ export class SdkManagementComponent implements OnInit { }, columns: { name: { title: 'Name', editable: false }, - profile: { title: 'Profile', editable: false, filter: {} }, - arch: { title: 'Architecture', editable: false, filter: {} }, + profile: { title: 'Profile', editable: false, filter: { type: 'list', config: {} } }, + arch: { title: 'Architecture', editable: false, filter: { type: 'list', config: {} } }, version: { title: 'Version', editable: false }, // TODO: add status when delete supported: // status: { title: 'Status', editable: false }, @@ -84,10 +83,16 @@ export class SdkManagementComponent implements OnInit { ) { } ngOnInit() { + this.sdkSvr.Sdks$.subscribe(sdks => { const profMap = {}; const archMap = {}; this.sdks = []; + + if (sdks.length === 0) { + return; + } + sdks.forEach(s => { // only display not installed SDK if (s.status !== StatusType.NOT_INSTALLED) { @@ -105,14 +110,22 @@ export class SdkManagementComponent implements OnInit { }); + // Create new reference of settings object to trig ngOnChanges event in ng2-smart-table + // and consequently rebuild settings grid + this.settings = Object.assign({}, this.settings); + // Add text box filter for Profile and Arch columns - const profList = []; Object.keys(profMap).forEach(a => profList.push({ value: a, title: a })); + const profList = []; + Object.keys(profMap).forEach(a => profList.push({ value: a, title: a })); + this.settings.columns.profile.filter = { type: 'list', config: { selectText: 'Select...', list: profList }, }; - const archList = []; Object.keys(archMap).forEach(a => archList.push({ value: a, title: a })); + const archList = []; + Object.keys(archMap).forEach(a => archList.push({ value: a, title: a })); + this.settings.columns.arch.filter = { type: 'list', config: { selectText: 'Select...', list: archList }, |