From 5a87ef15be1dd27dedacb748c58add2502e956c5 Mon Sep 17 00:00:00 2001 From: waynedunican Date: Fri, 14 Apr 2023 16:25:18 +0100 Subject: Restructure policy-gui repo - Removed gui-clamp module - Added gui-runtime module - Created gui-acm for future gui development work Issue-ID: POLICY-4638 Change-Id: I6d6468ae1c83d39e5b837f1dadf42bda5671ee70 Signed-off-by: waynedunican --- .../dialogs/ACM/InstancePropertiesModal.js | 272 --------------------- 1 file changed, 272 deletions(-) delete mode 100644 gui-clamp/ui-react/src/components/dialogs/ACM/InstancePropertiesModal.js (limited to 'gui-clamp/ui-react/src/components/dialogs/ACM/InstancePropertiesModal.js') diff --git a/gui-clamp/ui-react/src/components/dialogs/ACM/InstancePropertiesModal.js b/gui-clamp/ui-react/src/components/dialogs/ACM/InstancePropertiesModal.js deleted file mode 100644 index 1c152ff..0000000 --- a/gui-clamp/ui-react/src/components/dialogs/ACM/InstancePropertiesModal.js +++ /dev/null @@ -1,272 +0,0 @@ -/* - * ============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 React, { useEffect, useState } from "react"; -import Modal from "react-bootstrap/Modal"; -import styled from "styled-components"; -import Button from "react-bootstrap/Button"; -import ACMService from "../../../api/ACMService"; -import Alert from "react-bootstrap/Alert"; -import * as PropTypes from "prop-types"; -import InstantiationUtils from "./utils/InstantiationUtils"; -import Row from "react-bootstrap/Row"; -import Form from "react-bootstrap/Form"; - -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 templateName = "ToscaServiceTemplateSimple"; -const templateVersion = "1.0.0"; - -function Fragment(props) { - return null; -} - -const specialCharacter = /[ `!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~]/; - -Fragment.propTypes = {children: PropTypes.node}; -const InstancePropertiesModal = (props) => { - const [show, setShow] = useState(true); - const [toscaFullTemplate, setToscaFullTemplate] = useState({}); - const [jsonEditor, setJsonEditor] = useState(null); - const [alertMessage, setAlertMessage] = useState(null); - const [clearButton, setClearButton] = useState(null); - const [instancePropertiesGlobal, setInstancePropertiesGlobal] = useState({}); - const [serviceTemplateResponseOk, setServiceTemplateResponseOk] = useState(true); - const [instancePropertiesResponseOk, setInstancePropertiesResponseOk] = useState(true); - const [instanceName, setInstanceName] = useState(''); - const [instanceVersion, setInstanceVersion] = useState(''); - const [oldInstanceName, setOldInstanceName] = useState(''); - const [tempInstanceName, setTempInstanceName] = useState(''); - const [validated, setValidated] = useState(false); - const [editMode, setEditMode] = useState(false); - - useEffect(async () => { - let isEditMode = false; - - if (props.location.instantiationName !== undefined) { - isEditMode = true; - setEditMode(true); - setInstanceName(props.location.instantiationName); - setInstanceVersion(props.location.instantiationVersion); - } - - const instantiationName = isEditMode ? props.location.instantiationName : null; - console.log(instantiationName); - - const toscaTemplateResponse = await ACMService.getToscaTemplate(templateName, templateVersion, instantiationName) - .catch(error => error.message); - - const toscaInstanceProperties = await ACMService.getCommonOrInstanceProperties(templateName, templateVersion, instantiationName, false) - .catch(error => error.message); - - if (toscaInstanceProperties == null || toscaTemplateResponse == null) { - await warningAlert('Tosca service template is empty') - return; - } - - if (!toscaInstanceProperties.ok) { - const errorResponse = await toscaInstanceProperties.json(); - console.log(errorResponse); - setInstancePropertiesGlobal(errorResponse); - setInstancePropertiesResponseOk(false); - } - - if (!toscaTemplateResponse.ok) { - const errorResponse = await toscaTemplateResponse.json(); - console.log(errorResponse); - setToscaFullTemplate(errorResponse); - setServiceTemplateResponseOk(false); - } - - if (toscaTemplateResponse.ok && toscaInstanceProperties.ok) { - const renderedJsonSchema = await InstantiationUtils.parseJsonSchema(toscaTemplateResponse, toscaInstanceProperties); - setToscaFullTemplate(await (renderedJsonSchema).fullTemplate); - setJsonEditor(await (renderedJsonSchema).jsonEditor); - } - - }, []); - - useEffect(async () => { - - await validateInstanceName(); - - }, [instanceName]) - - const validateInstanceName = async () => { - console.log('validateInstanceName called'); - - if (specialCharacter.test(instanceName)) { - await warningAlert('Instance name cannot contain special characters'); - } else if (alertMessage) { - clearWarning(); - } - - if (instanceName.length > 2 && !specialCharacter.test(instanceName)) { - console.log('validated'); - setOldInstanceName(tempInstanceName); - setValidated(true); - } else { - setValidated(false); - } - } - - const handleClose = () => { - console.log('handleClose called'); - setShow(false); - props.history.push('/'); - } - - const handleInstanceName = (event) => { - console.log('handleInstanceName called'); - - setTempInstanceName(instanceName); - setInstanceName(event.target.value); - - validateInstanceName().then(() => { - }); - } - - const handleSave = async () => { - if (instanceName !== '' || instanceName !== undefined || instanceName.length > 0) { - console.log("handleSave called"); - - console.log("instanceName to be saved is: " + instanceName); - - if (jsonEditor != null) { - setToscaFullTemplate(InstantiationUtils.updateTemplate(instanceName, jsonEditor.getValue(), toscaFullTemplate)); - } - - let response = null; - - if (editMode) { - response = await ACMService.updateInstanceProperties(oldInstanceName, instanceVersion, toscaFullTemplate) - .catch(error => error.message); - } else { - response = await ACMService.createInstanceProperties(toscaFullTemplate) - .catch(error => error.message); - } - - if (response.ok) { - successAlert(); - } else { - await errorAlert(response); - } - } else { - await warningAlert('Instance name cannot be empty'); - } - } - - const warningAlert = async (message) => { - console.log("warningAlert called"); - - setAlertMessage( - Instantiation Properties Warning -

{message}

-
-
); - } - - const successAlert = () => { - console.log("successAlert called"); - setAlertMessage( - Instantiation Properties Success -

Instance Properties was successfully saved

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

An error occurred while trying to save

-

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

-

Status Text: { await response.text() }

-
-
); - } - - const clearWarning = () => { - console.log("clearWarning called"); - - if (specialCharacter.test(instanceName)) { - return; - } - - setClearButton(null); - setAlertMessage(null); - } - - return ( - - - { editMode ? 'Edit' : 'Create' } Tosca Instance Properties - -
- - - Instance Name: - - -
- Can't get service template:
{ JSON.stringify(toscaFullTemplate, null, 2) }
- Can't get instance properties:
{ JSON.stringify(instancePropertiesGlobal, null, 2) }
- - - { alertMessage } - -
- - { clearButton } - - - - - ); -} - -export default InstancePropertiesModal; -- cgit 1.2.3-korg