From 280f8015d06af1f41a3ef12e8300801c7a5e0d54 Mon Sep 17 00:00:00 2001 From: AviZi Date: Fri, 9 Jun 2017 02:39:56 +0300 Subject: [SDC-29] Amdocs OnBoard 1707 initial commit. Change-Id: Ie4d12a3f574008b792899b368a0902a8b46b5370 Signed-off-by: AviZi --- .../nfvo-components/panel/NavigationSideBar.jsx | 125 +++++++++++++++------ 1 file changed, 90 insertions(+), 35 deletions(-) (limited to 'openecomp-ui/src/nfvo-components/panel/NavigationSideBar.jsx') diff --git a/openecomp-ui/src/nfvo-components/panel/NavigationSideBar.jsx b/openecomp-ui/src/nfvo-components/panel/NavigationSideBar.jsx index feb0f813ea..3b89137090 100644 --- a/openecomp-ui/src/nfvo-components/panel/NavigationSideBar.jsx +++ b/openecomp-ui/src/nfvo-components/panel/NavigationSideBar.jsx @@ -1,9 +1,23 @@ +/*! + * Copyright (C) 2017 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. + */ import React from 'react'; import classnames from 'classnames'; import Collapse from 'react-bootstrap/lib/Collapse.js'; class NavigationSideBar extends React.Component { - static PropTypes = { activeItemId: React.PropTypes.string.isRequired, onSelect: React.PropTypes.func, @@ -11,51 +25,26 @@ class NavigationSideBar extends React.Component { groups: React.PropTypes.array }; + constructor(props) { + super(props); + this.state = { + activeItemId: null + }; + this.handleItemClicked = this.handleItemClicked.bind(this); + } + render() { let {groups, activeItemId} = this.props; return (
{groups.map(group => ( -
-
{group.name}
-
- { - group.items && group.items.map(item => this.renderGroupItem(item, activeItemId)) - } -
-
+ ))}
); } - renderGroupItem(item, activeItemId) { - let isGroup = item.items && item.items.length > 0; - return ( -
-
this.handleItemClicked(event, item)}> - {item.name} -
- {isGroup && - -
- {item.items.map(item => this.renderGroupItem(item, activeItemId))} -
-
- } -
- ); - } - handleItemClicked(event, item) { event.stopPropagation(); if(this.props.onToggle) { @@ -70,4 +59,70 @@ class NavigationSideBar extends React.Component { } } +class NavigationMenu extends React.Component { + static PropTypes = { + activeItemId: React.PropTypes.string.isRequired, + onNavigationItemClick: React.PropTypes.func, + menu: React.PropTypes.array + }; + + render() { + const {menu, activeItemId, onNavigationItemClick} = this.props; + return ( +
+ + +
); + } +} + +function NavigationMenuHeader(props) { + return
{props.title}
; +} + +function NavigationMenuItems(props) { + const {items, activeItemId, onNavigationItemClick} = props; + return ( +
+ { + items && items.map(item => ()) + } +
+ ); +} + +function NavigationMenuItem(props) { + const {onNavigationItemClick, item, activeItemId} = props; + const isGroup = item.items && item.items.length > 0; + return ( +
+ + {isGroup && +
+ {item.items.map(subItem => ()) } +
+
+ } +
+ ); +} + +function NavigationLink(props) { + const {item, activeItemId, onClick} = props; + return ( +
onClick(event, item)} + data-test-id={'navbar-group-item-' + item.id}> + {item.name} +
+ ); +} + export default NavigationSideBar; -- cgit