import { Component, Inject } from 'ng-metadata/core'; const templateUrl = require('./config-setup-app.component.html'); declare var window: any; /** * Initial Screen and Choice in the Config App */ @Component({ selector: 'config-setup-app', templateUrl: templateUrl, }) export class ConfigSetupAppComponent { private state : 'choice' | 'setup' | 'load' | 'download' | 'deploy'; private loadedConfig = false; private kubeNamespace: string | boolean = false; constructor(@Inject('ApiService') private apiService) { this.state = 'choice'; if (window.__kubernetes_namespace) { this.kubeNamespace = window.__kubernetes_namespace; } } private chooseSetup(): void { this.apiService.scStartNewConfig() .then(() => { this.state = 'setup'; }) .catch(this.apiService.errorDisplay( 'Could not initialize new setup. Please report this error' )); } private chooseLoad(): void { this.state = 'load'; this.loadedConfig = true; } private choosePopulate(): void { this.apiService.scKubePopulateConfig() .then(() => { this.state = 'setup'; this.loadedConfig = true; }) .catch(err => { this.apiService.errorDisplay( `Could not populate the configuration from your cluster. Please report this error: ${JSON.stringify(err)}` )() }) } private configLoaded(): void { this.state = 'setup'; } private setupCompleted(): void { this.state = 'download'; } private chooseDeploy(): void { this.state = 'deploy'; } }