Merge branch 'release-2.0.x' of https://github.com/wso2/carbon-device-mgt into release-2.0.x

revert-70aa11f8
ayyoob 8 years ago
commit 93ae646c50

@ -201,8 +201,8 @@
</exclusions> </exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.google.code.gson</groupId> <groupId>org.json.wso2</groupId>
<artifactId>gson</artifactId> <artifactId>json</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>commons-codec.wso2</groupId> <groupId>commons-codec.wso2</groupId>

@ -29,6 +29,7 @@ import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses; import io.swagger.annotations.ApiResponses;
import io.swagger.annotations.ResponseHeader; import io.swagger.annotations.ResponseHeader;
import org.json.JSONObject;
import org.wso2.carbon.apimgt.annotations.api.Scope; import org.wso2.carbon.apimgt.annotations.api.Scope;
import org.wso2.carbon.apimgt.annotations.api.Scopes; import org.wso2.carbon.apimgt.annotations.api.Scopes;
import org.wso2.carbon.device.mgt.common.Device; import org.wso2.carbon.device.mgt.common.Device;
@ -330,14 +331,90 @@ public interface DeviceManagementService {
@HeaderParam("If-Modified-Since") @HeaderParam("If-Modified-Since")
String ifModifiedSince); String ifModifiedSince);
//device delete request would looks like follows //device rename request would looks like follows
//POST devices/type/virtual_firealarm/id/us06ww93auzp/rename
@POST
@Path("/type/{device-type}/id/{device-id}/rename")
@ApiOperation(
produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON,
httpMethod = "POST",
value = "Update the device specified by device id",
notes = "Returns the status of the updated device operation.",
tags = "Device Management",
extensions = {
@Extension(properties = {
@ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:update")
})
}
)
@ApiResponses(
value = {
@ApiResponse(
code = 200,
message = "OK. \n Successfully fetched information of the device.",
response = Device.class,
responseHeaders = {
@ResponseHeader(
name = "Content-Type",
description = "The content type of the body"),
@ResponseHeader(
name = "ETag",
description = "Entity Tag of the response resource.\n" +
"Used by caches, or in conditional requests."),
@ResponseHeader(
name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" +
"Used by caches, or in conditional requests."),
}),
@ApiResponse(
code = 304,
message = "Not Modified. Empty body because the client already has the latest " +
"version of the requested resource."),
@ApiResponse(
code = 400,
message = "Bad Request. \n Invalid request or validation error.",
response = ErrorResponse.class),
@ApiResponse(
code = 404,
message = "Not Found. \n No device is found under the provided type and id.",
response = ErrorResponse.class),
@ApiResponse(
code = 500,
message = "Internal Server Error. \n " +
"Server error occurred while retrieving information requested device.",
response = ErrorResponse.class)
})
Response renameDevice(
@ApiParam(
name = "device",
value = "The payload containing new name for device with updated name.",
required = true)
Device device,
@ApiParam(
name = "device-type",
value = "The device type, such as ios, android or windows.",
required = true)
@PathParam("device-type")
@Size(max = 45)
String deviceType,
@ApiParam(
name = "device-id",
value = "The device identifier of the device.",
required = true)
@PathParam("device-id")
@Size(max = 45)
String deviceId);
//device remove request would looks like follows
//DELETE devices/type/virtual_firealarm/id/us06ww93auzp //DELETE devices/type/virtual_firealarm/id/us06ww93auzp
@DELETE @DELETE
@Path("/type/{device-type}/id/{device-id}") @Path("/type/{device-type}/id/{device-id}")
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON,
httpMethod = "DELETE", httpMethod = "DELETE",
value = "Delete the device specified by device id", value = "Remove the device specified by device id",
notes = "Returns the status of the deleted device operation.", notes = "Returns the status of the deleted device operation.",
tags = "Device Management", tags = "Device Management",
extensions = { extensions = {
@ -350,7 +427,7 @@ public interface DeviceManagementService {
value = { value = {
@ApiResponse( @ApiResponse(
code = 200, code = 200,
message = "OK. \n Successfully fetched information of the device.", message = "OK. \n Successfully deleted the device.",
response = Device.class, response = Device.class,
responseHeaders = { responseHeaders = {
@ResponseHeader( @ResponseHeader(
@ -383,7 +460,6 @@ public interface DeviceManagementService {
"Server error occurred while retrieving information requested device.", "Server error occurred while retrieving information requested device.",
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
//TODO need to introduce delete permission
Response deleteDevice( Response deleteDevice(
@ApiParam( @ApiParam(
name = "device-type", name = "device-type",
@ -400,7 +476,6 @@ public interface DeviceManagementService {
@Size(max = 45) @Size(max = 45)
String deviceId); String deviceId);
@GET @GET
@Path("/{type}/{id}/features") @Path("/{type}/{id}/features")
@ApiOperation( @ApiOperation(

@ -21,13 +21,22 @@ package org.wso2.carbon.device.mgt.jaxrs.service.impl;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.context.CarbonContext; import org.wso2.carbon.context.CarbonContext;
import org.wso2.carbon.device.mgt.common.*; import org.wso2.carbon.device.mgt.common.Device;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.Feature;
import org.wso2.carbon.device.mgt.common.FeatureManager;
import org.wso2.carbon.device.mgt.common.PaginationRequest;
import org.wso2.carbon.device.mgt.common.PaginationResult;
import org.wso2.carbon.device.mgt.common.app.mgt.Application; import org.wso2.carbon.device.mgt.common.app.mgt.Application;
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManagementException; import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManagementException;
import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationException; import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationException;
import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationService; import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationService;
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation; import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException; import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
import org.wso2.carbon.device.mgt.common.policy.mgt.Policy;
import org.wso2.carbon.device.mgt.common.policy.mgt.monitor.NonComplianceData;
import org.wso2.carbon.device.mgt.common.policy.mgt.monitor.PolicyComplianceException;
import org.wso2.carbon.device.mgt.common.search.SearchContext; import org.wso2.carbon.device.mgt.common.search.SearchContext;
import org.wso2.carbon.device.mgt.core.app.mgt.ApplicationManagementProviderService; import org.wso2.carbon.device.mgt.core.app.mgt.ApplicationManagementProviderService;
import org.wso2.carbon.device.mgt.core.search.mgt.SearchManagerService; import org.wso2.carbon.device.mgt.core.search.mgt.SearchManagerService;
@ -40,15 +49,20 @@ import org.wso2.carbon.device.mgt.jaxrs.beans.OperationList;
import org.wso2.carbon.device.mgt.jaxrs.service.api.DeviceManagementService; import org.wso2.carbon.device.mgt.jaxrs.service.api.DeviceManagementService;
import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.RequestValidationUtil; import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.RequestValidationUtil;
import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils; import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
import org.wso2.carbon.device.mgt.common.policy.mgt.Policy;
import org.wso2.carbon.policy.mgt.common.PolicyManagementException; import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
import org.wso2.carbon.device.mgt.common.policy.mgt.monitor.NonComplianceData;
import org.wso2.carbon.device.mgt.common.policy.mgt.monitor.PolicyComplianceException;
import org.wso2.carbon.policy.mgt.core.PolicyManagerService; import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
import org.wso2.carbon.utils.multitenancy.MultitenantUtils; import org.wso2.carbon.utils.multitenancy.MultitenantUtils;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import javax.ws.rs.*; import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import java.text.ParseException; import java.text.ParseException;
@ -225,14 +239,47 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
@Override @Override
@Path("/type/{device-type}/id/{device-id}") @Path("/type/{device-type}/id/{device-id}")
public Response deleteDevice(@PathParam("device-type") String deviceType, @PathParam("device-id") String deviceId) { public Response deleteDevice(@PathParam("device-type") String deviceType, @PathParam("device-id") String deviceId) {
DeviceManagementProviderService deviceManagementProviderService =
DeviceMgtAPIUtils.getDeviceManagementService();
try {
DeviceIdentifier deviceIdentifier = new DeviceIdentifier(deviceId, deviceType);
Device persistedDevice = deviceManagementProviderService.getDevice(deviceIdentifier);
if (persistedDevice == null) {
return Response.status(Response.Status.NOT_FOUND).build();
}
boolean response = deviceManagementProviderService.disenrollDevice(deviceIdentifier);
return Response.status(Response.Status.OK).entity(response).build();
log.info("Deleting " + deviceType + " " + deviceId + "is not supported"); } catch (DeviceManagementException e) {
String msg = "Error encountered while deleting device of type : " + deviceType + " and " +
"ID : " + deviceId;
log.error(msg);
return Response.status(Response.Status.BAD_REQUEST).entity(
new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()
).build();
}
}
@POST
@Override
@Path("/type/{device-type}/id/{device-id}/rename")
public Response renameDevice(Device device, @PathParam("device-type") String deviceType,
@PathParam("device-id") String deviceId) {
DeviceManagementProviderService deviceManagementProviderService = DeviceMgtAPIUtils.getDeviceManagementService();
try { try {
return Response.status(Response.Status.BAD_REQUEST).entity("{Deleting device(s) is not supported}").build(); Device persistedDevice = deviceManagementProviderService.getDevice(new DeviceIdentifier
} catch (Exception e) { (deviceId, deviceType));
String msg = "Error occurred while deleting device(s)"; persistedDevice.setName(device.getName());
log.error(msg, e); boolean response = deviceManagementProviderService.modifyEnrollment(persistedDevice);
return Response.serverError().entity(new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build(); return Response.status(Response.Status.CREATED).entity(response).build();
} catch (DeviceManagementException e) {
log.error("Error encountered while updating device of type : " + deviceType + " and " +
"ID : " + deviceId);
return Response.status(Response.Status.BAD_REQUEST).entity(
new ErrorResponse.ErrorResponseBuilder().setMessage("Error while updating " +
"device of type " + deviceType + " and ID : " + deviceId).build()).build();
} }
} }

@ -404,10 +404,15 @@ public class RoleManagementServiceImpl implements RoleManagementService {
// Get all role permissions // Get all role permissions
final UIPermissionNode rolePermissions = this.getAllRolePermissions(roleName, userRealm); final UIPermissionNode rolePermissions = this.getAllRolePermissions(roleName, userRealm);
List<String> permissions = new ArrayList<String>(); List<String> permissions = new ArrayList<String>();
final UIPermissionNode emmRolePermissions = (UIPermissionNode)this.getRolePermissions(roleName);
List<String> emmConsolePermissions = new ArrayList<String>();
this.getAuthorizedPermissions(emmRolePermissions, emmConsolePermissions);
emmConsolePermissions.removeAll(new ArrayList<String>(Arrays.asList(roleInfo.getPermissions())));
this.getAuthorizedPermissions(rolePermissions, permissions); this.getAuthorizedPermissions(rolePermissions, permissions);
for (String permission : roleInfo.getPermissions()) { for (String permission : roleInfo.getPermissions()) {
permissions.add(permission); permissions.add(permission);
} }
permissions.removeAll(emmConsolePermissions);
String [] allApplicablePerms = new String[permissions.size()]; String [] allApplicablePerms = new String[permissions.size()];
allApplicablePerms = permissions.toArray(allApplicablePerms); allApplicablePerms = permissions.toArray(allApplicablePerms);
roleInfo.setPermissions(allApplicablePerms); roleInfo.setPermissions(allApplicablePerms);

@ -55,7 +55,7 @@ public class PermissionManagerServiceImpl implements PermissionManagerService {
@Override @Override
public boolean addPermission(Permission permission) throws PermissionManagementException { public boolean addPermission(Permission permission) throws PermissionManagementException {
// adding a permission to the tree // adding a permission to the tree
permission.setPath(PermissionUtils.getAbsolutePermissionPath(permission.getPath())); permission.setPath(permission.getPath());
permissionTree.addPermission(permission); permissionTree.addPermission(permission);
return PermissionUtils.putPermission(permission); return PermissionUtils.putPermission(permission);
} }

@ -89,6 +89,7 @@
"perm:devices:operations", "perm:devices:operations",
"perm:devices:search", "perm:devices:search",
"perm:devices:details", "perm:devices:details",
"perm:devices:update",
"perm:devices:view", "perm:devices:view",
"perm:view-configuration", "perm:view-configuration",
"perm:manage-configuration", "perm:manage-configuration",

@ -77,7 +77,7 @@
</button> </button>
<a href="{{@app.context}}/certificates/add" class="cu-btn-inner"> <a href="{{@app.context}}/certificates/add" class="cu-btn-inner">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
</span> </span>
Add Another Certificate Add Another Certificate

@ -36,7 +36,7 @@
<li> <li>
<a href="{{@app.context}}/certificates/add"> <a href="{{@app.context}}/certificates/add">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-document fw-stack-1x"></i> <i class="fw fw-document fw-stack-1x"></i>
</span> </span>
Add Certificate Add Certificate

@ -17,7 +17,7 @@
data-click-event="remove-form" onclick="javascript:removeCertificate('{{serialNumber}}')" data-click-event="remove-form" onclick="javascript:removeCertificate('{{serialNumber}}')"
class="btn padding-reduce-on-grid-view remove-user-link"> class="btn padding-reduce-on-grid-view remove-user-link">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-delete fw-stack-1x"></i> <i class="fw fw-delete fw-stack-1x"></i>
</span> </span>
<span class="hidden-xs hidden-on-grid-view">Remove</span> <span class="hidden-xs hidden-on-grid-view">Remove</span>

@ -40,7 +40,7 @@
{{#if deviceCount}} {{#if deviceCount}}
<a href="{{@app.context}}/devices"> <a href="{{@app.context}}/devices">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-view fw-stack-1x"></i> <i class="fw fw-view fw-stack-1x"></i>
</span> </span>
View View
@ -49,7 +49,7 @@
<!--suppress HtmlUnknownTarget --> <!--suppress HtmlUnknownTarget -->
<a href="{{@app.context}}/device/enroll"> <a href="{{@app.context}}/device/enroll">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
</span> </span>
Add Add
@ -63,7 +63,7 @@
<div class="wr-stats-board-tile"> <div class="wr-stats-board-tile">
<div class="tile-name">Groups</div> <div class="tile-name">Groups</div>
<div> <div>
<div class="tile-icon"><i class="fw fw-grouping"></i></div> <div class="tile-icon"><i class="fw fw-group"></i></div>
<div class="tile-stats"> <div class="tile-stats">
<span id="group-count">{{groupCount}}</span> <span id="group-count">{{groupCount}}</span>
<span class="tile-stats-free"> <span class="tile-stats-free">
@ -71,7 +71,7 @@
<!--suppress HtmlUnknownTarget --> <!--suppress HtmlUnknownTarget -->
<a href="{{@app.context}}/groups"> <a href="{{@app.context}}/groups">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-view fw-stack-1x"></i> <i class="fw fw-view fw-stack-1x"></i>
</span> </span>
View View
@ -80,7 +80,7 @@
<!--suppress HtmlUnknownTarget --> <!--suppress HtmlUnknownTarget -->
<a href="{{@app.context}}/group/add"> <a href="{{@app.context}}/group/add">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
</span> </span>
Add Add
@ -102,7 +102,7 @@
<!--suppress HtmlUnknownTarget --> <!--suppress HtmlUnknownTarget -->
<a href="{{@app.context}}/users"> <a href="{{@app.context}}/users">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-view fw-stack-1x"></i> <i class="fw fw-view fw-stack-1x"></i>
</span> </span>
View View
@ -111,7 +111,7 @@
<!--suppress HtmlUnknownTarget --> <!--suppress HtmlUnknownTarget -->
<a href="{{@app.context}}/user/add"> <a href="{{@app.context}}/user/add">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
</span> </span>
Add Add
@ -133,7 +133,7 @@
<!--suppress HtmlUnknownTarget --> <!--suppress HtmlUnknownTarget -->
<a href="{{@app.context}}/policies"> <a href="{{@app.context}}/policies">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-view fw-stack-1x"></i> <i class="fw fw-view fw-stack-1x"></i>
</span> </span>
View View
@ -142,7 +142,7 @@
<!--suppress HtmlUnknownTarget --> <!--suppress HtmlUnknownTarget -->
<a href="{{@app.context}}/policy/add"> <a href="{{@app.context}}/policy/add">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
</span> </span>
Add Add
@ -164,7 +164,7 @@
<!--suppress HtmlUnknownTarget --> <!--suppress HtmlUnknownTarget -->
<a id="device-count-view-btn" href="{{@app.context}}/roles"> <a id="device-count-view-btn" href="{{@app.context}}/roles">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-view fw-stack-1x"></i> <i class="fw fw-view fw-stack-1x"></i>
</span> </span>
View View
@ -173,7 +173,7 @@
<!--suppress HtmlUnknownTarget --> <!--suppress HtmlUnknownTarget -->
<a href="{{@app.context}}/role/add"> <a href="{{@app.context}}/role/add">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
</span> </span>
Add Add

@ -32,7 +32,7 @@
{{#equal status "INACTIVE"}} {{#equal status "INACTIVE"}}
<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view claim-btn" data-deviceid="{{deviceIdentifier}}"> <a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view claim-btn" data-deviceid="{{deviceIdentifier}}">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-edit fw-stack-1x"></i> <i class="fw fw-edit fw-stack-1x"></i>
</span> </span>
<span class="hidden-xs hidden-on-grid-view">Claim</span> <span class="hidden-xs hidden-on-grid-view">Claim</span>

@ -52,7 +52,7 @@
<a href="{{@app.context}}/devices" class="cu-btn"> <a href="{{@app.context}}/devices" class="cu-btn">
<span class="icon fw-stack"> <span class="icon fw-stack">
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
</span> </span>
Assign from My Devices Assign from My Devices
</a> </a>
@ -61,7 +61,7 @@
<a href="{{@app.context}}/group/{{group.id}}/analytics" class="cu-btn"> <a href="{{@app.context}}/group/{{group.id}}/analytics" class="cu-btn">
<span class="icon fw-stack"> <span class="icon fw-stack">
<i class="fw fw-statistics fw-stack-1x"></i> <i class="fw fw-statistics fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
</span> </span>
View Analytics View Analytics
</a> </a>
@ -72,7 +72,7 @@
<a href="{{@app.context}}/device/enroll" class="cu-btn"> <a href="{{@app.context}}/device/enroll" class="cu-btn">
<span class="icon fw-stack"> <span class="icon fw-stack">
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
</span> </span>
Enroll Device Enroll Device
</a> </a>
@ -185,8 +185,8 @@
class="btn square-element add-devices-to-group-link" class="btn square-element add-devices-to-group-link"
data-toggle="modal" data-target="#modalDemo"> data-toggle="modal" data-target="#modalDemo">
<span class="icon fw-stack"> <span class="icon fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-grouping fw-stack-1x"></i> <i class="fw fw-group fw-stack-1x"></i>
</span> </span>
Add to Group Add to Group
</a> </a>
@ -198,7 +198,7 @@
class="btn square-element remove-device-link" class="btn square-element remove-device-link"
data-toggle="modal" data-target="#modalDemo"> data-toggle="modal" data-target="#modalDemo">
<span class="icon fw-stack"> <span class="icon fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-delete fw-stack-1x"></i> <i class="fw fw-delete fw-stack-1x"></i>
</span> </span>
{{#if group}} {{#if group}}
@ -249,7 +249,7 @@
<!--suppress HtmlUnknownTarget --> <!--suppress HtmlUnknownTarget -->
<a href="{{@app.context}}/devices" class="btn-operations btn-default"> <a href="{{@app.context}}/devices" class="btn-operations btn-default">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
</span> </span>
Assign from My Devices Assign from My Devices
@ -259,7 +259,7 @@
<!--suppress HtmlUnknownTarget --> <!--suppress HtmlUnknownTarget -->
<a href="{{@app.context}}/device/enroll" class="btn-operations btn-default"> <a href="{{@app.context}}/device/enroll" class="btn-operations btn-default">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
</span> </span>
Enroll New Device Enroll New Device
@ -276,7 +276,7 @@
<h3 class="pull-left modal-title"> <h3 class="pull-left modal-title">
<span> <span>
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-grouping fw-stack-1x"></i> <i class="fw fw-grouping fw-stack-1x"></i>
</span> Device Grouping </span> Device Grouping
</span> </span>

@ -327,7 +327,7 @@ function loadDevices(searchType, searchParam) {
html += '<a href="' + context + '/device/' + deviceType + '/analytics?deviceId=' + html += '<a href="' + context + '/device/' + deviceType + '/analytics?deviceId=' +
deviceIdentifier + '&deviceName=' + row.name + '" ' + 'data-click-event="remove-form"' + deviceIdentifier + '&deviceName=' + row.name + '" ' + 'data-click-event="remove-form"' +
' class="btn padding-reduce-on-grid-view"><span class="fw-stack">' + ' class="btn padding-reduce-on-grid-view"><span class="fw-stack">' +
'<i class="fw fw-ring fw-stack-2x"></i><i class="fw fw-statistics fw-stack-1x"></i></span>' + '<i class="fw fw-circle-outline fw-stack-2x"></i><i class="fw fw-statistics fw-stack-1x"></i></span>' +
'<span class="hidden-xs hidden-on-grid-view">Analytics</span>'; '<span class="hidden-xs hidden-on-grid-view">Analytics</span>';
} }
@ -337,8 +337,8 @@ function loadDevices(searchType, searchParam) {
+ +
'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType 'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
+ '" data-devicename="' + + '" data-devicename="' +
row.name + '"><span class="fw-stack"><i class="fw fw-ring fw-stack-2x"></i>' + row.name + '"><span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>' +
'<i class="fw fw-grouping fw-stack-1x"></i></span>' + '<i class="fw fw-group fw-stack-1x"></i></span>' +
'<span class="hidden-xs hidden-on-grid-view">Group</span></a>'; '<span class="hidden-xs hidden-on-grid-view">Group</span></a>';
} }
@ -346,7 +346,7 @@ function loadDevices(searchType, searchParam) {
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view edit-device-link" ' '<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view edit-device-link" '
+ 'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType + 'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
+ '" data-devicename="' + row.name + '">' + '" data-devicename="' + row.name + '">'
+ '<span class="fw-stack"><i class="fw fw-ring fw-stack-2x"></i>' + '<span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>'
+ '<i class="fw fw-edit fw-stack-1x"></i></span>' + '<i class="fw fw-edit fw-stack-1x"></i></span>'
+ '<span class="hidden-xs hidden-on-grid-view">Edit</span></a>'; + '<span class="hidden-xs hidden-on-grid-view">Edit</span></a>';
var groupOwner = $('#group_owner').text(); var groupOwner = $('#group_owner').text();
@ -355,7 +355,7 @@ function loadDevices(searchType, searchParam) {
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view remove-device-link" ' '<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view remove-device-link" '
+ 'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType + 'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
+ '" data-devicename="' + row.name + '">' + '" data-devicename="' + row.name + '">'
+ '<span class="fw-stack"><i class="fw fw-ring fw-stack-2x"></i>' + '<span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>'
+ '<i class="fw fw-delete fw-stack-1x"></i></span>' + '<i class="fw fw-delete fw-stack-1x"></i></span>'
+ '<span class="hidden-xs hidden-on-grid-view">Remove from group</span>'; + '<span class="hidden-xs hidden-on-grid-view">Remove from group</span>';
} else { } else {
@ -363,7 +363,7 @@ function loadDevices(searchType, searchParam) {
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view remove-device-link" ' '<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view remove-device-link" '
+ 'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType + 'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
+ '" data-devicename="' + row.name + '">' + '" data-devicename="' + row.name + '">'
+ '<span class="fw-stack"><i class="fw fw-ring fw-stack-2x"></i>' + '<span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>'
+ '<i class="fw fw-delete fw-stack-1x"></i></span>' + '<i class="fw fw-delete fw-stack-1x"></i></span>'
+ '<span class="hidden-xs hidden-on-grid-view">Delete</span>'; + '<span class="hidden-xs hidden-on-grid-view">Delete</span>';
} }
@ -730,7 +730,7 @@ function attachDeviceEvents() {
var deviceId = $(this).data("deviceid"); var deviceId = $(this).data("deviceid");
var deviceType = $(this).data("devicetype"); var deviceType = $(this).data("devicetype");
var deviceName = $(this).data("devicename"); var deviceName = $(this).data("devicename");
var serviceURL = "/api/device-mgt/v1.0/devices/type/" + deviceType + "/id/" + deviceId; var serviceURL = "/api/device-mgt/v1.0/devices/type/" + deviceType + "/id/" + deviceId + "/rename";
$(modalPopupContent).html($('#edit-device-modal-content').html()); $(modalPopupContent).html($('#edit-device-modal-content').html());
$('#edit-device-name').val(deviceName); $('#edit-device-name').val(deviceName);
@ -738,7 +738,9 @@ function attachDeviceEvents() {
$("a#edit-device-yes-link").click(function () { $("a#edit-device-yes-link").click(function () {
var newDeviceName = $('#edit-device-name').val(); var newDeviceName = $('#edit-device-name').val();
invokerUtil.put(serviceURL, {"name": newDeviceName}, function (message) { var request = {};
request['name'] = newDeviceName;
invokerUtil.post(serviceURL, request, function (message) {
$(modalPopupContent).html($('#edit-device-200-content').html()); $(modalPopupContent).html($('#edit-device-200-content').html());
setTimeout(function () { setTimeout(function () {
hidePopup(); hidePopup();

@ -70,7 +70,7 @@
<p class="text-center"> <p class="text-center">
<a href="{{@app.context}}/devices" class="wr-btn"> <a href="{{@app.context}}/devices" class="wr-btn">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
</span> </span>
Assign from My Devices Assign from My Devices

@ -41,7 +41,7 @@
<a href="{{@app.context}}/group/add" class="cu-btn"> <a href="{{@app.context}}/group/add" class="cu-btn">
<span class="icon fw-stack"> <span class="icon fw-stack">
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
</span> </span>
Add Group Add Group
</a> </a>
@ -80,7 +80,7 @@
<div id="ast-container" class="ast-container list-view"> <div id="ast-container" class="ast-container list-view">
<div class="ctrl-info-panel col-centered text-center wr-login"> <div class="ctrl-info-panel col-centered text-center wr-login">
<h3 class="text-muted"> <h3 class="text-muted">
<i class="fw fw-grouping fw-3x"></i> <i class="fw fw-group fw-3x"></i>
</h3> </h3>
<h3 class="text-muted">You don't have any group registered at the moment</h3> <h3 class="text-muted">You don't have any group registered at the moment</h3>
{{#if permissions.ADD_GROUP}} {{#if permissions.ADD_GROUP}}
@ -88,7 +88,7 @@
<!--suppress HtmlUnknownTarget --> <!--suppress HtmlUnknownTarget -->
<a href="{{@app.context}}/group/add" class="btn-operations btn-default"> <a href="{{@app.context}}/group/add" class="btn-operations btn-default">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
</span> </span>
Add New Group Add New Group
@ -104,7 +104,7 @@
<h3 class="pull-left modal-title"> <h3 class="pull-left modal-title">
<span> <span>
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-share fw-stack-1x"></i> <i class="fw fw-share fw-stack-1x"></i>
</span> Group Sharing </span> Group Sharing
</span> </span>
@ -146,7 +146,7 @@
<h3 class="pull-left modal-title"> <h3 class="pull-left modal-title">
<span> <span>
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-bookmark fw-stack-1x"></i> <i class="fw fw-bookmark fw-stack-1x"></i>
</span> Group Sharing Role </span> Group Sharing Role
</span> </span>
@ -263,7 +263,7 @@
<h3 class="pull-left modal-title"> <h3 class="pull-left modal-title">
<span> <span>
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-edit fw-stack-1x"></i> <i class="fw fw-edit fw-stack-1x"></i>
</span> Update Group </span> Update Group
</span> </span>

@ -182,7 +182,7 @@ function loadGroups() {
if ($.hasPermission("VIEW_GROUP_DEVICES")) { if ($.hasPermission("VIEW_GROUP_DEVICES")) {
html += '<a href="group/' + row.groupId html += '<a href="group/' + row.groupId
+ '/analytics" data-click-event="remove-form" class="btn padding-reduce-on-grid-view">' + + '/analytics" data-click-event="remove-form" class="btn padding-reduce-on-grid-view">' +
'<span class="fw-stack"><i class="fw fw-ring fw-stack-2x"></i><i class="fw fw-statistics fw-stack-1x"></i></span>' '<span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i><i class="fw fw-statistics fw-stack-1x"></i></span>'
+ +
'<span class="hidden-xs hidden-on-grid-view">Analytics</span></a>'; '<span class="hidden-xs hidden-on-grid-view">Analytics</span></a>';
} }
@ -192,7 +192,7 @@ function loadGroups() {
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view share-group-link" data-group-id="' '<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view share-group-link" data-group-id="'
+ row.groupId + '" ' + + row.groupId + '" ' +
'data-group-owner="' + row.owner 'data-group-owner="' + row.owner
+ '"><span class="fw-stack"><i class="fw fw-ring fw-stack-2x"></i><i class="fw fw-share fw-stack-1x"></i></span>' + '"><span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i><i class="fw fw-share fw-stack-1x"></i></span>'
+ +
'<span class="hidden-xs hidden-on-grid-view">Share</span></a>'; '<span class="hidden-xs hidden-on-grid-view">Share</span></a>';
} }
@ -202,7 +202,7 @@ function loadGroups() {
+ row.name + '" ' + + row.name + '" ' +
'data-group-owner="' + row.owner + '" data-group-description="' + row.description 'data-group-owner="' + row.owner + '" data-group-description="' + row.description
+ '" data-group-id="' + row.groupId + '" data-group-id="' + row.groupId
+ '"><span class="fw-stack"><i class="fw fw-ring fw-stack-2x"></i>' + + '"><span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>' +
'<i class="fw fw-edit fw-stack-1x"></i></span><span class="hidden-xs hidden-on-grid-view">Edit</span></a>'; '<i class="fw fw-edit fw-stack-1x"></i></span><span class="hidden-xs hidden-on-grid-view">Edit</span></a>';
} }
if ($.hasPermission("REMOVE_GROUP")) { if ($.hasPermission("REMOVE_GROUP")) {
@ -210,7 +210,7 @@ function loadGroups() {
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view remove-group-link" data-group-id="' '<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view remove-group-link" data-group-id="'
+ row.groupId + '" ' + + row.groupId + '" ' +
'data-group-owner="' + row.owner 'data-group-owner="' + row.owner
+ '"><span class="fw-stack"><i class="fw fw-ring fw-stack-2x"></i><i class="fw fw-delete fw-stack-1x"></i>' + '"><span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i><i class="fw fw-delete fw-stack-1x"></i>'
+ +
'</span><span class="hidden-xs hidden-on-grid-view">Delete</span></a>'; '</span><span class="hidden-xs hidden-on-grid-view">Delete</span></a>';
} }

@ -49,7 +49,7 @@
<a href="{{@app.context}}/policy/add" class="cu-btn"> <a href="{{@app.context}}/policy/add" class="cu-btn">
<span class="icon fw-stack"> <span class="icon fw-stack">
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
</span> </span>
Add New Policy Add New Policy
</a> </a>
@ -63,7 +63,7 @@
<a href="{{@app.context}}/policy/priority" class="cu-btn"> <a href="{{@app.context}}/policy/priority" class="cu-btn">
<span class="icon fw-stack"> <span class="icon fw-stack">
<i class="fw fw-throttling-policy fw-stack-1x"></i> <i class="fw fw-throttling-policy fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
</span> </span>
Policy Priority Policy Priority
</a> </a>
@ -74,7 +74,7 @@
<a href="#" class="cu-btn" id="appbar-btn-apply-changes"> <a href="#" class="cu-btn" id="appbar-btn-apply-changes">
<span class="icon fw-stack"> <span class="icon fw-stack">
<i class="fw fw-check fw-stack-1x"></i> <i class="fw fw-check fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
</span> </span>
Apply Changes To Devices Apply Changes To Devices
</a> </a>
@ -97,7 +97,7 @@
<!--suppress HtmlUnknownTarget --> <!--suppress HtmlUnknownTarget -->
<a href="{{@app.context}}/policy/add" class="btn-operations btn-default"> <a href="{{@app.context}}/policy/add" class="btn-operations btn-default">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
</span> </span>
Add New Policy Add New Policy
@ -146,7 +146,7 @@
<a href="#" data-click-event="remove-form" class="btn square-element policy-remove-link" <a href="#" data-click-event="remove-form" class="btn square-element policy-remove-link"
data-toggle="modal" data-target="#modalDemo"> data-toggle="modal" data-target="#modalDemo">
<span class="icon fw-stack"> <span class="icon fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-delete fw-stack-1x"></i> <i class="fw fw-delete fw-stack-1x"></i>
</span> </span>
Remove Remove
@ -157,7 +157,7 @@
<a href="#" data-click-event="remove-form" class="btn square-element policy-publish-link" <a href="#" data-click-event="remove-form" class="btn square-element policy-publish-link"
data-toggle="modal" data-target="#modalDemo"> data-toggle="modal" data-target="#modalDemo">
<span class="icon fw-stack"> <span class="icon fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="glyphicon glyphicon-floppy-saved"></i> <i class="glyphicon glyphicon-floppy-saved"></i>
</span> </span>
Publish Publish
@ -167,7 +167,7 @@
<a href="#" data-click-event="remove-form" class="btn square-element policy-unpublish-link" <a href="#" data-click-event="remove-form" class="btn square-element policy-unpublish-link"
data-toggle="modal" data-target="#modalDemo"> data-toggle="modal" data-target="#modalDemo">
<span class="icon fw-stack"> <span class="icon fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="glyphicon glyphicon-floppy-remove"></i> <i class="glyphicon glyphicon-floppy-remove"></i>
</span> </span>
Unpublish Unpublish
@ -182,9 +182,9 @@
{{#each policyListToView}} {{#each policyListToView}}
<tr data-type="selectable" data-id="{{id}}" data-status="{{status}}"> <tr data-type="selectable" data-id="{{id}}" data-status="{{status}}">
<td class="remove-padding icon-only content-fill viewEnabledIcon" <td class="remove-padding icon-only content-fill viewEnabledIcon"
data-url="{{@app.context}}/policy/view?id={{id}}" data-id="{{id}}"> data-url="{{@app.context}}/policy/view?id={{id}}&deviceType={{platform}}" data-id="{{id}}">
<div class="thumbnail icon" style="padding-top: 30px; padding-bottom: 30px;"> <div class="thumbnail icon">
<i class="fw fw-{{deviceTypeIcon}}" style="font-size: 59px"></i> <img src="{{icon}}">
</div> </div>
</td> </td>
<td <td
@ -239,12 +239,12 @@
</td> </td>
<td class="text-right content-fill text-left-on-grid-view no-wrap"> <td class="text-right content-fill text-left-on-grid-view no-wrap">
<!--suppress HtmlUnknownTarget --> <!--suppress HtmlUnknownTarget -->
<a href="{{@app.context}}/policy/edit?id={{id}}" <a href="{{@app.context}}/policy/edit?id={{id}}&deviceType={{platform}}"
data-id="{{id}}" data-id="{{id}}"
data-click-event="remove-form" data-click-event="remove-form"
class="btn padding-reduce-on-grid-view policy-update-link"> class="btn padding-reduce-on-grid-view policy-update-link">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-edit fw-stack-1x"></i> <i class="fw fw-edit fw-stack-1x"></i>
</span> </span>
<span class="hidden-xs hidden-on-grid-view">Re-Configure</span> <span class="hidden-xs hidden-on-grid-view">Re-Configure</span>

@ -33,6 +33,11 @@ function onRequest(context) {
var response = policyModule.getAllPolicies(); var response = policyModule.getAllPolicies();
if (response["status"] == "success") { if (response["status"] == "success") {
var policyListToView = response["content"]; var policyListToView = response["content"];
for(var index in policyListToView) {
if(policyListToView.hasOwnProperty(index)) {
policyListToView[index]["icon"] = utility.getDeviceThumb(policyListToView[index]["platform"]);
}
}
page["policyListToView"] = policyListToView; page["policyListToView"] = policyListToView;
var policyCount = policyListToView.length; var policyCount = policyListToView.length;
if (policyCount == 0) { if (policyCount == 0) {

@ -126,7 +126,7 @@
<!--suppress HtmlUnknownTarget --> <!--suppress HtmlUnknownTarget -->
<a href="{{@app.context}}/role/add" class="cu-btn-inner"> <a href="{{@app.context}}/role/add" class="cu-btn-inner">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
</span> </span>
Add Another Role Add Another Role

@ -144,7 +144,7 @@ function loadRoles() {
'data-click-event="edit-form" ' + 'data-click-event="edit-form" ' +
'class="btn padding-reduce-on-grid-view edit-role-link">' + 'class="btn padding-reduce-on-grid-view edit-role-link">' +
'<span class="fw-stack">' + '<span class="fw-stack">' +
'<i class="fw fw-ring fw-stack-2x"></i>' + '<i class="fw fw-circle-outline fw-stack-2x"></i>' +
'<i class="fw fw-bookmark fw-stack-1x"></i>' + '<i class="fw fw-bookmark fw-stack-1x"></i>' +
'<span class="fw-stack fw-move-right fw-move-bottom">' + '<span class="fw-stack fw-move-right fw-move-bottom">' +
'<i class="fw fw-circle fw-stack-2x fw-stroke fw-inverse"></i>' + '<i class="fw fw-circle fw-stack-2x fw-stroke fw-inverse"></i>' +
@ -158,7 +158,7 @@ function loadRoles() {
'data-click-event="edit-form" ' + 'data-click-event="edit-form" ' +
'class="btn padding-reduce-on-grid-view edit-permission-link">' + 'class="btn padding-reduce-on-grid-view edit-permission-link">' +
'<span class="fw-stack">' + '<span class="fw-stack">' +
'<i class="fw fw-ring fw-stack-2x"></i>' + '<i class="fw fw-circle-outline fw-stack-2x"></i>' +
'<i class="fw fw-security-policy fw-stack-1x"></i>' + '<i class="fw fw-security-policy fw-stack-1x"></i>' +
'<span class="fw-stack fw-move-right fw-move-bottom">' + '<span class="fw-stack fw-move-right fw-move-bottom">' +
'<i class="fw fw-circle fw-stack-2x fw-stroke fw-inverse"></i>' + '<i class="fw fw-circle fw-stack-2x fw-stroke fw-inverse"></i>' +
@ -171,7 +171,7 @@ function loadRoles() {
'data-click-event="remove-form" ' + 'data-click-event="remove-form" ' +
'class="btn padding-reduce-on-grid-view remove-role-link">' + 'class="btn padding-reduce-on-grid-view remove-role-link">' +
'<span class="fw-stack">' + '<span class="fw-stack">' +
'<i class="fw fw-ring fw-stack-2x"></i>' + '<i class="fw fw-circle-outline fw-stack-2x"></i>' +
'<i class="fw fw-delete fw-stack-1x"></i>' + '<i class="fw fw-delete fw-stack-1x"></i>' +
'</span>' + '</span>' +
'<span class="hidden-xs hidden-on-grid-view">Remove</span>' + '<span class="hidden-xs hidden-on-grid-view">Remove</span>' +

@ -14,7 +14,7 @@
data-click-event="edit-form" data-click-event="edit-form"
class="btn padding-reduce-on-grid-view edit-role-link" title="Edit Role"> class="btn padding-reduce-on-grid-view edit-role-link" title="Edit Role">
<span class="fw-stack fw-lg"> <span class="fw-stack fw-lg">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-user fw-stack-1x"></i> <i class="fw fw-user fw-stack-1x"></i>
<span class="fw-stack fw-move-right fw-move-bottom"> <span class="fw-stack fw-move-right fw-move-bottom">
<i class="fw fw-circle fw-stack-2x fw-stroke fw-inverse"></i> <i class="fw fw-circle fw-stack-2x fw-stroke fw-inverse"></i>
@ -29,7 +29,7 @@
data-click-event="edit-form" class="btn padding-reduce-on-grid-view edit-permission-link" data-click-event="edit-form" class="btn padding-reduce-on-grid-view edit-permission-link"
title="Edit Role Permissions"> title="Edit Role Permissions">
<span class="fw-stack fw-lg"> <span class="fw-stack fw-lg">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-security-policy fw-stack-1x"></i> <i class="fw fw-security-policy fw-stack-1x"></i>
<span class="fw-stack fw-move-right fw-move-bottom"> <span class="fw-stack fw-move-right fw-move-bottom">
<i class="fw fw-circle fw-stack-2x fw-stroke fw-inverse"></i> <i class="fw fw-circle fw-stack-2x fw-stroke fw-inverse"></i>
@ -44,7 +44,7 @@
<a data-role="{{roleName}}" data-click-event="remove-form" <a data-role="{{roleName}}" data-click-event="remove-form"
class="btn padding-reduce-on-grid-view remove-role-link" title="Remove Role"> class="btn padding-reduce-on-grid-view remove-role-link" title="Remove Role">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-delete fw-stack-1x"></i> <i class="fw fw-delete fw-stack-1x"></i>
</span> </span>
<span class="hidden-xs hidden-on-grid-view">Remove</span> <span class="hidden-xs hidden-on-grid-view">Remove</span>

@ -40,7 +40,7 @@
<a href="{{@app.context}}/role/add" class="cu-btn"> <a href="{{@app.context}}/role/add" class="cu-btn">
<span class="icon fw-stack"> <span class="icon fw-stack">
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
</span> </span>
Add Role Add Role
</a> </a>

@ -143,7 +143,7 @@
</button> </button>
<a href="{{@app.context}}/user/add" class="cu-btn-inner"> <a href="{{@app.context}}/user/add" class="cu-btn-inner">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
</span> </span>
Add Another User Add Another User

@ -130,7 +130,7 @@
</button> </button>
<a href="{{@app.context}}/user/view?username={{editUser.username}}" class="cu-btn-inner"> <a href="{{@app.context}}/user/view?username={{editUser.username}}" class="cu-btn-inner">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-view fw-stack-1x"></i> <i class="fw fw-view fw-stack-1x"></i>
</span> </span>
View Updated User View Updated User

@ -146,7 +146,7 @@
class="cu-btn-inner policy-view-link" class="cu-btn-inner policy-view-link"
data-id="{{deviceIdentifier}}"> data-id="{{deviceIdentifier}}">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-view fw-stack-1x"></i> <i class="fw fw-view fw-stack-1x"></i>
</span> </span>
View View

@ -89,8 +89,8 @@ $("a#invite-user-link").click(function () {
}); });
}, },
function () { function () {
modalDialog.header('<span class="fw-stack"><i class="fw fw-ring fw-stack-2x"></i> <i class="fw ' + modalDialog.header('<span class="fw-stack"> <i class="fw fw-circle-outline fw-stack-2x"></i> <i class="fw ' +
'fw-error fw-stack-1x"></i></span> Unexpected Error !'); 'fw-error fw-stack-1x"></i> </span> Unexpected Error !');
modalDialog.content('An unexpected error occurred. Try again later.'); modalDialog.content('An unexpected error occurred. Try again later.');
modalDialog.footer('<div class="buttons"><a href="#" id="invite-user-error-link" ' + modalDialog.footer('<div class="buttons"><a href="#" id="invite-user-error-link" ' +
'class="btn-operations">Ok </a></div>'); 'class="btn-operations">Ok </a></div>');
@ -124,7 +124,7 @@ function getSelectedUsernames() {
* on User Listing page in WSO2 MDM Console. * on User Listing page in WSO2 MDM Console.
*/ */
function resetPassword(username) { function resetPassword(username) {
modalDialog.header('<span class="fw-stack"> <i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-key ' + modalDialog.header('<span class="fw-stack"> <i class="fw fw-circle-outline fw-stack-2x"></i> <i class="fw fw-key ' +
'fw-stack-1x"></i> </span> Reset Password'); 'fw-stack-1x"></i> </span> Reset Password');
modalDialog.content($("#modal-content-reset-password").html()); modalDialog.content($("#modal-content-reset-password").html());
modalDialog.footer('<div class="buttons"> <a href="#" id="reset-password-yes-link" class="btn-operations"> Save ' + modalDialog.footer('<div class="buttons"> <a href="#" id="reset-password-yes-link" class="btn-operations"> Save ' +
@ -341,7 +341,7 @@ function loadUsers() {
'data-click-event="edit-form" ' + 'data-click-event="edit-form" ' +
'class="btn padding-reduce-on-grid-view edit-user-link"> ' + 'class="btn padding-reduce-on-grid-view edit-user-link"> ' +
'<span class="fw-stack"> ' + '<span class="fw-stack"> ' +
'<i class="fw fw-ring fw-stack-2x"></i>' + '<i class="fw fw-circle-outline fw-stack-2x"></i>' +
'<i class="fw fw-edit fw-stack-1x"></i>' + '<i class="fw fw-edit fw-stack-1x"></i>' +
'</span><span class="hidden-xs hidden-on-grid-view">Edit</span></a>'; '</span><span class="hidden-xs hidden-on-grid-view">Edit</span></a>';
@ -350,7 +350,7 @@ function loadUsers() {
'onclick="javascript:resetPassword(\'' + data.filter + '\')" ' + 'onclick="javascript:resetPassword(\'' + data.filter + '\')" ' +
'class="btn padding-reduce-on-grid-view remove-user-link">' + 'class="btn padding-reduce-on-grid-view remove-user-link">' +
'<span class="fw-stack">' + '<span class="fw-stack">' +
'<i class="fw fw-ring fw-stack-2x"></i>' + '<i class="fw fw-circle-outline fw-stack-2x"></i>' +
'<i class="fw fw-key fw-stack-1x"></i>' + '<i class="fw fw-key fw-stack-1x"></i>' +
'</span><span class="hidden-xs hidden-on-grid-view">Reset Password</span></a>'; '</span><span class="hidden-xs hidden-on-grid-view">Reset Password</span></a>';
@ -359,7 +359,7 @@ function loadUsers() {
'onclick="javascript:removeUser(\'' + data.filter + '\')" ' + 'onclick="javascript:removeUser(\'' + data.filter + '\')" ' +
'class="btn padding-reduce-on-grid-view remove-user-link">' + 'class="btn padding-reduce-on-grid-view remove-user-link">' +
'<span class="fw-stack">' + '<span class="fw-stack">' +
'<i class="fw fw-ring fw-stack-2x"></i>' + '<i class="fw fw-circle-outline fw-stack-2x"></i>' +
'<i class="fw fw-delete fw-stack-1x"></i>' + '<i class="fw fw-delete fw-stack-1x"></i>' +
'</span><span class="hidden-xs hidden-on-grid-view">Remove</span></a>'; '</span><span class="hidden-xs hidden-on-grid-view">Remove</span></a>';

@ -22,7 +22,7 @@
<a href="user/edit?username={{username}}" data-username="{{username}}" <a href="user/edit?username={{username}}" data-username="{{username}}"
data-click-event="edit-form" class="btn padding-reduce-on-grid-view edit-user-link"> data-click-event="edit-form" class="btn padding-reduce-on-grid-view edit-user-link">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-edit fw-stack-1x"></i> <i class="fw fw-edit fw-stack-1x"></i>
</span> </span>
<span class="hidden-xs hidden-on-grid-view">Edit</span> <span class="hidden-xs hidden-on-grid-view">Edit</span>
@ -36,7 +36,7 @@
data-click-event="remove-form" onclick="removeUser('{{username}}', '{{userid}}')" data-click-event="remove-form" onclick="removeUser('{{username}}', '{{userid}}')"
class="btn padding-reduce-on-grid-view remove-user-link"> class="btn padding-reduce-on-grid-view remove-user-link">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-delete fw-stack-1x"></i> <i class="fw fw-delete fw-stack-1x"></i>
</span> </span>
<span class="hidden-xs hidden-on-grid-view">Remove</span> <span class="hidden-xs hidden-on-grid-view">Remove</span>
@ -50,7 +50,7 @@
data-click-event="edit-form" onclick="resetPassword('{{username}}')" data-click-event="edit-form" onclick="resetPassword('{{username}}')"
class="btn padding-reduce-on-grid-view remove-user-link"> class="btn padding-reduce-on-grid-view remove-user-link">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-key fw-stack-1x"></i> <i class="fw fw-key fw-stack-1x"></i>
<span class="fw-stack fw-move-right fw-move-bottom"> <span class="fw-stack fw-move-right fw-move-bottom">
<i class="fw fw-circle fw-stack-2x fw-stroke fw-inverse"></i> <i class="fw fw-circle fw-stack-2x fw-stroke fw-inverse"></i>

@ -40,7 +40,7 @@
<a href="{{@app.context}}/user/add"> <a href="{{@app.context}}/user/add">
<span class="icon fw-stack"> <span class="icon fw-stack">
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
</span> </span>
Add User Add User
</a> </a>

@ -54,7 +54,7 @@
<div class="col-lg-5 col-md-6 col-centered"> <div class="col-lg-5 col-md-6 col-centered">
<h3> <h3>
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-service fw-stack-1x"></i> <i class="fw fw-service fw-stack-1x"></i>
</span> </span>
{{name}} {{name}}
@ -105,7 +105,7 @@
<div class="col-lg-5 col-md-6 col-centered"> <div class="col-lg-5 col-md-6 col-centered">
<h3> <h3>
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i id="status-icon" class="fw fw-error fw-stack-1x"></i> <i id="status-icon" class="fw fw-error fw-stack-1x"></i>
</span> </span>
<br> <br>

@ -9,7 +9,7 @@ function toggleEmailInvite(){
modalDialog.header('<h4 class="pull-left modal-title"><span class="fw-stack add-margin-right-1x">' + modalDialog.header('<h4 class="pull-left modal-title"><span class="fw-stack add-margin-right-1x">' +
'<i class="fw fw-user fw-stack-2x"></i>' + '<i class="fw fw-user fw-stack-2x"></i>' +
'<span class="fw-stack fw-move-right fw-move-bottom">' + '<span class="fw-stack fw-move-right fw-move-bottom">' +
'<i class="fw fw-ring fw-stack-2x"></i>' + '<i class="fw fw-circle-outline fw-stack-2x"></i>' +
'<i class="fw fw-circle fw-stack-2x fw-stroke text-info"></i>' + '<i class="fw fw-circle fw-stack-2x fw-stroke text-info"></i>' +
'<i class="fw fw-add fw-stack-1x fw-inverse"></i></span></span>Send Invites</h4>'); '<i class="fw fw-add fw-stack-1x fw-inverse"></i></span></span>Send Invites</h4>');
modalDialog.content($("#invite-by-email-body").html()); modalDialog.content($("#invite-by-email-body").html());
@ -73,7 +73,7 @@ function sendInvites(){
}); });
}, },
function () { function () {
modalDialog.header('<span class="fw-stack"> <i class="fw fw-ring fw-stack-2x"></i> <i class="fw ' + modalDialog.header('<span class="fw-stack"> <i class="fw fw-circle-outline fw-stack-2x"></i> <i class="fw ' +
'fw-error fw-stack-1x"></i> </span> Unexpected Error !'); 'fw-error fw-stack-1x"></i> </span> Unexpected Error !');
modalDialog.content('An unexpected error occurred. Try again later.'); modalDialog.content('An unexpected error occurred. Try again later.');
modalDialog.footer('<div class="buttons"> <a href="#" id="invite-user-error-link" ' + modalDialog.footer('<div class="buttons"> <a href="#" id="invite-user-error-link" ' +

@ -22,7 +22,7 @@
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-mobile fw-stack-2x"></i> <i class="fw fw-mobile fw-stack-2x"></i>
<span class="fw-stack fw-move-right fw-move-bottom"> <span class="fw-stack fw-move-right fw-move-bottom">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-circle fw-stack-2x fw-stroke text-info"></i> <i class="fw fw-circle fw-stack-2x fw-stroke text-info"></i>
<i class="fw fw-add fw-stack-1x fw-inverse"></i> <i class="fw fw-add fw-stack-1x fw-inverse"></i>
</span> </span>

@ -80,7 +80,7 @@
<ul> <ul>
{{#itr deviceType.ingredients}} {{#itr deviceType.ingredients}}
<span class="fw-stack fw-lg margin-right"> <span class="fw-stack fw-lg margin-right">
<i class="fw fw-ring fw-stack-2x"> </i> <i class="fw fw-circle-outline fw-stack-2x"> </i>
<i class="fw fw-right-arrow fw-stack-1x"></i> <i class="fw fw-right-arrow fw-stack-1x"></i>
</span> {{value}}<br/> </span> {{value}}<br/>
<!--<p class="padding-top-double"><span class="circle">0{{key}}</span> {{value}}</p>--> <!--<p class="padding-top-double"><span class="circle">0{{key}}</span> {{value}}</p>-->

@ -46,7 +46,7 @@
<a href="https://docs.wso2.com/display/IoTS300/Quick+Start+Guide" target="_blank" <a href="https://docs.wso2.com/display/IoTS300/Quick+Start+Guide" target="_blank"
class="btn-operations btn-default"> class="btn-operations btn-default">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-document fw-stack-1x"></i> <i class="fw fw-document fw-stack-1x"></i>
</span> </span>
Quick Startup Guide Quick Startup Guide

@ -12,7 +12,7 @@
<a href="{{appContext}}/device/{{deviceTypeName}}/enroll" <a href="{{appContext}}/device/{{deviceTypeName}}/enroll"
data-click-event="remove-form" class="btn col-md-12"> data-click-event="remove-form" class="btn col-md-12">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-check fw-stack-1x"></i> <i class="fw fw-check fw-stack-1x"></i>
</span> </span>
<span>Select</span> <span>Select</span>

@ -40,7 +40,7 @@
<a href="{{appContext}}/policy/effective-policy?type={{deviceType}}&id={{deviceId}}" <a href="{{appContext}}/policy/effective-policy?type={{deviceType}}&id={{deviceId}}"
class="cu-btn-inner policy-view-link" data-id="{{id}}"> class="cu-btn-inner policy-view-link" data-id="{{id}}">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-view fw-stack-1x"></i> <i class="fw fw-view fw-stack-1x"></i>
</span> </span>
View View

@ -29,7 +29,7 @@
data-click-event="remove-form" data-click-event="remove-form"
class="policy-view-link"> class="policy-view-link">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-view fw-stack-1x"></i> <i class="fw fw-view fw-stack-1x"></i>
</span> </span>
<span class="hidden-xs hidden-on-grid-view">View</span> <span class="hidden-xs hidden-on-grid-view">View</span>
@ -38,7 +38,7 @@
data-id="{{id}}" data-click-event="remove-form" data-id="{{id}}" data-click-event="remove-form"
class="policy-update-link"> class="policy-update-link">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-settings fw-stack-1x"></i> <i class="fw fw-settings fw-stack-1x"></i>
</span> </span>
<span class="hidden-xs hidden-on-grid-view">Re-Configure</span> <span class="hidden-xs hidden-on-grid-view">Re-Configure</span>

@ -22,7 +22,7 @@
<div class="col-lg-5 col-md-6 col-centered"> <div class="col-lg-5 col-md-6 col-centered">
<h3> <h3>
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-error fw-stack-1x"></i> <i class="fw fw-error fw-stack-1x"></i>
</span> </span>
Unauthorized action! Unauthorized action!

@ -21,7 +21,7 @@
<td style="text-align: center;"> <td style="text-align: center;">
<a href="device/{{deviceType}}?id={{deviceIdentifier}}" data-id="{{id}}" data-url="device/{{deviceType}}?id={{deviceIdentifier}}" class="new-notification" data-click-event="remove-form"> <a href="device/{{deviceType}}?id={{deviceIdentifier}}" data-id="{{id}}" data-url="device/{{deviceType}}?id={{deviceIdentifier}}" class="new-notification" data-click-event="remove-form">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-view fw-stack-1x"></i> <i class="fw fw-view fw-stack-1x"></i>
</span> </span>
</a> </a>
@ -59,7 +59,7 @@
<td style="text-align: center;"> <td style="text-align: center;">
<a href="device/{{deviceType}}?id={{deviceIdentifier}}" data-click-event="remove-form"> <a href="device/{{deviceType}}?id={{deviceIdentifier}}" data-click-event="remove-form">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-view fw-stack-1x"></i> <i class="fw fw-view fw-stack-1x"></i>
</span> </span>
</a> </a>

@ -50,7 +50,7 @@
<!--suppress HtmlUnknownTarget --> <!--suppress HtmlUnknownTarget -->
<a href="{{@app.context}}/policy/add" class="cu-btn-inner"> <a href="{{@app.context}}/policy/add" class="cu-btn-inner">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
</span> </span>
Add another policy Add another policy

@ -2,6 +2,8 @@
{{#if isAuthorized }} {{#if isAuthorized }}
<span id="logged-in-user" class="hidden" data-username="{{user.username}}" data-domain="{{user.domain}}" <span id="logged-in-user" class="hidden" data-username="{{user.username}}" data-domain="{{user.domain}}"
data-tenant-id="{{user.tenantId}}"></span> data-tenant-id="{{user.tenantId}}"></span>
<span id="policy-operations" class="hidden" data-template="{{policyOperations.template}}"
data-script="{{policyOperations.script}}" data-style="{{policyOperations.style}}"></span>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
@ -42,7 +44,7 @@
</button> </button>
<a href="{{@app.context}}/policies/add" class="cu-btn-inner"> <a href="{{@app.context}}/policies/add" class="cu-btn-inner">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
</span> </span>
Add another policy Add another policy

@ -17,8 +17,8 @@
*/ */
function onRequest(context) { function onRequest(context) {
var log = new Log("policy-view-edit-unit backend js"); var deviceType = request.getParameter("deviceType");
var utility = require("/app/modules/utility.js").utility;
var userModule = require("/app/modules/business-controllers/user.js")["userModule"]; var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
var groupModule = require("/app/modules/business-controllers/group.js")["groupModule"]; var groupModule = require("/app/modules/business-controllers/group.js")["groupModule"];
@ -31,12 +31,30 @@ function onRequest(context) {
if (usersResult.status == "success") { if (usersResult.status == "success") {
context.users = usersResult.content; context.users = usersResult.content;
} }
context["groups"] = groupModule.getGroups(); context["groups"] = groupModule.getGroups();
var user = userModule.getCarbonUser(); var user = userModule.getCarbonUser();
context["user"] = {username: user.username, domain: user.domain, tenantId: user.tenantId}; context["user"] = {username: user.username, domain: user.domain, tenantId: user.tenantId};
context["policyOperations"] = {};
var policyEditSrc = "/app/units/" + utility.getTenantedDeviceUnitName(deviceType, "policy-edit");
if (new File(policyEditSrc).isExists()) {
var policyOperationsTemplateSrc = policyEditSrc + "/public/templates/" + deviceType + "-policy-edit.hbs";
if (new File(policyOperationsTemplateSrc).isExists()) {
context["policyOperations"].template = "/public/cdmf.unit.device.type." + deviceType +
".policy-edit/templates/" + deviceType + "-policy-edit.hbs";
}
var policyOperationsScriptSrc = policyEditSrc + "/public/js/" + deviceType + "-policy-edit.js";
if (new File(policyOperationsScriptSrc).isExists()) {
context["policyOperations"].script = "/public/cdmf.unit.device.type." + deviceType + ".policy-edit/js/" +
deviceType + "-policy-edit.js";
}
var policyOperationsStylesSrc = policyEditSrc + "/public/css/" + deviceType + "-policy-edit.css";
if (new File(policyOperationsStylesSrc).isExists()) {
context["policyOperations"].style = "/public/cdmf.unit.device.type." + deviceType + ".policy-edit/css/" +
deviceType + "-policy-edit.css";
}
}
context.isAuthorized = userModule.isAuthorized("/permission/admin/device-mgt/policies/manage"); context.isAuthorized = userModule.isAuthorized("/permission/admin/device-mgt/policies/manage");
context.isAuthorizedViewUsers = userModule.isAuthorized("/permission/admin/device-mgt/roles/view"); context.isAuthorizedViewUsers = userModule.isAuthorized("/permission/admin/device-mgt/roles/view");
context.isAuthorizedViewRoles = userModule.isAuthorized("/permission/admin/device-mgt/users/view"); context.isAuthorizedViewRoles = userModule.isAuthorized("/permission/admin/device-mgt/users/view");

@ -179,27 +179,27 @@ skipStep["policy-platform"] = function (policyPayloadObj) {
$("#policy-profile-page-wizard-title").text("EDIT " + policy["platform"] + " POLICY - " + policy["name"]); $("#policy-profile-page-wizard-title").text("EDIT " + policy["platform"] + " POLICY - " + policy["name"]);
var deviceType = policy["platform"]; var deviceType = policy["platform"];
var policyOperationsTemplateSrc = context + '/public/cdmf.unit.device.type.' + deviceType + var policyOperations = $("#policy-operations");
'.policy-edit/templates/' + deviceType + '-policy-edit.hbs'; var policyEditTemplateSrc = $(policyOperations).data("template");
var policyOperationsScriptSrc = context + '/public/cdmf.unit.device.type.' + deviceType + var policyEditScriptSrc = $(policyOperations).data("script");
'.policy-edit/js/' + deviceType + '-policy-edit.js'; var policyEditStylesSrc = $(policyOperations).data("style");
var policyOperationsStylesSrc = context + '/public/cdmf.unit.device.type.' + deviceType + var policyEditTemplateCacheKey = deviceType + '-policy-edit';
'.policy-edit/css/' + deviceType + '-policy-edit.css';
var policyOperationsTemplateCacheKey = deviceType + '-policy-operations'; if (policyEditTemplateSrc) {
if (policyEditScriptSrc) {
$.isResourceExists(policyOperationsTemplateSrc, function (status) {
if (status) {
$.template(policyOperationsTemplateCacheKey, policyOperationsTemplateSrc, function (template) {
var content = template();
$("#device-type-policy-operations").html(content).removeClass("hidden");
$(".policy-platform").addClass("hidden");
$.isResourceExists(policyOperationsScriptSrc, function (status) {
if (status) {
hasPolicyProfileScript = true;
var script = document.createElement('script'); var script = document.createElement('script');
script.type = 'text/javascript'; script.type = 'text/javascript';
script.src = policyOperationsScriptSrc; script.src = context + policyEditScriptSrc;
$(".wr-advance-operations").prepend(script); $(".wr-advance-operations").prepend(script);
hasPolicyProfileScript = true;
} else {
hasPolicyProfileScript = false;
}
$.template(policyEditTemplateCacheKey, context + policyEditTemplateSrc, function (template) {
var content = template();
$("#device-type-policy-operations").html(content).removeClass("hidden");
$(".policy-platform").addClass("hidden");
if (hasPolicyProfileScript) {
/* /*
This method should be implemented in the relevant plugin side and should include the logic to This method should be implemented in the relevant plugin side and should include the logic to
populate the policy profile in the plugin specific UI. populate the policy profile in the plugin specific UI.
@ -207,24 +207,19 @@ skipStep["policy-platform"] = function (policyPayloadObj) {
polulateProfileOperations(policyPayloadObj["profile"]["profileFeaturesList"]); polulateProfileOperations(policyPayloadObj["profile"]["profileFeaturesList"]);
} }
}); });
}); } else {
$("#generic-policy-operations").removeClass("hidden");
$.isResourceExists(policyOperationsStylesSrc, function (status) { }
if (status) { if (policyEditStylesSrc) {
var style = document.createElement('link'); var style = document.createElement('link');
style.type = 'text/css'; style.type = 'text/css';
style.rel = 'stylesheet'; style.rel = 'stylesheet';
style.href = policyOperationsStylesSrc; style.href = context + policyEditStylesSrc;
$(".wr-advance-operations").prepend(style); $(".wr-advance-operations").prepend(style);
} }
});
} else {
$("#generic-policy-operations").removeClass("hidden");
}
$(".wr-advance-operations-init").addClass("hidden"); $(".wr-advance-operations-init").addClass("hidden");
});
if(!hasPolicyProfileScript) { if (!hasPolicyProfileScript) {
populateGenericProfileOperations(policyPayloadObj["profile"]["profileFeaturesList"]); populateGenericProfileOperations(policyPayloadObj["profile"]["profileFeaturesList"]);
} }
}; };

@ -36,7 +36,7 @@
<span class="editable-text wr-sort-index"> <span class="editable-text wr-sort-index">
<input type="text" id="dd" class="index"> <input type="text" id="dd" class="index">
<span class="icon fw-stack"> <span class="icon fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-edit fw-stack-1x"></i> <i class="fw fw-edit fw-stack-1x"></i>
</span> </span>
</span> </span>

@ -67,27 +67,27 @@ var displayPolicy = function (policyPayloadObj) {
} }
var deviceType = policy["platform"]; var deviceType = policy["platform"];
var policyOperationsTemplateSrc = context + '/public/cdmf.unit.device.type.' + deviceType + var policyOperations = $("#policy-operations");
'.policy-view/templates/' + deviceType + '-policy-view.hbs'; var policyViewTemplateSrc = $(policyOperations).data("template");
var policyOperationsScriptSrc = context + '/public/cdmf.unit.device.type.' + deviceType + var policyViewScriptSrc = $(policyOperations).data("script");
'.policy-view/js/' + deviceType + '-policy-view.js'; var policyViewStylesSrc = $(policyOperations).data("style");
var policyOperationsStylesSrc = context + '/public/cdmf.unit.device.type.' + deviceType + var policyViewTemplateCacheKey = deviceType + '-policy-view';
'.policy-view/css/' + deviceType + '-policy-view.css';
var policyOperationsTemplateCacheKey = deviceType + '-policy-operations';
$.isResourceExists(policyOperationsTemplateSrc, function (status) { if (policyViewTemplateSrc) {
if (status) { if (policyViewScriptSrc) {
$.template(policyOperationsTemplateCacheKey, policyOperationsTemplateSrc, function (template) {
var content = template();
$("#device-type-policy-operations").html(content).removeClass("hidden");
$(".policy-platform").addClass("hidden");
$.isResourceExists(policyOperationsScriptSrc, function (status) {
if (status) {
hasPolicyProfileScript = true;
var script = document.createElement('script'); var script = document.createElement('script');
script.type = 'text/javascript'; script.type = 'text/javascript';
script.src = policyOperationsScriptSrc; script.src = context + policyViewScriptSrc;
$(".wr-advance-operations").prepend(script); $(".wr-advance-operations").prepend(script);
hasPolicyProfileScript = true;
} else {
hasPolicyProfileScript = false;
}
$.template(policyViewTemplateCacheKey, context + policyViewTemplateSrc, function (template) {
var content = template();
$("#device-type-policy-operations").html(content).removeClass("hidden");
$(".policy-platform").addClass("hidden");
if (hasPolicyProfileScript) {
/* /*
This method should be implemented in the relevant plugin side and should include the logic to This method should be implemented in the relevant plugin side and should include the logic to
populate the policy profile in the plugin specific UI. populate the policy profile in the plugin specific UI.
@ -95,24 +95,19 @@ var displayPolicy = function (policyPayloadObj) {
polulateProfileOperations(policyPayloadObj["profile"]["profileFeaturesList"]); polulateProfileOperations(policyPayloadObj["profile"]["profileFeaturesList"]);
} }
}); });
}); } else {
$("#generic-policy-operations").removeClass("hidden");
$.isResourceExists(policyOperationsStylesSrc, function (status) { }
if (status) { if (policyViewStylesSrc) {
var style = document.createElement('link'); var style = document.createElement('link');
style.type = 'text/css'; style.type = 'text/css';
style.rel = 'stylesheet'; style.rel = 'stylesheet';
style.href = policyOperationsStylesSrc; style.href = context + policyViewStylesSrc;
$(".wr-advance-operations").prepend(style); $(".wr-advance-operations").prepend(style);
} }
});
} else {
$("#generic-policy-operations").removeClass("hidden");
}
$(".wr-advance-operations-init").addClass("hidden"); $(".wr-advance-operations-init").addClass("hidden");
});
if(!hasPolicyProfileScript) { if (!hasPolicyProfileScript) {
populateGenericProfileOperations(policyPayloadObj["profile"]["profileFeaturesList"]); populateGenericProfileOperations(policyPayloadObj["profile"]["profileFeaturesList"]);
} }
}; };

@ -8,7 +8,8 @@
</div> </div>
</div> </div>
{{/defineZone}} {{/defineZone}}
<span id="policy-operations" class="hidden" data-template="{{template}}" data-script="{{script}}"
data-style="{{style}}"></span>
<!-- #page-content-wrapper --> <!-- #page-content-wrapper -->
<div class="page-content-wrapper"> <div class="page-content-wrapper">
<div class="row no-gutter add-padding-5x add-margin-top-5x" style="border: 1px solid #e4e4e4;"> <div class="row no-gutter add-padding-5x add-margin-top-5x" style="border: 1px solid #e4e4e4;">

@ -17,10 +17,27 @@
*/ */
function onRequest(context) { function onRequest(context) {
// var log = new Log("policy-view-edit-unit backend js"); var utility = require("/app/modules/utility.js").utility;
var page = {};
// var userModule = require("/app/modules/business-controllers/user.js")["userModule"]; var deviceType = request.getParameter("deviceType");
// context.roles = userModule.getRoles(); var policyViewSrc = "/app/units/" + utility.getTenantedDeviceUnitName(deviceType, "policy-view");
context.isAuthorized = userModule.isAuthorized("/permission/admin/device-mgt/policies/view"); if (new File(policyViewSrc).isExists()) {
return context; var policyOperationsTemplateSrc = policyViewSrc + "/public/templates/" + deviceType + "-policy-view.hbs";
if (new File(policyOperationsTemplateSrc).isExists()) {
page.template = "/public/cdmf.unit.device.type." + deviceType + ".policy-view/templates/" + deviceType +
"-policy-view.hbs";
}
var policyOperationsScriptSrc = policyViewSrc + "/public/js/" + deviceType + "-policy-view.js";
if (new File(policyOperationsScriptSrc).isExists()) {
page.script = "/public/cdmf.unit.device.type." + deviceType + ".policy-view/js/" + deviceType +
"-policy-view.js";
}
var policyOperationsStylesSrc = policyViewSrc + "/public/css/" + deviceType + "-policy-view.css";
if (new File(policyOperationsStylesSrc).isExists()) {
page.style = "/public/cdmf.unit.device.type." + deviceType + ".policy-view/css/" + deviceType +
"-policy-view.css";
}
}
page.isAuthorized = userModule.isAuthorized("/permission/admin/device-mgt/policies/view");
return page;
} }

@ -77,7 +77,7 @@
</button> </button>
<a href="{{@app.context}}/role/add" class="cu-btn-inner"> <a href="{{@app.context}}/role/add" class="cu-btn-inner">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
</span> </span>
Add Another Role Add Another Role

@ -70,7 +70,7 @@
<a href="{{@app.context}}/roles/edit-role/{{role.roleName}}" <a href="{{@app.context}}/roles/edit-role/{{role.roleName}}"
class="cu-btn-inner"> class="cu-btn-inner">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i> <i class="fw fw-add fw-stack-1x"></i>
</span> </span>
View Updated Role View Updated Role

@ -19,10 +19,7 @@
<ul class="nav navbar-right float-remove-xs text-center-xs"> <ul class="nav navbar-right float-remove-xs text-center-xs">
<li class="visible-inline-block"> <li class="visible-inline-block">
<a href="#" class="dropdown" data-toggle="dropdown"> <a href="#" class="dropdown" data-toggle="dropdown">
<span class="icon fw-stack fw-lg"> <i class="fw fw-user fw-lg fw-helper fw-helper-inverse fw-helper-circle"></i>
<i class="fw fw-circle fw-stack-2x"></i>
<i class="fw fw-user fw-stack-1x fw-inverse"></i>
</span>
<span class="hidden-xs add-padding-left-1x"> <span class="hidden-xs add-padding-left-1x">
{{#if isSuperTenant }} {{#if isSuperTenant }}
{{@user.username}}<span class="caret"></span> {{@user.username}}<span class="caret"></span>
@ -48,7 +45,7 @@
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-user fw-stack-2x"></i> <i class="fw fw-user fw-stack-2x"></i>
<span class="fw-stack fw-move-right fw-move-bottom"> <span class="fw-stack fw-move-right fw-move-bottom">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-circle fw-stack-2x fw-stroke text-info"></i> <i class="fw fw-circle fw-stack-2x fw-stroke text-info"></i>
<i class="fw fw-edit fw-stack-1x fw-inverse"></i> <i class="fw fw-edit fw-stack-1x fw-inverse"></i>
</span> </span>

@ -23,11 +23,11 @@
<div class="modal-header"> <div class="modal-header">
<h3 class="pull-left modal-title"> <h3 class="pull-left modal-title">
<span class="fw-stack error-msg-icon hidden"> <span class="fw-stack error-msg-icon hidden">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-error fw-stack-1x"></i> <i class="fw fw-error fw-stack-1x"></i>
</span> </span>
<span class="fw-stack warning-msg-icon hidden"> <span class="fw-stack warning-msg-icon hidden">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-warning fw-stack-1x"></i> <i class="fw fw-warning fw-stack-1x"></i>
</span> </span>
<span id="modal-title-text"></span> <span id="modal-title-text"></span>

@ -40,7 +40,7 @@
{{#if permissions.LIST_GROUPS}} {{#if permissions.LIST_GROUPS}}
<li> <li>
<a href="{{@app.context}}/groups"> <a href="{{@app.context}}/groups">
<i class="fw fw-grouping"></i> <i class="fw fw-group"></i>
Group Management Group Management
</a> </a>
</li> </li>

@ -1811,7 +1811,7 @@ a.btn:hover, .btn:hover {
margin-right: -1px; margin-right: -1px;
} }
.remove-icon-ring-on-hover:hover .fw-ring { .remove-icon-ring-on-hover:hover .fw-circle-outline {
display: none; display: none;
} }
@ -4556,7 +4556,7 @@ a.wr-side-panel-toggle-btn.selected {
color: #526A84; color: #526A84;
} }
.wr-advance-operations .wr-hidden-operations-nav a.selected span span > i.fw.fw-circle.fw-stack-2x{ .wr-advance-operations .wr-hidden-operations-nav a.selected span span > i.fw.fw-circle.fw-stack-2x{
color: #fff; color: #526A84;
} }
.wr-advance-operations .wr-hidden-operations-nav a.selected span span > i.fw.fw-circle.fw-stack-2x.fw-stroke.fw-inverse{ .wr-advance-operations .wr-hidden-operations-nav a.selected span span > i.fw.fw-circle.fw-stack-2x.fw-stroke.fw-inverse{
color: #526A84; color: #526A84;
@ -5138,7 +5138,7 @@ a.cu-btn-inner.inverse:hover {
font-size: 14px; font-size: 14px;
} }
.multi-view .content .panel-body .well fieldset legend a:hover .icon.fw-stack .fw-ring { .multi-view .content .panel-body .well fieldset legend a:hover .icon.fw-stack .fw-circle-outline {
display: none; display: none;
} }
@ -6507,6 +6507,10 @@ select > option:hover {
font-weight:400; font-weight:400;
} }
.header .fw:before {
color: #000;
}
/* Adding style for required fields */ /* Adding style for required fields */
.required:before { .required:before {
content: "*"; content: "*";

@ -24,7 +24,7 @@
{{#defineZone "toggleMenuRight-icon"}} {{#defineZone "toggleMenuRight-icon"}}
<span class="icon fw-stack"> <span class="icon fw-stack">
<i class="fw fw-settings fw-stack-1x"></i> <i class="fw fw-settings fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>
</span> </span>
{{/defineZone}} {{/defineZone}}
</a> </a>

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 337 KiB

After

Width:  |  Height:  |  Size: 385 KiB

Loading…
Cancel
Save