<div class="content-page">
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You 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.
-->
  <section class="row-fluid">

    <div class="span12">
      <div class="page-filters">
        <h1 class="title" class="pull-left">
          <i class="pictogram title">&#128101;</i> Groups
        </h1>
      </div>
    </div>

  </section>

  <div id="user-panel" class="panel-buffer">
    <ul id="user-panel-tab-bar" class="nav nav-tabs">
      <li><a href="javaScript:void(0);"
        ng-click="gotoPage('groups')">Group List</a></li>
      <li ng-class="detailsSelected"><a href="javaScript:void(0);"
        ng-click="gotoPage('groups/details')">Details</a></li>
      <li ng-class="membersSelected"><a href="javaScript:void(0);"
        ng-click="gotoPage('groups/members')">Users</a></li>
      <li ng-class="activitiesSelected"><a
        href="javaScript:void(0);"
        ng-click="gotoPage('groups/activities')">Activities</a></li>
      <li ng-class="rolesSelected"><a href="javaScript:void(0);"
        ng-click="gotoPage('groups/roles')">Roles &amp; Permissions</a></li>
    </ul>
  </div>

  <div style="float: left; margin-right: 10px;">
    <div style="float: left;">
      <div class="user-header-title">
        <strong>Group Path: </strong>{{selectedGroup.get('path')}}
      </div>
      <div class="user-header-title">
        <strong>Group Title: </strong>{{selectedGroup.get('title')}}
      </div>
    </div>
  </div>
</div>
<br>
<br>
