58 lines
2.0 KiB
JavaScript
58 lines
2.0 KiB
JavaScript
import React from 'react';
|
|
import { Link } from 'react-router';
|
|
import ImmutablePropTypes from 'react-immutable-proptypes';
|
|
|
|
import NavTab from './ui/NavTab';
|
|
|
|
|
|
export default class NavBar extends React.Component {
|
|
logout(e) {
|
|
e.preventDefault();
|
|
this.props.onLogout();
|
|
}
|
|
|
|
render() {
|
|
return (
|
|
<nav className="navbar navbar-default navbar-pf navbar-fixed-top" role="navigation">
|
|
<div className="navbar-header">
|
|
<button type="button" className="navbar-toggle collapsed"
|
|
data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"
|
|
aria-expanded="false">
|
|
<span className="sr-only">Toggle navigation</span>
|
|
<span className="icon-bar"></span>
|
|
<span className="icon-bar"></span>
|
|
<span className="icon-bar"></span>
|
|
</button>
|
|
<Link className="navbar-brand" to="/">
|
|
{/*TODO: new logo goes here instead of the div*/}
|
|
<div style={{height: '10px'}}></div>
|
|
</Link>
|
|
</div>
|
|
<div className="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
|
|
<ul className="nav navbar-nav navbar-utility">
|
|
<li>
|
|
<a>
|
|
<span className="pficon pficon-user"></span>
|
|
{this.props.user.get('username')}
|
|
</a>
|
|
</li>
|
|
<li><a href="#" onClick={this.logout.bind(this)}>Logout</a></li>
|
|
</ul>
|
|
<ul className="nav navbar-nav navbar-primary">
|
|
<NavTab to="/deployment-plan">Deployment Plan</NavTab>
|
|
<NavTab to="/roles">Roles</NavTab>
|
|
<NavTab to="/nodes">Nodes</NavTab>
|
|
<NavTab to="/flavors">Flavors</NavTab>
|
|
<NavTab to="/images">Images</NavTab>
|
|
<NavTab to="/plans/list">Plans</NavTab>
|
|
</ul>
|
|
</div>
|
|
</nav>
|
|
);
|
|
}
|
|
}
|
|
NavBar.propTypes = {
|
|
onLogout: React.PropTypes.func.isRequired,
|
|
user: ImmutablePropTypes.map
|
|
};
|