b78e8575abff93383e6ab2037c7732eeb44bc213
[osm/riftware.git] /
1
2 /*
3  * 
4  *
5  */
6 import React from 'react/addons';
7 import DashboardCard from '../../../components/dashboard_card/dashboard_card.jsx';
8 import ManagementDomainCardHeader from './managementDomainCardHeader.jsx';
9 import './managementDomainCard.scss'
10 function openLaunch() {
11   window.location.hash = window.location.hash + '/launch';
12 }
13
14 class ManagementDomainCard extends React.Component {
15   constructor(props) {
16     super(props);
17   }
18   componentWillReceiveProps(nextProps) {
19   }
20   shouldComponentUpdate(nextProps) {
21     return true;
22   }
23   openCreate() {
24     window.location.hash = window.location.hash + 'management-domain/create'
25   }
26   render() {
27     let html;
28      if(this.props.create){
29       html = <DashboardCard className="managementDomainCard"><div className={'managementDomainCard_create'} onClick={this.openCreate} style={{cursor:'pointer'}}><img src={require("../../../../assets/img/launchpad-add-fleet-icon.png")}/> Create Management Domain </div> </DashboardCard>;
30     } else {
31       var pools_html = null;
32       if (this.props.data.pools) {
33         pools_html = (
34           <dl>
35             <dt>VM Pool: </dt>
36             <dd>{this.props.data.pools.vm || null}</dd>
37             <dt>Network Pool: </dt>
38             <dd>{this.props.data.pools.network || null}</dd>
39             <dt>IP Address: </dt>
40             <dd>{this.props.data.launchpad.ip_address}</dd>
41           </dl>
42         )
43       } else {
44         pools_html = (
45           <dl>
46             <dt>VM Pool: </dt>
47             <dd>None</dd>
48             <dt>Network Pool: </dt>
49             <dd>None</dd>
50             <dt>IP Address: </dt>
51             <dd>{this.props.data.pools ? this.props.data.launchpad.ip_address : null}</dd>
52           </dl>
53         )
54       }
55     html = (
56       <DashboardCard className="managementDomainCard">
57         <ManagementDomainCardHeader name={this.props.data.name} isActive={this.props.isActive} style="93px" data={this.props.data}/>
58         <div className="content">
59           {pools_html}
60         </div>
61       </DashboardCard>
62     );
63 }
64     // <dt>VM Pools</dt>
65     //         <dd>{this.props.data.pools.vm}</dd>
66     //         <dt>Network Pools</dt>
67     //         <dd>{this.props.data.pools.network}</dd>
68     return html;
69   }
70 }
71 ManagementDomainCard.propTypes = {
72   nsr: React.PropTypes.object,
73   isActive: React.PropTypes.bool,
74   name: React.PropTypes.string
75  };
76 ManagementDomainCard.defaultProps = {
77   name: 'Loading...',
78   data: {},
79   isActive: false
80 };
81 export default ManagementDomainCard