| <!-- 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="42" icon-id="refresh" |
| tooltip tt-msg="autoRefreshTip" |
| ng-click="toggleRefresh()"></div> |
| |
| <div class="separator"></div> |
| |
| <span ng-if="brief"> |
| <div class="active" |
| icon icon-id="plus" icon-size="42" |
| tooltip tt-msg="detailTip" |
| ng-click="briefToggle()"> </div> |
| </span> |
| |
| <span ng-if="!brief"> |
| <div class="active" |
| icon icon-id="minus" icon-size="42" |
| tooltip tt-msg="briefTip" |
| ng-click="briefToggle()"> </div> |
| </span> |
| |
| <div class="separator"></div> |
| |
| <div class="active" |
| icon icon-id="deviceTable" icon-size="42" |
| tooltip tt-msg="deviceTip" |
| ng-click="nav('device')"></div> |
| |
| <div class="active" |
| icon icon-id="flowTable" icon-size="42" |
| tooltip tt-msg="flowTip" |
| ng-click="nav('flow')"></div> |
| |
| <div class="active" |
| icon icon-id="portTable" icon-size="42" |
| tooltip tt-msg="portTip" |
| ng-click="nav('port')"></div> |
| |
| <div class="current-view" |
| icon icon-id="groupTable" icon-size="42"></div> |
| |
| <div class="active" |
| icon icon-id="meterTable" icon-size="42" |
| tooltip tt-msg="meterTip" |
| ng-click="nav('meter')"></div> |
| </div> |
| |
| <div class="search"> |
| <input type="text" ng-model="query" placeholder="Search"/> |
| <select ng-model="queryBy"> |
| <option value="" disabled>Search By</option> |
| <option value="$">All Fields</option> |
| <option value="id">Group ID</option> |
| <option value="app_id">App ID</option> |
| <option value="state">State</option> |
| <option value="type">Type</option> |
| </select> |
| </div> |
| </div> |
| |
| <div class="summary-list" onos-table-resize> |
| <div class="table-header" onos-sortable-header> |
| <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 class="right" colId="packets" sortable>Packets </td> |
| <td class="right" colId="bytes" sortable>Bytes </td> |
| </tr> |
| </table> |
| </div> |
| |
| <div class="table-body"> |
| <table onos-flash-changes id-prop="id"> |
| <tr ng-if="!tableData.length" class="no-data"> |
| <td colspan="6"> |
| {{annots.no_rows_msg}} |
| </td> |
| </tr> |
| |
| <tr ng-repeat-start="group in tableData | filter:queryFilter track by $index" |
| ng-repeat-complete row-id="{{group.id}}"> |
| <td>{{group.id}}</td> |
| <td>{{group.app_id}}</td> |
| <td>{{group.state}}</td> |
| <td>{{group.type}}</td> |
| <td class="right">{{group.packets}}</td> |
| <td class="right">{{group.bytes}}</td> |
| </tr> |
| <tr row-id="{{group.id}}" ng-hide="brief" ng-repeat-end> |
| <td class="buckets" colspan="6" |
| ng-bind-html="group.buckets"></td> |
| </tr> |
| </table> |
| </div> |
| |
| </div> |
| |
| </div> |