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

<!-- Cluster partial HTML -->
<div id="ov-cluster">
    <div class="tabular-header">
        <h2>Cluster Nodes ({{tableData.length}} total)</h2>
        <div class="ctrl-btns">
            <div class="refresh active"
                 icon icon-size="36" icon-id="refresh"
                 ng-click="refresh(sortParams)"></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="_iconid_state" class="table-icon" sortable></td>
                    <td colId="id" sortable>ID </td>
                    <td colId="ip" sortable>IP Address </td>
                    <td colId="tcp" sortable>TCP Port </td>
                    <td colId="updated" sortable>Last Updated </td>
                </tr>
            </table>
        </div>

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

                <tr ng-repeat="node in tableData"
                    ng-repeat-done>
                    <td class="table-icon">
                        <div icon icon-id="{{node._iconid_state}}"></div>
                    </td>
                    <td>{{node.id}}</td>
                    <td>{{node.ip}}</td>
                    <td>{{node.tcp}}</td>
                    <td>{{node.updated}}</td>
                </tr>
            </table>
        </div>

    </div>

</div>
