aboutsummaryrefslogtreecommitdiffstats
path: root/webapp/src/app/pages/sdks/sdk-management/sdk-management.component.ts
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/src/app/pages/sdks/sdk-management/sdk-management.component.ts')
-rw-r--r--webapp/src/app/pages/sdks/sdk-management/sdk-management.component.ts23
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 },