<!--
  ~ Copyright 2015 Open Networking Laboratory
  ~
  ~ 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.
  -->

<!-- Group partial HTML -->
<div id="ov-group">
    <div class="tabular-header">
        <h2>
            Groups for Device {{devId || "(No device selected)"}}
            ({{tableData.length}} total)
        </h2>
        <div class="ctrl-btns">
            <div class="refresh" ng-class="{active: autoRefresh}"
                 icon icon-size="36" icon-id="refresh"
                 ng-click="toggleRefresh()"></div>
        </div>
    </div>

    <div class="summary-list" onos-fixed-header>

        <div class="table-header"
             onos-sortable-header
             sort-params="sortParams"
             sort-callback="sortCallback(sortParams)">
            <table>
                <tr>
                    <td colId="id" sortable>Group ID </td>
                    <td colId="app_id" sortable>App ID </td>
                    <td colId="state" sortable>State </td>
                    <td colId="type" sortable>Type </td>
                    <td colId="packets" sortable>Packets </td>
                    <td colId="bytes" sortable>Bytes </td>
                </tr>
            </table>
        </div>

        <div class="table-body">
            <table>
                <tr ng-hide="tableData.length" class="no-data ignore-width">
                    <td colspan="6">
                        No Groups found
                    </td>
                </tr>

                <tr ng-repeat-start="group in tableData">
                    <td>{{group.id}}</td>
                    <td>{{group.app_id}}</td>
                    <td>{{group.state}}</td>
                    <td>{{group.type}}</td>
                    <td>{{group.packets}}</td>
                    <td>{{group.bytes}}</td>
                </tr>
                <tr class="ignore-width"
                    ng-repeat-end ng-repeat-done>
                    <td class="buckets" colspan="6"
                        ng-bind-html="group.buckets"></td>
                </tr>
            </table>
        </div>

    </div>

</div>
