[ONOS-3635] Implement List view for extended application properties
Change-Id: Ie8f985f9c2986857df92bcb47b5bdee876f37230
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationResource.java b/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationResource.java
index 398bfee..7601478 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationResource.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationResource.java
@@ -18,10 +18,15 @@
import com.sun.jersey.multipart.FormDataParam;
import org.onlab.rest.BaseResource;
import org.onosproject.app.ApplicationAdminService;
+import org.onosproject.core.Application;
+import org.onosproject.core.ApplicationId;
import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.io.IOException;
@@ -41,4 +46,13 @@
return Response.ok().build();
}
+ @Path("{name}/icon")
+ @GET
+ @Produces("image/png")
+ public Response getIcon(@PathParam("name") String name) throws IOException {
+ ApplicationAdminService service = get(ApplicationAdminService.class);
+ ApplicationId appId = service.getId(name);
+ Application app = service.getApplication(appId);
+ return Response.ok(app.icon()).build();
+ }
}
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationViewMessageHandler.java b/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationViewMessageHandler.java
index 6f8eee9..80c1e75 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationViewMessageHandler.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/ApplicationViewMessageHandler.java
@@ -45,15 +45,18 @@
private static final String STATE = "state";
private static final String STATE_IID = "_iconid_state";
private static final String ID = "id";
+ private static final String ICON = "icon";
private static final String VERSION = "version";
+ private static final String CATEGORY = "category";
private static final String ORIGIN = "origin";
private static final String DESC = "desc";
+ private static final String URL = "url";
private static final String ICON_ID_ACTIVE = "active";
private static final String ICON_ID_INACTIVE = "appInactive";
private static final String[] COL_IDS = {
- STATE, STATE_IID, ID, VERSION, ORIGIN, DESC
+ STATE, STATE_IID, ID, ICON, VERSION, CATEGORY, ORIGIN, DESC, URL
};
@Override
@@ -99,9 +102,12 @@
row.cell(STATE, state)
.cell(STATE_IID, iconId)
.cell(ID, id.name())
+ .cell(ICON, id.name())
.cell(VERSION, app.version())
+ .cell(CATEGORY, app.category())
.cell(ORIGIN, app.origin())
- .cell(DESC, app.description());
+ .cell(DESC, app.description())
+ .cell(URL, app.url());
}
}
diff --git a/web/gui/src/main/webapp/app/view/app/app.html b/web/gui/src/main/webapp/app/view/app/app.html
index f3c892e..2cd9d65 100644
--- a/web/gui/src/main/webapp/app/view/app/app.html
+++ b/web/gui/src/main/webapp/app/view/app/app.html
@@ -41,10 +41,13 @@
<table>
<tr>
<td colId="state" class="table-icon" sortable></td>
+ <td colId="icon" col-width="36px">Icon </td>
<td colId="id" sortable>App ID </td>
<td colId="version" sortable>Version </td>
+ <td colId="category" sortable>Category </td>
<td colId="origin" sortable>Origin </td>
<td colId="desc" col-width="475px">Description </td>
+ <td col-width="50px">URL </td>
</tr>
</table>
</div>
@@ -64,10 +67,13 @@
<td class="table-icon">
<div icon icon-id="{{app._iconid_state}}"></div>
</td>
+ <td><img data-ng-src="./rs/applications/{{app.icon}}/icon" height="28px" width="28px" /></td>
<td>{{app.id}}</td>
<td>{{app.version}}</td>
+ <td>{{app.category}}</td>
<td>{{app.origin}}</td>
<td>{{app.desc}}</td>
+ <td><a href="{{app.url}}" target="_blank">LINK</a></td>
</tr>
</table>
</div>