2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 AT&T Intellectual Property. All rights
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END============================================
20 * ===================================================================
23 import React from 'react';
24 import LoopActionService from '../../api/LoopActionService';
27 export default class PerformActions extends React.Component {
29 loopName: this.props.loopCache.getLoopName(),
30 loopAction: this.props.loopAction
33 constructor(props, context) {
34 super(props, context);
35 this.refreshStatus = this.refreshStatus.bind(this);
38 componentWillReceiveProps(newProps) {
40 loopName: newProps.loopCache.getLoopName(),
41 loopAction: newProps.loopAction
46 const action = this.state.loopAction;
47 const loopName = this.state.loopName;
49 if (action === 'delete') {
50 if (window.confirm('You are about to remove Control Loop Model "' + loopName +
51 '". Select OK to continue with deletion or Cancel to keep the model.') === false) {
56 this.props.setBusyLoading(); // Alert top level to start block user clicks
58 LoopActionService.performAction(loopName, action)
60 this.props.showSucAlert("Action " + action + " successfully performed");
61 if (action === 'delete') {
62 this.props.updateLoopFunction(null);
63 this.props.history.push('/');
65 // refresh status and update loop logs
66 this.refreshStatus(loopName);
70 this.props.showFailAlert("Action " + action + " failed");
71 // refresh status and update loop logs
72 this.refreshStatus(loopName);
74 .finally(() => this.props.clearBusyLoading());
77 refreshStatus(loopName) {
79 this.props.setBusyLoading();
81 LoopActionService.refreshStatus(loopName)
83 this.props.updateLoopFunction(data);
84 this.props.history.push('/');
87 this.props.history.push('/');
89 .finally(() => this.props.clearBusyLoading());