70 lines
1.8 KiB
TypeScript
70 lines
1.8 KiB
TypeScript
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';
|
|
}
|
|
}
|