mirror of
https://repository.entgra.net/community/device-mgt-plugins.git
synced 2025-09-16 23:42:15 +00:00
Merge branch 'master' of https://github.com/wso2/carbon-device-mgt-plugins
This commit is contained in:
commit
5f568ee490
@ -20,5 +20,8 @@
|
|||||||
<artifacts>
|
<artifacts>
|
||||||
<artifact name="raspberrypi" version="1.0.0" type="carbon/application">
|
<artifact name="raspberrypi" version="1.0.0" type="carbon/application">
|
||||||
<dependency artifact="raspberrypi_execution" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
<dependency artifact="raspberrypi_execution" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
||||||
|
<dependency artifact="raspberrypi_temperature_publisher" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
||||||
|
<dependency artifact="raspberrypi_temperature_store" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
||||||
|
<dependency artifact="raspberrypi_temperature_stream" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</artifacts>
|
</artifacts>
|
||||||
|
|||||||
@ -6,10 +6,10 @@
|
|||||||
|
|
||||||
/* define streams/tables and write queries here ... */
|
/* define streams/tables and write queries here ... */
|
||||||
|
|
||||||
@Import('org.wso2.iot.raspberrypi:1.0.0')
|
@Import('iot.per.device.stream.raspberrypi:1.0.0')
|
||||||
define stream raspberrypi (meta_owner string, meta_deviceId string, meta_time long, temperature float);
|
define stream raspberrypi (meta_owner string, meta_deviceId string, meta_time long, temperature float);
|
||||||
|
|
||||||
@Export('org.wso2.iot.devices.temperature:1.0.0')
|
@Export('iot.per.device.stream.raspberrypi.temperature:1.0.0')
|
||||||
define stream temperature (meta_owner string, meta_deviceType string, meta_deviceId string, meta_time long, temperature float);
|
define stream temperature (meta_owner string, meta_deviceType string, meta_deviceId string, meta_time long, temperature float);
|
||||||
|
|
||||||
from raspberrypi
|
from raspberrypi
|
||||||
|
|||||||
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
~
|
||||||
|
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
~ Version 2.0 (the "License"); you may not use this file except
|
||||||
|
~ in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing,
|
||||||
|
~ software distributed under the License is distributed on an
|
||||||
|
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
~ KIND, either express or implied. See the License for the
|
||||||
|
~ specific language governing permissions and limitations
|
||||||
|
~ under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<artifact name="raspberrypi_temperature_publisher" version="1.0.0" type="event/publisher" serverRole="DataAnalyticsServer">
|
||||||
|
<file>temperature_publisher.xml</file>
|
||||||
|
</artifact>
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
~
|
||||||
|
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
~ Version 2.0 (the "License"); you may not use this file except
|
||||||
|
~ in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing,
|
||||||
|
~ software distributed under the License is distributed on an
|
||||||
|
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
~ KIND, either express or implied. See the License for the
|
||||||
|
~ specific language governing permissions and limitations
|
||||||
|
~ under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<eventPublisher name="publisher" statistics="disable" trace="disable" xmlns="http://wso2.org/carbon/eventpublisher">
|
||||||
|
<from streamName="iot.per.device.stream.raspberrypi.temperature" version="1.0.0"/>
|
||||||
|
<mapping customMapping="disable" type="wso2event"/>
|
||||||
|
<to eventAdapterType="secured-websocket"/>
|
||||||
|
</eventPublisher>
|
||||||
|
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
~
|
||||||
|
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
~ Version 2.0 (the "License"); you may not use this file except
|
||||||
|
~ in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing,
|
||||||
|
~ software distributed under the License is distributed on an
|
||||||
|
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
~ KIND, either express or implied. See the License for the
|
||||||
|
~ specific language governing permissions and limitations
|
||||||
|
~ under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<artifact name="raspberrypi_temperature_store" version="1.0.0" type="analytics/eventstore" serverRole="DataAnalyticsServer">
|
||||||
|
<file>iot_per_device_stream_raspberrypi_temperature.xml</file>
|
||||||
|
</artifact>
|
||||||
@ -0,0 +1,62 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
|
<!--
|
||||||
|
~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
~
|
||||||
|
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
~ Version 2.0 (the "License"); you may not use this file except
|
||||||
|
~ in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing,
|
||||||
|
~ software distributed under the License is distributed on an
|
||||||
|
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
~ KIND, either express or implied. See the License for the
|
||||||
|
~ specific language governing permissions and limitations
|
||||||
|
~ under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<EventStoreConfiguration>
|
||||||
|
<Source>
|
||||||
|
<StreamId>iot.per.device.stream.raspberrypi.temperature:1.0.0</StreamId>
|
||||||
|
</Source>
|
||||||
|
<RecordStoreName>EVENT_STORE</RecordStoreName>
|
||||||
|
<TableSchema>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>meta_owner</Name>
|
||||||
|
<EnableIndexing>true</EnableIndexing>
|
||||||
|
<IsPrimaryKey>true</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>STRING</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>meta_deviceType</Name>
|
||||||
|
<EnableIndexing>true</EnableIndexing>
|
||||||
|
<IsPrimaryKey>true</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>STRING</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>meta_deviceId</Name>
|
||||||
|
<EnableIndexing>true</EnableIndexing>
|
||||||
|
<IsPrimaryKey>true</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>STRING</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>meta_time</Name>
|
||||||
|
<EnableIndexing>true</EnableIndexing>
|
||||||
|
<IsPrimaryKey>true</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>LONG</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>temperature</Name>
|
||||||
|
<EnableIndexing>false</EnableIndexing>
|
||||||
|
<IsPrimaryKey>false</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>FLOAT</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
</TableSchema>
|
||||||
|
</EventStoreConfiguration>
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
~
|
||||||
|
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
~ Version 2.0 (the "License"); you may not use this file except
|
||||||
|
~ in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing,
|
||||||
|
~ software distributed under the License is distributed on an
|
||||||
|
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
~ KIND, either express or implied. See the License for the
|
||||||
|
~ specific language governing permissions and limitations
|
||||||
|
~ under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<artifact name="raspberrypi_temperature_stream" version="1.0.0" type="event/stream" serverRole="DataAnalyticsServer">
|
||||||
|
<file>iot.per.device.stream.raspberrypi.temperature_1.0.0.json</file>
|
||||||
|
</artifact>
|
||||||
|
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"name": "iot.per.device.stream.raspberrypi.temperature",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"nickName": "Temperature Data",
|
||||||
|
"description": "Temperature data received from the Device",
|
||||||
|
"metaData": [
|
||||||
|
{"name":"owner","type":"STRING"},
|
||||||
|
{"name":"deviceType","type":"STRING"},
|
||||||
|
{"name":"deviceId","type":"STRING"},
|
||||||
|
{"name":"time","type":"LONG"}
|
||||||
|
],
|
||||||
|
"payloadData": [
|
||||||
|
{
|
||||||
|
"name": "temperature","type": "FLOAT"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -112,8 +112,8 @@ public class RaspberryPiServiceImpl implements RaspberryPiService {
|
|||||||
@QueryParam("from") long from, @QueryParam("to") long to) {
|
@QueryParam("from") long from, @QueryParam("to") long to) {
|
||||||
String fromDate = String.valueOf(from);
|
String fromDate = String.valueOf(from);
|
||||||
String toDate = String.valueOf(to);
|
String toDate = String.valueOf(to);
|
||||||
String query = "deviceId:" + deviceId + " AND deviceType:" +
|
String query = "meta_deviceId:" + deviceId + " AND meta_deviceType:" +
|
||||||
RaspberrypiConstants.DEVICE_TYPE + " AND time : [" + fromDate + " TO " + toDate + "]";
|
RaspberrypiConstants.DEVICE_TYPE + " AND meta_time : [" + fromDate + " TO " + toDate + "]";
|
||||||
String sensorTableName = RaspberrypiConstants.TEMPERATURE_EVENT_TABLE;
|
String sensorTableName = RaspberrypiConstants.TEMPERATURE_EVENT_TABLE;
|
||||||
try {
|
try {
|
||||||
if (!APIUtil.getDeviceAccessAuthorizationService().isUserAuthorized(new DeviceIdentifier(deviceId,
|
if (!APIUtil.getDeviceAccessAuthorizationService().isUserAuthorized(new DeviceIdentifier(deviceId,
|
||||||
|
|||||||
@ -26,7 +26,7 @@ public class RaspberrypiConstants {
|
|||||||
|
|
||||||
public static final String BULB_CONTEXT = "BULB";
|
public static final String BULB_CONTEXT = "BULB";
|
||||||
//sensor events summerized table name
|
//sensor events summerized table name
|
||||||
public static final String TEMPERATURE_EVENT_TABLE = "DEVICE_TEMPERATURE_SUMMARY";
|
public static final String TEMPERATURE_EVENT_TABLE = "IOT_PER_DEVICE_STREAM_RASPBERRYPI_TEMPERATURE";
|
||||||
|
|
||||||
//mqtt tranport related constants
|
//mqtt tranport related constants
|
||||||
public static final String MQTT_ADAPTER_TOPIC_PROPERTY_NAME = "mqtt.adapter.topic";
|
public static final String MQTT_ADAPTER_TOPIC_PROPERTY_NAME = "mqtt.adapter.topic";
|
||||||
|
|||||||
@ -42,7 +42,7 @@ function onRequest(context) {
|
|||||||
if (tokenPair) {
|
if (tokenPair) {
|
||||||
token = tokenPair.accessToken;
|
token = tokenPair.accessToken;
|
||||||
}
|
}
|
||||||
websocketEndpoint = websocketEndpoint + "/secured-websocket/org.wso2.iot.devices.temperature/1.0.0?"
|
websocketEndpoint = websocketEndpoint + "/secured-websocket/iot.per.device.stream.raspberrypi.temperature/1.0.0?"
|
||||||
+ "deviceId=" + device.deviceIdentifier + "&deviceType=" + device.type + "&websocketToken=" + token;
|
+ "deviceId=" + device.deviceIdentifier + "&deviceType=" + device.type + "&websocketToken=" + token;
|
||||||
} else {
|
} else {
|
||||||
var tokenPair = jwtClient.getAccessToken(resp[0], resp[1], context.user.username + "@" + user.domain
|
var tokenPair = jwtClient.getAccessToken(resp[0], resp[1], context.user.username + "@" + user.domain
|
||||||
@ -50,7 +50,7 @@ function onRequest(context) {
|
|||||||
if (tokenPair) {
|
if (tokenPair) {
|
||||||
token = tokenPair.accessToken;
|
token = tokenPair.accessToken;
|
||||||
}
|
}
|
||||||
websocketEndpoint = websocketEndpoint + "/secured-websocket/t/" + user.domain + "/org.wso2.iot.devices.temperature/1.0.0?"
|
websocketEndpoint = websocketEndpoint + "/secured-websocket/t/" + user.domain + "/iot.per.device.stream.raspberrypi.temperature/1.0.0?"
|
||||||
+ "deviceId=" + device.deviceIdentifier + "&deviceType=" + device.type + "&websocketToken=" + token;
|
+ "deviceId=" + device.deviceIdentifier + "&deviceType=" + device.type + "&websocketToken=" + token;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -24,16 +24,39 @@
|
|||||||
{{/zone}}
|
{{/zone}}
|
||||||
|
|
||||||
{{#zone "device-thumbnail"}}
|
{{#zone "device-thumbnail"}}
|
||||||
<img src="{{@unit.publicUri}}/images/firealarm-icon.png"/>
|
<img src="{{@unit.publicUri}}/images/firealarm-icon.png" class="img-responsive"/>
|
||||||
|
{{/zone}}
|
||||||
|
|
||||||
|
{{#zone "device-details-header"}}
|
||||||
|
<h1 class="device-id"
|
||||||
|
data-deviceid="{{device.deviceIdentifier}}"
|
||||||
|
data-type="{{device.type}}"
|
||||||
|
data-ownership="{{device.ownership}}"
|
||||||
|
data-owner="{{device.owner}}">
|
||||||
|
{{device.enrolmentInfo.owner}}'s {{device.name}}
|
||||||
|
<a id="device-info-tooltip" href="#" data-toggle="tooltip" title="Device Identifier: {{device.deviceIdentifier}}">
|
||||||
|
<i class="fw fw-info"></i>
|
||||||
|
</a>
|
||||||
|
</h1>
|
||||||
|
<h4>Ownership - <strong>{{device.enrolmentInfo.ownership}}</strong></h4>
|
||||||
|
<h4>Device is
|
||||||
|
<strong>
|
||||||
|
{{#equal device.enrolmentInfo.status "ACTIVE"}}Active{{/equal}}
|
||||||
|
{{#equal device.enrolmentInfo.status "INACTIVE"}}Inactive{{/equal}}
|
||||||
|
{{#equal device.enrolmentInfo.status "BLOCKED"}}Blocked{{/equal}}
|
||||||
|
{{#equal device.enrolmentInfo.status "REMOVED"}}Removed{{/equal}}
|
||||||
|
{{#equal device.enrolmentInfo.status "UNREACHABLE"}}Unreachable{{/equal}}
|
||||||
|
</strong>
|
||||||
|
</h4>
|
||||||
{{/zone}}
|
{{/zone}}
|
||||||
|
|
||||||
{{#zone "device-opetations"}}
|
{{#zone "device-opetations"}}
|
||||||
<div style="background: #11375B; color: #fff; padding: 10px; margin-bottom: 5px">
|
<div class="operation-container">
|
||||||
Operations
|
<div class="operation-title">
|
||||||
</div>
|
<h4>Device Operations</h4>
|
||||||
<div class="add-margin-top-4x">
|
</div>
|
||||||
{{unit "cdmf.unit.device.operation-bar" device=device autoCompleteParams=autoCompleteParams
|
{{unit "cdmf.unit.device.operation-bar" device=device autoCompleteParams=autoCompleteParams
|
||||||
encodedFeaturePayloads=encodedFeaturePayloads}}
|
encodedFeaturePayloads=encodedFeaturePayloads}}
|
||||||
</div>
|
</div>
|
||||||
{{/zone}}
|
{{/zone}}
|
||||||
|
|
||||||
|
|||||||
@ -4,279 +4,103 @@
|
|||||||
{{#if deviceFound}}
|
{{#if deviceFound}}
|
||||||
{{#if isAuthorized}}
|
{{#if isAuthorized}}
|
||||||
|
|
||||||
|
{{#zone "device-thumbnail"}}
|
||||||
|
<i class="fw fw-android device-type fw-2x"></i>
|
||||||
|
{{/zone}}
|
||||||
|
|
||||||
{{#zone "device-details-header"}}
|
{{#zone "device-details-header"}}
|
||||||
<h1 class="page-sub-title device-id device-select"
|
<h1 class="device-id"
|
||||||
data-deviceid="{{device.deviceIdentifier}}" data-type="{{device.type}}"
|
data-deviceid="{{device.deviceIdentifier}}"
|
||||||
data-ownership="{{device.ownership}}"
|
data-type="{{device.type}}"
|
||||||
data-owner="{{device.owner}}" data-status="{{device.status}}">
|
data-ownership="{{device.ownership}}"
|
||||||
Device {{device.name}}
|
data-owner="{{device.owner}}"
|
||||||
{{#if device.model}}
|
data-status="{{device.status}}">
|
||||||
<span class="lbl-device">
|
{{device.owner}}'s {{device.name}}
|
||||||
( {{device.vendor}} {{device.model}} )
|
<a id="device-info-tooltip" href="#" data-toggle="tooltip" title="Device Identifier: {{device.deviceIdentifier}}
|
||||||
</span>
|
Firmware Build Date: {{device.osBuildDate}}
|
||||||
{{/if}}
|
UDID: {{device.udid}}">
|
||||||
|
<i class="fw fw-info"></i>
|
||||||
|
</a>
|
||||||
</h1>
|
</h1>
|
||||||
|
{{#if device.model}}
|
||||||
|
<h4>{{device.vendor}} {{device.model}}</h4>
|
||||||
|
{{/if}}
|
||||||
|
<h4>Ownership - <strong>{{device.ownership}}</strong></h4>
|
||||||
|
<h4>Device is
|
||||||
|
<strong>
|
||||||
|
{{#equal device.status "ACTIVE"}}Active{{/equal}}
|
||||||
|
{{#equal device.status "INACTIVE"}}Inactive{{/equal}}
|
||||||
|
{{#equal device.status "BLOCKED"}}Blocked{{/equal}}
|
||||||
|
{{#equal device.status "REMOVED"}}Removed{{/equal}}
|
||||||
|
{{#equal device.status "UNREACHABLE"}}Unreachable{{/equal}}
|
||||||
|
</strong>
|
||||||
|
</h4>
|
||||||
{{/zone}}
|
{{/zone}}
|
||||||
|
|
||||||
{{#zone "overview-section"}}
|
|
||||||
<div class="media-body asset-desc add-padding-left-5x">
|
|
||||||
<div style="background: #11375B; color: #fff; padding: 10px; margin-bottom: 5px">Device
|
|
||||||
Overview
|
|
||||||
</div>
|
|
||||||
<table class="table table-responsive table-striped" id="members">
|
|
||||||
<tbody>
|
|
||||||
{{#if device.deviceIdentifier}}
|
|
||||||
<tr role="row" class="odd">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Device ID</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.deviceIdentifier}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.name}}
|
|
||||||
<tr role="row" class="even">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Name</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.name}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.vendor}}
|
|
||||||
{{#if device.model}}
|
|
||||||
<tr role="row" class="odd">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Model</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.vendor}}
|
|
||||||
{{device.model}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.status}}
|
|
||||||
<tr role="row" class="even">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Status</td>
|
|
||||||
<td style="padding:10px 15px;">
|
|
||||||
{{#equal device.status "ACTIVE"}}<span><i
|
|
||||||
class="fw fw-success icon-success"></i>Active</span>{{/equal}}
|
|
||||||
{{#equal device.status "INACTIVE"}}<span><i
|
|
||||||
class="fw fw-warning icon-warning"></i>Inactive</span>{{/equal}}
|
|
||||||
{{#equal device.status "BLOCKED"}}<span><i
|
|
||||||
class="fw fw-remove icon-danger"></i>Blocked</span>{{/equal}}
|
|
||||||
{{#equal device.status "REMOVED"}}<span><i
|
|
||||||
class="fw fw-delete icon-danger"></i>Removed</span>{{/equal}}
|
|
||||||
{{#equal device.status "UNREACHABLE"}}<span><i
|
|
||||||
class="fw fw-warning icon-warning"></i>Unreachable</span>{{/equal}}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.owner}}
|
|
||||||
<tr role="row" class="odd">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Owner</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.owner}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.ownership}}
|
|
||||||
<tr role="row" class="even">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Ownership</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.ownership}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.imei}}
|
|
||||||
<tr role="row" class="even">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">IMEI</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.imei}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.udid}}
|
|
||||||
<tr role="row" class="odd">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">UDID</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.udid}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.osBuildDate}}
|
|
||||||
<tr role="row" class="even">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Firmware Build
|
|
||||||
Date
|
|
||||||
</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.osBuildDate}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.phoneNumber}}
|
|
||||||
<tr role="row" class="odd">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Phone Number</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.phoneNumber}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.lastUpdatedTime}}
|
|
||||||
<tr role="row" class="even">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Last Update</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.lastUpdatedTime}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
{{/zone}}
|
|
||||||
|
|
||||||
|
|
||||||
{{#zone "device-opetations"}}
|
{{#zone "device-opetations"}}
|
||||||
{{#if device.isNotRemoved}}
|
{{#if device.isNotRemoved}}
|
||||||
<div style="background: #11375B; color: #fff; padding: 10px; margin-bottom: 5px">
|
<div class="operation-container">
|
||||||
Operations
|
<div class="operation-title">
|
||||||
</div>
|
<h4>Device Operations</h4>
|
||||||
<div class="add-margin-top-4x">
|
</div>
|
||||||
{{unit "cdmf.unit.device.type.android.operation-bar" device=device
|
{{unit "cdmf.unit.device.type.android.operation-bar" device=device
|
||||||
backendApiUri=backendApiUri autoCompleteParams=autoCompleteParams}}
|
backendApiUri=backendApiUri autoCompleteParams=autoCompleteParams}}
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/zone}}
|
{{/zone}}
|
||||||
|
|
||||||
{{#zone "device-details-tab-injected"}}
|
{{#zone "device-details"}}
|
||||||
<li role="presentation" class="list-group-item">
|
{{#if device.deviceInfoAvailable}}
|
||||||
<a href="#policy_compliance_tab" role="tab" data-toggle="tab"
|
{{#if device.BatteryLevel}}
|
||||||
aria-controls="policy_compliance_tab">
|
<p><i class="icon fw fw-battery fw-2x"></i> <span>{{device.BatteryLevel.value}}%</span></p>
|
||||||
<i class="icon fw fw-policy"></i><span class="hidden-sm">Policy Compliance</span>
|
{{/if}}
|
||||||
</a>
|
{{#if device.ramUsage}}
|
||||||
</li>
|
<p><i class="icon fw fw-hardware fw-2x fw-rotate-90"></i> <span>{{device.ramUsage.value}}%</span></p>
|
||||||
<li role="presentation" class="list-group-item location_tab">
|
{{/if}}
|
||||||
<a href="#device_location_tab" role="tab" data-toggle="tab"
|
{{#if device.internalMemory}}
|
||||||
data-lat="{{device.location.latitude}}"
|
<p><i class="icon fw fw-hdd fw-2x fw-rotate-90"></i> <span>{{device.internalMemory.usage}}</span>
|
||||||
data-long="{{device.location.longitude}}"
|
<span class="memory-amt">GB/{{device.internalMemory.total}}GB</span></p>
|
||||||
aria-controls="device_location_tab"
|
{{/if}}
|
||||||
class="initGeoLocationLink">
|
{{#if device.externalMemory}}
|
||||||
<i class="icon fw fw-map-location"></i>
|
<p><i class="icon fw fw-usb-drive fw-2x"></i> <span>{{device.externalMemory.usage}}</span>
|
||||||
<span class="hidden-sm">Device Location</span>
|
<span class="memory-amt">GB/{{device.externalMemory.total}}GB</span></p>
|
||||||
</a>
|
{{/if}}
|
||||||
</li>
|
{{else}}
|
||||||
<li role="presentation" class="list-group-item">
|
<p>Battery, RAM and Storage related information are not
|
||||||
<a href="#installed_applications_tab" role="tab" data-toggle="tab"
|
available yet.</p>
|
||||||
aria-controls="installed_applications_tab">
|
{{/if}}
|
||||||
<i class="icon fw fw-application"></i><span class="hidden-sm">Installed Applications</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{{/zone}}
|
{{/zone}}
|
||||||
|
|
||||||
{{#zone "device-details-tab-contents"}}
|
{{#zone "device-details-tab-injected"}}
|
||||||
<div class="panel panel-default" role="tabpanel" id="device_details_tab">
|
<li><a data-toggle="tab" href="#location">Location</a></li>
|
||||||
<div class="panel-heading visible-xs collapsed" id="device_details">
|
<li><a data-toggle="tab" href="#app">Applications</a></li>
|
||||||
<h4 class="panel-title">
|
<li><a data-toggle="tab" href="#policy">Policy Compliance</a></li>
|
||||||
<a role="button" data-toggle="collapse" data-parent="#tabs"
|
|
||||||
href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
|
|
||||||
<i class="fw fw-mobile fw-2x"></i>
|
|
||||||
Device Details
|
|
||||||
<i class="caret-updown fw fw-down"></i>
|
|
||||||
</a>
|
|
||||||
</h4>
|
|
||||||
</div>
|
|
||||||
<div class="panel-heading display-none-xs">Device Details</div>
|
|
||||||
<div id="collapseOne" class="panel-collapse collapse in" role="tabpanel"
|
|
||||||
aria-labelledby="device_details">
|
|
||||||
<div class="panel-body ">
|
|
||||||
<div class="device-detail-body">
|
|
||||||
<!-- device summary -->
|
|
||||||
{{#if device.deviceInfoAvailable}}
|
|
||||||
{{#if device.BatteryLevel}}
|
|
||||||
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<div class="wr-stats-board-tile">
|
|
||||||
<div class="tile-name">BATTERY</div>
|
|
||||||
<div>
|
|
||||||
<div class="tile-icon"><i
|
|
||||||
class="fw fw-battery"></i></div>
|
|
||||||
<div class="tile-stats">
|
|
||||||
{{device.BatteryLevel
|
|
||||||
.value}} %
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
<!--{{#if device.cpuUsage}}-->
|
|
||||||
<!--<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">-->
|
|
||||||
<!--<div class="col-md-12">-->
|
|
||||||
<!--<div class="wr-stats-board-tile">-->
|
|
||||||
<!--<div class="tile-name">CPU Usage</div>-->
|
|
||||||
<!--<div>-->
|
|
||||||
<!--<div class="tile-icon"><i class="fw fw-dashboard"></i></div>-->
|
|
||||||
<!--<div class="tile-stats">-->
|
|
||||||
<!--{{device.cpuUsage.value}} %-->
|
|
||||||
<!--</div>-->
|
|
||||||
<!--</div>-->
|
|
||||||
<!--</div>-->
|
|
||||||
<!--</div>-->
|
|
||||||
<!--</div>-->
|
|
||||||
<!--{{/if}}-->
|
|
||||||
{{#if device.ramUsage}}
|
|
||||||
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<div class="wr-stats-board-tile">
|
|
||||||
<div class="tile-name">RAM Usage</div>
|
|
||||||
<div>
|
|
||||||
<div class="tile-icon"><i
|
|
||||||
class="fw fw-hardware"></i></div>
|
|
||||||
<div class="tile-stats">
|
|
||||||
{{device.ramUsage
|
|
||||||
.value}} %
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.internalMemory}}
|
|
||||||
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<div class="wr-stats-board-tile">
|
|
||||||
<div class="tile-name">Local Storage</div>
|
|
||||||
<div>
|
|
||||||
<div class="tile-icon"><i
|
|
||||||
class="fw fw-hdd"></i>
|
|
||||||
</div>
|
|
||||||
<div class="tile-stats">
|
|
||||||
{{device.internalMemory
|
|
||||||
.usage}} %
|
|
||||||
<span class="tile-stats-free">
|
|
||||||
TOTAL OF {{device.internalMemory
|
|
||||||
.total}} GB
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.externalMemory}}
|
|
||||||
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<div class="wr-stats-board-tile">
|
|
||||||
<div class="tile-name">External Storage</div>
|
|
||||||
<div>
|
|
||||||
<div class="tile-icon"><i
|
|
||||||
class="fw fw-usb-drive"></i></div>
|
|
||||||
<div class="tile-stats">
|
|
||||||
{{device.externalMemory
|
|
||||||
.usage}} %
|
|
||||||
<span class="tile-stats-free">
|
|
||||||
TOTAL OF {{device.externalMemory
|
|
||||||
.total}} GB
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
{{else}}
|
|
||||||
<div class="message message-info">
|
|
||||||
<h4 class="remove-margin">
|
|
||||||
<i class="icon fw fw-info"></i>
|
|
||||||
Battery, RAM and Storage related information are not
|
|
||||||
available yet.
|
|
||||||
</h4>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/zone}}
|
{{/zone}}
|
||||||
|
|
||||||
{{#zone "device-view-tab-injected-conents"}}
|
{{#zone "device-view-tab-injected-conents"}}
|
||||||
|
<div id="location" class="tab-pane fade">
|
||||||
|
{{#if device.location}}
|
||||||
|
{{unit "cdmf.unit.geo-dashboard" device=device noGeoFencing=false hideSearch=true}}
|
||||||
|
{{else}}
|
||||||
|
<div id="map-error" class="message message-warning">
|
||||||
|
<h4 class="remove-margin">
|
||||||
|
<i class="icon fw fw-warning"></i>
|
||||||
|
Device location information is not available.
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<p class="add-padding-5x"></p>
|
||||||
|
<p class="add-padding-5x"></p>
|
||||||
|
<p class="add-padding-5x"></p>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
<div id="app" class="tab-pane fade">
|
||||||
|
<div id="applications-list-container" data-public-uri="{{@unit.publicUri}}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="policy" class="tab-pane fade">
|
||||||
|
<div id="policy-list-container">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="panel panel-default visible-xs-block" role="tabpanel"
|
<div class="panel panel-default visible-xs-block" role="tabpanel"
|
||||||
id="policy_compliance_tab">
|
id="policy_compliance_tab">
|
||||||
<div class="panel-heading visible-xs collapsed" id="policy_compliance">
|
<div class="panel-heading visible-xs collapsed" id="policy_compliance">
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 6.8 KiB |
@ -307,6 +307,8 @@ var InitiateViewOption = null;
|
|||||||
viewModel["appContext"] = context;
|
viewModel["appContext"] = context;
|
||||||
var content = template(viewModel);
|
var content = template(viewModel);
|
||||||
$("#applications-list-container").html(content);
|
$("#applications-list-container").html(content);
|
||||||
|
var iconSource = $("#applications-list-container").data("public-uri") + "/img/android_app_icon.png";
|
||||||
|
$("#applications-list-container img").attr("src",iconSource);
|
||||||
} else {
|
} else {
|
||||||
$("#applications-list-container").html("<div class='message message-info'><h4><i class='icon fw fw-info'></i>No applications found.</h4>" +
|
$("#applications-list-container").html("<div class='message message-info'><h4><i class='icon fw fw-info'></i>No applications found.</h4>" +
|
||||||
"<p>Please try refreshing the list in a while.</p></div>");
|
"<p>Please try refreshing the list in a while.</p></div>");
|
||||||
|
|||||||
@ -1,31 +1,9 @@
|
|||||||
<div class="wr-app-listing">
|
{{#each applications}}
|
||||||
<div class="wr-applist">
|
<div class="application">
|
||||||
{{#each applications}}
|
<img src="">
|
||||||
<a style="text-align: center; width: 110px; height: 140px;">
|
<div class="app-info">
|
||||||
{{#equal platform "android"}}<i class="icon fw fw-android"></i>{{/equal}}
|
<h4>{{name}}</h4>
|
||||||
{{#equal platform "ios"}}<i class="icon fw fw-apple"></i>{{/equal}}
|
<p>v{{version}}</p>
|
||||||
{{#equal platform "windows"}}<i class="icon fw fw-windows"></i>{{/equal}}
|
</div>
|
||||||
{{#equal isActive true}}
|
</div>
|
||||||
<span style="word-wrap: break-word;">
|
{{/each}}
|
||||||
<i class="fw fw-success icon-success" style="font-size: 14px;"></i>
|
|
||||||
Active
|
|
||||||
</span>
|
|
||||||
<span style="word-wrap: break-word;"><b>{{name}}</b></span>
|
|
||||||
<span style="word-wrap: break-word;"><b>V:{{version}}</b></span>
|
|
||||||
{{#if memoryUsage}}
|
|
||||||
<span style="word-wrap: break-word;">
|
|
||||||
Memory Usage
|
|
||||||
</span>
|
|
||||||
<span style="word-wrap: break-word;">
|
|
||||||
( {{memoryUsage}} Bytes )
|
|
||||||
</span>
|
|
||||||
{{/if}}
|
|
||||||
{{/equal}}
|
|
||||||
{{#equal isActive false}}
|
|
||||||
<span style="word-wrap: break-word;">{{name}}</span>
|
|
||||||
<span style="word-wrap: break-word;"><b>V:{{version}}</b></span>
|
|
||||||
{{/equal}}
|
|
||||||
</a>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|||||||
@ -1,63 +1,26 @@
|
|||||||
<div class="wr-list-group wr-sortable policy-list">
|
<div class="policy-item">
|
||||||
<span class="list-group-item" id="{{id}}">
|
{{#equal compliance "COMPLIANT"}}
|
||||||
<div class="row">
|
<i class="icon fw fw-success fw-3x policy-status"></i>
|
||||||
<div class="col-lg-3 clearfix">
|
{{/equal}}
|
||||||
<span class="wr-list-icon">
|
{{#equal compliance "NON-COMPLIANT"}}
|
||||||
{{#equal deviceType "android"}}
|
<i class="icon fw fw-warning fw-3x policy-status"></i>
|
||||||
<i class=" fw fw-android"></i>
|
{{/equal}}
|
||||||
{{/equal}}
|
<p>
|
||||||
{{#equal deviceType "ios"}}
|
<span class="policy-name">{{policy.policyName}}</span>
|
||||||
<i class=" fw fw-apple"></i>
|
<span class="policy-platform">{{deviceType}}</span>
|
||||||
{{/equal}}
|
</p>
|
||||||
{{#equal deviceType "windows"}}
|
<p>
|
||||||
<i class=" fw fw-windows"></i>
|
<span class="comp-type">Compliance Type : <strong>{{policy.compliance}}</strong></span>
|
||||||
{{/equal}}
|
<span class="ownership-type">Ownership type : <strong>{{policy.ownershipType}}</strong></span>
|
||||||
</span>
|
</p>
|
||||||
<span class="wr-list-desc">
|
<div class="actions">
|
||||||
<h3 class="wr-list-name">{{policy.policyName}}</h3>
|
<div class="action-btn ripple">
|
||||||
<span class="wr-list-username">{{deviceType}}</span>
|
<p><a href="{{appContext}}/policy/effective-policy?type={{deviceType}}&id={{deviceId}}">
|
||||||
</span>
|
<i class="icon fw fw-view fw-2x"></i> <span>View Policy </span></a></p>
|
||||||
</div>
|
|
||||||
<div class="col-lg-6">
|
|
||||||
<div class="row no-gutter">
|
|
||||||
<div class="wr-desc-list-configs col-lg-4">
|
|
||||||
<div>
|
|
||||||
<b>Ownership Type : </b> {{policy.ownershipType}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="wr-desc-list-configs col-lg-4">
|
|
||||||
<div>
|
|
||||||
<b>Compliance Type :</b> {{policy.compliance}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="wr-desc-list-configs col-lg-4">
|
|
||||||
<div>
|
|
||||||
<b>Compliance :</b>
|
|
||||||
{{#equal compliance "COMPLIANT"}}
|
|
||||||
<span><i class="fw fw-success icon-success"></i> Compliant</span>
|
|
||||||
{{/equal}}
|
|
||||||
{{#equal compliance "NON-COMPLIANT"}}
|
|
||||||
<span><i class="fw fw-warning icon-danger"></i> Not Compliant</span>
|
|
||||||
{{/equal}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-3">
|
|
||||||
<span class="list-group-item-actions">
|
|
||||||
<a href="{{appContext}}/policy/effective-policy?type={{deviceType}}&id={{deviceId}}" class="cu-btn-inner
|
|
||||||
policy-view-link" data-id="{{id}}">
|
|
||||||
<span class="fw-stack">
|
|
||||||
<i class="fw fw-circle-outline fw-stack-2x"></i>
|
|
||||||
<i class="fw fw-view fw-stack-1x"></i>
|
|
||||||
</span>
|
|
||||||
View
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table class="table table-striped table-hover table-bordered display data-table" id="policy-compliance-table">
|
<table class="table table-striped table-hover table-bordered display data-table" id="policy-compliance-table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="sort-row">
|
<tr class="sort-row">
|
||||||
@ -77,4 +40,4 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
<br class="c-both" />
|
<br class="c-both" />
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@ -51,6 +51,7 @@
|
|||||||
|
|
||||||
<div class="operation" data-operation-code="{{operation}}">
|
<div class="operation" data-operation-code="{{operation}}">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-5 col-md-6 col-centered">
|
<div class="col-lg-5 col-md-6 col-centered">
|
||||||
<h3>
|
<h3>
|
||||||
@ -65,6 +66,11 @@
|
|||||||
{{description}}
|
{{description}}
|
||||||
<br>
|
<br>
|
||||||
</h4>
|
</h4>
|
||||||
|
|
||||||
|
<div id="operation-error-msg" class="alert alert-danger hidden" role="alert">
|
||||||
|
<i class="icon fw fw-error"></i><span></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div id="operation-form">
|
<div id="operation-form">
|
||||||
<form action="{{params.0.uri}}" method="{{params.0.method}}"
|
<form action="{{params.0.uri}}" method="{{params.0.method}}"
|
||||||
style="padding-bottom: 20px;"
|
style="padding-bottom: 20px;"
|
||||||
|
|||||||
@ -27,6 +27,11 @@ function operationSelect(selection) {
|
|||||||
showPopup();
|
showPopup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var resetLoader = function () {
|
||||||
|
$("#btnSend").removeClass("hidden");
|
||||||
|
$('#lbl-execution').addClass("hidden");
|
||||||
|
};
|
||||||
|
|
||||||
function submitForm(formId) {
|
function submitForm(formId) {
|
||||||
$("#btnSend").addClass("hidden");
|
$("#btnSend").addClass("hidden");
|
||||||
$("#lbl-execution").removeClass("hidden");
|
$("#lbl-execution").removeClass("hidden");
|
||||||
@ -48,9 +53,9 @@ function submitForm(formId) {
|
|||||||
} else if (input.data("param-type") == "form") {
|
} else if (input.data("param-type") == "form") {
|
||||||
var prefix = (uriencodedFormStr == "") ? "" : "&";
|
var prefix = (uriencodedFormStr == "") ? "" : "&";
|
||||||
uriencodedFormStr += prefix + input.attr("id") + "=" + input.val();
|
uriencodedFormStr += prefix + input.attr("id") + "=" + input.val();
|
||||||
if(input.attr("type") == "text"){
|
if (input.attr("type") == "text") {
|
||||||
payload[input.attr("id")] = input.val();
|
payload[input.attr("id")] = input.val();
|
||||||
} else if(input.attr("type") == "checkbox"){
|
} else if (input.attr("type") == "checkbox") {
|
||||||
payload[input.attr("id")] = input.is(":checked");
|
payload[input.attr("id")] = input.is(":checked");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -58,71 +63,74 @@ function submitForm(formId) {
|
|||||||
uri += uriencodedQueryStr;
|
uri += uriencodedQueryStr;
|
||||||
var httpMethod = form.attr("method").toUpperCase();
|
var httpMethod = form.attr("method").toUpperCase();
|
||||||
//var contentType = form.attr("enctype");
|
//var contentType = form.attr("enctype");
|
||||||
|
var validaterString = validatePayload(operationCode, payload);
|
||||||
|
|
||||||
if (contentType == undefined || contentType == "") {
|
if (validaterString == "OK") {
|
||||||
contentType = "application/x-www-form-urlencoded";
|
|
||||||
payload = uriencodedFormStr;
|
|
||||||
}
|
|
||||||
|
|
||||||
//setting responses callbacks
|
if (contentType == undefined || contentType == "") {
|
||||||
var defaultStatusClasses = "fw fw-stack-1x";
|
contentType = "application/x-www-form-urlencoded";
|
||||||
var content = $("#operation-response-template").find(".content");
|
payload = uriencodedFormStr;
|
||||||
var title = content.find("#title");
|
|
||||||
var statusIcon = content.find("#status-icon");
|
|
||||||
var description = content.find("#description");
|
|
||||||
description.html("");
|
|
||||||
|
|
||||||
var resetLoader = function () {
|
|
||||||
$("#btnSend").removeClass("hidden");
|
|
||||||
$('#lbl-execution').addClass("hidden");
|
|
||||||
};
|
|
||||||
|
|
||||||
var successCallBack = function (response) {
|
|
||||||
var res = response;
|
|
||||||
try {
|
|
||||||
res = JSON.parse(response).messageFromServer;
|
|
||||||
} catch (err) {
|
|
||||||
//do nothing
|
|
||||||
}
|
}
|
||||||
title.html("Operation Triggered!");
|
|
||||||
statusIcon.attr("class", defaultStatusClasses + " fw-check");
|
//setting responses callbacks
|
||||||
description.html(res);
|
var defaultStatusClasses = "fw fw-stack-1x";
|
||||||
// console.log("success!");
|
var content = $("#operation-response-template").find(".content");
|
||||||
resetLoader();
|
var title = content.find("#title");
|
||||||
$(modalPopupContent).html(content.html());
|
var statusIcon = content.find("#status-icon");
|
||||||
};
|
var description = content.find("#description");
|
||||||
var errorCallBack = function (response) {
|
description.html("");
|
||||||
// console.log(response);
|
|
||||||
title.html("An Error Occurred!");
|
var successCallBack = function (response) {
|
||||||
statusIcon.attr("class", defaultStatusClasses + " fw-error");
|
var res = response;
|
||||||
var reason = (response.responseText == "null")?response.statusText:response.responseText;
|
try {
|
||||||
try {
|
res = JSON.parse(response).messageFromServer;
|
||||||
reason = JSON.parse(reason).message;
|
} catch (err) {
|
||||||
} catch (err) {
|
//do nothing
|
||||||
//do nothing
|
}
|
||||||
|
title.html("Operation Triggered!");
|
||||||
|
statusIcon.attr("class", defaultStatusClasses + " fw-check");
|
||||||
|
description.html(res);
|
||||||
|
// console.log("success!");
|
||||||
|
resetLoader();
|
||||||
|
$(modalPopupContent).html(content.html());
|
||||||
|
};
|
||||||
|
var errorCallBack = function (response) {
|
||||||
|
// console.log(response);
|
||||||
|
title.html("An Error Occurred!");
|
||||||
|
statusIcon.attr("class", defaultStatusClasses + " fw-error");
|
||||||
|
var reason = (response.responseText == "null") ? response.statusText : response.responseText;
|
||||||
|
try {
|
||||||
|
reason = JSON.parse(reason).message;
|
||||||
|
} catch (err) {
|
||||||
|
//do nothing
|
||||||
|
}
|
||||||
|
description.html(reason);
|
||||||
|
// console.log("Error!");
|
||||||
|
resetLoader();
|
||||||
|
$(modalPopupContent).html(content.html());
|
||||||
|
};
|
||||||
|
//executing http request
|
||||||
|
if (httpMethod == "GET") {
|
||||||
|
invokerUtil.get(uri, successCallBack, errorCallBack, contentType);
|
||||||
|
} else if (httpMethod == "POST") {
|
||||||
|
var deviceList = [deviceId];
|
||||||
|
payload = generatePayload(operationCode, payload, deviceList);
|
||||||
|
invokerUtil.post(uri, payload, successCallBack, errorCallBack, contentType);
|
||||||
|
} else if (httpMethod == "PUT") {
|
||||||
|
invokerUtil.put(uri, payload, successCallBack, errorCallBack, contentType);
|
||||||
|
} else if (httpMethod == "DELETE") {
|
||||||
|
invokerUtil.delete(uri, successCallBack, errorCallBack, contentType);
|
||||||
|
} else {
|
||||||
|
title.html("An Error Occurred!");
|
||||||
|
statusIcon.attr("class", defaultStatusClasses + " fw-error");
|
||||||
|
description.html("This operation requires http method: " + httpMethod + " which is not supported yet!");
|
||||||
|
resetLoader();
|
||||||
|
$(modalPopupContent).html(content.html());
|
||||||
}
|
}
|
||||||
description.html(reason);
|
|
||||||
// console.log("Error!");
|
|
||||||
resetLoader();
|
|
||||||
$(modalPopupContent).html(content.html());
|
|
||||||
};
|
|
||||||
//executing http request
|
|
||||||
if (httpMethod == "GET") {
|
|
||||||
invokerUtil.get(uri, successCallBack, errorCallBack, contentType);
|
|
||||||
} else if (httpMethod == "POST") {
|
|
||||||
var deviceList = [deviceId];
|
|
||||||
payload = generatePayload(operationCode, payload, deviceList);
|
|
||||||
invokerUtil.post(uri, payload, successCallBack, errorCallBack, contentType);
|
|
||||||
} else if (httpMethod == "PUT") {
|
|
||||||
invokerUtil.put(uri, payload, successCallBack, errorCallBack, contentType);
|
|
||||||
} else if (httpMethod == "DELETE") {
|
|
||||||
invokerUtil.delete(uri, successCallBack, errorCallBack, contentType);
|
|
||||||
} else {
|
} else {
|
||||||
title.html("An Error Occurred!");
|
|
||||||
statusIcon.attr("class", defaultStatusClasses + " fw-error");
|
|
||||||
description.html("This operation requires http method: " + httpMethod + " which is not supported yet!");
|
|
||||||
resetLoader();
|
resetLoader();
|
||||||
$(modalPopupContent).html(content.html());
|
$(".modal #operation-error-msg span").text(validaterString);
|
||||||
|
$(".modal #operation-error-msg").removeClass("hidden");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -161,6 +169,21 @@ var operationTypeConstants = {
|
|||||||
"COMMAND": "command"
|
"COMMAND": "command"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function validatePayload(operationCode, payload) {
|
||||||
|
console.log(payload);
|
||||||
|
var returnVal = "OK";
|
||||||
|
switch (operationCode) {
|
||||||
|
case "NOTIFICATION":
|
||||||
|
if (!payload.messageText) {
|
||||||
|
returnVal = "Message Body Can't be empty !";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
return returnVal;
|
||||||
|
}
|
||||||
|
|
||||||
var generatePayload = function (operationCode, operationData, deviceList) {
|
var generatePayload = function (operationCode, operationData, deviceList) {
|
||||||
var payload;
|
var payload;
|
||||||
@ -170,40 +193,40 @@ var generatePayload = function (operationCode, operationData, deviceList) {
|
|||||||
operationType = operationTypeConstants["PROFILE"];
|
operationType = operationTypeConstants["PROFILE"];
|
||||||
payload = {
|
payload = {
|
||||||
"operation": {
|
"operation": {
|
||||||
"CAMERA" : operationData["cameraEnabled"],
|
"CAMERA": operationData["cameraEnabled"],
|
||||||
"DISALLOW_ADJUST_VOLUME" : operationData["disallowAdjustVolumeEnabled"],
|
"DISALLOW_ADJUST_VOLUME": operationData["disallowAdjustVolumeEnabled"],
|
||||||
"DISALLOW_CONFIG_BLUETOOTH" : operationData["disallowConfigBluetooth"],
|
"DISALLOW_CONFIG_BLUETOOTH": operationData["disallowConfigBluetooth"],
|
||||||
"DISALLOW_CONFIG_CELL_BROADCASTS" : operationData["disallowConfigCellBroadcasts"],
|
"DISALLOW_CONFIG_CELL_BROADCASTS": operationData["disallowConfigCellBroadcasts"],
|
||||||
"DISALLOW_CONFIG_CREDENTIALS" : operationData["disallowConfigCredentials"],
|
"DISALLOW_CONFIG_CREDENTIALS": operationData["disallowConfigCredentials"],
|
||||||
"DISALLOW_CONFIG_MOBILE_NETWORKS" : operationData["disallowConfigMobileNetworks"],
|
"DISALLOW_CONFIG_MOBILE_NETWORKS": operationData["disallowConfigMobileNetworks"],
|
||||||
"DISALLOW_CONFIG_TETHERING" : operationData["disallowConfigTethering"],
|
"DISALLOW_CONFIG_TETHERING": operationData["disallowConfigTethering"],
|
||||||
"DISALLOW_CONFIG_VPN" : operationData["disallowConfigVpn"],
|
"DISALLOW_CONFIG_VPN": operationData["disallowConfigVpn"],
|
||||||
"DISALLOW_CONFIG_WIFI" : operationData["disallowConfigWifi"],
|
"DISALLOW_CONFIG_WIFI": operationData["disallowConfigWifi"],
|
||||||
"DISALLOW_APPS_CONTROL" : operationData["disallowAppControl"],
|
"DISALLOW_APPS_CONTROL": operationData["disallowAppControl"],
|
||||||
"DISALLOW_CREATE_WINDOWS" : operationData["disallowCreateWindows"],
|
"DISALLOW_CREATE_WINDOWS": operationData["disallowCreateWindows"],
|
||||||
"DISALLOW_CROSS_PROFILE_COPY_PASTE" : operationData["disallowCrossProfileCopyPaste"],
|
"DISALLOW_CROSS_PROFILE_COPY_PASTE": operationData["disallowCrossProfileCopyPaste"],
|
||||||
"DISALLOW_DEBUGGING_FEATURES" : operationData["disallowDebugging"],
|
"DISALLOW_DEBUGGING_FEATURES": operationData["disallowDebugging"],
|
||||||
"DISALLOW_FACTORY_RESET" : operationData["disallowFactoryReset"],
|
"DISALLOW_FACTORY_RESET": operationData["disallowFactoryReset"],
|
||||||
"DISALLOW_ADD_USER" : operationData["disallowAddUser"],
|
"DISALLOW_ADD_USER": operationData["disallowAddUser"],
|
||||||
"DISALLOW_INSTALL_APPS" : operationData["disallowInstallApps"],
|
"DISALLOW_INSTALL_APPS": operationData["disallowInstallApps"],
|
||||||
"DISALLOW_INSTALL_UNKNOWN_SOURCES" : operationData["disallowInstallUnknownSources"],
|
"DISALLOW_INSTALL_UNKNOWN_SOURCES": operationData["disallowInstallUnknownSources"],
|
||||||
"DISALLOW_MODIFY_ACCOUNTS" : operationData["disallowModifyAccounts"],
|
"DISALLOW_MODIFY_ACCOUNTS": operationData["disallowModifyAccounts"],
|
||||||
"DISALLOW_MOUNT_PHYSICAL_MEDIA" : operationData["disallowMountPhysicalMedia"],
|
"DISALLOW_MOUNT_PHYSICAL_MEDIA": operationData["disallowMountPhysicalMedia"],
|
||||||
"DISALLOW_NETWORK_RESET" : operationData["disallowNetworkReset"],
|
"DISALLOW_NETWORK_RESET": operationData["disallowNetworkReset"],
|
||||||
"DISALLOW_OUTGOING_BEAM" : operationData["disallowOutgoingBeam"],
|
"DISALLOW_OUTGOING_BEAM": operationData["disallowOutgoingBeam"],
|
||||||
"DISALLOW_OUTGOING_CALLS" : operationData["disallowOutgoingCalls"],
|
"DISALLOW_OUTGOING_CALLS": operationData["disallowOutgoingCalls"],
|
||||||
"DISALLOW_REMOVE_USER" : operationData["disallowRemoveUser"],
|
"DISALLOW_REMOVE_USER": operationData["disallowRemoveUser"],
|
||||||
"DISALLOW_SAFE_BOOT" : operationData["disallowSafeBoot"],
|
"DISALLOW_SAFE_BOOT": operationData["disallowSafeBoot"],
|
||||||
"DISALLOW_SHARE_LOCATION" : operationData["disallowLocationSharing"],
|
"DISALLOW_SHARE_LOCATION": operationData["disallowLocationSharing"],
|
||||||
"DISALLOW_SMS" : operationData["disallowSMS"],
|
"DISALLOW_SMS": operationData["disallowSMS"],
|
||||||
"DISALLOW_UNINSTALL_APPS" : operationData["disallowUninstallApps"],
|
"DISALLOW_UNINSTALL_APPS": operationData["disallowUninstallApps"],
|
||||||
"DISALLOW_UNMUTE_MICROPHONE" : operationData["disallowUnmuteMicrophone"],
|
"DISALLOW_UNMUTE_MICROPHONE": operationData["disallowUnmuteMicrophone"],
|
||||||
"DISALLOW_USB_FILE_TRANSFER" : operationData["disallowUSBFileTransfer"],
|
"DISALLOW_USB_FILE_TRANSFER": operationData["disallowUSBFileTransfer"],
|
||||||
"ALLOW_PARENT_PROFILE_APP_LINKING" : operationData["disallowParentProfileAppLinking"],
|
"ALLOW_PARENT_PROFILE_APP_LINKING": operationData["disallowParentProfileAppLinking"],
|
||||||
"ENSURE_VERIFY_APPS" : operationData["ensureVerifyApps"],
|
"ENSURE_VERIFY_APPS": operationData["ensureVerifyApps"],
|
||||||
"AUTO_TIME" : operationData["enableAutoTime"],
|
"AUTO_TIME": operationData["enableAutoTime"],
|
||||||
"SET_SCREEN_CAPTURE_DISABLED" : operationData["disableScreenCapture"],
|
"SET_SCREEN_CAPTURE_DISABLED": operationData["disableScreenCapture"],
|
||||||
"SET_STATUS_BAR_DISABLED" : operationData["disableStatusBar"]
|
"SET_STATUS_BAR_DISABLED": operationData["disableStatusBar"]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
@ -211,7 +234,7 @@ var generatePayload = function (operationCode, operationData, deviceList) {
|
|||||||
operationType = operationTypeConstants["PROFILE"];
|
operationType = operationTypeConstants["PROFILE"];
|
||||||
payload = {
|
payload = {
|
||||||
"operation": {
|
"operation": {
|
||||||
"lockCode" : operationData["lockCode"]
|
"lockCode": operationData["lockCode"]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
@ -219,7 +242,7 @@ var generatePayload = function (operationCode, operationData, deviceList) {
|
|||||||
operationType = operationTypeConstants["PROFILE"];
|
operationType = operationTypeConstants["PROFILE"];
|
||||||
payload = {
|
payload = {
|
||||||
"operation": {
|
"operation": {
|
||||||
"encrypted" : operationData["encryptStorageEnabled"]
|
"encrypted": operationData["encryptStorageEnabled"]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
@ -228,8 +251,8 @@ var generatePayload = function (operationCode, operationData, deviceList) {
|
|||||||
payload = {
|
payload = {
|
||||||
"operation": {
|
"operation": {
|
||||||
//"message" : operationData["message"]
|
//"message" : operationData["message"]
|
||||||
"messageText": operationData["messageText"],
|
"messageTitle": operationData["messageTitle"],
|
||||||
"messageTitle": operationData["messageTitle"]
|
"messageText": operationData["messageText"]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
@ -237,8 +260,8 @@ var generatePayload = function (operationCode, operationData, deviceList) {
|
|||||||
operationType = operationTypeConstants["PROFILE"];
|
operationType = operationTypeConstants["PROFILE"];
|
||||||
payload = {
|
payload = {
|
||||||
"operation": {
|
"operation": {
|
||||||
"schedule" : operationData["schedule"],
|
"schedule": operationData["schedule"],
|
||||||
"server" : operationData["server"]
|
"server": operationData["server"]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
@ -246,7 +269,7 @@ var generatePayload = function (operationCode, operationData, deviceList) {
|
|||||||
operationType = operationTypeConstants["PROFILE"];
|
operationType = operationTypeConstants["PROFILE"];
|
||||||
payload = {
|
payload = {
|
||||||
"operation": {
|
"operation": {
|
||||||
"pin" : operationData["pin"]
|
"pin": operationData["pin"]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
@ -255,15 +278,15 @@ var generatePayload = function (operationCode, operationData, deviceList) {
|
|||||||
payload = {
|
payload = {
|
||||||
"operation": {
|
"operation": {
|
||||||
"ssid": operationData["wifiSSID"],
|
"ssid": operationData["wifiSSID"],
|
||||||
"type": operationData["wifiType"],
|
"type": operationData["wifiType"],
|
||||||
"password" : operationData["wifiPassword"],
|
"password": operationData["wifiPassword"],
|
||||||
"eap" : operationData["wifiEAP"],
|
"eap": operationData["wifiEAP"],
|
||||||
"phase2" : operationData["wifiPhase2"],
|
"phase2": operationData["wifiPhase2"],
|
||||||
"provisioning" : operationData["wifiProvisioning"],
|
"provisioning": operationData["wifiProvisioning"],
|
||||||
"identity" : operationData["wifiIdentity"],
|
"identity": operationData["wifiIdentity"],
|
||||||
"anonymousIdentity" : operationData["wifiAnoIdentity"],
|
"anonymousIdentity": operationData["wifiAnoIdentity"],
|
||||||
"cacert" : operationData["wifiCaCert"],
|
"cacert": operationData["wifiCaCert"],
|
||||||
"cacertName" : operationData["wifiCaCertName"]
|
"cacertName": operationData["wifiCaCertName"]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
@ -282,8 +305,8 @@ var generatePayload = function (operationCode, operationData, deviceList) {
|
|||||||
operationType = operationTypeConstants["PROFILE"];
|
operationType = operationTypeConstants["PROFILE"];
|
||||||
payload = {
|
payload = {
|
||||||
"operation": {
|
"operation": {
|
||||||
"message" : operationData["lock-message"],
|
"message": operationData["lock-message"],
|
||||||
"isHardLockEnabled" : operationData["hard-lock"]
|
"isHardLockEnabled": operationData["hard-lock"]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
@ -375,39 +398,39 @@ var androidOperationConstants = {
|
|||||||
"LOCK_OPERATION_CODE": "DEVICE_LOCK",
|
"LOCK_OPERATION_CODE": "DEVICE_LOCK",
|
||||||
"UPGRADE_FIRMWARE": "UPGRADE_FIRMWARE",
|
"UPGRADE_FIRMWARE": "UPGRADE_FIRMWARE",
|
||||||
"DISALLOW_ADJUST_VOLUME": "DISALLOW_ADJUST_VOLUME",
|
"DISALLOW_ADJUST_VOLUME": "DISALLOW_ADJUST_VOLUME",
|
||||||
"DISALLOW_CONFIG_BLUETOOTH" : "DISALLOW_CONFIG_BLUETOOTH",
|
"DISALLOW_CONFIG_BLUETOOTH": "DISALLOW_CONFIG_BLUETOOTH",
|
||||||
"DISALLOW_CONFIG_CELL_BROADCASTS" : "DISALLOW_CONFIG_CELL_BROADCASTS",
|
"DISALLOW_CONFIG_CELL_BROADCASTS": "DISALLOW_CONFIG_CELL_BROADCASTS",
|
||||||
"DISALLOW_CONFIG_CREDENTIALS" : "DISALLOW_CONFIG_CREDENTIALS",
|
"DISALLOW_CONFIG_CREDENTIALS": "DISALLOW_CONFIG_CREDENTIALS",
|
||||||
"DISALLOW_CONFIG_MOBILE_NETWORKS" : "DISALLOW_CONFIG_MOBILE_NETWORKS",
|
"DISALLOW_CONFIG_MOBILE_NETWORKS": "DISALLOW_CONFIG_MOBILE_NETWORKS",
|
||||||
"DISALLOW_CONFIG_TETHERING" : "DISALLOW_CONFIG_TETHERING",
|
"DISALLOW_CONFIG_TETHERING": "DISALLOW_CONFIG_TETHERING",
|
||||||
"DISALLOW_CONFIG_VPN" : "DISALLOW_CONFIG_VPN",
|
"DISALLOW_CONFIG_VPN": "DISALLOW_CONFIG_VPN",
|
||||||
"DISALLOW_CONFIG_WIFI" : "DISALLOW_CONFIG_WIFI",
|
"DISALLOW_CONFIG_WIFI": "DISALLOW_CONFIG_WIFI",
|
||||||
"DISALLOW_APPS_CONTROL" : "DISALLOW_APPS_CONTROL",
|
"DISALLOW_APPS_CONTROL": "DISALLOW_APPS_CONTROL",
|
||||||
"DISALLOW_CREATE_WINDOWS" : "DISALLOW_CREATE_WINDOWS",
|
"DISALLOW_CREATE_WINDOWS": "DISALLOW_CREATE_WINDOWS",
|
||||||
"DISALLOW_CROSS_PROFILE_COPY_PASTE" : "DISALLOW_CROSS_PROFILE_COPY_PASTE",
|
"DISALLOW_CROSS_PROFILE_COPY_PASTE": "DISALLOW_CROSS_PROFILE_COPY_PASTE",
|
||||||
"DISALLOW_DEBUGGING_FEATURES" : "DISALLOW_DEBUGGING_FEATURES",
|
"DISALLOW_DEBUGGING_FEATURES": "DISALLOW_DEBUGGING_FEATURES",
|
||||||
"DISALLOW_FACTORY_RESET" : "DISALLOW_FACTORY_RESET",
|
"DISALLOW_FACTORY_RESET": "DISALLOW_FACTORY_RESET",
|
||||||
"DISALLOW_ADD_USER" : "DISALLOW_ADD_USER",
|
"DISALLOW_ADD_USER": "DISALLOW_ADD_USER",
|
||||||
"DISALLOW_INSTALL_APPS" : "DISALLOW_INSTALL_APPS",
|
"DISALLOW_INSTALL_APPS": "DISALLOW_INSTALL_APPS",
|
||||||
"DISALLOW_INSTALL_UNKNOWN_SOURCES" : "DISALLOW_INSTALL_UNKNOWN_SOURCES",
|
"DISALLOW_INSTALL_UNKNOWN_SOURCES": "DISALLOW_INSTALL_UNKNOWN_SOURCES",
|
||||||
"DISALLOW_MODIFY_ACCOUNTS" : "DISALLOW_MODIFY_ACCOUNTS",
|
"DISALLOW_MODIFY_ACCOUNTS": "DISALLOW_MODIFY_ACCOUNTS",
|
||||||
"DISALLOW_MOUNT_PHYSICAL_MEDIA" : "DISALLOW_MOUNT_PHYSICAL_MEDIA",
|
"DISALLOW_MOUNT_PHYSICAL_MEDIA": "DISALLOW_MOUNT_PHYSICAL_MEDIA",
|
||||||
"DISALLOW_NETWORK_RESET" : "DISALLOW_NETWORK_RESET",
|
"DISALLOW_NETWORK_RESET": "DISALLOW_NETWORK_RESET",
|
||||||
"DISALLOW_OUTGOING_BEAM" : "DISALLOW_OUTGOING_BEAM",
|
"DISALLOW_OUTGOING_BEAM": "DISALLOW_OUTGOING_BEAM",
|
||||||
"DISALLOW_OUTGOING_CALLS" : "DISALLOW_OUTGOING_CALLS",
|
"DISALLOW_OUTGOING_CALLS": "DISALLOW_OUTGOING_CALLS",
|
||||||
"DISALLOW_REMOVE_USER" : "DISALLOW_REMOVE_USER",
|
"DISALLOW_REMOVE_USER": "DISALLOW_REMOVE_USER",
|
||||||
"DISALLOW_SAFE_BOOT" : "DISALLOW_SAFE_BOOT",
|
"DISALLOW_SAFE_BOOT": "DISALLOW_SAFE_BOOT",
|
||||||
"DISALLOW_SHARE_LOCATION" : "DISALLOW_SHARE_LOCATION",
|
"DISALLOW_SHARE_LOCATION": "DISALLOW_SHARE_LOCATION",
|
||||||
"DISALLOW_SMS" : "DISALLOW_SMS",
|
"DISALLOW_SMS": "DISALLOW_SMS",
|
||||||
"DISALLOW_UNINSTALL_APPS" : "DISALLOW_UNINSTALL_APPS",
|
"DISALLOW_UNINSTALL_APPS": "DISALLOW_UNINSTALL_APPS",
|
||||||
"DISALLOW_UNMUTE_MICROPHONE" : "DISALLOW_UNMUTE_MICROPHONE",
|
"DISALLOW_UNMUTE_MICROPHONE": "DISALLOW_UNMUTE_MICROPHONE",
|
||||||
"DISALLOW_USB_FILE_TRANSFER" : "DISALLOW_USB_FILE_TRANSFER",
|
"DISALLOW_USB_FILE_TRANSFER": "DISALLOW_USB_FILE_TRANSFER",
|
||||||
"ALLOW_PARENT_PROFILE_APP_LINKING" : "ALLOW_PARENT_PROFILE_APP_LINKING",
|
"ALLOW_PARENT_PROFILE_APP_LINKING": "ALLOW_PARENT_PROFILE_APP_LINKING",
|
||||||
"ENSURE_VERIFY_APPS" : "ENSURE_VERIFY_APPS",
|
"ENSURE_VERIFY_APPS": "ENSURE_VERIFY_APPS",
|
||||||
"AUTO_TIME" : "AUTO_TIME",
|
"AUTO_TIME": "AUTO_TIME",
|
||||||
"SET_SCREEN_CAPTURE_DISABLED" : "SET_SCREEN_CAPTURE_DISABLED",
|
"SET_SCREEN_CAPTURE_DISABLED": "SET_SCREEN_CAPTURE_DISABLED",
|
||||||
"SET_STATUS_BAR_DISABLED" : "SET_STATUS_BAR_DISABLED",
|
"SET_STATUS_BAR_DISABLED": "SET_STATUS_BAR_DISABLED",
|
||||||
"APPLICATION_OPERATION_CODE":"APP-RESTRICTION",
|
"APPLICATION_OPERATION_CODE": "APP-RESTRICTION",
|
||||||
"SYSTEM_UPDATE_POLICY_CODE": "SYSTEM_UPDATE_POLICY",
|
"SYSTEM_UPDATE_POLICY_CODE": "SYSTEM_UPDATE_POLICY",
|
||||||
"KIOSK_APPS_CODE": "KIOSK_APPS"
|
"KIOSK_APPS_CODE": "KIOSK_APPS"
|
||||||
};
|
};
|
||||||
@ -106,13 +106,13 @@
|
|||||||
"formParams": [
|
"formParams": [
|
||||||
{
|
{
|
||||||
"type": "text",
|
"type": "text",
|
||||||
"id": "messageText",
|
"id": "messageTitle",
|
||||||
"optional": false,
|
"optional": false,
|
||||||
"label": "Title Here..."
|
"label": "Title Here..."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "text",
|
"type": "text",
|
||||||
"id": "messageTitle",
|
"id": "messageText",
|
||||||
"optional": false,
|
"optional": false,
|
||||||
"label": "Message Here..."
|
"label": "Message Here..."
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,398 +6,87 @@
|
|||||||
{{#if deviceFound}}
|
{{#if deviceFound}}
|
||||||
{{#if isAuthorized}}
|
{{#if isAuthorized}}
|
||||||
|
|
||||||
|
{{#zone "device-thumbnail"}}
|
||||||
|
<i class="fw fw-windows device-type fw-1x"></i>
|
||||||
|
{{/zone}}
|
||||||
|
|
||||||
{{#zone "device-details-header"}}
|
{{#zone "device-details-header"}}
|
||||||
<h1 class="page-sub-title device-id device-select"
|
<h1 class="device-id"
|
||||||
data-deviceid="{{device.deviceIdentifier}}" data-type="{{device.type}}"
|
data-deviceid="{{device.deviceIdentifier}}"
|
||||||
data-ownership="{{device.ownership}}"
|
data-type="{{device.type}}"
|
||||||
data-owner="{{device.owner}}" data-status="{{device.status}}">
|
data-ownership="{{device.ownership}}"
|
||||||
Device {{device.name}}
|
data-owner="{{device.owner}}"
|
||||||
{{#if device.model}}
|
data-status="{{device.status}}">
|
||||||
<span class="lbl-device">
|
{{device.owner}}'s {{device.name}}
|
||||||
( {{device.vendor}} {{device.model}} )
|
<a id="device-info-tooltip" href="#" data-toggle="tooltip" title="Device Identifier: {{device.deviceIdentifier}}
|
||||||
</span>
|
Firmware Build Date: {{device.osBuildDate}}
|
||||||
{{/if}}
|
UDID: {{device.udid}}">
|
||||||
|
<i class="fw fw-info"></i>
|
||||||
|
</a>
|
||||||
</h1>
|
</h1>
|
||||||
|
{{#if device.model}}
|
||||||
|
<h4>{{device.vendor}} {{device.model}}</h4>
|
||||||
|
{{/if}}
|
||||||
|
<h4>Ownership - <strong>{{device.ownership}}</strong></h4>
|
||||||
|
<h4>Device is
|
||||||
|
<strong>
|
||||||
|
{{#equal device.status "ACTIVE"}}Active{{/equal}}
|
||||||
|
{{#equal device.status "INACTIVE"}}Inactive{{/equal}}
|
||||||
|
{{#equal device.status "BLOCKED"}}Blocked{{/equal}}
|
||||||
|
{{#equal device.status "REMOVED"}}Removed{{/equal}}
|
||||||
|
{{#equal device.status "UNREACHABLE"}}Unreachable{{/equal}}
|
||||||
|
</strong>
|
||||||
|
</h4>
|
||||||
{{/zone}}
|
{{/zone}}
|
||||||
|
|
||||||
{{#zone "overview-section"}}
|
|
||||||
<div class="media-body asset-desc add-padding-left-5x">
|
|
||||||
<div style="background: #11375B; color: #fff; padding: 10px; margin-bottom: 5px">Device
|
|
||||||
Overview
|
|
||||||
</div>
|
|
||||||
<table class="table table-responsive table-striped" id="members">
|
|
||||||
<tbody>
|
|
||||||
{{#if device.deviceIdentifier}}
|
|
||||||
<tr role="row" class="odd">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Device ID</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.deviceIdentifier}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.name}}
|
|
||||||
<tr role="row" class="even">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Name</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.name}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.vendor}}
|
|
||||||
{{#if device.model}}
|
|
||||||
<tr role="row" class="odd">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Model</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.vendor}}
|
|
||||||
{{device.model}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.status}}
|
|
||||||
<tr role="row" class="even">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Status</td>
|
|
||||||
<td style="padding:10px 15px;">
|
|
||||||
{{#if permissions.CHANGE_DEVICE_STATUS}}
|
|
||||||
{{#equal device.status "ACTIVE"}}<span><i id="statusIcon"
|
|
||||||
class="fw fw-success icon-success"></i>
|
|
||||||
<a href="#" id="status" data-type="select" data-pk="1"
|
|
||||||
data-title="Select status"
|
|
||||||
selectedValue="Active"></a>
|
|
||||||
</span>{{/equal}}
|
|
||||||
{{#equal device.status "INACTIVE"}}<span><i id="statusIcon"
|
|
||||||
class="fw fw-warning icon-warning"></i>
|
|
||||||
<a href="#" id="status" data-type="select" data-pk="1"
|
|
||||||
data-title="Select status"
|
|
||||||
selectedValue="Inactive"></a>
|
|
||||||
</span>{{/equal}}
|
|
||||||
{{#equal device.status "BLOCKED"}}<span><i id="statusIcon"
|
|
||||||
class="fw fw-remove icon-danger"></i>
|
|
||||||
<a href="#" id="status" data-type="select" data-pk="1"
|
|
||||||
data-title="Select status"
|
|
||||||
selectedValue="Blocked"></a>
|
|
||||||
</span>{{/equal}}
|
|
||||||
{{#equal device.status "REMOVED"}}<span><i id="statusIcon"
|
|
||||||
class="fw fw-delete icon-danger"></i>
|
|
||||||
<a href="#" id="status" data-type="select" data-pk="1"
|
|
||||||
data-title="Select status"
|
|
||||||
selectedValue="Removed"></a>
|
|
||||||
</span>{{/equal}}
|
|
||||||
{{else}}
|
|
||||||
{{#equal device.status "ACTIVE"}}<span><i
|
|
||||||
class="fw fw-success icon-success"></i> Active</span>{{/equal}}
|
|
||||||
{{#equal device.status "INACTIVE"}}<span><i
|
|
||||||
class="fw fw-warning icon-warning"></i> Inactive</span>{{/equal}}
|
|
||||||
{{#equal device.status "BLOCKED"}}<span><i
|
|
||||||
class="fw fw-remove icon-danger"></i> Blocked</span>{{/equal}}
|
|
||||||
{{#equal device.status "REMOVED"}}<span><i
|
|
||||||
class="fw fw-delete icon-danger"></i> Removed</span>{{/equal}}
|
|
||||||
{{/if}}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.owner}}
|
|
||||||
<tr role="row" class="odd">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Owner</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.owner}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.ownership}}
|
|
||||||
<tr role="row" class="even">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Ownership</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.ownership}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.imei}}
|
|
||||||
<tr role="row" class="even">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">IMEI</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.imei}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.udid}}
|
|
||||||
<tr role="row" class="odd">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">UDID</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.udid}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.osBuildDate}}
|
|
||||||
<tr role="row" class="even">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Firmware Build
|
|
||||||
Date
|
|
||||||
</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.osBuildDate}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.phoneNumber}}
|
|
||||||
<tr role="row" class="odd">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Phone Number</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.phoneNumber}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.lastUpdatedTime}}
|
|
||||||
<tr role="row" class="even">
|
|
||||||
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Last Update</td>
|
|
||||||
<td style="padding:10px 15px;">{{device.lastUpdatedTime}}</td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
{{/zone}}
|
|
||||||
|
|
||||||
|
|
||||||
{{#zone "device-opetations"}}
|
{{#zone "device-opetations"}}
|
||||||
{{#if device.isNotRemoved}}
|
{{#if device.isNotRemoved}}
|
||||||
<div style="background: #11375B; color: #fff; padding: 10px; margin-bottom: 5px">
|
<div class="operation-container">
|
||||||
Operations
|
<div class="operation-title">
|
||||||
</div>
|
<h4>Device Operations</h4>
|
||||||
<div class="add-margin-top-4x">
|
</div>
|
||||||
{{unit "cdmf.unit.device.type.windows.new.operation-bar" device=device
|
{{unit "cdmf.unit.device.type.windows.new.operation-bar" device=device
|
||||||
backendApiUri=backendApiUri autoCompleteParams=autoCompleteParams}}
|
backendApiUri=backendApiUri autoCompleteParams=autoCompleteParams}}
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/zone}}
|
{{/zone}}
|
||||||
|
|
||||||
{{#zone "device-details-tab-injected"}}
|
{{#zone "device-details"}}
|
||||||
<li role="presentation" class="list-group-item">
|
{{#if device.deviceInfoAvailable}}
|
||||||
<a href="#policy_compliance_tab" role="tab" data-toggle="tab"
|
{{#if device.BatteryLevel}}
|
||||||
aria-controls="policy_compliance_tab">
|
<p><i class="icon fw fw-battery fw-2x"></i> <span>{{device.BatteryLevel.value}}%</span></p>
|
||||||
<i class="icon fw fw-policy"></i><span class="hidden-sm">Policy Compliance</span>
|
{{/if}}
|
||||||
</a>
|
{{#if device.ramUsage}}
|
||||||
</li>
|
<p><i class="icon fw fw-hardware fw-2x fw-rotate-90"></i> <span>{{device.ramUsage.value}} MB</span></p>
|
||||||
<li role="presentation" class="list-group-item">
|
{{/if}}
|
||||||
<a href="#device_location_tab" role="tab" data-toggle="tab"
|
{{#if device.internalMemory}}
|
||||||
data-lat="{{device.location.latitude}}"
|
<p><i class="icon fw fw-hdd fw-2x fw-rotate-90"></i> <span>{{device.internalMemory.value}} GB</span>
|
||||||
data-long="{{device.location.longitude}}"
|
</p>
|
||||||
aria-controls="device_location_tab">
|
{{/if}}
|
||||||
<i class="icon fw fw-map-location"></i><span
|
{{else}}
|
||||||
class="hidden-sm">Device Location</span>
|
<p>Battery, RAM and Storage related information are not
|
||||||
</a>
|
available yet.</p>
|
||||||
</li>
|
{{/if}}
|
||||||
<!--li role="presentation" class="list-group-item">
|
|
||||||
<a href="#installed_applications_tab" role="tab" data-toggle="tab"
|
|
||||||
aria-controls="installed_applications_tab">
|
|
||||||
<i class="icon fw fw-application"></i><span class="hidden-sm">Installed Applications</span>
|
|
||||||
</a>
|
|
||||||
</li-->
|
|
||||||
{{/zone}}
|
{{/zone}}
|
||||||
|
|
||||||
{{#zone "device-details-tab-contents"}}
|
{{#zone "device-details-tab-injected"}}
|
||||||
<div class="panel panel-default" role="tabpanel" id="device_details_tab">
|
<li><a data-toggle="tab" href="#location">Location</a></li>
|
||||||
<div class="panel-heading visible-xs collapsed" id="device_details">
|
<li><a data-toggle="tab" href="#app">Applications</a></li>
|
||||||
<h4 class="panel-title">
|
<li><a data-toggle="tab" href="#policy">Policy Compliance</a></li>
|
||||||
<a role="button" data-toggle="collapse" data-parent="#tabs"
|
|
||||||
href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
|
|
||||||
<i class="fw fw-mobile fw-2x"></i>
|
|
||||||
Device Details
|
|
||||||
<i class="caret-updown fw fw-down"></i>
|
|
||||||
</a>
|
|
||||||
</h4>
|
|
||||||
</div>
|
|
||||||
<div class="panel-heading display-none-xs">Device Details</div>
|
|
||||||
<div id="collapseOne" class="panel-collapse collapse in" role="tabpanel"
|
|
||||||
aria-labelledby="device_details">
|
|
||||||
<div class="panel-body ">
|
|
||||||
<div class="device-detail-body">
|
|
||||||
<!-- device summary -->
|
|
||||||
{{#if device.deviceInfoAvailable}}
|
|
||||||
<!--{{#if device.BatteryLevel}}-->
|
|
||||||
<!--<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">-->
|
|
||||||
<!--<div class="col-md-12">-->
|
|
||||||
<!--<div class="wr-stats-board-tile">-->
|
|
||||||
<!--<div class="tile-name">Remaining BATTERY</div>-->
|
|
||||||
<!--<div>-->
|
|
||||||
<!--<div class="tile-icon"><i-->
|
|
||||||
<!--class="fw fw-battery"></i></div>-->
|
|
||||||
<!--<div class="tile-stats">-->
|
|
||||||
<!--{{device.BatteryLevel.value}}-->
|
|
||||||
<!--</div>-->
|
|
||||||
<!--</div>-->
|
|
||||||
<!--</div>-->
|
|
||||||
<!--</div>-->
|
|
||||||
<!--</div>-->
|
|
||||||
<!--{{/if}}-->
|
|
||||||
<!--{{#if device.cpuUsage}}-->
|
|
||||||
<!--<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">-->
|
|
||||||
<!--<div class="col-md-12">-->
|
|
||||||
<!--<div class="wr-stats-board-tile">-->
|
|
||||||
<!--<div class="tile-name">CPU Usage</div>-->
|
|
||||||
<!--<div>-->
|
|
||||||
<!--<div class="tile-icon"><i class="fw fw-dashboard"></i></div>-->
|
|
||||||
<!--<div class="tile-stats">-->
|
|
||||||
<!--{{device.cpuUsage.value}} %-->
|
|
||||||
<!--</div>-->
|
|
||||||
<!--</div>-->
|
|
||||||
<!--</div>-->
|
|
||||||
<!--</div>-->
|
|
||||||
<!--</div>-->
|
|
||||||
<!--{{/if}}-->
|
|
||||||
{{#if device.ramUsage}}
|
|
||||||
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<div class="wr-stats-board-tile">
|
|
||||||
<div class="tile-name">Available RAM</div>
|
|
||||||
<div>
|
|
||||||
<div class="tile-icon"><i
|
|
||||||
class="fw fw-hardware"></i></div>
|
|
||||||
<div class="tile-stats">
|
|
||||||
{{device.ramUsage
|
|
||||||
.value}} MB
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
{{#if device.internalMemory}}
|
|
||||||
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<div class="wr-stats-board-tile">
|
|
||||||
<div class="tile-name">Available Local Storage</div>
|
|
||||||
<div>
|
|
||||||
<div class="tile-icon"><i
|
|
||||||
class="fw fw-hdd"></i>
|
|
||||||
</div>
|
|
||||||
<div class="tile-stats">
|
|
||||||
{{device.internalMemory
|
|
||||||
.value}} GB
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
{{else}}
|
|
||||||
<div class="message message-info">
|
|
||||||
<h4 class="remove-margin">
|
|
||||||
<i class="icon fw fw-info"></i>
|
|
||||||
Battery, RAM and Storage related information are not
|
|
||||||
available yet.
|
|
||||||
</h4>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/zone}}
|
{{/zone}}
|
||||||
|
|
||||||
{{#zone "device-view-tab-injected-conents"}}
|
{{#zone "device-view-tab-injected-conents"}}
|
||||||
<div class="panel panel-default visible-xs-block" role="tabpanel"
|
<div id="location" class="tab-pane fade ">
|
||||||
id="policy_compliance_tab">
|
<iframe width="100%" height="100%" frameborder="0" style="border:0"
|
||||||
<div class="panel-heading visible-xs collapsed" id="policy_compliance">
|
src="https://www.google.com/maps/embed/v1/place?q=place_id:ChIJk_gsqyVZ4joR4UxR7brwMnA&key=AIzaSyChgf100i4rBz6neCNRyK1D05g9VLY8jvo" allowfullscreen></iframe>
|
||||||
<h4 class="panel-title">
|
|
||||||
<a role="button"
|
|
||||||
data-toggle="collapse" data-parent="#tabs" href="#collapseTwo"
|
|
||||||
aria-expanded="true" aria-controls="collapseTwo">
|
|
||||||
<i class="fw fw-policy fw-2x"></i>
|
|
||||||
Policy Compliance
|
|
||||||
<i class="caret-updown fw fw-down"></i>
|
|
||||||
</a>
|
|
||||||
</h4>
|
|
||||||
</div>
|
|
||||||
<div class="panel-heading display-none-xs">
|
|
||||||
Policy Compliance
|
|
||||||
|
|
||||||
<span>
|
|
||||||
<a href="javascript:void(0);" id="refresh-policy">
|
|
||||||
<i class="fw fw-refresh"></i>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div id="collapseTwo" class="panel-collapse collapse in" role="tabpanel"
|
|
||||||
aria-labelledby="policy_compliance">
|
|
||||||
<div class="panel-body ">
|
|
||||||
<span class="visible-xs add-padding-2x text-right">
|
|
||||||
<a href="javascript:void(0);" id="refresh-policy">
|
|
||||||
<i class="fw fw-refresh"></i>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
<div id="policy-spinner"
|
|
||||||
class="wr-advance-operations-init add-padding-bottom-2x add-padding-bottom-4x hidden">
|
|
||||||
<i class="fw fw-settings fw-spin fw-2x"></i>Loading Policy
|
|
||||||
Compliance...
|
|
||||||
</div>
|
|
||||||
<div id="policy-list-container">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div id="app" class="tab-pane fade">
|
||||||
<div class="panel panel-default visible-xs-block" role="tabpanel"
|
<div id="applications-list-container" data-public-uri="{{@unit.publicUri}}">
|
||||||
id="device_location_tab">
|
</div>
|
||||||
<div class="panel-heading visible-xs collapsed" id="device_location">
|
|
||||||
<h4 class="panel-title">
|
|
||||||
<a role="button" data-toggle="collapse" data-parent="#tabs"
|
|
||||||
href="#collapseThree" aria-expanded="true" aria-controls="collapseThree">
|
|
||||||
<i class="fw fw-map-location fw-2x"></i>
|
|
||||||
Device Location
|
|
||||||
<i class="caret-updown fw fw-down"></i>
|
|
||||||
</a>
|
|
||||||
</h4>
|
|
||||||
</div>
|
|
||||||
<div class="panel-heading display-none-xs">Device Location</div>
|
|
||||||
<div id="collapseThree" class="panel-collapse collapse in" role="tabpanel"
|
|
||||||
aria-labelledby="device_location">
|
|
||||||
<div class="panel-body">
|
|
||||||
{{#if device.location}}
|
|
||||||
<div id="device-location"
|
|
||||||
data-lat="{{device.location.latitude}}"
|
|
||||||
data-long="{{device.location.longitude}}">
|
|
||||||
</div>
|
|
||||||
{{else}}
|
|
||||||
<div id="map-error" class="message message-warning">
|
|
||||||
<h4 class="remove-margin">
|
|
||||||
<i class="icon fw fw-warning"></i>
|
|
||||||
Device location information is not available.
|
|
||||||
</h4>
|
|
||||||
</div>
|
|
||||||
<p class="add-padding-5x"></p>
|
|
||||||
<p class="add-padding-5x"></p>
|
|
||||||
<p class="add-padding-5x"></p>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div id="policy" class="tab-pane fade">
|
||||||
<div class="panel panel-default visible-xs-block" role="tabpanel"
|
<div id="policy-list-container">
|
||||||
id="installed_applications_tab">
|
</div>
|
||||||
<div class="panel-heading visible-xs collapsed" id="installed_applications">
|
|
||||||
<h4 class="panel-title">
|
|
||||||
<a role="button" data-toggle="collapse" data-parent="#tabs"
|
|
||||||
href="#collapseFour" aria-expanded="true" aria-controls="collapseFour">
|
|
||||||
<i class="fw fw-application fw-2x"></i>
|
|
||||||
Installed Applications
|
|
||||||
<i class="caret-updown fw fw-down"></i>
|
|
||||||
</a>
|
|
||||||
</h4>
|
|
||||||
</div>
|
|
||||||
<div class="panel-heading display-none-xs">
|
|
||||||
Installed Applications
|
|
||||||
|
|
||||||
<span>
|
|
||||||
<a href="javascript:void(0);" id="refresh-apps">
|
|
||||||
<i class="fw fw-refresh"></i>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div id="collapseFour" class="panel-collapse collapse in" role="tabpanel"
|
|
||||||
aria-labelledby="installed_applications">
|
|
||||||
<div class="panel-body">
|
|
||||||
<span class="visible-xs add-padding-2x text-right">
|
|
||||||
<a href="javascript:void(0);" id="refresh-apps">
|
|
||||||
<i class="fw fw-refresh"></i>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
<div id="apps-spinner" class="wr-advance-operations-init hidden">
|
|
||||||
<i class="fw fw-settings fw-spin fw-2x"></i> Loading Applications
|
|
||||||
List...
|
|
||||||
</div>
|
|
||||||
<div id="applications-list-container">
|
|
||||||
<div class="message message-info">
|
|
||||||
<h4>
|
|
||||||
<i class="icon fw fw-info"></i>
|
|
||||||
No applications found.
|
|
||||||
</h4>
|
|
||||||
<p>Please try refreshing in a while.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{/zone}}
|
{{/zone}}
|
||||||
@ -434,4 +123,4 @@
|
|||||||
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true"></script>
|
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true"></script>
|
||||||
{{js "js/load-map.js"}}
|
{{js "js/load-map.js"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/zone}}
|
{{/zone}}
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 7.3 KiB |
@ -291,6 +291,8 @@ var InitiateViewOption = null;
|
|||||||
viewModel["appContext"] = context;
|
viewModel["appContext"] = context;
|
||||||
var content = template(viewModel);
|
var content = template(viewModel);
|
||||||
$("#applications-list-container").html(content);
|
$("#applications-list-container").html(content);
|
||||||
|
var iconSource = $("#applications-list-container").data("public-uri") + "/img/device_icons/windows_app_icon.png";
|
||||||
|
$("#applications-list-container img").attr("src",iconSource);
|
||||||
} else {
|
} else {
|
||||||
$("#applications-list-container").
|
$("#applications-list-container").
|
||||||
html("<div class='message message-info'><h4><i class='icon fw fw-info'></i>No applications found.</h4>" +
|
html("<div class='message message-info'><h4><i class='icon fw fw-info'></i>No applications found.</h4>" +
|
||||||
|
|||||||
@ -1,31 +1,9 @@
|
|||||||
<div class="wr-app-listing">
|
{{#each applications}}
|
||||||
<div class="wr-applist">
|
<div class="application">
|
||||||
{{#each applications}}
|
<img src="">
|
||||||
<a style="text-align: center; width: 110px; height: 140px;">
|
<div class="app-info">
|
||||||
{{#equal platform "android"}}<i class="icon fw fw-android"></i>{{/equal}}
|
<h4>{{name}}</h4>
|
||||||
{{#equal platform "ios"}}<i class="icon fw fw-apple"></i>{{/equal}}
|
<p>v{{version}}</p>
|
||||||
{{#equal platform "windows"}}<i class="icon fw fw-windows"></i>{{/equal}}
|
</div>
|
||||||
{{#equal isActive true}}
|
</div>
|
||||||
<span style="word-wrap: break-word;">
|
{{/each}}
|
||||||
<i class="fw fw-success icon-success" style="font-size: 14px;"></i>
|
|
||||||
Active
|
|
||||||
</span>
|
|
||||||
<span style="word-wrap: break-word;"><b>{{name}}</b></span>
|
|
||||||
<span style="word-wrap: break-word;"><b>V:{{version}}</b></span>
|
|
||||||
{{#if memoryUsage}}
|
|
||||||
<span style="word-wrap: break-word;">
|
|
||||||
Memory Usage
|
|
||||||
</span>
|
|
||||||
<span style="word-wrap: break-word;">
|
|
||||||
( {{memoryUsage}} Bytes )
|
|
||||||
</span>
|
|
||||||
{{/if}}
|
|
||||||
{{/equal}}
|
|
||||||
{{#equal isActive false}}
|
|
||||||
<span style="word-wrap: break-word;">{{name}}</span>
|
|
||||||
<span style="word-wrap: break-word;"><b>V:{{version}}</b></span>
|
|
||||||
{{/equal}}
|
|
||||||
</a>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|||||||
@ -1,61 +1,27 @@
|
|||||||
<div class="wr-list-group wr-sortable policy-list">
|
<div class="policy-item">
|
||||||
<span class="list-group-item" id="{{id}}">
|
{{#equal compliance "COMPLIANT"}}
|
||||||
<div class="row">
|
<i class="icon fw fw-success fw-3x policy-status"></i>
|
||||||
<div class="col-lg-3 clearfix">
|
{{/equal}}
|
||||||
<span class="wr-list-icon">
|
{{#equal compliance "NON-COMPLIANT"}}
|
||||||
{{#equal deviceType "android"}}
|
<i class="icon fw fw-warning fw-3x policy-status"></i>
|
||||||
<i class=" fw fw-android"></i>
|
{{/equal}}
|
||||||
{{/equal}}
|
<p>
|
||||||
{{#equal deviceType "ios"}}
|
<span class="policy-name">{{policy.policyName}}</span>
|
||||||
<i class=" fw fw-apple"></i>
|
<span class="policy-platform">{{deviceType}}</span>
|
||||||
{{/equal}}
|
</p>
|
||||||
{{#equal deviceType "windows"}}
|
<p>
|
||||||
<i class=" fw fw-windows"></i>
|
<span class="comp-type">Compliance Type : <strong>{{policy.compliance}}</strong></span>
|
||||||
{{/equal}}
|
<span class="ownership-type">Ownership type : <strong>{{policy.ownershipType}}</strong></span>
|
||||||
</span>
|
</p>
|
||||||
<span class="wr-list-desc">
|
<div class="actions">
|
||||||
<h3 class="wr-list-name">{{policy.policyName}}</h3>
|
<div class="action-btn ripple">
|
||||||
<span class="wr-list-username">{{deviceType}}</span>
|
<p><a href="{{appContext}}/policy/effective-policy?type={{deviceType}}&id={{deviceId}}">
|
||||||
</span>
|
<i class="icon fw fw-view fw-2x"></i> <span>View Policy </span></a></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-6">
|
<div class="action-btn ripple">
|
||||||
<div class="row no-gutter">
|
<p><i class="icon fw fw-refresh fw-2x fw-flip-horizontal"></i> <span>Revoke Policy </span></p>
|
||||||
<div class="wr-desc-list-configs col-lg-4">
|
|
||||||
<div>
|
|
||||||
<b>Ownership Type : </b> {{policy.ownershipType}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="wr-desc-list-configs col-lg-4">
|
|
||||||
<div>
|
|
||||||
<b>Compliance Type :</b> {{policy.compliance}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="wr-desc-list-configs col-lg-4">
|
|
||||||
<div>
|
|
||||||
<b>Compliance :</b>
|
|
||||||
{{#equal compliance "COMPLIANT"}}
|
|
||||||
<span><i class="fw fw-success icon-success"></i> Compliant</span>
|
|
||||||
{{/equal}}
|
|
||||||
{{#equal compliance "NON-COMPLIANT"}}
|
|
||||||
<span><i class="fw fw-warning icon-danger"></i> Not Compliant</span>
|
|
||||||
{{/equal}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-3">
|
|
||||||
<span class="list-group-item-actions">
|
|
||||||
<a href="{{appContext}}/policy/effective-policy?type={{deviceType}}&id={{deviceId}}" class="cu-btn-inner policy-view-link" data-id="{{id}}">
|
|
||||||
<span class="fw-stack">
|
|
||||||
<i class="fw fw-circle-outline fw-stack-2x"></i>
|
|
||||||
<i class="fw fw-view fw-stack-1x"></i>
|
|
||||||
</span>
|
|
||||||
View
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
<table class="table table-striped table-hover table-bordered display data-table" id="policy-compliance-table">
|
<table class="table table-striped table-hover table-bordered display data-table" id="policy-compliance-table">
|
||||||
<thead>
|
<thead>
|
||||||
@ -76,4 +42,4 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
<br class="c-both" />
|
<br class="c-both" />
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@ -21,5 +21,5 @@
|
|||||||
<property name="topic">carbon.super/raspberrypi/+/temperature</property>
|
<property name="topic">carbon.super/raspberrypi/+/temperature</property>
|
||||||
</from>
|
</from>
|
||||||
<mapping customMapping="disable" type="json"/>
|
<mapping customMapping="disable" type="json"/>
|
||||||
<to streamName="org.wso2.iot.raspberrypi" version="1.0.0"/>
|
<to streamName="iot.per.device.stream.raspberrypi" version="1.0.0"/>
|
||||||
</eventReceiver>
|
</eventReceiver>
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "org.wso2.iot.raspberrypi",
|
"name": "iot.per.device.stream.raspberrypi",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"nickName": "raspberrypi",
|
"nickName": "raspberrypi",
|
||||||
"description": "Temperature data received from the raspberrypi",
|
"description": "Temperature data received from the raspberrypi",
|
||||||
@ -101,7 +101,7 @@ def main():
|
|||||||
print ("MQTT_LISTENER: MQTT_TOPIC is " + TOPIC_TO_SUBSCRIBE)
|
print ("MQTT_LISTENER: MQTT_TOPIC is " + TOPIC_TO_SUBSCRIBE)
|
||||||
|
|
||||||
global mqttClient
|
global mqttClient
|
||||||
mqttClient = mqtt.Client()
|
mqttClient = mqtt.Client(client_id="RaspberryPi Agent")
|
||||||
mqttClient.on_connect = on_connect
|
mqttClient.on_connect = on_connect
|
||||||
mqttClient.on_message = on_message
|
mqttClient.on_message = on_message
|
||||||
mqttClient.on_publish = on_publish
|
mqttClient.on_publish = on_publish
|
||||||
|
|||||||
@ -39,11 +39,16 @@ sudo apt-get update
|
|||||||
sudo apt-get install python-pip
|
sudo apt-get install python-pip
|
||||||
sudo pip install paho-mqtt
|
sudo pip install paho-mqtt
|
||||||
|
|
||||||
#installing ada
|
# installing ada
|
||||||
|
echo ===Installing ADA libraries
|
||||||
sudo apt-get install build-essential python-dev
|
sudo apt-get install build-essential python-dev
|
||||||
unzip Adafruit_Python_DHT
|
unzip Adafruit_Python_DHT
|
||||||
sudo python Adafruit_Python_DHT/setup.py install
|
cd Adafruit_Python_DHT
|
||||||
|
sudo python setup.py install
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# moving files to start the agent as Daemon
|
||||||
|
echo ===Moving files to start agent as Daemon
|
||||||
sudo cp $currentDir/deviceConfig.properties $currentDir/src
|
sudo cp $currentDir/deviceConfig.properties $currentDir/src
|
||||||
sudo cp -r $currentDir/src $destination
|
sudo cp -r $currentDir/src $destination
|
||||||
sudo chmod 755 $destination/src/RaspberryAgent.py
|
sudo chmod 755 $destination/src/RaspberryAgent.py
|
||||||
@ -51,4 +56,4 @@ sudo update-rc.d -f RaspberryService.sh remove
|
|||||||
sudo cp $currentDir/RaspberryService.sh /etc/init.d
|
sudo cp $currentDir/RaspberryService.sh /etc/init.d
|
||||||
sudo chmod 755 /etc/init.d/RaspberryService.sh
|
sudo chmod 755 /etc/init.d/RaspberryService.sh
|
||||||
sudo update-rc.d RaspberryService.sh defaults
|
sudo update-rc.d RaspberryService.sh defaults
|
||||||
sudo service RaspberryService.sh start
|
sudo service RaspberryService.sh start
|
||||||
Loading…
Reference in New Issue
Block a user