/* * ============LICENSE_START======================================================= * Copyright (C) 2021 Nordix Foundation. * ================================================================================ * 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. * * SPDX-License-Identifier: Apache-2.0 * ============LICENSE_END========================================================= */ import styled from "styled-components"; import Modal from "react-bootstrap/Modal"; import Button from "react-bootstrap/Button"; import React, { useContext, useEffect, useRef, useState } from "react"; import InstantiationOrderStateChangeItem from "./InstantiationOrderStateChangeItem"; import ControlLoopService from "../../../api/ControlLoopService"; import { Alert, Container, Dropdown } from "react-bootstrap"; const ModalStyled = styled(Modal)` @media (min-width: 800px) { .modal-xl { max-width: 96%; } } background-color: transparent; ` const DivWhiteSpaceStyled = styled.div` overflow: auto; min-width: 100%; max-height: 300px; padding: 5px 5px 0px 5px; text-align: center; ` const AlertStyled = styled(Alert)` margin-top: 10px; ` const ChangeOrderStateModal = (props) => { const [show, setShow] = useState(true); const [windowLocationPathnameGet, setWindowLocationPathnameGet] = useState(''); const [windowLocationPathNameSave, setWindowLocationPathNameSave] = useState(''); const [controlLoopIdentifierList, setControlLoopIdentifierList] = useState([]); const [orderedState, setOrderedState] = useState(''); const [toscaOrderStateObject, setToscaOrderStateObject] = useState({}); const [instantiationOrderStateError, setInstantiationOrderStateError] = useState(false); const [instantiationOrderStateMsgError, setInstantiationOrderStateMsgError] = useState({}); const [alertMessage, setAlertMessage] = useState(null); useEffect(async () => { setWindowLocationPathnameGet(window.location.pathname); const instantiationOrderState = await ControlLoopService.getInstanceOrderState( props.location.instantiationName, props.location.instantiationVersion, windowLocationPathnameGet) .catch(error => error.message); const orderStateJson = await instantiationOrderState.json(); console.log(orderStateJson); if (!instantiationOrderState.ok || orderStateJson['controlLoopIdentifierList'].length === 0) { setInstantiationOrderStateError(true); setInstantiationOrderStateMsgError(orderStateJson); } else { setControlLoopIdentifierList(orderStateJson['controlLoopIdentifierList']); setOrderedState(orderStateJson['orderedState']); } }, []); const handleDropSelect = (event) => { console.log("handleDropDownChange called"); const stateChangeObject = { orderedState: event, controlLoopIdentifierList: controlLoopIdentifierList } setToscaOrderStateObject(stateChangeObject); setOrderedState(event); } const handleSave = async () => { console.log("handleSave called"); setWindowLocationPathNameSave(window.location.pathname); const response = await ControlLoopService.changeInstanceOrderState( toscaOrderStateObject, windowLocationPathNameSave).catch(error => error.message); if (response.ok) { successAlert(); } else { await errorAlert(response); } } const handleClose = () => { console.log('handleClose called'); setShow(false); props.history.push('/'); } const successAlert = () => { console.log("successAlert called"); setAlertMessage( Order State Changed Success

Order State Changed was successfully changed


); } const errorAlert = async (response) => { console.log("errorAlert called"); setAlertMessage( Order State Changed Failure

An error occurred while trying to change order state

Status code: { await response.status } : { response.statusText }

Status Text: { await response.text() }


); } return ( Manage Instantiation
Select Order State UNINITIALISED PASSIVE RUNNING { controlLoopIdentifierList.map((clIdList, index) => ( )) } Can't get instantiation ordered state:
{ JSON.stringify(instantiationOrderStateMsgError, null, 2) }
{ alertMessage }
); } export default ChangeOrderStateModal;