<ul class="nav top-nav org-nav">
<!--
  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.
-->
  <li>
    <div class="btn-group ">
      <a class="btn dropdown-toggle top-selector org-selector"
        id="current-org-selector" data-toggle="dropdown"> <i
        class="pictogram">&#128193</i> {{currentOrg}}<span class="caret"></span>
      </a>
      <ul class="dropdown-menu org-nav">
        <li name="org-selector" ng-repeat="(k,v) in organizations">
          <a id="org-{{v.name}}-selector" class="org-overview"
          ng-click="orgChange(v.name)"> {{v.name}}</a>
        </li>
      </ul>
    </div>
  </li>
</ul>
