/* * ============LICENSE_START======================================================= * Copyright (C) 2022 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 Modal from "react-bootstrap/Modal"; import { Alert, Container, Table } from "react-bootstrap"; import Button from "react-bootstrap/Button"; import React, { useEffect, useState } from "react"; import styled from "styled-components"; import { Link } from "react-router-dom"; import ACMService from "../../../api/ACMService"; import Row from "react-bootstrap/Row"; import InstantiationUtils from "./utils/InstantiationUtils"; const ModalStyled = styled(Modal)` background-color: transparent; ` const HorizontalSpace = styled.div` padding-right: 2px; padding-left: 2px; `; const DivWhiteSpaceStyled = styled.div` overflow: auto; min-width: 100%; max-height: 300px; padding: 5px 5px 0px 5px; text-align: center; ` const InstantiationManagementModal = (props) => { const [show, setShow] = useState(true); const [instantiationList, setInstantiationList] = useState([]); const [alertMessage, setAlertMessage] = useState(null); useEffect(async () => { const response = await ACMService.getACMInstantiation(); const instantiationListJson = await response.json(); const parsedInstantiationList = InstantiationUtils.parseInstantiationList(instantiationListJson['automationCompositionList']); setInstantiationList(parsedInstantiationList); }, []); const getBackgroundColor = (index) => { if (index % 2 === 0) { return 'Silver'; } return 'White'; } const deleteInstantiationHandler = async (index, instantiation) => { console.log("deleteInstantiationHandler called"); if (instantiation.disableDelete) { return; } const name = instantiation.name; const version = instantiation.version; const response = await ACMService.deleteInstantiation(name, version); updateList(index); if (response.ok) { successAlert(); } else { await errorAlert(response); } } const updateList = (index) => { console.log("updateList called") const updatedList = [...instantiationList]; updatedList.splice(index, 1); setInstantiationList(updatedList); } const handleClose = () => { console.log("handleClose called"); setShow(false); props.history.push('/'); } const successAlert = () => { console.log("successAlert called"); setAlertMessage( Deletion of Instantiation Success

Deletion of Instantiation was successful!


); } const errorAlert = async (response) => { console.log("errorAlert called"); setAlertMessage( Deletion of Instantiation Failure

An error occurred while trying to delete instantiation

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

Status Text: { await response.text() }


); } const clearErrors = () => { console.log("clearErrors called"); setAlertMessage(null); } return ( Manage Instances { instantiationList.map((instantiation, index) => { return ( ) }) }
# Instantiation Name Edit Instantiation Delete Instantiation Change Order State Instantiation Order State Instantiation Current State
{ index + 1 } { instantiation.name } { instantiation.orderedState } { instantiation.currentState }
{ alertMessage }
); } export default InstantiationManagementModal;