| import { Component, OnInit } from '@angular/core'; |
| import { ActivatedRoute } from '@angular/router'; |
| |
| import { ConfigurationService } from '../shared/configuration.service'; |
| import { HelperService } from '../../shared/helper.service'; |
| |
| @Component({ |
| selector: 'hi-config-detail', |
| templateUrl: './config-detail.component.html', |
| styleUrls: ['./config-detail.component.scss'], |
| providers: [ConfigurationService], |
| }) |
| export class ConfigDetailComponent implements OnInit { |
| isLoading = true; |
| obj: any = {}; |
| clusterName: string; |
| instanceName: string; |
| resourceName: string; |
| can = false; |
| |
| constructor( |
| protected route: ActivatedRoute, |
| protected service: ConfigurationService, |
| protected helper: HelperService |
| ) {} |
| |
| ngOnInit() { |
| if (this.route.parent) { |
| this.clusterName = |
| this.route.parent.snapshot.params.name || |
| this.route.parent.snapshot.params.cluster_name; |
| this.instanceName = this.route.parent.snapshot.params.instance_name; |
| this.resourceName = this.route.parent.snapshot.params.resource_name; |
| } |
| |
| this.loadConfig(); |
| |
| this.service.can().subscribe((data) => (this.can = data)); |
| } |
| |
| loadConfig() { |
| let observer: any; |
| |
| if (this.clusterName && this.instanceName) { |
| observer = this.service.getInstanceConfig( |
| this.clusterName, |
| this.instanceName |
| ); |
| } else if (this.clusterName && this.resourceName) { |
| observer = this.service.getResourceConfig( |
| this.clusterName, |
| this.resourceName |
| ); |
| } else { |
| observer = this.service.getClusterConfig(this.clusterName); |
| } |
| |
| if (observer) { |
| this.isLoading = true; |
| observer.subscribe( |
| (config) => (this.obj = config), |
| (error) => { |
| // since rest API simply throws 404 instead of empty config when config is not initialized yet |
| // frontend has to treat 404 as normal result |
| if (error != 'Not Found') { |
| this.helper.showError(error); |
| } |
| this.isLoading = false; |
| }, |
| () => (this.isLoading = false) |
| ); |
| } |
| } |
| |
| updateConfig(value: any) { |
| let observer: any; |
| |
| if (this.clusterName && this.instanceName) { |
| observer = this.service.setInstanceConfig( |
| this.clusterName, |
| this.instanceName, |
| value |
| ); |
| } else if (this.clusterName && this.resourceName) { |
| observer = this.service.setResourceConfig( |
| this.clusterName, |
| this.resourceName, |
| value |
| ); |
| } else { |
| observer = this.service.setClusterConfig(this.clusterName, value); |
| } |
| |
| if (observer) { |
| this.isLoading = true; |
| observer.subscribe( |
| () => { |
| this.helper.showSnackBar('Configuration updated!'); |
| this.loadConfig(); |
| }, |
| (error) => this.helper.showError(error), |
| () => (this.isLoading = false) |
| ); |
| } |
| } |
| |
| deleteConfig(value: any) { |
| let observer: any; |
| |
| if (this.clusterName && this.instanceName) { |
| observer = this.service.deleteInstanceConfig( |
| this.clusterName, |
| this.instanceName, |
| value |
| ); |
| } else if (this.clusterName && this.resourceName) { |
| observer = this.service.deleteResourceConfig( |
| this.clusterName, |
| this.resourceName, |
| value |
| ); |
| } else { |
| observer = this.service.deleteClusterConfig(this.clusterName, value); |
| } |
| |
| if (observer) { |
| this.isLoading = true; |
| observer.subscribe( |
| () => { |
| this.helper.showSnackBar('Configuration deleted!'); |
| this.loadConfig(); |
| }, |
| (error) => this.helper.showError(error), |
| () => (this.isLoading = false) |
| ); |
| } |
| } |
| } |