diff options
author | xuegao <xg353y@intl.att.com> | 2019-08-16 11:07:24 +0200 |
---|---|---|
committer | xuegao <xg353y@intl.att.com> | 2019-08-19 15:27:50 +0200 |
commit | 691e2b7a8bb16d224a0fbe30390152ea309e88e2 (patch) | |
tree | 89ad60de80038e22606fb8d34d1d2c3a102d02ee /ui-react/src/components/menu | |
parent | 6da0e17bd212ff5414a9798a2a2c3941b365d930 (diff) |
Rework deploy action and close model
Rework the deploy action and the close model feature.
Issue-ID: CLAMP-445, CLAMP-451
Change-Id: Ic122a584b676d50b9bddcac6e5553266b2281a01
Signed-off-by: xuegao <xg353y@intl.att.com>
Diffstat (limited to 'ui-react/src/components/menu')
-rw-r--r-- | ui-react/src/components/menu/MenuBar.js | 31 | ||||
-rw-r--r-- | ui-react/src/components/menu/PerformActions.js | 85 | ||||
-rw-r--r-- | ui-react/src/components/menu/RefreshStatus.js | 66 |
3 files changed, 22 insertions, 160 deletions
diff --git a/ui-react/src/components/menu/MenuBar.js b/ui-react/src/components/menu/MenuBar.js index 5022152e3..121787ffd 100644 --- a/ui-react/src/components/menu/MenuBar.js +++ b/ui-react/src/components/menu/MenuBar.js @@ -24,6 +24,7 @@ import React from 'react'; import Nav from 'react-bootstrap/Nav'; import Navbar from 'react-bootstrap/Navbar'; import NavDropdown from 'react-bootstrap/NavDropdown'; +import LoopUI from '../../LoopUI'; import 'bootstrap-css-only/css/bootstrap.min.css'; import styled from 'styled-components'; import { Link } from 'react-router-dom' @@ -56,25 +57,37 @@ const StyledNavLink = styled(Nav.Link)` } `; export default class MenuBar extends React.Component { + state = { + loopName: this.props.loopName, + disabled: true + }; + + componentWillReceiveProps(newProps) { + if (newProps.loopName !== LoopUI.defaultLoopName) { + this.setState({ disabled: false }); + } else { + this.setState({ disabled: true }); + } + } render () { return ( <Navbar.Collapse> <NavDropdown title="Closed Loop"> <NavDropdown.Item as={StyledLink} to="/openLoop">Open CL</NavDropdown.Item> - <NavDropdown.Item as={StyledLink} to="/loopProperties">Properties CL</NavDropdown.Item> - <NavDropdown.Item as={StyledLink} to="/closeLoop">Close Model</NavDropdown.Item> + <NavDropdown.Item as={StyledLink} to="/loopProperties" disabled={this.state.disabled}>Properties CL</NavDropdown.Item> + <NavDropdown.Item as={StyledLink} to="/closeLoop" disabled={this.state.disabled}>Close Model</NavDropdown.Item> </NavDropdown> <NavDropdown title="Manage"> - <NavDropdown.Item as={StyledLink} to="/submit">Submit</NavDropdown.Item> - <NavDropdown.Item as={StyledLink} to="/stop">Stop</NavDropdown.Item> - <NavDropdown.Item as={StyledLink} to="/restart">Restart</NavDropdown.Item> - <NavDropdown.Item as={StyledLink} to="/delete">Delete</NavDropdown.Item> - <NavDropdown.Item as={StyledLink} to="/deploy">Deploy</NavDropdown.Item> - <NavDropdown.Item as={StyledLink} to="/undeploy">UnDeploy</NavDropdown.Item> + <NavDropdown.Item as={StyledLink} to="/submit" disabled={this.state.disabled}>Submit</NavDropdown.Item> + <NavDropdown.Item as={StyledLink} to="/stop" disabled={this.state.disabled}>Stop</NavDropdown.Item> + <NavDropdown.Item as={StyledLink} to="/restart" disabled={this.state.disabled}>Restart</NavDropdown.Item> + <NavDropdown.Item as={StyledLink} to="/delete" disabled={this.state.disabled}>Delete</NavDropdown.Item> + <NavDropdown.Item as={StyledLink} to="/deploy" disabled={this.state.disabled}>Deploy</NavDropdown.Item> + <NavDropdown.Item as={StyledLink} to="/undeploy" disabled={this.state.disabled}>UnDeploy</NavDropdown.Item> </NavDropdown> <NavDropdown title="View"> - <NavDropdown.Item as={StyledLink} to="/refreshStatus">Refresh Status</NavDropdown.Item> + <NavDropdown.Item as={StyledLink} to="/refreshStatus" disabled={this.state.disabled}>Refresh Status</NavDropdown.Item> </NavDropdown> <NavDropdown title="Help"> <StyledNavLink href="https://wiki.onap.org/" target="_blank">Wiki</StyledNavLink> diff --git a/ui-react/src/components/menu/PerformActions.js b/ui-react/src/components/menu/PerformActions.js deleted file mode 100644 index 9c34e141b..000000000 --- a/ui-react/src/components/menu/PerformActions.js +++ /dev/null @@ -1,85 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END============================================ - * =================================================================== - * - */ -import React from 'react'; -import LoopActionService from '../../api/LoopActionService'; -import Spinner from 'react-bootstrap/Spinner' -import styled from 'styled-components'; - -const StyledSpinnerDiv = styled.div` - justify-content: center !important; - display: flex !important; -`; - -export default class PerformActions extends React.Component { - state = { - loopName: this.props.loopCache.getLoopName(), - loopAction: this.props.loopAction - }; - constructor(props, context) { - super(props, context); - - this.refreshStatus = this.refreshStatus.bind(this); - } - componentWillReceiveProps(newProps) { - this.setState({ - loopName: newProps.loopCache.getLoopName(), - loopAction: newProps.loopAction - }); - } - - componentDidMount() { - const action = this.state.loopAction; - const loopName = this.state.loopName; - console.log("Perform action:" + action); - LoopActionService.performAction(loopName, action).then(pars => { - alert("Action " + action + " successfully performed"); - // refresh status and update loop logs - this.refreshStatus(loopName); - }) - .catch(error => { - alert("Action " + action + " failed"); - // refresh status and update loop logs - this.refreshStatus(loopName); - }); - - } - - refreshStatus(loopName) { - LoopActionService.refreshStatus(loopName).then(data => { - this.props.updateLoopFunction(data); - this.props.history.push('/'); - }) - .catch(error => { - this.props.history.push('/'); - }); - } - - render() { - return ( - <StyledSpinnerDiv> - <Spinner animation="border" role="status"> - </Spinner> - </StyledSpinnerDiv> - ); - } -} diff --git a/ui-react/src/components/menu/RefreshStatus.js b/ui-react/src/components/menu/RefreshStatus.js deleted file mode 100644 index cf08655ee..000000000 --- a/ui-react/src/components/menu/RefreshStatus.js +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END============================================ - * =================================================================== - * - */ -import React from 'react'; -import LoopActionService from '../../api/LoopActionService'; -import Spinner from 'react-bootstrap/Spinner' -import styled from 'styled-components'; - -const StyledSpinnerDiv = styled.div` - justify-content: center !important; - display: flex !important; -`; - -export default class RefreshStatus extends React.Component { - state = { - loopName: this.props.loopCache.getLoopName() - }; - - componentWillReceiveProps(newProps) { - this.setState({ - loopName: newProps.loopCache.getLoopName() - }); - } - - componentDidMount() { - console.log("Refresh status for: " + this.state.loopName); - // refresh status and update loop logs - LoopActionService.refreshStatus(this.state.loopName).then(data => { - alert("Status successfully refreshed") - this.props.updateLoopFunction(data); - this.props.history.push('/'); - }) - .catch(error => { - alert("Status refreshing failed"); - this.props.history.push('/'); - }); - } - - render() { - return ( - <StyledSpinnerDiv> - <Spinner animation="border" role="status"> - </Spinner> - </StyledSpinnerDiv> - ); - } -} |