<!--
  ~ 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.
  -->

<!-- Port partial HTML -->
<div id="ov-port">
    <div class="tabular-header">
        <h2>
            Port Statistics for Device {{devId || "(No device selected)"}}
            ({{tableData.length}} Ports 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 class="separator"></div>

            <div class="active"
                 icon icon-id="flowTable" icon-size="36"
                 ng-click="nav('flow')"></div>

            <div class="current-view"
                 icon icon-id="portTable" icon-size="36"></div>

            <div class="active"
                 icon icon-id="groupTable" icon-size="36"
                 ng-click="nav('group')"></div>
        </div>
    </div>

    <div class="summary-list" onos-table-resize>

        <div class="table-header"
             onos-sortable-header
             sort-params="sortParams"
             sort-callback="sortCallback(sortParams)">
            <table>
                <tr>
                    <td colId="id" col-width="60px" sortable>Port ID </td>
                    <td colId="pkt_rx" sortable>Pkts Received </td>
                    <td colId="pkt_tx" sortable>Pkts Sent </td>
                    <td colId="bytes_rx" sortable>Bytes Received </td>
                    <td colId="bytes_tx" sortable>Bytes Sent </td>
                    <td colId="pkt_rx_drp" sortable>Pkts Received Dropped </td>
                    <td colId="pkt_tx_drp" sortable>Pkts Sent Dropped </td>
                    <td colId="duration" sortable>Duration (sec) </td>
                </tr>
            </table>
        </div>

        <div class="table-body">
            <table>
                <tr ng-if="!tableData.length" class="no-data">
                    <td colspan="8">
                        No Ports found
                    </td>
                </tr>

                <tr ng-repeat="port in tableData track by $index">
                    <td>{{port.id}}</td>
                    <td>{{port.pkt_rx}}</td>
                    <td>{{port.pkt_tx}}</td>
                    <td>{{port.bytes_rx}}</td>
                    <td>{{port.bytes_tx}}</td>
                    <td>{{port.pkt_rx_drp}}</td>
                    <td>{{port.pkt_tx_drp}}</td>
                    <td>{{port.duration}}</td>
                </tr>
            </table>
        </div>

    </div>

</div>
