| import { Component, OnInit } from '@angular/core'; |
| import { ActivatedRoute, Router } from '@angular/router'; |
| |
| import { Instance } from '../shared/instance.model'; |
| import { HelperService } from '../../shared/helper.service'; |
| import { InstanceService } from '../shared/instance.service'; |
| |
| @Component({ |
| selector: 'hi-instance-detail', |
| templateUrl: './instance-detail.component.html', |
| styleUrls: ['./instance-detail.component.scss'], |
| providers: [InstanceService] |
| }) |
| export class InstanceDetailComponent implements OnInit { |
| |
| readonly tabLinks = [ |
| { label: 'Resources', link: 'resources' }, |
| { label: 'Configuration', link: 'configs' }, |
| { label: 'History', link: 'history' } |
| ]; |
| |
| clusterName: string; |
| instanceName: string; |
| instance: Instance; |
| isLoading = true; |
| can = false; |
| |
| constructor( |
| protected route: ActivatedRoute, |
| protected router: Router, |
| protected service: InstanceService, |
| protected helperService: HelperService |
| ) { } |
| |
| ngOnInit() { |
| this.service.can().subscribe(data => this.can = data); |
| this.clusterName = this.route.snapshot.params.cluster_name; |
| this.instanceName = this.route.snapshot.params.instance_name; |
| this.loadInstance(); |
| } |
| |
| removeInstance() { |
| this.helperService.showConfirmation('Are you sure you want to remove this Instance?') |
| .then(result => { |
| if (result) { |
| this.service |
| .remove(this.clusterName, this.instance.name) |
| .subscribe(data => { |
| this.helperService.showSnackBar(`Instance: ${ this.instance.name } removed!`); |
| this.router.navigate(['..'], { relativeTo: this.route }); |
| }); |
| } |
| }); |
| } |
| |
| enableInstance() { |
| this.service |
| .enable(this.clusterName, this.instance.name) |
| .subscribe( |
| () => this.loadInstance(), |
| error => this.helperService.showError(error) |
| ); |
| } |
| |
| disableInstance() { |
| this.service |
| .disable(this.clusterName, this.instance.name) |
| .subscribe( |
| () => this.loadInstance(), |
| error => this.helperService.showError(error) |
| ); |
| } |
| |
| protected loadInstance() { |
| this.isLoading = true; |
| this.service |
| .get(this.clusterName, this.instanceName) |
| .subscribe( |
| instance => this.instance = instance, |
| error => this.helperService.showError(error), |
| () => this.isLoading = false |
| ); |
| } |
| } |