UNPKG

@spotinst/spinnaker-deck

Version:

Spinnaker-Deck service, forked with support to Spotinst

72 lines (63 loc) 2.66 kB
import { IComponentOptions, IController, module } from 'angular'; import { IModalService } from 'angular-ui-bootstrap'; import { Application, ConfirmationModalService } from '@spinnaker/core'; import { IGceServerGroup } from 'google/domain/index'; class GceAutoHealingPolicyDetailsCtrl implements IController { public serverGroup: IGceServerGroup; public application: Application; public static $inject = ['$uibModal', 'gceAutoscalingPolicyWriter']; constructor(private $uibModal: IModalService, private gceAutoscalingPolicyWriter: any) {} public editPolicy(): void { this.$uibModal.open({ templateUrl: require('./modal/upsertAutoHealingPolicy.modal.html'), controller: 'gceUpsertAutoHealingPolicyModalCtrl', controllerAs: 'ctrl', size: 'md', resolve: { application: () => this.application, serverGroup: () => this.serverGroup, }, }); } public deletePolicy(): void { const taskMonitor = { application: this.application, title: `Deleting autohealing policy for ${this.serverGroup.name}`, }; ConfirmationModalService.confirm({ header: `Really delete autohealer for ${this.serverGroup.name}?`, buttonText: 'Delete autohealer', account: this.serverGroup.account, taskMonitorConfig: taskMonitor, submitMethod: () => this.gceAutoscalingPolicyWriter.deleteAutoHealingPolicy(this.application, this.serverGroup), }); } } const gceAutoHealingPolicyDetails: IComponentOptions = { bindings: { serverGroup: '<', application: '<' }, template: ` <dt> Health Check <help-field key="gce.serverGroup.autoHealing"></help-field> </dt> <dd>{{$ctrl.serverGroup.autoHealingPolicyHealthCheck}}</dd> <dt> Initial Delay <help-field key="gce.serverGroup.initialDelaySec"></help-field> </dt> <dd>{{$ctrl.serverGroup.initialDelaySec}} seconds</dd> <dt ng-if="$ctrl.serverGroup.maxUnavailable"> Max Unavailable <help-field key="gce.serverGroup.maxUnavailable"></help-field> </dt> <dd ng-if="$ctrl.serverGroup.maxUnavailable">{{$ctrl.serverGroup.maxUnavailable}}</dd> <action-icons class="text-right" edit="$ctrl.editPolicy()" edit-info="Edit Policy" destroy="$ctrl.deletePolicy()" destroy-info="Delete Policy"> </action-icons>`, controller: GceAutoHealingPolicyDetailsCtrl, }; export const GCE_AUTOHEALING_POLICY_DETAILS = 'spinnaker.gce.autoHealingPolicyDetails.component'; module(GCE_AUTOHEALING_POLICY_DETAILS, []).component('gceAutoHealingPolicyDetails', gceAutoHealingPolicyDetails);