2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6 * Copyright © 2017 Amdocs
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
21 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
24 import {connect} from 'react-redux';
25 import React, {Component} from 'react';
26 import Table from 'react-bootstrap/lib/Table';
27 import LaunchInContext from 'app/tierSupport/launchExternalResource/LaunchExternalResource.jsx';
28 import i18n from 'utils/i18n/i18n';
32 SELECTED_NODE_TABLE_COLUMN_NAMES
33 } from 'app/tierSupport/selectedNodeDetails/SelectedNodeDetailsConstants.js';
35 let mapStateToProps = ({tierSupport: {selectedNodeDetails}}) => {
36 let {nodeData = {}, nodeType = '', uid = ''} = selectedNodeDetails;
45 class SelectedNodeDetails extends Component {
47 nodeData: React.PropTypes.object,
48 nodeType: React.PropTypes.string,
49 uid: React.PropTypes.string
53 const {nodeData, nodeType, uid} = this.props;
55 let tableClass = 'ts-selected-node-table';
56 let noSelectionMessageClass = 'hidden';
57 let tableColumns = [];
60 if (Object.keys(nodeData).length > 0) {
61 let cellClassName = '';
62 for (let i = 1; i <= SELECTED_NODE_TABLE_COLUMN_NAMES.length; i++) {
63 cellClassName = (i % 2 ? 'left-column-cell' : 'right-column-cell');
64 tableColumns.push(<th className={cellClassName} key={i}>
65 {i18n(SELECTED_NODE_TABLE_COLUMN_NAMES[i - 1])}
69 for (var key in nodeData) {
70 let value = nodeData[key];
73 <td className='left-column-cell'>{key}</td>
74 <td className='right-column-cell'>{value}</td>
79 tableClass = 'hidden';
80 noSelectionMessageClass = '';
84 <div className='ts-selected-node-details'>
85 <h1>{i18n(SELECTED_NODE_TITLE)}</h1>
87 <span>{uid} <LaunchInContext /></span>
88 <Table bsClass={tableClass}>
98 <p className={noSelectionMessageClass}>{i18n(NO_SELECTION)}</p>
103 export default connect(mapStateToProps)(SelectedNodeDetails);