summaryrefslogtreecommitdiffstats
path: root/src/generic-components/InfoToggle.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/generic-components/InfoToggle.jsx')
-rw-r--r--src/generic-components/InfoToggle.jsx106
1 files changed, 106 insertions, 0 deletions
diff --git a/src/generic-components/InfoToggle.jsx b/src/generic-components/InfoToggle.jsx
new file mode 100644
index 0000000..928eea7
--- /dev/null
+++ b/src/generic-components/InfoToggle.jsx
@@ -0,0 +1,106 @@
+/*
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017-2021 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, { Component } from 'react';
+import Modal from 'react-bootstrap/lib/Modal';
+import Col from 'react-bootstrap/lib/Col';
+import Row from 'react-bootstrap/lib/Row';
+import Tabs from 'react-bootstrap/lib/Tabs';
+import Button from 'react-bootstrap/lib/Button';
+import Tab from 'react-bootstrap/lib/Tab';
+import BootstrapTable from 'react-bootstrap-table-next';
+import {GlobalExtConstants} from 'utils/GlobalExtConstants.js';
+
+
+class InfoToggle extends Component {
+ constructor(props){
+ console.log(props);
+ super(props);
+ this.props = props;
+ this.state = {
+ showInfoModal: false
+ };
+ }
+ openInfoModal = () =>{
+ this.setState({showInfoModal:true});
+ }
+ closeInfoModal = () =>{
+ this.setState({showInfoModal:false});
+ }
+ getReferenceJson = (reference) =>{
+ return require('app/assets/configuration/' + GlobalExtConstants.PATHNAME + '/reference/' + reference + '.json');
+ }
+ render(){
+ let tableColumnsList = [];
+ let tableDataList = [];
+ let types = this.getReferenceJson('types');
+ types.map(type => {
+ tableColumnsList[type] = [];
+ tableDataList[type] = this.getReferenceJson(type);
+ for(var key in tableDataList[type][0]){
+ var isHidden = key === 'id';
+ tableColumnsList[type].push({dataField: key, text: key, hidden: isHidden });
+ }
+ });
+ let tabs=types.map((nodeType,index) => {
+ return(
+ <Tab eventKey={nodeType} title={nodeType}>
+ <BootstrapTable
+ id={nodeType}
+ keyField='id'
+ data={tableDataList[nodeType]}
+ columns={tableColumnsList[nodeType]}
+ bordered={ true }
+ headerClasses='table-header-view'
+ bootstrap4 striped hover condensed
+ />
+ </Tab>
+ )
+ });
+ if (!GlobalExtConstants.INVLIST.IS_ONAP){
+ return (
+ <div>
+ <div className='static-modal'>
+ <Modal show={this.state.showInfoModal} onHide={this.closeInfoModal}>
+ <Modal.Header>
+ <Modal.Title>Information</Modal.Title>
+ </Modal.Header>
+ <Modal.Body>
+ <Tabs defaultActiveKey={types[0]} id="multipleTabularView">
+ {tabs}
+ </Tabs>
+ </Modal.Body>
+ <Modal.Footer>
+ <Button onClick={this.closeInfoModal}>Close</Button>
+ </Modal.Footer>
+ </Modal>
+ </div>
+ <div className='col-xs-1'>
+ <i className='dsl-hint icon-documents-manual' onClick={this.openInfoModal} ></i>
+ <pre>Info</pre>
+ </div>
+ </div>);
+ }else{
+ return (<span></span>);
+ }
+ }
+};
+
+export default InfoToggle;