| <!-- Flow partial HTML --> |
| <div id="ov-flow"> |
| <div class="tabular-header"> |
| <h2> |
| Flows 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="current-view" |
| icon icon-id="flowTable" icon-size="42"></div> |
| |
| <div class="active" |
| icon icon-id="portTable" icon-size="42" |
| tooltip tt-msg="portTip" |
| ng-click="nav('port')"></div> |
| |
| <div class="active" |
| icon icon-id="groupTable" icon-size="42" |
| tooltip tt-msg="groupTip" |
| ng-click="nav('group')"></div> |
| |
| <div class="active" |
| icon icon-id="meterTable" icon-size="42" |
| tooltip tt-msg="meterTip" |
| ng-click="nav('meter')"></div> |
| |
| <div class="active" |
| icon icon-id="pipeconfTable" icon-size="42" |
| tooltip tt-msg="pipeconfTip" |
| ng-click="nav('pipeconf')"></div> |
| |
| </div> |
| |
| <div class="search"> |
| <input type="text" ng-model="queryTxt" placeholder="Search"/> |
| <select ng-model="queryBy"> |
| <option value="" disabled>Search By</option> |
| <option value="$">All Fields</option> |
| <!--<option value="id">Flow ID</option>--> |
| <option value="priority">Priority</option> |
| <option value="tableName">Table Name</option> |
| <option value="selector">Selector</option> |
| <option value="treatment">Treatment</option> |
| <option value="appName">App Name</option> |
| </select> |
| </div> |
| |
| </div> |
| |
| <div class="summary-list" onos-table-resize> |
| <div class="table-header" onos-sortable-header> |
| <table> |
| <tr> |
| <!--<td colId="id" col-width="180px" sortable>Flow ID </td>--> |
| <td colId="state" col-width="100px" sortable>State </td> |
| <!--<td class="right" colId="bytes" col-width="90px" sortable> Bytes </td>--> |
| <td class="right" colId="packets" col-width="90px" sortable> Packets </td> |
| <td class="right" colId="duration" col-width="90px" sortable> Duration </td> |
| <td colId="priority" col-width="80px" sortable> Priority </td> |
| <td colId="tableName" col-width="120px" sortable> Table Name </td> |
| <td colId="selector" sortable> Selector </td> |
| <td colId="treatment" sortable> Treatment </td> |
| <td colId="appName" sortable> App Name </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="10"> |
| {{annots.no_rows_msg}} |
| </td> |
| </tr> |
| |
| <tr ng-repeat-start="flow in tableData | filter:queryFilter track by $index" |
| ng-click="selectCallback($event, flow)" |
| ng-class="{selected: flow.id === selId}" |
| ng-repeat-complete row-id="{{flow.id}}"> |
| |
| <!--<td>{{flow.id}}</td>--> |
| <td>{{flow.state}}</td> |
| <!--<td class="right">{{flow.bytes}}</td>--> |
| <td class="right">{{flow.packets}}</td> |
| <td class="right">{{flow.duration}}</td> |
| <td>{{flow.priority}}</td> |
| <td>{{flow.tableName}}</td> |
| <td>{{flow.selector_c}}</td> |
| <td>{{flow.treatment_c}}</td> |
| <td>{{flow.appName}}</td> |
| </tr> |
| <tr ng-click="selectCallback($event, flow)" |
| ng-class="{selected: flow.id === selId}" |
| row-id="{{flow.id}}" ng-hide="brief"> |
| <td class="selector" colspan="8" >{{flow.selector}} </td> |
| </tr> |
| <tr ng-click="selectCallback($event, flow)" |
| ng-class="{selected: flow.id === selId}" |
| row-id="{{flow.id}}" ng-hide="brief" ng-repeat-end> |
| <td class="treatment" colspan="8">{{flow.treatment}}</td> |
| </tr> |
| </table> |
| </div> |
| |
| </div> |
| <flow-details-panel></flow-details-panel> |
| |
| </div> |