Fixing some content and visual glitches in the device flows view.
- idle timeout
- hard timeout
- app name fix
- CSS styles & details pane structure
Change-Id: I90a04cfe679a1c8371d06aed3d972c9f0bc93f6f
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/FlowViewMessageHandler.java b/web/gui/src/main/java/org/onosproject/ui/impl/FlowViewMessageHandler.java
index 41fb033..8b33c40 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/FlowViewMessageHandler.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/FlowViewMessageHandler.java
@@ -23,6 +23,7 @@
import org.onosproject.app.ApplicationService;
import org.onosproject.core.Application;
import org.onosproject.core.ApplicationId;
+import org.onosproject.core.CoreService;
import org.onosproject.core.DefaultApplicationId;
import org.onosproject.net.DeviceId;
import org.onosproject.net.flow.FlowEntry;
@@ -75,7 +76,8 @@
private static final String SELECTOR = "selector";
private static final String TREATMENT_C = "treatment_c"; // for table column
private static final String TREATMENT = "treatment";
- private static final String TIMEOUT = "timeout";
+ private static final String IDLE_TIMEOUT = "idleTimeout";
+ private static final String HARD_TIMEOUT = "hardTimeout";
private static final String PERMANENT = "permanent";
private static final String STATE = "state";
private static final String PACKETS = "packets";
@@ -125,7 +127,7 @@
APP_NAME,
GROUP_ID,
- TIMEOUT,
+ IDLE_TIMEOUT,
PERMANENT,
SELECTOR_C,
@@ -161,7 +163,11 @@
private String makeAppName(short id, Map<Short, ApplicationId> lookup) {
ApplicationId appId = lookup.get(id);
if (appId == null) {
- return UNKNOWN + SPACE + ANGLE_O + id + ANGLE_C;
+ appId = get(CoreService.class).getAppId(id);
+ if (appId == null) {
+ return UNKNOWN + SPACE + ANGLE_O + id + ANGLE_C;
+ }
+ lookup.put(id, appId);
}
String appName = appId.name();
return appName.startsWith(ONOS_PREFIX)
@@ -228,7 +234,7 @@
.cell(APP_NAME, makeAppName(flow.appId(), lookup))
.cell(GROUP_ID, flow.groupId().id())
- .cell(TIMEOUT, flow.timeout())
+ .cell(IDLE_TIMEOUT, flow.timeout())
.cell(PERMANENT, flow.isPermanent())
.cell(SELECTOR_C, flow)
@@ -405,7 +411,8 @@
data.put(APP_NAME, makeAppName(flow.appId(), appShortMap()));
data.put(GROUP_ID, decorateGroupId(flow));
- data.put(TIMEOUT, flow.hardTimeout());
+ data.put(IDLE_TIMEOUT, flow.timeout());
+ data.put(HARD_TIMEOUT, flow.hardTimeout());
data.put(PERMANENT, flow.isPermanent());
data.set(SELECTOR, jsonCriteria(flow));
diff --git a/web/gui/src/main/webapp/app/view/flow/flow.css b/web/gui/src/main/webapp/app/view/flow/flow.css
index 06e9b1a..cbe0cdb 100644
--- a/web/gui/src/main/webapp/app/view/flow/flow.css
+++ b/web/gui/src/main/webapp/app/view/flow/flow.css
@@ -64,10 +64,20 @@
#flow-details-panel h2 {
display: inline-block;
margin: 8px 0;
+ font-size: 16pt;
+ font-weight: lighter;
+}
+
+#flow-details-panel h3 {
+ display: inline-block;
+ margin: 8px 0;
+ font-size: 11pt;
+ font-variant: small-caps;
+ text-transform: uppercase;
}
#flow-details-panel .top-content table {
- font-size: 12pt;
+ font-size: 10pt;
}
#flow-details-panel td.label {
diff --git a/web/gui/src/main/webapp/app/view/flow/flow.js b/web/gui/src/main/webapp/app/view/flow/flow.js
index f8c6491..1795fdb 100644
--- a/web/gui/src/main/webapp/app/view/flow/flow.js
+++ b/web/gui/src/main/webapp/app/view/flow/flow.js
@@ -30,8 +30,6 @@
pHeight,
top,
topTable,
- trtDiv,
- selDiv,
topSelTable,
topTrtTable,
iconDiv,
@@ -39,7 +37,7 @@
// constants
var topPdg = 28,
- wtPdg = 532,
+ wtPdg = 400,
pName = 'flow-details-panel',
detailsReq = 'flowDetailsRequest',
@@ -59,7 +57,8 @@
'appId',
'groupId',
- 'timeout',
+ 'idleTimeout',
+ 'hardTimeout',
'permanent',
],
friendlyProps = [
@@ -76,7 +75,8 @@
'App ID',
'Group ID',
- 'Timeout',
+ 'Idle Timeout',
+ 'Hard Timeout',
'Permanent',
];
@@ -112,16 +112,12 @@
.append('table');
top.append('hr');
- selDiv = container.append('div').classed('top', true);
- selDiv.append('h2').text('Selector');
- topSelTable = selDiv.append('div').classed('top-content', true)
- .append('table');
- selDiv.append('hr');
+ top.append('h3').text('Selector');
+ topSelTable = top.append('div').classed('top-content', true).append('table');
+ top.append('hr');
- trtDiv = container.append('div').classed('top', true);
- trtDiv.append('h2').text('Treatment');
- topTrtTable = trtDiv.append('div').classed('top-content', true)
- .append('table');
+ top.append('h3').text('Treatment');
+ topTrtTable = top.append('div').classed('top-content', true).append('table');
}
function addProp(tbody, label, value) {