Merge pull request #396 from charithag/IoTS-1.0.0

Synced with master
This commit is contained in:
Charitha Goonetilleke 2016-11-01 15:56:20 +05:30 committed by GitHub
commit cc8f5d87a7
136 changed files with 5305 additions and 4241 deletions

View File

@ -18,11 +18,11 @@
<parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>extensions</artifactId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<artifactId>org.wso2.carbon.appmgt.mdm.osgiconnector</artifactId>
<packaging>bundle</packaging>
<name>WSO2 Carbon - App Manager WSO2 MDM OSGI Connector Component</name>

View File

@ -68,8 +68,8 @@ public class IOSApplicationOperationUtil {
appStoreApplication.setPreventBackupOfAppData((Boolean) application.getProperties().
get(MDMAppConstants.IOSConstants.IS_PREVENT_BACKUP));
appStoreApplication.setBundleId(application.getId());
appStoreApplication.setiTunesStoreID((Integer) application.getProperties().
get(MDMAppConstants.IOSConstants.I_TUNES_ID));
appStoreApplication.setiTunesStoreID(Integer.parseInt((String)application.getProperties().
get(MDMAppConstants.IOSConstants.I_TUNES_ID)));
operation.setCode(MDMAppConstants.IOSConstants.OPCODE_INSTALL_STORE_APPLICATION);
operation.setType(Operation.Type.COMMAND);
operation.setPayLoad(appStoreApplication.toJSON());
@ -106,7 +106,7 @@ public class IOSApplicationOperationUtil {
operation.setCode(MDMAppConstants.IOSConstants.OPCODE_REMOVE_APPLICATION);
operation.setType(Operation.Type.PROFILE);
RemoveApplication removeApplication = new RemoveApplication();
removeApplication.setBundleId(application.getIdentifier());
removeApplication.setBundleId(application.getPackageName());
operation.setPayLoad(removeApplication.toJSON());
return operation;
}

View File

@ -22,7 +22,7 @@
<parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>carbon-device-mgt-plugins-parent</artifactId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>

View File

@ -21,7 +21,7 @@
<parent>
<artifactId>androidsense-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -3,7 +3,7 @@
<parent>
<artifactId>androidsense-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -14,7 +14,7 @@
<parent>
<artifactId>androidsense-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -22,7 +22,7 @@
<parent>
<artifactId>androidsense-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -74,9 +74,9 @@
<div class="panel-body">
<div id="operations-spinner" class="wr-advance-operations-init hidden">
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading Operations Log . . .
<br>
<br>

View File

@ -41,7 +41,7 @@
</div>
<div class="wr-input-control wr-btn-grp">
<button id="save-general-btn" class="wr-btn" onclick="addConfiguration();">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Save&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Save
</button>
</div>
</div>

View File

@ -42,18 +42,18 @@
<ul class="list-unstyled">
<li class="padding-top-double">
<span class="circle">STEP 01</span>
&nbsp;&nbsp;&nbsp;Go ahead and click [Enroll Device].
Go ahead and click [Enroll Device].
</li>
<li class="padding-top-double">
<span class="circle">STEP 02</span>
&nbsp;&nbsp;&nbsp;You can either scan the QR code or directly download Android agent.
You can either scan the QR code or directly download Android agent.
</li>
<li class="padding-top-double">
<span class="circle">STEP 03</span>
&nbsp;&nbsp;&nbsp;Install Android agent into your Android Device.
Install Android agent into your Android Device.
</li>
<li class="padding-top-double"><span class="circle">STEP 04</span>
&nbsp;&nbsp;&nbsp;Proceed to [Prepare] section.
Proceed to [Prepare] section.
</ul>
<br>
<a href="#" class="download-link btn-operations">
@ -84,7 +84,7 @@
<div class="buttons">
<a href="#" id="device-401-link" class="blue-button">
Goto Login Page
</a>&nbsp;&nbsp;
</a>
<a href="#" onclick="hidePopup();" class="btn-operations">
Cancel
</a>
@ -147,17 +147,17 @@
<ul class="list-unstyled">
<li class="padding-top-double">
<span class="circle">01</span>
&nbsp;&nbsp;&nbsp;Connect Android device to network.
Connect Android device to network.
</li>
<li class="padding-top-double">
<span class="circle">02</span>
&nbsp;&nbsp;&nbsp;Start Android Sense app in your device.
Start Android Sense app in your device.
</li>
<li class="padding-top-double">
<span class="circle">03</span>
&nbsp;&nbsp;&nbsp;Fill login form with the credentials.
<i>(Use server URL as [&nbsp;https://&lt;WSO2_IoT_SERVER_HOST&gt;:&lt;
HTTPS_SERVER_PORT&gt;&nbsp;] and click on
Fill login form with the credentials.
<i>(Use server URL as [ https://&lt;WSO2_IoT_SERVER_HOST&gt;:&lt;
HTTPS_SERVER_PORT&gt; ] and click on
<strong>Register Device</strong> button.)</i>
</li>
<li>
@ -169,7 +169,7 @@
<li class="padding-top-double">
<span class="circle">04</span>
&nbsp;&nbsp;&nbsp;Once the device is enrolled, click on <strong>[+]</strong> button to
Once the device is enrolled, click on <strong>[+]</strong> button to
select the sensors.
<a href="{{@unit.publicUri}}/images/selectSensorView.png" target="_blank"
class="padding-top-double">
@ -178,7 +178,7 @@
</li>
<li class="padding-top-double">
<span class="circle">05</span>
&nbsp;&nbsp;&nbsp;Click on <i>[Publish data]</i> button to publish sensor readings to
Click on <i>[Publish data]</i> button to publish sensor readings to
IoT server.
<a href="{{@unit.publicUri}}/images/publishDataView.png" target="_blank"
class="padding-top-double">
@ -198,7 +198,7 @@
<i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-right-arrow fw-stack-1x"></i>
</span>
&nbsp;&nbsp;&nbsp;You can view all your connected devices
You can view all your connected devices
<a href="{{@app.context}}/devices">[Device Management]</a> page.
</li>
<li class="padding-top-double">
@ -206,14 +206,14 @@
<i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-right-arrow fw-stack-1x"></i>
</span>
&nbsp;&nbsp;&nbsp;You can select any one of your connected devices for available
You can select any one of your connected devices for available
operations and Real-Time data monitoring.
</li>
<li class="padding-top-double">
<span class="fw-stack fw-lg margin-right">
<i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-right-arrow fw-stack-1x"></i>
</span>&nbsp;&nbsp;&nbsp;For historical analytics of sensor data navigate to device
</span> For historical analytics of sensor data navigate to device
analytics page.
</li>
</ul>
@ -237,7 +237,7 @@
<i class="fw fw-add fw-stack-1x fw-inverse"></i>
</span>
</span>
&nbsp;&nbsp;Add your new mobile device to {{@app.conf.appName}}
Add your new mobile device to {{@app.conf.appName}}
</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>

View File

@ -22,7 +22,7 @@
<parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>iot-plugins</artifactId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -21,7 +21,7 @@
<parent>
<artifactId>arduino-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -21,7 +21,7 @@
<parent>
<artifactId>arduino-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -22,7 +22,7 @@
<parent>
<artifactId>arduino-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -23,7 +23,7 @@
<parent>
<artifactId>arduino-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -64,9 +64,9 @@
<div class="panel-body">
<div id="operations-spinner" class="wr-advance-operations-init hidden">
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading Operations Log . . .
<br>
<br>

View File

@ -52,7 +52,7 @@
</div>
<div class="wr-input-control wr-btn-grp">
<button id="save-general-btn" class="wr-btn" onclick="addConfiguration();">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Save&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Save
</button>
</div>
</div>

View File

@ -41,24 +41,24 @@
<ul class="list-unstyled">
<li class="padding-top-double">
<span class="circle">ITEM 01</span>
&nbsp;&nbsp;&nbsp;Arduino UNO Board.
Arduino UNO Board.
</li>
<li class="padding-top-double">
<span class="circle">ITEM 02</span>
&nbsp;&nbsp;&nbsp;Adafruit Wifi Shield for Arduino.
Adafruit Wifi Shield for Arduino.
</li>
<li class="padding-top-double">
<span class="circle">ITEM 03</span>
&nbsp;&nbsp;&nbsp;LED bulb connected to Pin 13.
LED bulb connected to Pin 13.
<i>(If not available, will use the one on the board.)</i>
</li>
<li class="padding-top-double">
<span class="circle">ITEM 04</span>
&nbsp;&nbsp;&nbsp;Resister( e.g 330 ohms )
Resister( e.g 330 ohms )
</li>
<li class="padding-top-double">
<span class="circle">STEP 05</span>
&nbsp;&nbsp;&nbsp;Proceed to [Prepare] section.
Proceed to [Prepare] section.
</ul>
<br>
<a href="/api-store/apis/info?name={{@uriParams.deviceType}}&version=1.0.0&provider=admin"
@ -90,7 +90,7 @@
<input type="hidden" class="deviceType" name="deviceType"
value="{{@uriParams.deviceType}}"/>
<input type="hidden" class="sketchType" name="sketchType"
value="{{@uriParams.deviceType}}"/> &nbsp;&nbsp;
value="{{@uriParams.deviceType}}"/>
</div>
</div>
<div class="buttons" style="padding-bottom: 0px">
@ -134,7 +134,7 @@
<div class="buttons">
<a href="#" id="device-401-link" class="blue-button">
Goto Login Page
</a>&nbsp;&nbsp;
</a>
<a href="#" onclick="hidePopup();" class="btn-operations">
Cancel
</a>
@ -196,11 +196,11 @@
<ul class="list-unstyled">
<li class="padding-top-double">
<span class="circle">01</span>
&nbsp;&nbsp;&nbsp;Wifi-Shield mounted onto the Arduino-UNO board
Wifi-Shield mounted onto the Arduino-UNO board
</li>
<li class="padding-top-double">
<span class="circle">02</span>
&nbsp;&nbsp;&nbsp;Connect LED bulb to arduino as follows
Connect LED bulb to arduino as follows
<br/><br/>
<a href="{{@unit.publicUri}}/images/schematicsGuide.png" target="_blank">
<img src="{{@unit.publicUri}}/images/schematicsGuide.png" class="img-responsive">
@ -210,20 +210,20 @@
<li class="padding-top-double">
<span class="circle">03</span>
&nbsp;&nbsp;&nbsp;Download Arduino-Sketch from [Download Sketch] link above.
Download Arduino-Sketch from [Download Sketch] link above.
</li>
<li class="padding-top-double">
<span class="circle">04</span>
&nbsp;&nbsp;&nbsp;Unzip the downloaded Arduino Agent
Unzip the downloaded Arduino Agent
</li>
<li class="padding-top-double">
<span class="circle">05</span>
&nbsp;&nbsp;&nbsp;Create a folder called "ArduinoBoardSketch" and move all source files
Create a folder called "ArduinoBoardSketch" and move all source files
inside
</li>
<li class="padding-top-double">
<span class="circle">06</span>
&nbsp;&nbsp;&nbsp;Open ArduinoBoardSketch.h and provide appropriate values for
Open ArduinoBoardSketch.h and provide appropriate values for
<i>[WLAN_SSID]</i>,
<i>[WLAN_PASS]</i>,
<i>[SERVICE_PORT]</i>,
@ -233,22 +233,22 @@
</li>
<li class="padding-top-double">
<span class="circle">07</span>
&nbsp;&nbsp;&nbsp;Burn the sketch onto your Arduino board and let the program run.
Burn the sketch onto your Arduino board and let the program run.
</li>
<li class="padding-top-double">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class="fw-stack fw-lg margin-right">
<i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-right-arrow fw-stack-1x"></i>
</span>
&nbsp;&nbsp;&nbsp;Arduino will publish it's internal temperature to WSO2-IoT-Server
Arduino will publish it's internal temperature to WSO2-IoT-Server
<br/><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class="fw-stack fw-lg margin-right">
<i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-right-arrow fw-stack-1x"></i>
</span>
&nbsp;&nbsp;&nbsp;LED on <i>PIN 13</i> can be controlled from Device Management page.
LED on <i>PIN 13</i> can be controlled from Device Management page.
</li>
</ul>
<br>
@ -261,17 +261,17 @@
<ul class="list-unstyled">
<li class="padding-top-double">
<span class="circle">01</span>
&nbsp;&nbsp;&nbsp;You can view all your connected devices at
You can view all your connected devices at
<a href="{{@app.context}}/devices">[Device Management]</a> page.
</li>
<li class="padding-top-double">
<span class="circle">02</span>
&nbsp;&nbsp;&nbsp;Select one of connected devices and check for available control
Select one of connected devices and check for available control
operations and monitor Real-Time data.
</li>
<li class="padding-top-double">
<span class="circle">03</span>
&nbsp;&nbsp;&nbsp;You can also view analytics of the data published to IoT-Server by
You can also view analytics of the data published to IoT-Server by
navigating to Device Analytics page.
</li>
</ul>

View File

@ -22,7 +22,7 @@
<parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>iot-plugins</artifactId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -21,7 +21,7 @@
<parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>iot-analytics</artifactId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -22,7 +22,7 @@
<parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>iot-plugins</artifactId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -20,7 +20,7 @@
<parent>
<artifactId>iot-base-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -20,7 +20,7 @@
<parent>
<artifactId>iot-base-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -20,7 +20,7 @@
<parent>
<artifactId>iot-base-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -20,7 +20,7 @@
<parent>
<artifactId>iot-base-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -20,7 +20,7 @@
<parent>
<artifactId>iot-base-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -22,7 +22,7 @@
<parent>
<artifactId>iot-base-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -21,7 +21,7 @@
<parent>
<artifactId>iot-base-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -20,7 +20,7 @@
<parent>
<artifactId>iot-base-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -23,7 +23,7 @@
<parent>
<artifactId>iot-base-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -74,8 +74,8 @@
<input type="{{type}}" id="{{name}}" placeholder="{{name}}" class="form-control" data-param-type="query" value="{{value}}" />
<br />
{{/each}}
<button id="btnSend" type="button" onclick="submitForm('form-{{operation}}')" class="btn btn-default">&nbsp;&nbsp;&nbsp;&nbsp;Send
to Device&nbsp;&nbsp;&nbsp;&nbsp;</button>
<button id="btnSend" type="button" onclick="submitForm('form-{{operation}}')" class="btn btn-default"> Send
to Device </button>
<label id="lblSending" class="wr-input-label hidden"><i
class="fw fw-lifecycle fw-spin fw-2x"></i> Sending..</label>
<label id="lblSent" class="wr-input-label hidden"><i

View File

@ -157,7 +157,7 @@
<input id="user-roles-radio-btn" type="radio"
name="select-users-radio-btn" class="select-users-radio"
checked/>
<span class="helper">&nbsp;Set user role(s)</span>
<span class="helper"> Set user role(s)</span>
</label>
{{/if}}
{{#if permissions.LIST_USERS}}
@ -165,7 +165,7 @@
<input id="users-radio-btn" type="radio"
name="select-users-radio-btn"
class="select-users-radio"/>
<span class="helper">&nbsp;Set user(s)</span>
<span class="helper"> Set user(s)</span>
</label>
{{/if}}
<!--
@ -174,7 +174,7 @@
<input id="groups-radio-btn" type="radio"
name="select-users-radio-btn"
class="select-users-radio"/>
<span class="helper">&nbsp;Set groups(s)</span>
<span class="helper"> Set groups(s)</span>
</label>
{{/if}}
-->

View File

@ -23,7 +23,7 @@
<parent>
<artifactId>iot-base-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -22,7 +22,7 @@
<parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>iot-plugins</artifactId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -22,7 +22,7 @@
<parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>carbon-device-mgt-plugins-parent</artifactId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>

View File

@ -21,7 +21,7 @@
<parent>
<artifactId>raspberrypi-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -21,7 +21,7 @@
<parent>
<artifactId>raspberrypi-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -23,7 +23,7 @@
<parent>
<artifactId>raspberrypi-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -23,7 +23,7 @@
<parent>
<artifactId>raspberrypi-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -64,9 +64,9 @@
<div class="panel-body">
<div id="operations-spinner" class="wr-advance-operations-init hidden">
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading Operations Log . . .
<br>
<br>

View File

@ -62,7 +62,7 @@
</div>
<div class="wr-input-control wr-btn-grp">
<button id="save-general-btn" class="wr-btn" onclick="addConfiguration();">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Save&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Save
</button>
</div>
</div>

View File

@ -40,28 +40,28 @@
<ul class="list-unstyled">
<li class="padding-top-double">
<span class="circle">ITEM 01</span>
&nbsp;&nbsp;&nbsp;Raspberry Pi with SD Card(Internet Enabled [Wifi or Ethernet]).
Raspberry Pi with SD Card(Internet Enabled [Wifi or Ethernet]).
</li>
<li class="padding-top-double">
<span class="circle">ITEM 02</span>
&nbsp;&nbsp;&nbsp;Adafruit DHT11 Temperature Sensor.
Adafruit DHT11 Temperature Sensor.
</li>
<li class="padding-top-double">
<span class="circle">ITEM 03</span>
&nbsp;&nbsp;&nbsp;LED Bulb.
LED Bulb.
</li>
<li class="padding-top-double">
<span class="circle">ITEM 04</span>
&nbsp;&nbsp;&nbsp;Resister (eg : 470 ohm).
Resister (eg : 470 ohm).
</li>
<li class="padding-top-double">
<span class="circle">STEP 05</span>
&nbsp;&nbsp;&nbsp;Proceed to [Prepare] section.
Proceed to [Prepare] section.
</ul>
<br>
<a href="/api-store/apis/info?name={{@uriParams.deviceType}}&version=1.0.0&provider=admin"
class="btn-operations"
target="_blank"><i class="fw fw-api"></i> View API</i> &nbsp;
target="_blank"><i class="fw fw-api"></i> View API</i>
</a>
<a href="#" class="download-link btn-operations">
<i class="fw fw-download"></i>Download Agent
@ -93,11 +93,11 @@
</div>
<div class="buttons" style="padding-bottom: 0px">
<a class="btn btn-operations" onclick="downloadAgent()">Download Now</a>
&nbsp;&nbsp;
<a href="#" id="download-device-download-link"
class="btn btn-operations"> Copy Link
</a>
&nbsp;&nbsp;
</div>
</form>
</div>
@ -135,7 +135,7 @@
<div class="buttons">
<a href="#" id="device-401-link" class="blue-button">
Goto Login Page
</a>&nbsp;&nbsp;
</a>
<a href="#" onclick="hidePopup();" class="btn-operations">
Cancel
</a>
@ -195,43 +195,43 @@
<ul class="list-unstyled">
<li class="padding-top-double">
<span class="circle">01</span>
&nbsp;&nbsp;&nbsp;Connect RaspberryPi, DHT11 Temperature sensor and LED as per the
Connect RaspberryPi, DHT11 Temperature sensor and LED as per the
schematic below.
</li>
<li class="padding-top-double">
<span class="circle">02</span>
&nbsp;&nbsp;&nbsp;Ensure your RaspberryPi Board can connect to Internet.
Ensure your RaspberryPi Board can connect to Internet.
</li>
<li class="padding-top-double">
<span class="circle">03</span>
&nbsp;&nbsp;&nbsp;Download RaspberryPi Agent via [Download Agent] button above.
Download RaspberryPi Agent via [Download Agent] button above.
(Alternatively you can use the "curl" command to directly download the Agent to your
RaspberryPi.)
</li>
<li class="padding-top-double">
<span class="circle">04</span>
&nbsp;&nbsp;&nbsp;Copy downloaded Agent into your RaspberryPi.
Copy downloaded Agent into your RaspberryPi.
</li>
<li class="padding-top-double">
<span class="circle">05</span>
&nbsp;&nbsp;&nbsp;Unzip the downloaded Agent and start terminal to run below commands.
Unzip the downloaded Agent and start terminal to run below commands.
</li>
<li class="padding-top-double">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class="fw-stack fw-lg margin-right">
<i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-right-arrow fw-stack-1x"></i>
</span>
&nbsp;&nbsp;&nbsp;[sudo ./testAgent.sh] &nbsp;&nbsp; - &nbsp;&nbsp; Script to test agent
[sudo ./testAgent.sh] - Script to test agent
functionality.
</li>
<li class="padding-top-double">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class="fw-stack fw-lg margin-right">
<i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-right-arrow fw-stack-1x"></i>
</span>
&nbsp;&nbsp;&nbsp;[sudo ./startService.sh] &nbsp;&nbsp; - &nbsp;&nbsp; Use this to start
[sudo ./startService.sh] - Use this to start
agent as Daemon.
</li>
</ul>
@ -254,17 +254,17 @@
<ul class="list-unstyled">
<li class="padding-top-double">
<span class="circle">01</span>
&nbsp;&nbsp;&nbsp;You can view all your connected devices at
You can view all your connected devices at
<a href="{{@app.context}}/devices">[Device Management]</a> page.
</li>
<li class="padding-top-double">
<span class="circle">02</span>
&nbsp;&nbsp;&nbsp;Select one of connected devices and check for available control
Select one of connected devices and check for available control
operations and monitor Real-Time data.
</li>
<li class="padding-top-double">
<span class="circle">03</span>
&nbsp;&nbsp;&nbsp;You can also view analytics of the data published to IoT-Server by
You can also view analytics of the data published to IoT-Server by
navigating to Device Analytics page.
</li>
</ul>

View File

@ -22,7 +22,7 @@
<parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>iot-plugins</artifactId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -23,7 +23,7 @@
<parent>
<artifactId>virtual-fire-alarm-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -23,7 +23,7 @@
<parent>
<artifactId>virtual-fire-alarm-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -21,7 +21,7 @@
<parent>
<artifactId>virtual-fire-alarm-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -23,7 +23,7 @@
<parent>
<artifactId>virtual-fire-alarm-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -21,7 +21,7 @@
<parent>
<artifactId>virtual-fire-alarm-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -23,7 +23,7 @@
<parent>
<artifactId>virtual-fire-alarm-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -66,9 +66,9 @@
<div class="panel-body">
<div id="policy-spinner" class="wr-advance-operations-init hidden">
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading Policies . . .
<br>
<br>
@ -95,9 +95,9 @@
<div class="panel-body">
<div id="operations-spinner" class="wr-advance-operations-init hidden">
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading Operations Log . . .
<br>
<br>

View File

@ -63,7 +63,7 @@
</div>
<div class="wr-input-control wr-btn-grp">
<button id="save-general-btn-virtualfirealarm" class="wr-btn" onclick="addConfiguration();">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Save&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Save
</button>
</div>
</div>

View File

@ -41,21 +41,21 @@
<ul class="list-unstyled">
<li class="padding-top-double">
<span class="circle">STEP 01</span>
&nbsp;&nbsp;&nbsp;Go ahead and [Download] the Device.
Go ahead and [Download] the Device.
</li>
<li class="padding-top-double">
<span class="circle">STEP 02</span>
&nbsp;&nbsp;&nbsp;Proceed to [Prepare] section.
Proceed to [Prepare] section.
</li>
<li class="padding-top-double">
<span class="circle">STEP 03</span>
&nbsp;&nbsp;&nbsp;Read [Try Out] section to further experiment with the device.
Read [Try Out] section to further experiment with the device.
</li>
</ul>
<br>
<a href="/api-store/apis/info?name={{@uriParams.deviceType}}&version=1.0.0&provider=admin"
class="btn-operations"
target="_blank"><i class="fw fw-api"></i> View API</i> &nbsp;
target="_blank"><i class="fw fw-api"></i> View API</i>
</a>
<a href="#" class="download-link btn-operations">
<i class="fw fw-download"></i>Download Agent</a>
@ -71,7 +71,7 @@
<i class="fw fw-add fw-stack-1x fw-inverse"></i>
</span>
</span>
&nbsp;&nbsp;Add your new firealarm device to {{@app.conf.appName}}
Add your new firealarm device to {{@app.conf.appName}}
</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i>
</button>
@ -99,7 +99,7 @@
<input type="radio" name="sketchType" value="virtual_firealarm"
id="virtual_firealarm"
checked>
<label for="simple_agent">Simple Agent</label> &nbsp;&nbsp;
<label for="simple_agent">Simple Agent</label>
<input type="radio" name="sketchType"
value="virtual_firealarm_advanced"
id="virtual_firealarm_advanced">
@ -148,7 +148,7 @@
<div class="buttons">
<a href="#" id="device-401-link" class="blue-button">
Goto Login Page
</a>&nbsp;&nbsp;
</a>
<a href="#" onclick="hidePopup();" class="btn-operations">
Cancel
</a>
@ -209,19 +209,19 @@
<ul class="list-unstyled">
<li class="padding-top-double">
<span class="circle">01</span>
&nbsp;&nbsp;&nbsp;Download your VirtualFireAlarm using [Download Agent] button above.
Download your VirtualFireAlarm using [Download Agent] button above.
</li>
<li class="padding-top-double">
<span class="circle">02</span>
&nbsp;&nbsp;&nbsp;Unzip the downloaded Agent.
Unzip the downloaded Agent.
</li>
<li class="padding-top-double">
<span class="circle">03</span>
&nbsp;&nbsp;&nbsp;Move into the unzipped Agent folder in the terminal.
Move into the unzipped Agent folder in the terminal.
</li>
<li class="padding-top-double">
<span class="circle">04</span>
&nbsp;&nbsp;&nbsp;Unzip the downloaded Agent and start terminal to run this command: [sh
Unzip the downloaded Agent and start terminal to run this command: [sh
start-device.sh]
</li>
</ul>
@ -244,17 +244,17 @@
<ul class="list-unstyled">
<li class="padding-top-double">
<span class="circle">01</span>
&nbsp;&nbsp;&nbsp;You can view all your connected devices at
You can view all your connected devices at
<a href="{{@app.context}}/devices">[Device Management]</a> page.
</li>
<li class="padding-top-double">
<span class="circle">02</span>
&nbsp;&nbsp;&nbsp;Select one of connected devices and check for available control
Select one of connected devices and check for available control
operations and monitor Real-Time data.
</li>
<li class="padding-top-double">
<span class="circle">03</span>
&nbsp;&nbsp;&nbsp;You can also view analytics of the data published to IoT-Server by
You can also view analytics of the data published to IoT-Server by
navigating to Device Analytics page.
</li>
</ul>

View File

@ -22,7 +22,7 @@
<parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>iot-plugins</artifactId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -21,7 +21,7 @@
<parent>
<artifactId>android-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -36,7 +36,7 @@ import java.util.List;
@XmlAccessorType(XmlAccessType.NONE)
@ApiModel(
value = "PlatformConfiguration",
description = "This class carries all information related to a Tenant configuration"
description = "This class carries all the information related to Android platform configurations."
)
public class AndroidPlatformConfiguration implements Serializable {
public static final int INVALID_NOTIFIER_FREQUENCY = -1;

View File

@ -39,7 +39,7 @@ import java.util.List;
tags = {"devicemgt_android"})
@Api(value = "Android Device Management",
description = "This carries all the resources related to Android device management functionalities")
description = "This carries all the resources related to the Android device management functionalities.")
@Path("/devices")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@ -51,13 +51,14 @@ public interface DeviceManagementService {
produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON,
httpMethod = "PUT",
value = "Update the application list of a device",
value = "Updating the Application Details on Android Devices",
notes = "Update the details of the applications that are installed on Android devices.",
tags = "Android Device Management"
)
@ApiResponses(value = {
@ApiResponse(
code = 200,
message = "OK. \n Application list has been updated successfully",
message = "OK. \n Successfully updated the application details.",
responseHeaders = {
@ResponseHeader(
name = "Content-Location",
@ -71,17 +72,17 @@ public interface DeviceManagementService {
"Used by caches, or in conditional requests."),
@ResponseHeader(
name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" +
description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests.")}),
@ApiResponse(
code = 400,
message = "Bad Request. \n Invalid request or validation error."),
@ApiResponse(
code = 404,
message = "Not Found. \n Resource to be deleted does not exist."),
message = "Not Found. \n The specified resource does not exist."),
@ApiResponse(
code = 415,
message = "Unsupported media type. \n The entity of the request was in a not supported format."),
message = "Unsupported media type. \n The format of the requested entity was not supported."),
@ApiResponse(
code = 500,
message = "Internal Server Error. \n " +
@ -91,14 +92,14 @@ public interface DeviceManagementService {
Response updateApplicationList(
@ApiParam(
name = "id",
value = "Device Identifier")
value = "The unique device identifier.")
@NotNull
@Size(min = 2 , max = 45)
@Pattern(regexp = "^[A-Za-z0-9]*$")
@PathParam("id") String id,
@ApiParam(
name = "applications",
value = "List of applications that need to be persisted against the device")
value = "The properties to update application details. Multiple applications can be updated using comma separated values.")
List<AndroidApplication> androidApplications);
@PUT
@ -106,16 +107,18 @@ public interface DeviceManagementService {
@ApiOperation(
produces = MediaType.APPLICATION_JSON,
httpMethod = "PUT",
value = "Get the operation list pending for the device",
value = "Getting the Pending Operation List",
responseContainer = "List",
notes = "The Android agent communicates with the server to get the operations that are queued up " +
"at the server end for a given device using via this particular resource",
"at the server end via this REST API." +
" While getting the pending operations the details of the operations executed at the device end is shared with the server. " +
"The server then updates the status of the operations that were carried out on the device.",
response = Operation.class,
tags = "Android Device Management")
@ApiResponses(value = {
@ApiResponse(
code = 200,
message = "OK. \n Successfully fetched the pending application list of the Android device.",
message = "OK. \n Successfully fetched the pending operations of the Android device.",
response = Operation.class,
responseContainer = "List",
responseHeaders = {
@ -128,33 +131,36 @@ public interface DeviceManagementService {
"Used by caches, or in conditional requests."),
@ResponseHeader(
name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" +
description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests.")
}),
@ApiResponse(
code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of the requested resource."),
message = "Not Modified. \n Empty body because the client already has the latest version of the requested resource."),
@ApiResponse(
code = 406,
message = "Not Acceptable.\n The requested media type is not supported"),
@ApiResponse(
code = 500,
message = "Internal Server Error. \n Server error occurred while fetching policies.")
message = "Internal Server Error. \n Server error occurred while fetching the list of pending operations.")
})
@Permission(name = "Enroll Device", permission = "/device-mgt/devices/enroll/android")
Response getPendingOperations(
@ApiParam(
name = "id",
value = "Device Identifier")
value = "The unique device identifier.",
required = true)
@PathParam("id") String id,
@ApiParam(
name = "If-Modified-Since",
value = "Validates if the requested variant has not been modified since the time specified",
value = "Checks if the requested variant was modified, since the specified date-time.\n" +
"Provide the value in the following format: EEE, d MMM yyyy HH:mm:ss Z.\n" +
"Example: Mon, 05 Jan 2014 15:10:00 +0200.",
required = false)
@HeaderParam("If-Modified-Since") String ifModifiedSince,
@ApiParam(
name = "resultOperations",
value = "Device Operation Status")
value = "Properties to update the device operations and their status.")
List<? extends Operation> resultOperations);
@POST
@ -162,17 +168,17 @@ public interface DeviceManagementService {
produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON,
httpMethod = "POST",
value = "Register an Android Device",
notes = "When carrying out device registration via an Android device, you need to initially install" +
" an Android Agent on the device, before being able to register the device with WSO2 EMM. Instead," +
value = "Registering an Android Device",
notes = "When registering an Android device, you need to install" +
" the Android Agent on the device, before being able to register the device with WSO2 EMM. Instead," +
" you can use this REST API to register an Android device with WSO2 EMM, without having to install" +
" an Android Agent on the respective device",
" an Android Agent. This API can be mainly used to test the device enrollment process.",
tags = "Android Device Management"
)
@ApiResponses(value = {
@ApiResponse(
code = 201,
message = "Created. \n Device enrollment has successfully been created",
message = "Created. \n Successfully created an instance of the device.",
responseHeaders = {
@ResponseHeader(
name = "Content-Location",
@ -186,11 +192,11 @@ public interface DeviceManagementService {
"Used by caches, or in conditional requests."),
@ResponseHeader(
name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" +
description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests.")}),
@ApiResponse(
code = 303,
message = "See Other. \n Source can be retrieved from the URL specified at the Location header.",
message = "See Other. \n The source can be retrieved from the URL specified in the location header.",
responseHeaders = {
@ResponseHeader(
name = "Content-Location",
@ -200,14 +206,16 @@ public interface DeviceManagementService {
message = "Bad Request. \n Invalid request or validation error."),
@ApiResponse(
code = 415,
message = "Unsupported media type. \n The entity of the request was in a not supported format."),
message = "Unsupported media type. \n The format of the requested entity was not supported.\n"),
@ApiResponse(
code = 500,
message = "Internal Server Error. \n " +
"Server error occurred while adding a new device.")
})
@Permission(name = "Enroll Device", permission = "/device-mgt/devices/enroll/android")
Response enrollDevice(@ApiParam(name = "device", value = "Device Information to be enroll")
Response enrollDevice(@ApiParam(
name = "device",
value = "The properties required to enroll a device.")
@Valid AndroidDevice device);
@GET
@ -215,7 +223,7 @@ public interface DeviceManagementService {
@ApiOperation(
httpMethod = "GET",
value = "Getting the Registration Status of an Android Device",
notes = "Use this REST API to retrieve the registration status of an Android device",
notes = "Use this REST API to retrieve the registration status of an Android device.",
tags = "Android Device Management"
)
@ApiResponses(value = {
@ -232,12 +240,12 @@ public interface DeviceManagementService {
"Used by caches, or in conditional requests."),
@ResponseHeader(
name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" +
description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests."),
}),
@ApiResponse(
code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of the requested resource."),
message = "Not Modified. \n Empty body because the client already has the latest version of the requested resource."),
@ApiResponse(
code = 406,
message = "Not Acceptable.\n The requested media type is not supported"),
@ -249,11 +257,13 @@ public interface DeviceManagementService {
Response isEnrolled(
@ApiParam(
name = "id",
value = "Device Identifier")
value = "The unique device identifier")
@PathParam("id") String id,
@ApiParam(
name = "If-Modified-Since",
value = "Validates if the requested variant has not been modified since the time specified",
value = "Checks if the requested variant was modified, since the specified date-time.\n" +
"Provide the value in the following format: EEE, d MMM yyyy HH:mm:ss Z.\n" +
"Example: Mon, 05 Jan 2014 15:10:00 +0200",
required = false)
@HeaderParam("If-Modified-Since") String ifModifiedSince);
@ -262,14 +272,14 @@ public interface DeviceManagementService {
@ApiOperation(
httpMethod = "PUT",
value = "Updating the Registration Details of an Android Device",
notes = "Use this REST API to update the registration details of an Android device",
notes = "Use this REST API to update the registration details of an Android device.",
tags = "Android Device Management"
)
@ApiResponses(
value = {
@ApiResponse(
code = 200,
message = "OK. \n Device enrollment has been updated successfully",
message = "OK. \n Successfully updated the device enrollment details.",
responseHeaders = {
@ResponseHeader(
name = "Content-Location",
@ -283,17 +293,17 @@ public interface DeviceManagementService {
"Used by caches, or in conditional requests."),
@ResponseHeader(
name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" +
description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests.")}),
@ApiResponse(
code = 400,
message = "Bad Request. \n Invalid request or validation error."),
@ApiResponse(
code = 404,
message = "Not Found. \n Resource to be deleted does not exist."),
message = "Not Found. \n The specified resource does not exist."),
@ApiResponse(
code = 415,
message = "Unsupported media type. \n The entity of the request was in a not supported format."),
message = "Unsupported media type. \n The format of the requested entity was not supported."),
@ApiResponse(
code = 500,
message = "Internal Server Error. \n " +
@ -303,27 +313,27 @@ public interface DeviceManagementService {
Response modifyEnrollment(
@ApiParam(
name = "id",
value = "Device Identifier")
value = "The unique device identifier.")
@PathParam("id") String id,
@ApiParam(
name = "device",
value = "Device information to be modify") @Valid AndroidDevice androidDevice);
value = "The properties of required to update device enrollment details.") @Valid AndroidDevice androidDevice);
@DELETE
@Path("/{id}")
@ApiOperation(
httpMethod = "DELETE",
value = "Un-register an Android Device",
notes = "Use this REST API to un-register a specific Android device",
value = "Unregistering an Android Device",
notes = "Use this REST API to unregister an Android device.",
tags = "Android Device Management"
)
@ApiResponses(value = {
@ApiResponse(
code = 200,
message = "OK. \n Device has successfully been dis-enrolled"),
message = "OK. \n Successfully disenrolled the device."),
@ApiResponse(
code = 404,
message = "Not Found. \n Resource to be deleted does not exist."),
message = "Not Found. \n The specified resource does not exist."),
@ApiResponse(
code = 500,
message = "Internal Server Error. \n " +
@ -333,7 +343,7 @@ public interface DeviceManagementService {
Response disEnrollDevice(
@ApiParam(
name = "id",
value = "Device Identifier")
value = "The unique device identifier.")
@PathParam("id") String id);
}

View File

@ -34,8 +34,7 @@ import javax.ws.rs.core.Response;
context = "api/device-mgt/android/v1.0/configuration",
tags = {"devicemgt_android"})
@Api(value = "Android Configuration Management", description = "This API carries all resource associated with " +
"manipulating the general configurations of Android platform")
@Api(value = "Android Configuration Management", description = "This API carries all the resource used to mange the Android platform configurations.")
@Path("/configuration")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@ -46,14 +45,14 @@ public interface DeviceTypeConfigurationService {
produces = MediaType.APPLICATION_JSON,
httpMethod = "GET",
value = "Getting Android Platform Configurations",
notes = "Get the Android platform configuration details using this REST API",
notes = "Get the Android platform configuration details using this REST API.",
response = PlatformConfiguration.class,
tags = "Android Configuration Management"
)
@ApiResponses(value = {
@ApiResponse(
code = 200,
message = "OK. \n Successfully fetched Android platform configuration.",
message = "OK. \n Successfully fetched the Android platform configurations.",
response = PlatformConfiguration.class,
responseHeaders = {
@ResponseHeader(
@ -65,27 +64,29 @@ public interface DeviceTypeConfigurationService {
"Used by caches, or in conditional requests."),
@ResponseHeader(
name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" +
description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests."),
}),
@ApiResponse(
code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of the requested resource."),
message = "Not Modified. \n Empty body because the client already has the latest version of the requested resource."),
@ApiResponse(
code = 404,
message = "Not Found. \n Resource to be deleted does not exist."),
message = "Not Found. \n The specified resource does not exist."),
@ApiResponse(
code = 406,
message = "Not Acceptable.\n The requested media type is not supported"),
@ApiResponse(
code = 500,
message = "Internal Server Error. \n Server error occurred while fetching Android platform configuration.")
message = "Internal Server Error. \n Server error occurred while fetching the Android platform configuration.")
})
@Permission(name = "View Configurations", permission = "/device-mgt/platform-configurations/view")
Response getConfiguration(
@ApiParam(
name = "If-Modified-Since",
value = "Validates if the requested variant has not been modified since the time specified",
value = "Checks if the requested variant was modified, since the specified date-time.\n" +
"Provide the value in the following format: EEE, d MMM yyyy HH:mm:ss Z.\n" +
"Example: Mon, 05 Jan 2014 15:10:00 +0200",
required = false)
@HeaderParam("If-Modified-Since") String ifModifiedSince);
@ -94,14 +95,14 @@ public interface DeviceTypeConfigurationService {
consumes = MediaType.APPLICATION_JSON,
produces = MediaType.APPLICATION_JSON,
httpMethod = "PUT",
value = "Updating Android Platform Configuration.",
value = "Updating Android Platform Configurations",
notes = "Update the Android platform configurations using this REST API.",
tags = "Android Configuration Management"
)
@ApiResponses(value = {
@ApiResponse(
code = 200,
message = "OK. \n Android platform configuration has been updated successfully",
message = "OK. \n Successfully updated the Android platform configurations.",
responseHeaders = {
@ResponseHeader(
name = "Content-Location",
@ -115,26 +116,26 @@ public interface DeviceTypeConfigurationService {
"Used by caches, or in conditional requests."),
@ResponseHeader(
name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" +
description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests.")}),
@ApiResponse(
code = 400,
message = "Bad Request. \n Invalid request or validation error."),
@ApiResponse(
code = 404,
message = "Not Found. \n Resource to be deleted does not exist."),
message = "Not Found. \n The specified resource does not exist."),
@ApiResponse(
code = 415,
message = "Unsupported media type. \n The entity of the request was in a not supported format."),
message = "Unsupported media type. \n The format of the requested entity was not supported."),
@ApiResponse(
code = 500,
message = "Internal Server Error. \n " +
"Server error occurred while modifying Android platform configuration.")
"Server error occurred while modifying the Android platform configuration.")
})
@Permission(name = "Manage Configurations", permission = "/device-mgt/platform-configurations/manage")
Response updateConfiguration(
@ApiParam(name = "configuration",
value = "AndroidPlatformConfiguration")
value = "The properties to update the Android platform configurations.")
@Valid AndroidPlatformConfiguration androidPlatformConfiguration);
@GET
@ -143,9 +144,9 @@ public interface DeviceTypeConfigurationService {
@ApiOperation(
produces = MediaType.TEXT_PLAIN,
httpMethod = "GET",
value = "Getting the License Agreement for Android Device Registration",
value = "Getting the License Agreement for the Android Device Registration",
notes = "Use this REST API to retrieve the license agreement that is used for the Android device " +
"registration process",
"registration process.",
response = String.class,
tags = "Android Configuration Management")
@ApiResponses(value = {
@ -163,27 +164,29 @@ public interface DeviceTypeConfigurationService {
"Used by caches, or in conditional requests."),
@ResponseHeader(
name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" +
description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests."),
}),
@ApiResponse(
code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of the requested resource."),
message = "Not Modified. \n Empty body because the client already has the latest version of the requested resource."),
@ApiResponse(
code = 404,
message = "Not Found. \n Resource to be deleted does not exist."),
message = "Not Found. \n The specified resource does not exist."),
@ApiResponse(
code = 406,
message = "Not Acceptable.\n The requested media type is not supported"),
@ApiResponse(
code = 500,
message = "Internal Server Error. \n Server error occurred while fetching Android license configuration.")
message = "Internal Server Error. \n Server error occurred while fetching the Android license configuration.")
})
@Permission(name = "Enroll Device", permission = "/device-mgt/devices/enroll/android")
Response getLicense(
@ApiParam(
name = "If-Modified-Since",
value = "Validates if the requested variant has not been modified since the time specified",
value = "Checks if the requested variant was modified, since the specified date-time.\n" +
"Provide the value in the following format: EEE, d MMM yyyy HH:mm:ss Z.\n" +
"Example: Mon, 05 Jan 2014 15:10:00 +0200.",
required = false)
@HeaderParam("If-Modified-Since") String ifModifiedSince) throws AndroidAgentException;

View File

@ -35,9 +35,9 @@ import javax.ws.rs.core.Response;
context = "api/device-mgt/android/v1.0/events",
tags = {"devicemgt_android"})
@Api(value = "Event Receiver", description = "Event publishing/retrieving related APIs.To enable Eventing need to" +
" configure as ref-https://docs.wso2.com/display/EMM210/Managing+Event+Publishing+with+WSO2+Data+Analytics+Server, " +
"https://docs.wso2.com/display/EMM210/Creating+a+New+Event+Stream+and+Receiver")
@Api(value = "Event Receiver", description = "Event publishing/retrieving related APIs. To enable event publishing/retrieving you need to" +
" configure WSO2 EMM as explained in https://docs.wso2.com/display/EMM220/Managing+Event+Publishing+with+WSO2+Data+Analytics+Server, " +
"https://docs.wso2.com/display/EMM220/Creating+a+New+Event+Stream+and+Receiver")
@Path("/events")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@ -49,13 +49,13 @@ public interface EventReceiverService {
produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON,
httpMethod = "POST",
value = "Event publishing via REST API.",
notes = "Publish events received by the EMM Android client to WSO2 DAS using this API.",
value = "Publishing Events",
notes = "Publish events received by the WSO2 EMM Android client to the WSO2 Data Analytics Server (DAS) using this API.",
tags = "Event Receiver"
)
@ApiResponses(
value = {
@ApiResponse(code = 201, message = "Created. \n Event is published successfully. Location header " +
@ApiResponse(code = 201, message = "Created. \n Successfully published the event. Location header " +
"contains URL of newly enrolled device",
responseHeaders = {
@ResponseHeader(
@ -70,12 +70,12 @@ public interface EventReceiverService {
"Used by caches, or in conditional requests."),
@ResponseHeader(
name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" +
description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests.")
}),
@ApiResponse(
code = 303,
message = "See Other. \n Source can be retrieved from the URL specified at the Location header.",
message = "See Other. \n The source can be retrieved from the URL specified in the location header.",
responseHeaders = {
@ResponseHeader(
name = "Content-Location",
@ -85,7 +85,7 @@ public interface EventReceiverService {
message = "Bad Request. \n Invalid request or validation error."),
@ApiResponse(
code = 415,
message = "Unsupported media type. \n The entity of the request was in a not supported format."),
message = "Unsupported media type. \n The format of the requested entity was not supported."),
@ApiResponse(
code = 500,
message = "Internal Server Error. \n " +
@ -104,10 +104,10 @@ public interface EventReceiverService {
produces = MediaType.APPLICATION_JSON,
httpMethod = "GET",
value = "Getting event details for a given time period.",
notes = "Get the event details of a device for a given time duration using this API.Request must contain " +
"the device identifier. Optionally, both, date from and date to value should be present to get " +
"alerts between times. Based on device type and the device identifier also filtering can be done" +
"(This cannot be combined with to and from parameters).",
notes = "Get the event details of a device for a given time duration using this API. The request must contain " +
"the device identifier. Optionally, both date from and date to value should be present to get " +
"alerts between a specified time. Filtering can also be done based on the device type and the device identifier." +
"(This cannot be combined with the to and from parameters).",
response = DeviceState.class,
responseContainer = "List",
tags = "Event Receiver"
@ -116,12 +116,11 @@ public interface EventReceiverService {
value = {
@ApiResponse(
code = 200,
message = "OK. \n Event details of a device for a given time duration have been successfully fetched",
message = "OK. \n Successfully fetched the event details of the specified device for a given time duration.",
response = DeviceState.class, responseContainer = "List"),
@ApiResponse(
code = 303,
message = "See Other. \n Source can be retrieved from the URL specified at" +
" the Location header.",
message = "See Other. \n The source can be retrieved from the URL specified in the location header.",
responseHeaders = {
@ResponseHeader(name = "Content-Location", description = "Source URL of the document.")
}),
@ -132,39 +131,44 @@ public interface EventReceiverService {
@ApiResponse(
code = 400,
message = "Bad Request. \n Invalid request or validation error. You must provide" +
" the device identifier. Additionally, the device identifier can be combined with either the type" +
" OR date from and to."),
" the device identifier. Additionally, the device identifier can be combined with either the device type" +
" OR the from and to date."),
@ApiResponse(
code = 404,
message = "Not Found. \n Resource requested does not exist."),
message = "Not Found. \n The specified resource does not exist."),
@ApiResponse(
code = 500,
message = "Error occurred while getting published events for specific device.")
message = "Error occurred while getting the published events for the specified device.")
})
@Permission(name = "Publish Events to DAS", permission = "/device-mgt/devices/enroll/android")
Response retrieveAlerts(
@ApiParam(
name = "id",
value = "Device Identifier to be need to retrieve events.",
value = "The unique device identifier.",
required = true)
@Size(min = 2, max = 45)
@QueryParam("id") String deviceId,
@ApiParam(
name = "from",
value = "From Date.")
value = "Specify the time and date from when you want to get the data." +
"Provide the time and date format in the unix/epoch format as the value for {unixTimestamp}. Use a Epoch convertor, to convert the time and date to this format.")
@QueryParam("from") long from,
@ApiParam(
name = "to",
value = "To Date.")
value = "Specify the time and date up to when you require the data." +
"Provide the time and date format in the unix/epoch format as the value for {unixTimestamp}. Use a Epoch convertor, to convert the time and date to this format.")
@QueryParam("to") long to,
@ApiParam(
name = "type",
value = "Type of the Alert to be need to retrieve events.")
value = "The alert type to retrieve the events." +
"Provide APPLICATION_STATE or RUNTIME_STATE as the value.")
@Size(min = 2, max = 45)
@QueryParam("type") String type,
@ApiParam(
name = "If-Modified-Since",
value = "Validates if the requested variant has not been modified since the time specified",
value = "Checks if the requested variant was modified, since the specified date-time.\n" +
"Provide the value in the following format: EEE, d MMM yyyy HH:mm:ss Z.\n" +
"Example: Mon, 05 Jan 2014 15:10:00 +0200",
required = false)
@HeaderParam("If-Modified-Since") String ifModifiedSince);

View File

@ -1072,7 +1072,7 @@ public class DeviceManagementAdminServiceImpl implements DeviceManagementAdminSe
private static void validateScheduleDate(String dateString){
try {
if (dateString != null) {
if (dateString != null && !dateString.isEmpty()) {
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
sdf.setLenient(false);
sdf.parse(dateString);

View File

@ -51,7 +51,7 @@
<property name="version" value="1.0"/>
<property name="host" value="localhost:9443"/>
<property name="schemes" value="https" />
<property name="basePath" value="/api-device-mgt-android-v1.0"/>
<property name="basePath" value="/api/device-mgt/android/v1.0"/>
<property name="title" value="Android Device Management API Definitions"/>
<property name="contact" value="dev@wso2.org"/>
<property name="license" value="Apache 2.0"/>

View File

@ -23,13 +23,13 @@
<parent>
<artifactId>android-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.device.mgt.mobile.android.ui</artifactId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<name>WSO2 Carbon - Mobile Android UI</name>
<packaging>pom</packaging>

View File

@ -55,9 +55,9 @@
<div class="panel-body">
<div id="policy-spinner" class="wr-advance-operations-init hidden">
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading Policies . . .
<br>
<br>
@ -85,9 +85,9 @@
<div id="policy-spinner"
class="wr-advance-operations-init hidden">
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading Policy Compliance . . .
<br>
<br>
@ -123,9 +123,9 @@
<div class="panel-body">
<div id="apps-spinner" class="wr-advance-operations-init hidden">
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading App List . . .
<br>
<br>
@ -147,9 +147,9 @@
<div id="operations-spinner"
class="wr-advance-operations-init hidden">
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading Operations Log . . .
<br>
<br>

View File

@ -14,8 +14,8 @@
<div class="wr-advance-operations">
<div class="wr-advance-operations-init">
<br>
&nbsp;&nbsp;&nbsp;&nbsp;<i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;Loading platform features . . .
<i class="fw fw-settings fw-spin fw-2x"></i>
Loading platform features . . .
<br><br>
</div>
</div>

View File

@ -21,13 +21,13 @@
<h3 class="uppercase">What You Need</h3>
<hr>
<ul class="list-unstyled">
<li class="padding-top-double"><span class="circle">STEP 01</span>&nbsp;&nbsp;&nbsp;Android
<li class="padding-top-double"><span class="circle">STEP 01</span> Android
Mobile.
</li>
<li class="padding-top-double"><span class="circle">STEP 02</span>&nbsp;&nbsp;&nbsp;Go ahead
<li class="padding-top-double"><span class="circle">STEP 02</span> Go ahead
and click [Enroll Device].
</li>
<li class="padding-top-double"><span class="circle">STEP 03</span>&nbsp;&nbsp;&nbsp;Proceed
<li class="padding-top-double"><span class="circle">STEP 03</span> Proceed
to the [Prepare] section.
</li>
</ul>

View File

@ -22,7 +22,7 @@
<parent>
<artifactId>android-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -22,7 +22,7 @@
<parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>mobile-plugins</artifactId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -23,7 +23,7 @@
<parent>
<artifactId>mobile-base-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version>
<version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@ -44,7 +44,7 @@
<i class="fw fw-ring fw-stroke fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i>
</span>
&nbsp;&nbsp;Add New Device
Add New Device
</a>
</li>
{{/if}}
@ -55,7 +55,7 @@
<i class="fw fw-ring fw-stroke fw-stack-2x"></i>
<i class="fw fw-search fw-stack-1x"></i>
</span>
&nbsp;&nbsp;Advanced Search
Advanced Search
</a>
</li>
{{/if}}
@ -75,7 +75,7 @@
<i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i>
</span>
&nbsp;&nbsp;Add New Device
Add New Device
</a>
</h3>
</div>

View File

@ -17,6 +17,7 @@
}}
{{unit "cdmf.unit.ui.title" pageTitle="Policy Management"}}
{{unit "cdmf.unit.data-tables-extended"}}
{{unit "cdmf.unit.ui.modal"}}
{{#zone "topCss"}}
<style>
@ -50,7 +51,7 @@
<i class="fw fw-add fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i>
</span>
&nbsp;Add New Policy
Add New Policy
</a>
</li>
{{/equal}}
@ -64,7 +65,7 @@
<i class="fw fw-throttling-policy fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i>
</span>
&nbsp;Policy Priority
Policy Priority
</a>
</li>
{{/equal}}
@ -75,7 +76,7 @@
<i class="fw fw-check fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i>
</span>
&nbsp;Apply Changes To Devices
Apply Changes To Devices
</a>
</li>
{{/zone}}
@ -99,7 +100,7 @@
<i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i>
</span>
&nbsp;&nbsp;Add New Policy
Add New Policy
</a>
</h3>
{{/if}}
@ -268,393 +269,6 @@
<a href="#">By Status</a>
</div>
</div>
<div id="remove-policy-modal-content" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
Do you really want to remove the selected policy(s)?
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
</div>
<div class="modal-footer">
<div class="buttons">
<a href="#" id="remove-policy-yes-link" class="btn-operations">Remove</a>
<a href="#" id="remove-policy-cancel-link" class="btn-operations btn-default">Cancel</a>
</div>
</div>
</div>
<div id="remove-policy-success-content" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
Done. Selected policy was successfully removed.
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
</div>
<div class="modal-footer">
<div class="buttons">
<a href="#" id="remove-policy-success-link" class="btn-operations">Ok</a>
</div>
</div>
</div>
<div id="remove-policy-error-content" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
An unexpected error occurred. Please try again later
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
</div>
<div class="modal-footer">
<div class="buttons">
<a href="#" id="remove-policy-error-link" class="btn-operations">Ok</a>
</div>
</div>
</div>
<div id="remove-active-policy-error-content" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
Please Try again.
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
<h4>You cannot remove policies that have been already applied to devices.
Please deselect active policies from your selection and try again.</h4>
</div>
<div class="modal-footer">
<div class="buttons">
<a href="#" id="remove-active-policy-error-link" class="btn-operations">Ok</a>
</div>
</div>
</div>
<div id="publish-policy-modal-content" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
Do you really want to publish the selected policy(s)?
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
</div>
<div class="modal-footer">
<div class="buttons">
<a href="#" id="publish-policy-yes-link" class="btn-operations">Yes</a>
<a href="#" id="publish-policy-cancel-link" class="btn-operations btn-default">No</a>
</div>
</div>
</div>
<div id="publish-policy-success-content" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
Done. Selected policy was successfully published.
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
</div>
<div class="modal-footer">
<div class="buttons">
<a href="#" id="publish-policy-success-link" class="btn-operations">
Ok
</a>
</div>
</div>
</div>
<div id="publish-policy-error-content" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
An unexpected error occurred. Please try again later.
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
</div>
<div class="modal-footer">
<div class="buttons">
<a href="#" id="publish-policy-error-link" class="btn-operations">
Ok
</a>
</div>
</div>
</div>
<div id="unpublish-policy-modal-content" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
Do you really want to unpublish the selected policy(s)?
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
</div>
<div class="modal-footer">
<div class="buttons">
<a href="#" id="unpublish-policy-yes-link" class="btn-operations">
Yes
</a>
<a href="#" id="unpublish-policy-cancel-link" class="btn-operations btn-default">
No
</a>
</div>
</div>
</div>
<div id="unpublish-policy-success-content" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
Done. Selected policy was successfully unpublished.
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
</div>
<div class="modal-footer">
<div class="buttons">
<a href="#" id="unpublish-policy-success-link" class="btn-operations">
Ok
</a>
</div>
</div>
</div>
<div id="unpublish-policy-error-content" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
An unexpected error occurred. Please try again later.
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
</div>
<div class="modal-footer">
<div class="buttons">
<a href="#" id="unpublish-policy-error-link" class="btn-operations">
Ok
</a>
</div>
</div>
</div>
<div id="save-policy-priorities-success-content" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
Done. New Policy priorities were successfully updated.
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
</div>
<div class="modal-footer">
<div class="buttons">
<a href="#" id="save-policy-priorities-success-link" class="btn-operations">
Ok
</a>
</div>
</div>
</div>
<div id="save-policy-priorities-error-content" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
An unexpected error occurred. Please try again later.
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
</div>
<div class="modal-footer">
<div class="buttons">
<a href="#" id="save-policy-priorities-error-link" class="btn-operations">
Ok
</a>
</div>
</div>
</div>
<div id="change-policy-modal-content" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
Do you really want to apply changes to all policies?
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
</div>
<div class="modal-footer">
<div class="buttons">
<a href="#" id="change-policy-yes-link" class="btn-operations">
Yes
</a>
<a href="#" id="change-policy-cancel-link" class="btn-operations btn-default">
No
</a>
</div>
</div>
</div>
<div id="change-policy-success-content" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
Done. Changes applied successfully.
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
</div>
<div class="modal-footer">
<div class="buttons">
<a href="#" id="change-policy-success-link" class="btn-operations">
Ok
</a>
</div>
</div>
</div>
<div id="change-policy-error-content" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
An unexpected error occurred. Please try again later.
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
</div>
<div class="modal-footer">
<div class="buttons">
<a href="#" id="change-policy-error-link" class="btn-operations">
Ok
</a>
</div>
</div>
</div>
<div id="errorPolicyUnPublish" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
<span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-error fw-stack-1x"></i>
</span>
Action cannot be performed !
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
<h4>Please select a policy or a list of policies to un-publish.</h4>
</div>
<div class="modal-footer">
<div class="buttons">
<a href="javascript:hidePopup()" class="btn-operations">
Ok
</a>
</div>
</div>
</div>
<div id="errorPolicyUnPublishSelection" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
<span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-error fw-stack-1x"></i>
</span>
Action cannot be performed !
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
<h4>You cannot select already inactive policies to be unpublished.
Please deselect inactive policies and try again.</h4>
</div>
<div class="modal-footer">
<div class="buttons">
<a href="javascript:hidePopup()" class="btn-operations">
Ok
</a>
</div>
</div>
</div>
<div id="active-policy-selection-error" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
<span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-error fw-stack-1x"></i>
</span>
Action cannot be performed !
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
<h4>You cannot select already active policies. Please deselect active policies and try again.</h4>
</div>
<div class="modal-footer">
<div class="buttons">
<a href="javascript:hidePopup()" class="btn-operations">
Ok
</a>
</div>
</div>
</div>
<div id="policy-publish-error" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
<span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-error fw-stack-1x"></i>
</span>
Action cannot be performed !
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
<h4>Please select a policy or a list of policies to publish.</h4>
</div>
<div class="modal-footer">
<div class="buttons">
<a href="javascript:hidePopup()" class="btn-operations">
Ok
</a>
</div>
</div>
</div>
<div id="policy-remove-error" class="hide">
<div class="modal-header">
<h3 class="pull-left modal-title">
<span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-error fw-stack-1x"></i>
</span>
Action cannot be performed !
</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
<h4>Please select a policy or a list of policies to remove.</h4>
</div>
<div class="modal-footer">
<div class="buttons">
<a href="javascript:hidePopup()" class="btn-operations">
Ok
</a>
</div>
</div>
</div>
{{/zone}}
{{#zone "bottomJs"}}

View File

@ -163,8 +163,10 @@ $(document).ready(function () {
// click-event function for applyChangesButton
$(applyChangesButtonId).click(function () {
var serviceURL = "/api/device-mgt/v1.0/policies/apply-changes";
$(modalPopupContent).html($('#change-policy-modal-content').html());
showPopup();
modalDialog.header('Do you really want to apply changes to all policies?');
modalDialog.footer('<div class="buttons"><a href="#" id="change-policy-yes-link" class="btn-operations">Yes' +
'</a><a href="#" id="change-policy-cancel-link" class="btn-operations btn-default">No</a></div>');
modalDialog.show();
$("a#change-policy-yes-link").click(function () {
invokerUtil.put(
@ -173,10 +175,11 @@ $(document).ready(function () {
// on success
function (data, textStatus, jqXHR) {
if (jqXHR.status == 200) {
$(modalPopupContent).html($('#change-policy-success-content').html());
showPopup();
modalDialog.header('Done. Changes applied successfully.');
modalDialog.footer('<div class="buttons"><a href="#" id="change-policy-success-link" ' +
'class="btn-operations">Ok</a></div>');
$("a#change-policy-success-link").click(function () {
hidePopup();
modalDialog.hide();
location.reload();
});
}
@ -184,17 +187,19 @@ $(document).ready(function () {
// on error
function (jqXHR) {
console.log(stringify(jqXHR.data));
$(modalPopupContent).html($("#change-policy-error-content").html());
showPopup();
modalDialog.header('An unexpected error occurred. Please try again later.');
modalDialog.footer('<div class="buttons"><a href="#" id="change-policy-error-link" ' +
'class="btn-operations">Ok</a></div>');
modalDialog.showAsError();
$("a#change-policy-error-link").click(function () {
hidePopup();
modalDialog.hide();
});
}
);
});
$("a#change-policy-cancel-link").click(function () {
hidePopup();
modalDialog.hide();
});
});
@ -207,16 +212,27 @@ $(document).ready(function () {
// if policies found in Inactive or Inactive/Updated states with in the selection,
// pop-up an error saying
// "You cannot select already inactive policies. Please deselect inactive policies and try again."
$(modalPopupContent).html($("#errorPolicyUnPublishSelection").html());
showPopup();
modalDialog.header('Action cannot be performed !');
modalDialog.content('You cannot select already inactive policies to be unpublished. Please deselect ' +
'inactive policies and try again.');
modalDialog.footer('<div class="buttons"><a href="javascript:modalDialog.hide()" class="btn-operations">Ok</a>' +
'</div>');
modalDialog.showAsAWarning();
} else {
var serviceURL = "/api/device-mgt/v1.0/policies/deactivate-policy";
if (policyList.length == 0) {
$(modalPopupContent).html($("#errorPolicyUnPublish").html());
modalDialog.header('Action cannot be performed !');
modalDialog.content('Please select a policy or a list of policies to un-publish.');
modalDialog.footer('<div class="buttons"><a href="javascript:modalDialog.hide()" ' +
'class="btn-operations">Ok</a></div>');
modalDialog.showAsAWarning();
} else {
$(modalPopupContent).html($("#unpublish-policy-modal-content").html());
modalDialog.header('Do you really want to unpublish the selected policy(s)?');
modalDialog.footer('<div class="buttons"><a href="#" id="unpublish-policy-yes-link" ' +
'class="btn-operations">Yes</a><a href="#" id="unpublish-policy-cancel-link" ' +
'class="btn-operations btn-default">No</a></div>');
modalDialog.show();
}
showPopup();
// on-click function for policy un-publishing "yes" button
$("a#unpublish-policy-yes-link").click(function () {
@ -226,9 +242,11 @@ $(document).ready(function () {
// on success
function (data, textStatus, jqXHR) {
if (jqXHR.status == 200 && data) {
$(modalPopupContent).html($("#unpublish-policy-success-content").html());
modalDialog.header('Done. Selected policy was successfully unpublished.');
modalDialog.footer('<div class="buttons"><a href="#" id="unpublish-policy-success-link" ' +
'class="btn-operations">Ok</a></div>');
$("a#unpublish-policy-success-link").click(function () {
hidePopup();
modalDialog.hide();
location.reload();
});
}
@ -236,9 +254,12 @@ $(document).ready(function () {
// on error
function (jqXHR) {
console.log(stringify(jqXHR.data));
$(modalPopupContent).html($("#unpublish-policy-error-content").html());
modalDialog.header('An unexpected error occurred. Please try again later.');
modalDialog.footer('<div class="buttons"><a href="#" id="unpublish-policy-error-link" ' +
'class="btn-operations">Ok</a></div>');
modalDialog.showAsError();
$("a#unpublish-policy-error-link").click(function () {
hidePopup();
modalDialog.hide();
});
}
);
@ -246,7 +267,7 @@ $(document).ready(function () {
// on-click function for policy un-publishing "cancel" button
$("a#unpublish-policy-cancel-link").click(function () {
hidePopup();
modalDialog.hide();
});
}
});
@ -260,17 +281,27 @@ $(document).ready(function () {
// if policies found in Active or Active/Updated states with in the selection,
// pop-up an error saying
// "You cannot select already active policies. Please deselect active policies and try again."
$(modalPopupContent).html($("#active-policy-selection-error").html());
showPopup();
modalDialog.header('Action cannot be performed !');
modalDialog.content('You cannot select already active policies. Please deselect active policies and try ' +
'again.');
modalDialog.footer('<div class="buttons"><a href="javascript:modalDialog.hide()" class="btn-operations">' +
'Ok</a></div>');
modalDialog.showAsAWarning();
} else {
var serviceURL = "/api/device-mgt/v1.0/policies/activate-policy";
if (policyList.length == 0) {
$(modalPopupContent).html($("#policy-publish-error").html());
modalDialog.header('Action cannot be performed !');
modalDialog.content('Please select a policy or a list of policies to publish.');
modalDialog.footer('<div class="buttons"><a href="javascript:modalDialog.hide()" ' +
'class="btn-operations">Ok</a></div>');
modalDialog.showAsAWarning();
} else {
$(modalPopupContent).html($("#publish-policy-modal-content").html());
modalDialog.header('Do you really want to publish the selected policy(s)?');
modalDialog.footer('<div class="buttons"><a href="#" id="publish-policy-yes-link" ' +
'class="btn-operations">Yes</a><a href="#" id="publish-policy-cancel-link" ' +
'class="btn-operations btn-default">No</a></div>');
modalDialog.show();
}
showPopup();
// on-click function for policy removing "yes" button
$("a#publish-policy-yes-link").click(function () {
invokerUtil.post(
@ -279,9 +310,11 @@ $(document).ready(function () {
// on success
function (data, textStatus, jqXHR) {
if (jqXHR.status == 200 && data) {
$(modalPopupContent).html($("#publish-policy-success-content").html());
modalDialog.header('Done. Selected policy was successfully published.');
modalDialog.footer('<div class="buttons"><a href="#" id="publish-policy-success-link" ' +
'class="btn-operations">Ok</a></div>');
$("a#publish-policy-success-link").click(function () {
hidePopup();
modalDialog.hide();
location.reload();
});
}
@ -289,9 +322,12 @@ $(document).ready(function () {
// on error
function (jqXHR) {
console.log(stringify(jqXHR.data));
$(modalPopupContent).html($("#publish-policy-error-content").html());
modalDialog.header('An unexpected error occurred. Please try again later.');
modalDialog.footer('<div class="buttons"><a href="#" id="publish-policy-error-link" ' +
'class="btn-operations">Ok</a></div>');
modalDialog.showAsError();
$("a#publish-policy-error-link").click(function () {
hidePopup();
modalDialog.hide();
});
}
);
@ -299,7 +335,7 @@ $(document).ready(function () {
// on-click function for policy removing "cancel" button
$("a#publish-policy-cancel-link").click(function () {
hidePopup();
modalDialog.hide();
});
}
});
@ -313,16 +349,27 @@ $(document).ready(function () {
// if policies found in Active or Active/Updated states with in the selection,
// pop-up an error saying
// "You cannot remove already active policies. Please deselect active policies and try again."
$(modalPopupContent).html($("#active-policy-selection-error").html());
showPopup();
modalDialog.header('Action cannot be performed !');
modalDialog.content('You cannot select already active policies. Please deselect active policies and try ' +
'again.');
modalDialog.footer('<div class="buttons"><a href="javascript:modalDialog.hide()" class="btn-operations">' +
'Ok</a></div>');
modalDialog.showAsAWarning();
} else {
var serviceURL = "/api/device-mgt/v1.0/policies/remove-policy";
if (policyList.length == 0) {
$(modalPopupContent).html($("#policy-remove-error").html());
modalDialog.header('Action cannot be performed !');
modalDialog.content('Please select a policy or a list of policies to remove.');
modalDialog.footer('<div class="buttons"><a href="javascript:modalDialog.hide()" ' +
'class="btn-operations">Ok</a></div>');
modalDialog.showAsAWarning();
} else {
$(modalPopupContent).html($("#remove-policy-modal-content").html());
modalDialog.header('Do you really want to remove the selected policy(s)?');
modalDialog.footer('<div class="buttons"><a href="#" id="remove-policy-yes-link" class=' +
'"btn-operations">Remove</a> <a href="#" id="remove-policy-cancel-link" ' +
'class="btn-operations btn-default">Cancel</a></div>');
modalDialog.show();
}
showPopup();
// on-click function for policy removing "yes" button
$("a#remove-policy-yes-link").click(function () {
@ -332,9 +379,11 @@ $(document).ready(function () {
// on success
function (data, textStatus, jqXHR) {
if (jqXHR.status == 200 && data) {
$(modalPopupContent).html($("#remove-policy-success-content").html());
modalDialog.header('Done. Selected policy was successfully removed.');
modalDialog.footer('<div class="buttons"><a href="#" id="remove-policy-success-link" ' +
'class="btn-operations">Ok</a></div>');
$("a#remove-policy-success-link").click(function () {
hidePopup();
modalDialog.hide();
location.reload();
});
}
@ -342,9 +391,12 @@ $(document).ready(function () {
// on error
function (jqXHR) {
console.log(stringify(jqXHR.data));
$(modalPopupContent).html($("#remove-policy-error-content").html());
modalDialog.header('An unexpected error occurred. Please try again later.');
modalDialog.footer('<div class="buttons"><a href="#" id="remove-policy-error-link" ' +
'class="btn-operations">Ok</a></div>');
modalDialog.showAsError();
$("a#remove-policy-error-link").click(function () {
hidePopup();
modalDialog.hide();
});
}
);
@ -352,7 +404,7 @@ $(document).ready(function () {
// on-click function for policy removing "cancel" button
$("a#remove-policy-cancel-link").click(function () {
hidePopup();
modalDialog.hide();
});
}
});

View File

@ -149,7 +149,7 @@
<input id="hard-lock" type="checkbox" class="form-control operationDataKeys"
data-key="hard-lock"/>
<span class="helper" title="Once it enables, device will be blocked permanently.">
&nbsp;&nbsp;&nbsp;Enable Permanent Lock
Enable Permanent Lock
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -172,7 +172,7 @@
data-key="instant-upgrade"/>
<span class="helper"
title="Once enabled, device firmware upgrade process will start instantly.">
&nbsp;&nbsp;&nbsp;Instant Upgrade
Instant Upgrade
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -205,7 +205,7 @@
showDropdowns: true,
timePickerIncrement: 1,
locale: {
format: 'MM-DD-YYYY hh:mm a'
format: "YYYY-MM-DDTHH:mm:ssZZ"
}
});
});
@ -222,7 +222,7 @@
showDropdowns: true,
timePickerIncrement: 1,
locale: {
format: 'MM-DD-YYYY hh:mm a'
format: "YYYY-MM-DDTHH:mm:ssZZ"
}
});
}

View File

@ -48,41 +48,41 @@ var operationModule = function () {
"LOCK_OPERATION_CODE": "DEVICE_LOCK",
"UPGRADE_FIRMWARE": "UPGRADE_FIRMWARE",
"DISALLOW_ADJUST_VOLUME": "DISALLOW_ADJUST_VOLUME",
"DISALLOW_CONFIG_BLUETOOTH" : "DISALLOW_CONFIG_BLUETOOTH",
"DISALLOW_CONFIG_CELL_BROADCASTS" : "DISALLOW_CONFIG_CELL_BROADCASTS",
"DISALLOW_CONFIG_CREDENTIALS" : "DISALLOW_CONFIG_CREDENTIALS",
"DISALLOW_CONFIG_MOBILE_NETWORKS" : "DISALLOW_CONFIG_MOBILE_NETWORKS",
"DISALLOW_CONFIG_TETHERING" : "DISALLOW_CONFIG_TETHERING",
"DISALLOW_CONFIG_VPN" : "DISALLOW_CONFIG_VPN",
"DISALLOW_CONFIG_WIFI" : "DISALLOW_CONFIG_WIFI",
"DISALLOW_APPS_CONTROL" : "DISALLOW_APPS_CONTROL",
"DISALLOW_CREATE_WINDOWS" : "DISALLOW_CREATE_WINDOWS",
"DISALLOW_CROSS_PROFILE_COPY_PASTE" : "DISALLOW_CROSS_PROFILE_COPY_PASTE",
"DISALLOW_DEBUGGING_FEATURES" : "DISALLOW_DEBUGGING_FEATURES",
"DISALLOW_FACTORY_RESET" : "DISALLOW_FACTORY_RESET",
"DISALLOW_ADD_USER" : "DISALLOW_ADD_USER",
"DISALLOW_INSTALL_APPS" : "DISALLOW_INSTALL_APPS",
"DISALLOW_INSTALL_UNKNOWN_SOURCES" : "DISALLOW_INSTALL_UNKNOWN_SOURCES",
"DISALLOW_MODIFY_ACCOUNTS" : "DISALLOW_MODIFY_ACCOUNTS",
"DISALLOW_MOUNT_PHYSICAL_MEDIA" : "DISALLOW_MOUNT_PHYSICAL_MEDIA",
"DISALLOW_NETWORK_RESET" : "DISALLOW_NETWORK_RESET",
"DISALLOW_OUTGOING_BEAM" : "DISALLOW_OUTGOING_BEAM",
"DISALLOW_OUTGOING_CALLS" : "DISALLOW_OUTGOING_CALLS",
"DISALLOW_REMOVE_USER" : "DISALLOW_REMOVE_USER",
"DISALLOW_SAFE_BOOT" : "DISALLOW_SAFE_BOOT",
"DISALLOW_SHARE_LOCATION" : "DISALLOW_SHARE_LOCATION",
"DISALLOW_SMS" : "DISALLOW_SMS",
"DISALLOW_UNINSTALL_APPS" : "DISALLOW_UNINSTALL_APPS",
"DISALLOW_UNMUTE_MICROPHONE" : "DISALLOW_UNMUTE_MICROPHONE",
"DISALLOW_USB_FILE_TRANSFER" : "DISALLOW_USB_FILE_TRANSFER",
"ALLOW_PARENT_PROFILE_APP_LINKING" : "ALLOW_PARENT_PROFILE_APP_LINKING",
"ENSURE_VERIFY_APPS" : "ENSURE_VERIFY_APPS",
"AUTO_TIME" : "AUTO_TIME",
"SET_SCREEN_CAPTURE_DISABLED" : "SET_SCREEN_CAPTURE_DISABLED",
"SET_STATUS_BAR_DISABLED" : "SET_STATUS_BAR_DISABLED",
"APPLICATION_OPERATION_CODE" : "APP-RESTRICTION",
"SYSTEM_UPDATE_POLICY_CODE" : "SYSTEM_UPDATE_POLICY",
"KIOSK_APPS_CODE" : "KIOSK_APPS"
"DISALLOW_CONFIG_BLUETOOTH": "DISALLOW_CONFIG_BLUETOOTH",
"DISALLOW_CONFIG_CELL_BROADCASTS": "DISALLOW_CONFIG_CELL_BROADCASTS",
"DISALLOW_CONFIG_CREDENTIALS": "DISALLOW_CONFIG_CREDENTIALS",
"DISALLOW_CONFIG_MOBILE_NETWORKS": "DISALLOW_CONFIG_MOBILE_NETWORKS",
"DISALLOW_CONFIG_TETHERING": "DISALLOW_CONFIG_TETHERING",
"DISALLOW_CONFIG_VPN": "DISALLOW_CONFIG_VPN",
"DISALLOW_CONFIG_WIFI": "DISALLOW_CONFIG_WIFI",
"DISALLOW_APPS_CONTROL": "DISALLOW_APPS_CONTROL",
"DISALLOW_CREATE_WINDOWS": "DISALLOW_CREATE_WINDOWS",
"DISALLOW_CROSS_PROFILE_COPY_PASTE": "DISALLOW_CROSS_PROFILE_COPY_PASTE",
"DISALLOW_DEBUGGING_FEATURES": "DISALLOW_DEBUGGING_FEATURES",
"DISALLOW_FACTORY_RESET": "DISALLOW_FACTORY_RESET",
"DISALLOW_ADD_USER": "DISALLOW_ADD_USER",
"DISALLOW_INSTALL_APPS": "DISALLOW_INSTALL_APPS",
"DISALLOW_INSTALL_UNKNOWN_SOURCES": "DISALLOW_INSTALL_UNKNOWN_SOURCES",
"DISALLOW_MODIFY_ACCOUNTS": "DISALLOW_MODIFY_ACCOUNTS",
"DISALLOW_MOUNT_PHYSICAL_MEDIA": "DISALLOW_MOUNT_PHYSICAL_MEDIA",
"DISALLOW_NETWORK_RESET": "DISALLOW_NETWORK_RESET",
"DISALLOW_OUTGOING_BEAM": "DISALLOW_OUTGOING_BEAM",
"DISALLOW_OUTGOING_CALLS": "DISALLOW_OUTGOING_CALLS",
"DISALLOW_REMOVE_USER": "DISALLOW_REMOVE_USER",
"DISALLOW_SAFE_BOOT": "DISALLOW_SAFE_BOOT",
"DISALLOW_SHARE_LOCATION": "DISALLOW_SHARE_LOCATION",
"DISALLOW_SMS": "DISALLOW_SMS",
"DISALLOW_UNINSTALL_APPS": "DISALLOW_UNINSTALL_APPS",
"DISALLOW_UNMUTE_MICROPHONE": "DISALLOW_UNMUTE_MICROPHONE",
"DISALLOW_USB_FILE_TRANSFER": "DISALLOW_USB_FILE_TRANSFER",
"ALLOW_PARENT_PROFILE_APP_LINKING": "ALLOW_PARENT_PROFILE_APP_LINKING",
"ENSURE_VERIFY_APPS": "ENSURE_VERIFY_APPS",
"AUTO_TIME": "AUTO_TIME",
"SET_SCREEN_CAPTURE_DISABLED": "SET_SCREEN_CAPTURE_DISABLED",
"SET_STATUS_BAR_DISABLED": "SET_STATUS_BAR_DISABLED",
"APPLICATION_OPERATION_CODE": "APP-RESTRICTION",
"SYSTEM_UPDATE_POLICY_CODE": "SYSTEM_UPDATE_POLICY",
"KIOSK_APPS_CODE": "KIOSK_APPS"
};
// Constants to define Windows Operation Constants
@ -151,10 +151,8 @@ var operationModule = function () {
break;
case iosOperationConstants["DOMAIN_OPERATION_CODE"]:
payload = {
"operation": {
"emailDomains": operationData["emailDomains"],
"webDomains": operationData["webDomains"]
}
"emailDomains": operationPayload["emailDomains"],
"webDomains": operationPayload["webDomains"]
};
break;
case iosOperationConstants["RESTRICTIONS_OPERATION_CODE"]:
@ -839,6 +837,15 @@ var operationModule = function () {
"encryptStorageEnabled": operationPayload["encrypted"]
};
break;
case androidOperationConstants["WORK_PROFILE_CODE"]:
payload = {
"workProfilePolicyProfileName": operationPayload["profileName"],
"workProfilePolicyEnableSystemApps": operationPayload["enableSystemApps"],
"workProfilePolicyHideSystemApps": operationPayload["hideSystemApps"],
"workProfilePolicyUnhideSystemApps": operationPayload["unhideSystemApps"],
"workProfilePolicyEnablePlaystoreApps": operationPayload["enablePlaystoreApps"]
};
break;
case androidOperationConstants["WIFI_OPERATION_CODE"]:
payload = {
"wifiSSID": operationPayload["ssid"],
@ -1636,7 +1643,6 @@ var operationModule = function () {
generatedProfile[operationCode] = payload["operation"];
}
}
console.log(generatedProfile);
return generatedProfile;
};

View File

@ -27,7 +27,7 @@
<i class="fw fw-add fw-stack-1x fw-inverse"></i>
</span>
</span>
&nbsp;&nbsp;Add your new mobile device to {{@app.conf.appName}}
Add your new mobile device to {{@app.conf.appName}}
</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div>

View File

@ -39,10 +39,10 @@
<b>Compliance Status</b>
<br>
{{#equal complianceStatus "COMPLIANT"}}
<span><i class="fw fw-ok icon-success"></i>&nbsp;&nbsp;Compliant</span>
<span><i class="fw fw-ok icon-success"></i> Compliant</span>
{{/equal}}
{{#equal complianceStatus "NON-COMPLIANT"}}
<span><i class="fw fw-warning icon-danger"></i>&nbsp;&nbsp;Not Compliant</span>
<span><i class="fw fw-warning icon-danger"></i> Not Compliant</span>
{{/equal}}
</div>
</div>
@ -58,7 +58,7 @@
<i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-view fw-stack-1x"></i>
</span>
&nbsp;View
View
</a>
</span>
</div>
@ -77,8 +77,8 @@
<tr data-type="selectable">
<td data-display="{{featureCode}}" data-grid-label="Feature Code">{{featureCode}}</td>
<td data-display="{{complianceStatus}}" data-grid-label="Status">
{{#equal complianceStatus true}}<span><i class="fw fw-ok icon-success"></i>&nbsp;&nbsp;Compliant</span>{{/equal}}
{{#equal complianceStatus false}}<span><i class="fw fw-warning icon-danger"></i>&nbsp;&nbsp;Not Compliant</span>{{/equal}}
{{#equal complianceStatus true}}<span><i class="fw fw-ok icon-success"></i> Compliant</span>{{/equal}}
{{#equal complianceStatus false}}<span><i class="fw fw-warning icon-danger"></i> Not Compliant</span>{{/equal}}
</td>
</tr>
{{/each}}

View File

@ -52,13 +52,13 @@
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Status</td>
<td style="padding:10px 15px;">
{{#equal deviceView.status "ACTIVE"}}<span><i
class="fw fw-ok icon-success"></i>&nbsp;&nbsp;Active</span>{{/equal}}
class="fw fw-ok icon-success"></i>Active</span>{{/equal}}
{{#equal deviceView.status "INACTIVE"}}<span><i
class="fw fw-warning icon-warning"></i>&nbsp;&nbsp;Inactive</span>{{/equal}}
class="fw fw-warning icon-warning"></i>Inactive</span>{{/equal}}
{{#equal deviceView.status "BLOCKED"}}<span><i
class="fw fw-remove icon-danger"></i>&nbsp;&nbsp;Blocked</span>{{/equal}}
class="fw fw-remove icon-danger"></i>Blocked</span>{{/equal}}
{{#equal deviceView.status "REMOVED"}}<span><i
class="fw fw-delete icon-danger"></i>&nbsp;&nbsp;Removed</span>{{/equal}}
class="fw fw-delete icon-danger"></i>Removed</span>{{/equal}}
</td>
</tr>
{{/if}}
@ -314,7 +314,7 @@
</div>
<div class="panel-heading display-none-xs">
Policy Compliance
&nbsp;&nbsp;
<span>
<a href="javascript:void(0);" id="refresh-policy">
<i class="fw fw-refresh"></i>
@ -331,7 +331,7 @@
</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>&nbsp;&nbsp;Loading Policy
<i class="fw fw-settings fw-spin fw-2x"></i>Loading Policy
Compliance...
</div>
<div id="policy-list-container">
@ -364,7 +364,7 @@
<div id="map-error" class="message message-warning">
<h4 class="remove-margin">
<i class="icon fw fw-warning"></i>
&nbsp;Device location information is not available.
Device location information is not available.
</h4>
</div>
<p class="add-padding-5x"></p>
@ -388,7 +388,7 @@
</div>
<div class="panel-heading display-none-xs">
Installed Applications
&nbsp;&nbsp;
<span>
<a href="javascript:void(0);" id="refresh-apps">
<i class="fw fw-refresh"></i>

View File

@ -115,7 +115,7 @@ function onRequest(context) {
}
} else if (deviceType == "ios") {
viewModel["BatteryLevel"] = {};
viewModel["BatteryLevel"]["value"] = filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["BatteryLevel"];
viewModel["BatteryLevel"]["value"] = Math. round(filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["BatteryLevel"] * 10000) / 100;
viewModel["internalMemory"] = {};
viewModel["internalMemory"]["total"] = Math.

View File

@ -1843,28 +1843,23 @@ validateStep["policy-profile"] = function () {
if (continueToCheckNextInputs) {
var calendarAccountPort = $("input#calendar-account-port").val();
if (!calendarAccountPort) {
validationStatus = {
"error": true,
"subErrorMsg": "Account Port is empty. You cannot proceed.",
"erroneousFeature": operation
};
continueToCheckNextInputs = false;
} else if (!$.isNumeric(calendarAccountPort)) {
validationStatus = {
"error": true,
"subErrorMsg": "Account Port requires a number input.",
"erroneousFeature": operation
};
continueToCheckNextInputs = false;
} else if (!inputIsValidAgainstRange(calendarAccountPort, 0, 65535)) {
validationStatus = {
"error": true,
"subErrorMsg": "Account Port is not within the range " +
if (calendarAccountPort) {
if (!$.isNumeric(calendarAccountPort)) {
validationStatus = {
"error": true,
"subErrorMsg": "Account Port requires a number input.",
"erroneousFeature": operation
};
continueToCheckNextInputs = false;
} else if (!inputIsValidAgainstRange(calendarAccountPort, 0, 65535)) {
validationStatus = {
"error": true,
"subErrorMsg": "Account Port is not within the range " +
"of valid port numbers.",
"erroneousFeature": operation
};
continueToCheckNextInputs = false;
"erroneousFeature": operation
};
continueToCheckNextInputs = false;
}
}
}
@ -2387,8 +2382,6 @@ var savePolicy = function (policy, isActive, serviceURL) {
payload["roles"] = [];
}
console.log(JSON.stringify(payload));
invokerUtil.post(
serviceURL,
payload,
@ -2543,8 +2536,8 @@ var slideDownPaneAgainstValueSet = function (selectElement, paneID, valueSet) {
var slideDownPaneAgainstValueSetForRadioButtons = function (selectElement, paneID, valueSet) {
var selectedValueOnChange = selectElement.value;
var i, slideDownVotes = 0;
for (i = 0; i < valueSet.length; i++) {
var slideDownVotes = 0;
for (var i = 0; i < valueSet.length; i++) {
if (selectedValueOnChange == valueSet[i]) {
slideDownVotes++;
}

View File

@ -217,7 +217,7 @@
<label class="wr-input-label" for="passcodePolicyMaxFailedAttempts">
Maximum number of failed attempts
<span class="helper"
title="Maximum number of passcode entry attempts allowed before all data on a device will be erased">
title="The maximum number of failed password entry attempts. If the correct password is not entered within the defined number of attempts, the data on the device will be erased">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -657,7 +657,8 @@
<div>
<ul class="message message-info">
<i class="icon fw fw-info"></i>
<a id="policy-listing-status-msg">Below restrictions will be applied on devices with Android version 6.0 Marshmallow onwards only.</a>
<a id="policy-listing-status-msg">Below restrictions will be applied on devices with Android
version 6.0 Marshmallow onwards only.</a>
</ul>
</div>
<div class="wr-input-control">
@ -691,9 +692,9 @@
</label>
</h2>
<div class="panel-title-description">
This configuration can be used to encrypt data on an Android device, when the device is locked and
make it readable when the passcode is entered. Once this configuration profile is installed on a device,
corresponding users will not be able to modify these settings on their devices.
This configuration can be used to encrypt data on an Android device, when the device is locked
and make it readable when the passcode is entered. Once this configuration profile is installed
on a device, corresponding users will not be able to modify these settings on their devices.
</div>
</div>
<div id="encrypt-storage-body" class="panel-collapse panel-body collapse" role="tabpanel"
@ -766,7 +767,8 @@
<label class="wr-input-label" for="wifi-type">
Security*
<span class="helper"
title="Security type of the wireless network to be configured. 802.1x EAP works with Android 4.3 and above devices only.">
title="Security type of the wireless network to be configured. 802.1x EAP works with
Android 4.3 and above devices only.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -787,7 +789,8 @@
</span>
</label>
<select class="form-control operationDataKeys" id="wifi-eap"
onchange="changeAndroidWifiPolicyEAP(this, document.getElementById('wifi-type'))" data-key="wifiEAP">
onchange="changeAndroidWifiPolicyEAP(this, document.getElementById('wifi-type'))"
data-key="wifiEAP">
<option value="peap">PEAP</option>
<option value="tls">TLS</option>
<option value="ttls">TTLS</option>
@ -862,7 +865,8 @@
</span>
</label>
<input id="wifi-cacert-upload" type="file" class="form-control"
onchange="base64EncodeFile(this, document.getElementById('wifi-cacert'), document.getElementById('wifi-cacert-name'))"/>
onchange="base64EncodeFile(this, document.getElementById('wifi-cacert'),
document.getElementById('wifi-cacert-name'))"/>
<input id="wifi-cacert" type="hidden" class="form-control operationDataKeys"
data-key="wifiCaCert" />
<input id="wifi-cacert-name" type="hidden" class="form-control operationDataKeys"
@ -870,8 +874,8 @@
</div>
<div class="wr-input-control" id="control-wifi-password" style="display:none;">
<label class="wr-input-label" for="wifi-password">
Password*
<span class="helper" title="Password for the wireless network.">
Password
<span class="helper required" title="Password for the wireless network.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -902,7 +906,8 @@
This configuration can be used to create a black list or white list of applications.
</div>
</div>
<div id="app-restriction-body" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="app-restriction-body">
<div id="app-restriction-body" class="panel-collapse panel-body collapse" role="tabpanel"
aria-labelledby="app-restriction-body">
<hr/>
<div id="app-restriction-feature-error-msg" class="alert alert-danger hidden" role="alert">
<i class="icon fw fw-error"></i><span></span>
@ -931,7 +936,8 @@
</span>
</label>
<br/>
<a href="#restricted-applications-grid" class="btn btn-secondary grid-input-add " data-click-event="add-form">
<a href="#restricted-applications-grid" class="btn btn-secondary grid-input-add "
data-click-event="add-form">
<span class="icon fw-stack">
<i class="fw fw-add fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i>
@ -1094,8 +1100,10 @@
</div>
<!--<div class="wr-input-control">
<label class="wr-input-control checkbox">
<input id="work-profile-policy-allow-cross-profile" type="checkbox" class="form-control operationDataKeys" data-key="workProfilePolicyAllowCopyPaste" checked="checked" />
<span class="helper" title="Permit the use of repeating, ascending and descending character sequences">
<input id="work-profile-policy-allow-cross-profile" type="checkbox" class="form-control
operationDataKeys" data-key="workProfilePolicyAllowCopyPaste" checked="checked" />
<span class="helper" title="Permit the use of repeating, ascending and descending
character sequences">
Allow cross profile copy-paste
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
@ -1206,24 +1214,34 @@
<label class="wr-input-control radio light">
<input id="automatic-system-update-radio-btn" type="radio" name="cosu-system-update-type"
class="form-control operationDataKeys" data-key="cosuSystemUpdatePolicyType"
value="automatic" onclick="slideDownPaneAgainstValueSetForRadioButtons(this, 'cosu-system-update-policy-window-select', ['window'])" checked/>
<span class="helper" title="Installs system update automatically as soon as one is available">
value="automatic"
onclick="slideDownPaneAgainstValueSetForRadioButtons(this,
'cosu-system-update-policy-window-select', ['window'])" checked/>
<span class="helper"
title="Installs system update automatically as soon as one is available">
Automatic
</span>
</label>
<label class="wr-input-control radio light">
<input id="postpone-system-update-radio-btn" type="radio" name="cosu-system-update-type"
class="form-control operationDataKeys" data-key="cosuSystemUpdatePolicyType"
value="postpone" onclick="slideDownPaneAgainstValueSetForRadioButtons(this, 'cosu-system-update-policy-window-select', ['window'])"/>
<span class="helper" title="Incoming system update will be blocked for a maximum of 30 days">
value="postpone"
onclick="slideDownPaneAgainstValueSetForRadioButtons(this,
'cosu-system-update-policy-window-select', ['window'])"/>
<span class="helper"
title="Incoming system update will be blocked for a maximum of 30 days">
Postpone
</span>
</label>
<label class="wr-input-control radio light">
<input id="window-system-update-radio-btn" type="radio" name="cosu-system-update-type"
class="form-control operationDataKeys" data-key="cosuSystemUpdatePolicyType"
value="window" onclick="slideDownPaneAgainstValueSetForRadioButtons(this, 'cosu-system-update-policy-window-select', ['window'])"/>
<span class="helper" title="Install system update automatically within a daily maintenance window, for a maximum of 30 days">
value="window"
onclick="slideDownPaneAgainstValueSetForRadioButtons(this,
'cosu-system-update-policy-window-select', ['window'])"/>
<span class="helper"
title="Install system update automatically within a daily maintenance window, for a
maximum of 30 days">
Window
</span>
</label>
@ -1344,11 +1362,13 @@
<div class="wr-input-control">
<label class="wr-input-label" for="cosu-whitelisted-applications">
Whitelisted Applications to enter Lock Task Mode
<span class="helper" title="Configuration information specific to a given third-party VPN solution. This has to be input as key/value pairs.">
<span class="helper" title="Configuration information specific to a given third-party VPN
solution. This has to be input as key/value pairs.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
<br>
<a href="#cosu-whitelisted-applications-grid" class="btn btn-secondary grid-input-add" data-click-event="add-form">
<a href="#cosu-whitelisted-applications-grid" class="btn btn-secondary grid-input-add"
data-click-event="add-form">
<span class="icon fw-stack">
<i class="fw fw-add fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i>

View File

@ -95,7 +95,7 @@
<label class="wr-input-control checkbox">
<input id="passcode-policy-allow-simple" type="checkbox" class="form-control operationDataKeys" data-key="passcodePolicyAllowSimple" checked="checked" />
<span class="helper" title="Permit the use of repeating, ascending and descending character sequences">
&nbsp;&nbsp;&nbsp;Allow simple value
Allow simple value
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -105,7 +105,7 @@
<label class="wr-input-control checkbox">
<input id="passcode-policy-require-alphanumeric" type="checkbox" class="form-control operationDataKeys" data-key="passcodePolicyRequireAlphanumeric" checked="checked" />
<span class="helper" title="Require passcode to contain both letters and numbers">
&nbsp;&nbsp;&nbsp;Require alphanumeric value
Require alphanumeric value
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -168,7 +168,9 @@
<br>
( Should be in between 1-to-730 days or none )
</label>
<input id="passcode-policy-max-passcode-age-in-days" type="text" class="form-control operationDataKeys" data-key="passcodePolicyMaxPasscodeAgeInDays" maxlength="3" placeholder="[ Requires Number Input ]">
<input id="passcode-policy-max-passcode-age-in-days" type="text"
class="form-control operationDataKeys" data-key="passcodePolicyMaxPasscodeAgeInDays"
maxlength="3" placeholder="[ Requires Number Input ]">
</div>
<div class="wr-input-control">
@ -180,17 +182,20 @@
<br>
( Should be in between 1-to-50 passcodes or none )
</label>
<input id="passcode-policy-passcode-history" type="text" class="form-control operationDataKeys" data-key="passcodePolicyPasscodeHistory" maxlength="2" placeholder="[ Requires Number Input ]">
<input id="passcode-policy-passcode-history" type="text" class="form-control operationDataKeys"
data-key="passcodePolicyPasscodeHistory" maxlength="2" placeholder="[ Requires Number Input ]">
</div>
<div class="wr-input-control">
<label class="wr-input-label" for="passcodePolicyMaxFailedAttempts">
Maximum number of failed attempts
<span class="helper" title="Maximum number of passcode entry attempts allowed before all data on a device will be erased">
<span class="helper" title="Maximum number of passcode entry attempts allowed before all
data on a device will be erased">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
<select id="passcode-policy-max-failed-attempts" class="form-control operationDataKeys" data-key="passcodePolicyMaxFailedAttempts" data-default="0">
<select id="passcode-policy-max-failed-attempts" class="form-control operationDataKeys"
data-key="passcodePolicyMaxFailedAttempts" data-default="0">
<option value="" selected="selected">
None
</option>
@ -222,7 +227,8 @@
</label>
</h2>
<div class="panel-title-description">
This configuration can be used to restrict the usage of camera on an Windows device together with all the applications using the camera.
This configuration can be used to restrict the usage of camera on an Windows device together
with all the applications using the camera.
Once this configuration profile is installed on a device, corresponding users will not be able
to modify these settings on their devices.
</div>
@ -237,9 +243,11 @@
<br>
<div class="wr-input-control">
<label class="wr-input-control checkbox">
<input id="camera-enabled" type="checkbox" class="operationDataKeys" data-key="cameraEnabled" checked="checked" />
<span class="helper" title="Having this checked would enable Usage of phone camera in the device.">
&nbsp;&nbsp;&nbsp;Allow use of camera
<input id="camera-enabled" type="checkbox" class="operationDataKeys"
data-key="cameraEnabled" checked="checked" />
<span class="helper" title="Having this checked would enable Usage of phone camera in
the device.">
Allow use of camera
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -252,7 +260,8 @@
<!-- encrypt-storage -->
<div class="wr-hidden-operation" data-operation="encrypt-storage">
<div class="panel panel-default operation-data" data-operation="encrypt-storage" data-operation-code="ENCRYPT_STORAGE">
<div class="panel panel-default operation-data" data-operation="encrypt-storage"
data-operation-code="ENCRYPT_STORAGE">
<div id="encrypt-storage-heading" class="panel-heading" role="tab">
<h2 class="sub-title panel-title">
Encryption Settings
@ -264,11 +273,12 @@
</h2>
<div class="panel-title-description">
This configuration can be used to encrypt data on an Windows device, when the device is locked and
make it readable when the passcode is entered. Once this configuration profile is installed on a device,
corresponding users will not be able to modify these settings on their devices.
make it readable when the passcode is entered. Once this configuration profile is installed on a
device, corresponding users will not be able to modify these settings on their devices.
</div>
</div>
<div id="encrypt-storage-body" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="encrypt-storage-body">
<div id="encrypt-storage-body" class="panel-collapse panel-body collapse" role="tabpanel"
aria-labelledby="encrypt-storage-body">
<hr/>
<div id="encrypt-storage-feature-error-msg" class="alert alert-danger hidden" role="alert">
<i class="icon fw fw-error"></i><span></span>
@ -278,9 +288,10 @@
<br>
<div class="wr-input-control">
<label class="wr-input-control checkbox">
<input id="encrypt-storage-enabled" type="checkbox" class="operationDataKeys" data-key="encryptStorageEnabled" checked="checked" />
<input id="encrypt-storage-enabled" type="checkbox" class="operationDataKeys"
data-key="encryptStorageEnabled" checked="checked" />
<span class="helper" title="Having this checked would enable Storage-encryption in the device">
&nbsp;&nbsp;&nbsp;Enable storage-encryption
Enable storage-encryption
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -292,7 +303,8 @@
<!-- /encrypt-storage -->
<!--app-restriction-->
<div class="wr-hidden-operation" data-operation="app-restriction">
<div class="panel panel-default operation-data" data-operation="app-restriction" data-operation-code="APP-RESTRICTION">
<div class="panel panel-default operation-data" data-operation="app-restriction"
data-operation-code="APP-RESTRICTION">
<div id="app-restriction-heading" class="panel-heading" role="tab">
<h2 class="sub-title panel-title">
Application Restriction Settings
@ -306,7 +318,8 @@
This configuration can be used to create a black list or white list of applications.
</div>
</div>
<div id="app-restriction-body" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="app-restriction-body">
<div id="app-restriction-body" class="panel-collapse panel-body collapse" role="tabpanel"
aria-labelledby="app-restriction-body">
<hr/>
<div id="app-restriction-feature-error-msg" class="alert alert-danger hidden" role="alert">
<i class="icon fw fw-error"></i><span></span>
@ -327,16 +340,19 @@
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
<br>
<a href="#restricted-applications-grid" class="btn btn-secondary grid-input-add" data-click-event="add-form">
<a href="#restricted-applications-grid" class="btn btn-secondary grid-input-add"
data-click-event="add-form">
<span class="icon fw-stack">
<i class="fw fw-add fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i>
</span>
&nbsp;
Add Application
</a>
</label>
<div id="restricted-applications" class="operationDataKeys grouped-array-input multi-column-key-value-pair-array" data-key="restrictedApplications" data-column-count="2">
<div id="restricted-applications"
class="operationDataKeys grouped-array-input multi-column-key-value-pair-array"
data-key="restrictedApplications" data-column-count="2">
<table class="table table-responsive table-striped">
<thead>
<tr>
@ -361,14 +377,19 @@
<span class="index"></span>
</td>
<td data-title="App Name">
<input type="text" class="form-control grid-input-text" data-child-key="appName" maxlength="100" data-default="" placeholder="[ Application Name or Description ]" />
<input type="text" class="form-control grid-input-text"
data-child-key="appName" maxlength="100" data-default=""
placeholder="[ Application Name or Description ]" />
</td>
<td data-title="Package Name">
<input type="text" class="form-control grid-input-text" data-child-key="packageName" maxlength="100" data-default="" placeholder="[ Package Name of Application ]" />
<input type="text" class="form-control grid-input-text"
data-child-key="packageName" maxlength="100" data-default=""
placeholder="[ Package Name of Application ]" />
</td>
<td>
<span class="list-group-item-actions">
<a href="#restricted-applications-grid" class="grid-input-remove" data-click-event="remove-form">
<a href="#restricted-applications-grid" class="grid-input-remove"
data-click-event="remove-form">
<span class="fw-stack helper" title="Remove Entry">
<i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-delete fw-stack-1x"></i>
@ -460,7 +481,7 @@
<!--<div class="panel-heading" role="tab">-->
<!--<h2 class="sub-title panel-title">-->
<!--<br>-->
<!--&nbsp;&nbsp;&nbsp;App Installations-->
<!-- App Installations-->
<!--<label class="wr-input-control switch" data-toggle="collapse" data-target="#installApp">-->
<!--<input type="checkbox" />-->
<!--<span class="helper"></span>-->
@ -504,7 +525,7 @@
<!--<div class="panel-heading" role="tab">-->
<!--<h2 class="sub-title panel-title">-->
<!--<br>-->
<!--&nbsp;&nbsp;&nbsp;App Uninstallations-->
<!-- App Uninstallations-->
<!--<label class="wr-input-control switch" data-toggle="collapse" data-target="#uninstallApp">-->
<!--<input type="checkbox" />-->
<!--<span class="helper"></span>-->
@ -534,7 +555,7 @@
<!--<div class="panel-heading" role="tab">-->
<!--<h2 class="sub-title panel-title">-->
<!--<br>-->
<!--&nbsp;&nbsp;&nbsp;Web clips-->
<!-- Web clips-->
<!--<label class="wr-input-control switch" data-toggle="collapse" data-target="#installWebClip">-->
<!--<input type="checkbox" />-->
<!--<span class="helper"></span>-->

View File

@ -142,14 +142,14 @@
<input id="user-roles-radio-btn" type="radio"
name="select-users-radio-btn" class="select-users-radio"
checked/>
<span class="helper">&nbsp;Set user role(s)</span>
<span class="helper"> Set user role(s)</span>
</label>
{{/if}}
{{#if isAuthorizedViewUsers}}
<label class="wr-input-control radio light" rel="assetfilter">
<input id="users-radio-btn" type="radio" name="select-users-radio-btn"
class="select-users-radio"/>
<span class="helper">&nbsp;Set user(s)</span>
<span class="helper"> Set user(s)</span>
</label>
{{/if}}
</div>
@ -231,9 +231,9 @@
<div class="wr-advance-operations">
<div class="wr-advance-operations-init">
<br>
&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;Loading platform features . . .
Loading platform features . . .
<br>
<br>
</div>

View File

@ -1601,28 +1601,23 @@ validateStep["policy-profile"] = function () {
if (continueToCheckNextInputs) {
var calendarAccountPort = $("input#calendar-account-port").val();
if (!calendarAccountPort) {
validationStatus = {
"error": true,
"subErrorMsg": "Account Port is empty. You cannot proceed.",
"erroneousFeature": operation
};
continueToCheckNextInputs = false;
} else if (!$.isNumeric(calendarAccountPort)) {
validationStatus = {
"error": true,
"subErrorMsg": "Account Port requires a number input.",
"erroneousFeature": operation
};
continueToCheckNextInputs = false;
} else if (!inputIsValidAgainstRange(calendarAccountPort, 0, 65535)) {
validationStatus = {
"error": true,
"subErrorMsg": "Account Port is not within the range " +
"of valid port numbers.",
"erroneousFeature": operation
};
continueToCheckNextInputs = false;
if (calendarAccountPort) {
if (!$.isNumeric(calendarAccountPort)) {
validationStatus = {
"error": true,
"subErrorMsg": "Account Port requires a number input.",
"erroneousFeature": operation
};
continueToCheckNextInputs = false;
} else if (!inputIsValidAgainstRange(calendarAccountPort, 0, 65535)) {
validationStatus = {
"error": true,
"subErrorMsg": "Account Port is not within the range " +
"of valid port numbers.",
"erroneousFeature": operation
};
continueToCheckNextInputs = false;
}
}
}
@ -2319,8 +2314,8 @@ var slideDownPaneAgainstValueSet = function (selectElement, paneID, valueSet) {
var slideDownPaneAgainstValueSetForRadioButtons = function (selectElement, paneID, valueSet) {
var selectedValueOnChange = selectElement.value;
var i, slideDownVotes = 0;
for (i = 0; i < valueSet.length; i++) {
var slideDownVotes = 0;
for (var i = 0; i < valueSet.length; i++) {
if (selectedValueOnChange == valueSet[i]) {
slideDownVotes++;
}

View File

@ -86,7 +86,7 @@
<!--</span>-->
<!--Web clips-->
<!--</a>-->
<!--
<a href="javascript:void(0)" onclick="showAdvanceOperation('cosu-system-update-policy', this)">
<span class="wr-hidden-operation-icon fw-stack">
@ -243,7 +243,7 @@
<label class="wr-input-label" for="passcodePolicyMaxFailedAttempts">
Maximum number of failed attempts
<span class="helper"
title="Maximum number of passcode entry attempts allowed before all data on a device will be erased">
title="The maximum number of failed password entry attempts. If the correct password is not entered within the defined number of attempts, the data on the device will be erased">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -787,7 +787,7 @@
<div class="wr-input-control">
<label class="wr-input-label" for="wifi-ssid">
Service Set Identifier (SSID) *
<span class="helper" title="Identification of the wireless network to be configured.">
<span class="helper" title="Identification of the wireless network to be configured.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
<br>
@ -799,8 +799,8 @@
<div class="wr-input-control">
<label class="wr-input-label" for="wifi-type">
Security*
<span class="helper"
title="Security type of the wireless network to be configured. 802.1x EAP works with Android 4.3 and above devices only.">
<span class="helper"
title="Security type of the wireless network to be configured. 802.1x EAP works with Android 4.3 and above devices only.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -816,7 +816,7 @@
<div class="wr-input-control" id="control-wifi-eap" style="display:none;">
<label class="wr-input-label" for="wifi-eap">
EAP Method
<span class="helper" title="EAP Method of the wireless network to be configured.">
<span class="helper" title="EAP Method of the wireless network to be configured.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -834,8 +834,8 @@
<div class="wr-input-control" id="control-wifi-phase2" style="display:none;">
<label class="wr-input-label" for="wifi-phase2">
Phase 2 Authentication
<span class="helper"
title="Phase 2 authentication of the wireless network to be configured.">
<span class="helper"
title="Phase 2 authentication of the wireless network to be configured.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -850,7 +850,7 @@
<div class="wr-input-control" id="control-wifi-provisioning" style="display:none;">
<label class="wr-input-label" for="wifi-provisioning">
Provisioning
<span class="helper" title="Provisioning of the wireless network to be configured.">
<span class="helper" title="Provisioning of the wireless network to be configured.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -865,7 +865,7 @@
<div class="wr-input-control" id="control-wifi-identity" style="display:none;">
<label class="wr-input-label" for="wifi-identity">
Identity
<span class="helper" title="Identity of the wireless network to be configured.">
<span class="helper" title="Identity of the wireless network to be configured.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -879,7 +879,7 @@
<div class="wr-input-control" id="control-wifi-anoidentity" style="display:none;">
<label class="wr-input-label" for="wifi-anoidentity">
Anonymous Identity
<span class="helper" title="Identity of the wireless network to be configured.">
<span class="helper" title="Identity of the wireless network to be configured.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -893,7 +893,7 @@
<div class="wr-input-control" id="control-wifi-cacert" style="display:none;">
<label class="wr-input-label" for="wifi-password">
CA Certificate
<span class="helper" title="CA Certificate for the wireless network.">
<span class="helper" title="CA Certificate for the wireless network.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -906,10 +906,10 @@
</div>
<div class="wr-input-control" id="control-wifi-password" style="display:none;">
<label class="wr-input-label" for="wifi-password">
Password*
<span class="helper" title="Password for the wireless network.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
Password
<span class="helper required" title="Password for the wireless network.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
<input id="wifi-password" type="password" class="form-control operationDataKeys"
data-key="wifiPassword" maxlength="100"/>
@ -967,12 +967,13 @@
</span>
</label>
<br/>
<a href="#restricted-applications-grid" class="btn btn-secondary grid-input-add " data-click-event="add-form">
<a href="#restricted-applications-grid" class="btn btn-secondary grid-input-add "
data-click-event="add-form">
<span class="icon fw-stack">
<i class="fw fw-add fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i>
</span>
Add Application
</a>
<div id="restricted-applications"
@ -1062,7 +1063,7 @@
<div class="wr-input-control">
<label class="wr-input-label" for="vpn-server-address">
VPN Server Address*
<span class="helper" title="Address of the VPN server to be configured.">
<span class="helper" title="Address of the VPN server to be configured.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -1072,7 +1073,7 @@
<div class="wr-input-control">
<label class="wr-input-label" for="vpn-server-port">
VPN Server Port
<span class="helper" title="Port of the VPN server to be configured.">
<span class="helper" title="Port of the VPN server to be configured.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -1082,7 +1083,7 @@
<div class="wr-input-control">
<label class="wr-input-label" for="vpn-shared-secret">
Shared Secret
<span class="helper" title="Shared secret.">
<span class="helper" title="Shared secret.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -1092,7 +1093,7 @@
<div class="wr-input-control">
<label class="wr-input-label" for="vpn-dns">
DNS Server
<span class="helper" title="DNS Server.">
<span class="helper" title="DNS Server.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -1330,7 +1331,8 @@
<hr>
<div class="panel-title-description">
This configuration can be used to set system update policy to an Android Device in COSU.
Once this configuration profile is installed on a device, corresponding users will not be able
Once this configuration profile is installed on a device, corresponding users will not be
able
to modify these settings on their devices.
</div>
</h2>
@ -1338,7 +1340,8 @@
<div id="cosu-system-update-policy-body" class="panel-collapse panel-body collapse" role="tabpanel"
aria-labelledby="cosu-system-update-policy-body">
<div id="cosu-system-update-policy-feature-error-msg" class="alert alert-danger hidden" role="alert">
<div id="cosu-system-update-policy-feature-error-msg" class="alert alert-danger hidden"
role="alert">
<i class="icon fw fw-error"></i><span></span>
</div>
<div class="wr-input-control">
@ -1352,24 +1355,31 @@
<label class="wr-input-control radio light">
<input id="automatic-system-update-radio-btn" type="radio" name="cosu-system-update-type"
class="form-control operationDataKeys" data-key="cosuSystemUpdatePolicyType"
value="automatic" onclick="slideDownPaneAgainstValueSetForRadioButtons(this, 'cosu-system-update-policy-window-select', ['window'])" checked/>
<span class="helper" title="Installs system update automatically as soon as one is available">
value="automatic"
onclick="slideDownPaneAgainstValueSetForRadioButtons(this, 'cosu-system-update-policy-window-select', ['window'])"
checked/>
<span class="helper"
title="Installs system update automatically as soon as one is available">
Automatic
</span>
</label>
<label class="wr-input-control radio light">
<input id="postpone-system-update-radio-btn" type="radio" name="cosu-system-update-type"
class="form-control operationDataKeys" data-key="cosuSystemUpdatePolicyType"
value="postpone" onclick="slideDownPaneAgainstValueSetForRadioButtons(this, 'cosu-system-update-policy-window-select', ['window'])"/>
<span class="helper" title="Incoming system update will be blocked for a maximum of 30 days">
value="postpone"
onclick="slideDownPaneAgainstValueSetForRadioButtons(this, 'cosu-system-update-policy-window-select', ['window'])"/>
<span class="helper"
title="Incoming system update will be blocked for a maximum of 30 days">
Postpone
</span>
</label>
<label class="wr-input-control radio light">
<input id="window-system-update-radio-btn" type="radio" name="cosu-system-update-type"
class="form-control operationDataKeys" data-key="cosuSystemUpdatePolicyType"
value="window" onclick="slideDownPaneAgainstValueSetForRadioButtons(this, 'cosu-system-update-policy-window-select', ['window'])"/>
<span class="helper" title="Install system update automatically within a daily maintenance window, for a maximum of 30 days">
value="window"
onclick="slideDownPaneAgainstValueSetForRadioButtons(this, 'cosu-system-update-policy-window-select', ['window'])"/>
<span class="helper"
title="Install system update automatically within a daily maintenance window, for a maximum of 30 days">
Window
</span>
</label>
@ -1468,7 +1478,8 @@
<div id="cosu-whitelisted-applications-heading" class="panel-heading" role="tab">
<h2 class="sub-title panel-title">
Whitelist Applications (COSU)
<label id="cosu-whitelisted-applications-lbl" class="wr-input-control switch" data-toggle="collapse"
<label id="cosu-whitelisted-applications-lbl" class="wr-input-control switch"
data-toggle="collapse"
data-target="#cosu-whitelisted-applications-body">
<input type="checkbox"/>
<span class="helper"></span>
@ -1476,8 +1487,10 @@
</label>
<hr>
<div class="panel-title-description">
This configuration can be used to whitelist applications in lock task mode of an Android Device in COSU.
Once this configuration profile is installed on a device, corresponding users will not be able
This configuration can be used to whitelist applications in lock task mode of an Android
Device in COSU.
Once this configuration profile is installed on a device, corresponding users will not be
able
to modify these settings on their devices.
</div>
</h2>
@ -1485,22 +1498,25 @@
<div id="cosu-whitelisted-applications-body" class="panel-collapse panel-body collapse" role="tabpanel"
aria-labelledby="cosu-whitelisted-applications-body">
<div id="cosu-whitelisted-applications-feature-error-msg" class="alert alert-danger hidden" role="alert">
<div id="cosu-whitelisted-applications-feature-error-msg" class="alert alert-danger hidden"
role="alert">
<i class="icon fw fw-error"></i><span></span>
</div>
<div class="wr-input-control">
<label class="wr-input-label" for="cosu-whitelisted-applications">
Whitelisted Applications to enter Lock Task Mode
<span class="helper" title="Configuration information specific to a given third-party VPN solution. This has to be input as key/value pairs.">
<span class="helper"
title="Configuration information specific to a given third-party VPN solution. This has to be input as key/value pairs.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
<br>
<a href="#cosu-whitelisted-applications-grid" class="grid-input-add" data-click-event="add-form">
<a href="#cosu-whitelisted-applications-grid" class="btn btn-secondary grid-input-add"
data-click-event="add-form">
<span class="icon fw-stack">
<i class="fw fw-add fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i>
</span>
Add Application
</a>
</label>
@ -1526,19 +1542,21 @@
</table>
<table class="template hidden">
<tbody data-add-form="#cosu-whitelisted-applications-grid">
<tr data-add-form-element="clone">
<td data-title="No:">
<span class="index"></span>
</td>
<td data-title="Application Name / Description">
<input type="text" class="form-control grid-input-text" data-child-key="appName"
maxlength="100" data-default="" placeholder="[ Application Name / Description ]"/>
</td>
<td data-title="Package Name">
<input type="text" class="form-control grid-input-text" data-child-key="packageName"
maxlength="100" data-default="" placeholder="[ Package Name ]"/>
</td>
<td>
<tr data-add-form-element="clone">
<td data-title="No:">
<span class="index"></span>
</td>
<td data-title="Application Name / Description">
<input type="text" class="form-control grid-input-text" data-child-key="appName"
maxlength="100" data-default=""
placeholder="[ Application Name / Description ]"/>
</td>
<td data-title="Package Name">
<input type="text" class="form-control grid-input-text"
data-child-key="packageName"
maxlength="100" data-default="" placeholder="[ Package Name ]"/>
</td>
<td>
<span class="list-group-item-actions">
<a href="#cosu-whitelisted-applications-grid" class="grid-input-remove"
data-click-event="remove-form">
@ -1548,8 +1566,8 @@
</span>
</a>
</span>
</td>
</tr>
</td>
</tr>
</tbody>
</table>
</div>

View File

@ -1954,8 +1954,8 @@ var slideDownPaneAgainstValueSet = function (selectElement, paneID, valueSet) {
var slideDownPaneAgainstValueSetForRadioButtons = function (selectElement, paneID, valueSet) {
var selectedValueOnChange = selectElement.value;
var i, slideDownVotes = 0;
for (i = 0; i < valueSet.length; i++) {
var slideDownVotes = 0;
for (var i = 0; i < valueSet.length; i++) {
if (selectedValueOnChange == valueSet[i]) {
slideDownVotes++;
}

View File

@ -5,7 +5,8 @@
<i class="fw fw-key fw-stack-2x"></i>
</span>
Passcode Policy
<span id="passcode-policy-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
<span id="passcode-policy-configured" class="has-configured status-icon hidden"><i
class="fw fw-ok"></i></span>
<span id="passcode-policy-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
<span id="passcode-policy-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
</a>
@ -23,9 +24,11 @@
<i class="fw fw-security fw-stack-2x"></i>
</span>
Encryption Settings
<span id="encrypt-storage-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
<span id="encrypt-storage-configured" class="has-configured status-icon hidden"><i
class="fw fw-ok"></i></span>
<span id="encrypt-storage-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
<span id="encrypt-storage-error" class="encryption-error status-icon hidden"><i class="fw fw-error"></i></span>
<span id="encrypt-storage-error" class="encryption-error status-icon hidden"><i
class="fw fw-error"></i></span>
</a>
<a href="javascript:void(0)" onclick="showAdvanceOperation('wifi', this)">
<span class="wr-hidden-operations-icon fw-stack">
@ -60,7 +63,8 @@
<i class="fw fw-block fw-stack-2x"></i>
</span>
Applications Restrictions
<span id="app-restriction-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
<span id="app-restriction-configured" class="has-configured status-icon hidden"><i
class="fw fw-ok"></i></span>
<span id="app-restriction-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
<span id="app-restriction-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
</a>
@ -69,8 +73,10 @@
<i class="fw fw-import fw-stack-2x"></i>
</span>
System Update Policy (COSU)
<span id="cosu-system-update-policy-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
<span id="cosu-system-update-policy-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
<span id="cosu-system-update-policy-configured" class="has-configured status-icon hidden"><i
class="fw fw-ok"></i></span>
<span id="cosu-system-update-policy-ok" class="has-success status-icon hidden"><i
class="fw fw-ok"></i></span>
<span id="cosu-system-update-policy-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
</a>
<a href="javascript:void(0)" onclick="showAdvanceOperation('cosu-whitelisted-applications', this)" class="hide">
@ -78,20 +84,24 @@
<i class="fw fw-register fw-stack-2x"></i>
</span>
Whitelist Apps (COSU)
<span id="cosu-whitelisted-applications-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
<span id="cosu-whitelisted-applications-configured" class="has-configured status-icon hidden"><i
class="fw fw-ok"></i></span>
<span id="cosu-whitelisted-applications-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
<span id="cosu-whitelisted-applications-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
<span id="cosu-whitelisted-applications-error" class="has-error status-icon hidden"><i
class="fw fw-error"></i></span>
</a>
</div>
<div class="wr-hidden-operations-content col-lg-8">
<!-- passcode-policy -->
<div class="wr-hidden-operation" data-operation="passcode-policy" style="display: block">
<div class="panel panel-default operation-data" data-operation="passcode-policy" data-operation-code="PASSCODE_POLICY">
<div class="panel panel-default operation-data" data-operation="passcode-policy"
data-operation-code="PASSCODE_POLICY">
<div id="passcode-policy-heading" class="panel-heading" role="tab">
<h2 class="sub-title panel-title">
Passcode Policy
<label id="passcode-policy-lbl" class="wr-input-control switch hidden" data-toggle="collapse" data-target="#passcode-policy-body">
<input type="checkbox" />
<label id="passcode-policy-lbl" class="wr-input-control switch hidden" data-toggle="collapse"
data-target="#passcode-policy-body">
<input type="checkbox"/>
<span class="helper"></span>
<span class="text"></span>
</label>
@ -102,7 +112,8 @@
to modify these settings on their devices.
</div>
</div>
<div id="passcode-policy-body" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="passcode-policy-body">
<div id="passcode-policy-body" class="panel-collapse panel-body collapse" role="tabpanel"
aria-labelledby="passcode-policy-body">
<hr/>
<div id="passcode-policy-feature-error-msg" class="alert alert-danger hidden" role="alert">
<i class="icon fw fw-error"></i><span></span>
@ -110,8 +121,11 @@
<div class="wr-input-control">
<label class="wr-input-control checkbox">
<input id="passcode-policy-allow-simple" type="checkbox" class="form-control operationDataKeys" data-key="passcodePolicyAllowSimple" checked="checked" disabled/>
<span class="helper" title="Permit the use of repeating, ascending and descending character sequences">
<input id="passcode-policy-allow-simple" type="checkbox"
class="form-control operationDataKeys" data-key="passcodePolicyAllowSimple"
checked="checked" disabled/>
<span class="helper"
title="Permit the use of repeating, ascending and descending character sequences">
Allow simple value
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
@ -120,7 +134,9 @@
<div class="wr-input-control">
<label class="wr-input-control checkbox">
<input id="passcode-policy-require-alphanumeric" type="checkbox" class="form-control operationDataKeys" data-key="passcodePolicyRequireAlphanumeric" checked="checked" disabled/>
<input id="passcode-policy-require-alphanumeric" type="checkbox"
class="form-control operationDataKeys" data-key="passcodePolicyRequireAlphanumeric"
checked="checked" disabled/>
<span class="helper" title="Require passcode to contain both letters and numbers">
Require alphanumeric value
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
@ -135,7 +151,8 @@
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
<select id="passcode-policy-min-length" class="form-control operationDataKeys" data-key="passcodePolicyMinLength" data-default="0" disabled>
<select id="passcode-policy-min-length" class="form-control operationDataKeys"
data-key="passcodePolicyMinLength" data-default="0" disabled>
<option value="" selected="selected">
None
</option>
@ -157,11 +174,13 @@
<div class="wr-input-control">
<label class="wr-input-label" for="passcode-policy-min-complex-chars">
Minimum number of complex characters
<span class="helper" title="Minimum number of complex or non-alphanumeric characters allowed in a passcode">
<span class="helper"
title="Minimum number of complex or non-alphanumeric characters allowed in a passcode">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
<select id="passcode-policy-min-complex-chars" class="form-control operationDataKeys" data-key="passcodePolicyMinComplexChars" data-default="0" disabled>
<select id="passcode-policy-min-complex-chars" class="form-control operationDataKeys"
data-key="passcodePolicyMinComplexChars" data-default="0" disabled>
<option value="" selected="selected">
None
</option>
@ -182,7 +201,9 @@
<br>
( Should be in between 1-to-730 days or none )
</label>
<input id="passcode-policy-max-passcode-age-in-days" type="text" class="form-control operationDataKeys" data-key="passcodePolicyMaxPasscodeAgeInDays" maxlength="3" placeholder="[ Requires Number Input ]" disabled>
<input id="passcode-policy-max-passcode-age-in-days" type="text"
class="form-control operationDataKeys" data-key="passcodePolicyMaxPasscodeAgeInDays"
maxlength="3" placeholder="[ Requires Number Input ]" disabled>
</div>
<div class="wr-input-control">
@ -194,17 +215,21 @@
<br>
( Should be in between 1-to-50 passcodes or none )
</label>
<input id="passcode-policy-passcode-history" type="text" class="form-control operationDataKeys" data-key="passcodePolicyPasscodeHistory" maxlength="2" placeholder="[ Requires Number Input ]" disabled>
<input id="passcode-policy-passcode-history" type="text" class="form-control operationDataKeys"
data-key="passcodePolicyPasscodeHistory" maxlength="2"
placeholder="[ Requires Number Input ]" disabled>
</div>
<div class="wr-input-control">
<label class="wr-input-label" for="passcodePolicyMaxFailedAttempts">
Maximum number of failed attempts
<span class="helper" title="Maximum number of passcode entry attempts allowed before all data on a device will be erased">
<span class="helper"
title="The maximum number of failed password entry attempts. If the correct password is not entered within the defined number of attempts, the data on the device will be erased">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
<select id="passcode-policy-max-failed-attempts" class="form-control operationDataKeys" data-key="passcodePolicyMaxFailedAttempts" data-default="0" disabled>
<select id="passcode-policy-max-failed-attempts" class="form-control operationDataKeys"
data-key="passcodePolicyMaxFailedAttempts" data-default="0" disabled>
<option value="" selected="selected">
None
</option>
@ -241,7 +266,8 @@
to modify these settings on their devices.
</div>
</div>
<div id="camera-body" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="camera-body">
<div id="camera-body" class="panel-collapse panel-body collapse" role="tabpanel"
aria-labelledby="camera-body">
<hr/>
<div id="camera-feature-error-msg" class="alert alert-danger hidden" role="alert">
<i class="icon fw fw-error"></i><span></span>
@ -251,7 +277,8 @@
<div class="wr-input-control">
<label class="wr-input-control checkbox">
<input id="camera-enabled" type="checkbox" class="operationDataKeys" data-key="cameraEnabled"
<input id="camera-enabled" type="checkbox" class="operationDataKeys"
data-key="cameraEnabled"
checked="checked" disabled/>
<span class="helper"
title="Having this checked would enable Usage of phone camera in the device.">
@ -659,7 +686,8 @@
<br>
<br>
<b>
Bellow restrictions will be applied on devices with Android version 6.0 Marshmallow onwards only.
Bellow restrictions will be applied on devices with Android version 6.0 Marshmallow onwards
only.
</b>
<br><br>
<div class="wr-input-control">
@ -680,23 +708,28 @@
<!-- encrypt-storage -->
<div class="wr-hidden-operation" data-operation="encrypt-storage">
<div class="panel panel-default operation-data" data-operation="encrypt-storage" data-operation-code="ENCRYPT_STORAGE">
<div class="panel panel-default operation-data" data-operation="encrypt-storage"
data-operation-code="ENCRYPT_STORAGE">
<div id="encrypt-storage-heading" class="panel-heading" role="tab">
<h2 class="sub-title panel-title">
Encryption Settings
<label class="wr-input-control switch hidden" data-toggle="collapse" data-target="#encrypt-storage-body">
<input type="checkbox" />
<label class="wr-input-control switch hidden" data-toggle="collapse"
data-target="#encrypt-storage-body">
<input type="checkbox"/>
<span class="helper"></span>
<span class="text"></span>
</label>
</h2>
<div class="panel-title-description">
This configuration can be used to encrypt data on an Android device, when the device is locked and
make it readable when the passcode is entered. Once this configuration profile is installed on a device,
This configuration can be used to encrypt data on an Android device, when the device is locked
and
make it readable when the passcode is entered. Once this configuration profile is installed on a
device,
corresponding users will not be able to modify these settings on their devices.
</div>
</div>
<div id="encrypt-storage-body" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="encrypt-storage-body">
<div id="encrypt-storage-body" class="panel-collapse panel-body collapse" role="tabpanel"
aria-labelledby="encrypt-storage-body">
<hr/>
<div id="encrypt-storage-feature-error-msg" class="alert alert-danger hidden" role="alert">
<i class="icon fw fw-error"></i><span></span>
@ -706,8 +739,10 @@
<br>
<div class="wr-input-control">
<label class="wr-input-control checkbox">
<input id="encrypt-storage-enabled" type="checkbox" class="operationDataKeys" data-key="encryptStorageEnabled" checked="checked" disabled/>
<span class="helper" title="Having this checked would enable Storage-encryption in the device">
<input id="encrypt-storage-enabled" type="checkbox" class="operationDataKeys"
data-key="encryptStorageEnabled" checked="checked" disabled/>
<span class="helper"
title="Having this checked would enable Storage-encryption in the device">
Enable storage-encryption
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
@ -726,7 +761,7 @@
<h2 class="sub-title panel-title">
Wi-Fi Settings
<label class="wr-input-control switch hidden" data-toggle="collapse" data-target="#wifi-body">
<input type="checkbox" />
<input type="checkbox"/>
<span class="helper"></span>
<span class="text"></span>
</label>
@ -737,7 +772,8 @@
to modify these settings on their devices.
</div>
</div>
<div id="wifi-body" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="wifi-body">
<div id="wifi-body" class="panel-collapse panel-body collapse" role="tabpanel"
aria-labelledby="wifi-body">
<hr/>
<!--<div class="cloneable">-->
<!--<a href="#" class="multi-view add enabled">-->
@ -770,7 +806,8 @@
<br>
( should be 1-to-30 characters long )
</label>
<input id="wifi-ssid" type="text" class="form-control operationDataKeys" data-key="wifiSSID" maxlength="100" placeholder="[ Required field ]" disabled/>
<input id="wifi-ssid" type="text" class="form-control operationDataKeys" data-key="wifiSSID"
maxlength="100" placeholder="[ Required field ]" disabled/>
</div>
<div class="wr-input-control">
<label class="wr-input-label" for="wifi-type">
@ -797,7 +834,8 @@
</span>
</label>
<select class="form-control operationDataKeys" id="wifi-eap"
onchange="changeAndroidWifiPolicyEAP(this, document.getElementById('wifi-type'))" data-key="wifiEAP" disabled>
onchange="changeAndroidWifiPolicyEAP(this, document.getElementById('wifi-type'))"
data-key="wifiEAP" disabled>
<option value="peap">PEAP</option>
<option value="tls">TLS</option>
<option value="ttls">TTLS</option>
@ -829,7 +867,8 @@
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
<select class="form-control operationDataKeys" id="wifi-provisioning" data-key="wifiProvisioning" disabled>
<select class="form-control operationDataKeys" id="wifi-provisioning"
data-key="wifiProvisioning" disabled>
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
@ -848,7 +887,7 @@
</label>
<input id="wifi-identity" type="text" class="form-control operationDataKeys"
data-key="wifiIdentity"
maxlength="100" placeholder="[ Should be 1-to-30 characters long ]" disabled />
maxlength="100" placeholder="[ Should be 1-to-30 characters long ]" disabled/>
</div>
<div class="wr-input-control" id="control-wifi-anoidentity" style="display:none;">
<label class="wr-input-label" for="wifi-anoidentity">
@ -866,8 +905,8 @@
</div>
<div class="wr-input-control" id="control-wifi-password" style="display:none;">
<label class="wr-input-label" for="wifi-password">
Password*
<span class="helper" title="Password for the wireless network.">
Password
<span class="helper required" title="Password for the wireless network.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -881,12 +920,14 @@
<!-- /wi-fi -->
<!--app-restriction-->
<div class="wr-hidden-operation" data-operation="app-restriction">
<div class="panel panel-default operation-data" data-operation="app-restriction" data-operation-code="APP-RESTRICTION">
<div class="panel panel-default operation-data" data-operation="app-restriction"
data-operation-code="APP-RESTRICTION">
<div id="app-restriction-heading" class="panel-heading" role="tab">
<h2 class="sub-title panel-title">
Application Restriction Settings
<label class="wr-input-control switch hidden" data-toggle="collapse" data-target="#app-restriction-body">
<input type="checkbox" />
<label class="wr-input-control switch hidden" data-toggle="collapse"
data-target="#app-restriction-body">
<input type="checkbox"/>
<span class="helper"></span>
<span class="text"></span>
</label>
@ -895,13 +936,15 @@
This configuration can be used to create a black list or white list of applications.
</div>
</div>
<div id="app-restriction-body" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="app-restriction-body">
<div id="app-restriction-body" class="panel-collapse panel-body collapse" role="tabpanel"
aria-labelledby="app-restriction-body">
<hr/>
<div id="app-restriction-feature-error-msg" class="alert alert-danger hidden" role="alert">
<i class="icon fw fw-error"></i><span></span>
</div>
<select id="app-restriction-type" class="form-control operationDataKeys" data-key="restrictionType" disabled>
<select id="app-restriction-type" class="form-control operationDataKeys" data-key="restrictionType"
disabled>
<option value="" selected="selected">
None
</option>
@ -917,7 +960,8 @@
</span>
</label>
<br/>
<a href="#restricted-applications-grid" class="btn btn-secondary grid-input-add hidden" data-click-event="add-form">
<a href="#restricted-applications-grid" class="btn btn-secondary grid-input-add hidden"
data-click-event="add-form">
<span class="icon fw-stack">
<i class="fw fw-add fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i>
@ -925,7 +969,9 @@
Add Application
</a>
<div id="restricted-applications" class="operationDataKeys grouped-array-input multi-column-key-value-pair-array" data-key="restrictedApplications" data-column-count="2">
<div id="restricted-applications"
class="operationDataKeys grouped-array-input multi-column-key-value-pair-array"
data-key="restrictedApplications" data-column-count="2">
<table class="table table-responsive table-striped">
<thead>
<tr>
@ -950,14 +996,18 @@
<span class="index"></span>
</td>
<td data-title="App Name">
<input type="text" class="form-control grid-input-text" data-child-key="appName" maxlength="100" data-default="" placeholder="[ Gmail ]" disabled/>
<input type="text" class="form-control grid-input-text" data-child-key="appName"
maxlength="100" data-default="" placeholder="[ Gmail ]" disabled/>
</td>
<td data-title="Package Name">
<input type="text" class="form-control grid-input-text" data-child-key="packageName" maxlength="100" data-default="" placeholder="[ com.google.android.gm ]" disabled/>
<input type="text" class="form-control grid-input-text"
data-child-key="packageName" maxlength="100" data-default=""
placeholder="[ com.google.android.gm ]" disabled/>
</td>
<td>
<span class="list-group-item-actions hidden">
<a href="#restricted-applications-grid" class="grid-input-remove" data-click-event="remove-form">
<a href="#restricted-applications-grid" class="grid-input-remove"
data-click-event="remove-form">
<span class="fw-stack helper" title="Remove Entry">
<i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-delete fw-stack-1x"></i>
@ -982,7 +1032,7 @@
<h2 class="sub-title panel-title">
VPN Settings
<label class="wr-input-control switch hidden" data-toggle="collapse" data-target="#vpn-body">
<input type="checkbox" />
<input type="checkbox"/>
<span class="helper"></span>
<span class="text"></span>
</label>
@ -993,7 +1043,8 @@
to modify these settings on their devices.
</div>
</div>
<div id="vpn-body" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="vpn-body">
<div id="vpn-body" class="panel-collapse panel-body collapse" role="tabpanel"
aria-labelledby="vpn-body">
<hr/>
Please note that * sign represents required fields of data.
<br>
@ -1008,7 +1059,9 @@
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
<input id="vpn-server-address" type="text" class="form-control operationDataKeys" data-key="serverAddress" maxlength="200" placeholder="[ Should be a valid hostname ]" disabled/>
<input id="vpn-server-address" type="text" class="form-control operationDataKeys"
data-key="serverAddress" maxlength="200" placeholder="[ Should be a valid hostname ]"
disabled/>
</div>
<div class="wr-input-control">
<label class="wr-input-label" for="vpn-server-port">
@ -1017,7 +1070,8 @@
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
<input id="vpn-server-port" type="text" class="form-control operationDataKeys" data-key="serverPort" maxlength="100" placeholder="[ Optional field ]" disabled/>
<input id="vpn-server-port" type="text" class="form-control operationDataKeys"
data-key="serverPort" maxlength="100" placeholder="[ Optional field ]" disabled/>
</div>
<div class="wr-input-control">
<label class="wr-input-label" for="vpn-shared-secret">
@ -1026,7 +1080,8 @@
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
<input id="vpn-shared-secret" type="password" class="form-control operationDataKeys" data-key="sharedSecret" maxlength="100" placeholder="[ Optional field ]" disabled/>
<input id="vpn-shared-secret" type="password" class="form-control operationDataKeys"
data-key="sharedSecret" maxlength="100" placeholder="[ Optional field ]" disabled/>
</div>
<div class="wr-input-control">
<label class="wr-input-label" for="vpn-dns">
@ -1035,7 +1090,8 @@
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
<input id="vpn-dns" type="text" class="form-control operationDataKeys" data-key="dnsServer" maxlength="100" placeholder="[ Optional field ]" disabled/>
<input id="vpn-dns" type="text" class="form-control operationDataKeys" data-key="dnsServer"
maxlength="100" placeholder="[ Optional field ]" disabled/>
</div>
</div>
</div>
@ -1151,21 +1207,25 @@
<!--Work-profile-->
<div class="wr-hidden-operation" data-operation="work-profile">
<div class="panel panel-default operation-data" data-operation="work-profile" data-operation-code="WORK_PROFILE">
<div class="panel panel-default operation-data" data-operation="work-profile"
data-operation-code="WORK_PROFILE">
<div id="work-profile-policy-heading" class="panel-heading" role="tab">
<h2 class="sub-title panel-title">
Work-Profile Configurations
<label id="work-profile-policy-lbl" class="wr-input-control switch hidden" data-toggle="collapse" data-target="#work-profile-policy-body">
<input type="checkbox" />
<label id="work-profile-policy-lbl" class="wr-input-control switch hidden"
data-toggle="collapse" data-target="#work-profile-policy-body">
<input type="checkbox"/>
<span class="helper"></span>
<span class="text"></span>
</label>
</h2>
<div class="panel-title-description">
The configurations below can be applied to the devices where the agent is running in Android Work-Profile.
The configurations below can be applied to the devices where the agent is running in Android
Work-Profile.
</div>
</div>
<div id="work-profile-policy-body" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="work-profile-policy-body">
<div id="work-profile-policy-body" class="panel-collapse panel-body collapse" role="tabpanel"
aria-labelledby="work-profile-policy-body">
<hr/>
<div id="work-profile-policy-feature-error-msg" class="alert alert-danger hidden" role="alert">
<i class="icon fw fw-error"></i><span></span>
@ -1188,7 +1248,8 @@
</span>
<br>
</label>
<input id="work-profile-policy-profile-name" type="text" class="form-control operationDataKeys" data-key="workProfilePolicyProfileName" maxlength="20" disabled>
<input id="work-profile-policy-profile-name" type="text" class="form-control operationDataKeys"
data-key="workProfilePolicyProfileName" maxlength="20" disabled>
</div>
<div class="wr-input-control">
<label class="wr-input-label" for="work-profile-policy-enable-system-apps">
@ -1197,9 +1258,12 @@
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
<br>
( Should be exact package names seperated by commas. Ex: com.google.android.apps.maps, com.google.android.calculator )
( Should be exact package names seperated by commas. Ex: com.google.android.apps.maps,
com.google.android.calculator )
</label>
<textarea id="workProfilePolicyEnableSystemApps" type ="text" class="form-control operationDataKeys" rows="4" data-key="workProfilePolicyEnableSystemApps" disabled></textarea>
<textarea id="workProfilePolicyEnableSystemApps" type="text"
class="form-control operationDataKeys" rows="4"
data-key="workProfilePolicyEnableSystemApps" disabled></textarea>
</div>
<div class="wr-input-control">
<label class="wr-input-label" for="work-profile-policy-hide-system-apps">
@ -1208,9 +1272,12 @@
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
<br>
( Should be exact package names seperated by commas. Ex: com.google.android.apps.maps, com.google.android.calculator )
( Should be exact package names seperated by commas. Ex: com.google.android.apps.maps,
com.google.android.calculator )
</label>
<textarea id="work-profile-policy-hide-system-apps" class="form-control operationDataKeys" rows="4" data-key="workProfilePolicyHideSystemApps" placeholder="" disabled></textarea>
<textarea id="work-profile-policy-hide-system-apps" class="form-control operationDataKeys"
rows="4" data-key="workProfilePolicyHideSystemApps" placeholder=""
disabled></textarea>
</div>
<div class="wr-input-control">
<label class="wr-input-label" for="work-profile-policy-unhide-system-apps">
@ -1219,20 +1286,27 @@
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
<br>
( Should be exact package names seperated by commas. Ex: com.google.android.apps.maps, com.google.android.calculator )
( Should be exact package names seperated by commas. Ex: com.google.android.apps.maps,
com.google.android.calculator )
</label>
<textarea id="work-profile-policy-unhide-system-apps" class="form-control operationDataKeys" rows="4" data-key="workProfilePolicyUnhideSystemApps" placeholder="" disabled></textarea>
<textarea id="work-profile-policy-unhide-system-apps" class="form-control operationDataKeys"
rows="4" data-key="workProfilePolicyUnhideSystemApps" placeholder=""
disabled></textarea>
</div>
<div class="wr-input-control">
<label class="wr-input-label" for="passcode-policy-max-passcode-age-in-days">
Enable Google Play Store Apps
<span class="helper" title="The set of apps needed to be installed from Google Playstore to work-profile">
<span class="helper"
title="The set of apps needed to be installed from Google Playstore to work-profile">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
<br>
( Should be exact package names seperated by commas. Ex: com.google.android.apps.maps, com.google.android.calculator )
( Should be exact package names seperated by commas. Ex: com.google.android.apps.maps,
com.google.android.calculator )
</label>
<textarea id="work-profile-policy-install-playstore-apps" class="form-control operationDataKeys" rows="4" data-key="workProfilePolicyEnablePlaystoreApps" placeholder="" disabled></textarea>
<textarea id="work-profile-policy-install-playstore-apps" class="form-control operationDataKeys"
rows="4" data-key="workProfilePolicyEnablePlaystoreApps" placeholder=""
disabled></textarea>
</div>
</div>
</div>
@ -1244,7 +1318,8 @@
<div id="cosu-system-update-policy-heading" class="panel-heading" role="tab">
<h2 class="sub-title panel-title">
System Update Policy (COSU)
<label id="cosu-system-update-policy-lbl" class="wr-input-control switch hidden" data-toggle="collapse"
<label id="cosu-system-update-policy-lbl" class="wr-input-control switch hidden"
data-toggle="collapse"
data-target="#cosu-system-update-policy-body">
<input type="checkbox"/>
<span class="helper"></span>
@ -1261,7 +1336,8 @@
</div>
<div id="cosu-system-update-policy-body" class="panel-collapse panel-body collapse" role="tabpanel"
aria-labelledby="cosu-system-update-policy-body">
<div id="cosu-system-update-policy-feature-error-msg" class="alert alert-danger hidden" role="alert">
<div id="cosu-system-update-policy-feature-error-msg" class="alert alert-danger hidden"
role="alert">
<i class="icon fw fw-error"></i><span></span>
</div>
<div class="wr-input-control">
@ -1275,24 +1351,33 @@
<label class="wr-input-control radio light">
<input id="automatic-system-update-radio-btn" type="radio" name="cosu-system-update-type"
class="form-control operationDataKeys" data-key="cosuSystemUpdatePolicyType"
value="automatic" onclick="slideDownPaneAgainstValueSetForRadioButtons(this, 'cosu-system-update-policy-window-select', ['window'])" checked disabled/>
<span class="helper" title="Installs system update automatically as soon as one is available">
value="automatic"
onclick="slideDownPaneAgainstValueSetForRadioButtons(this, 'cosu-system-update-policy-window-select', ['window'])"
checked disabled/>
<span class="helper"
title="Installs system update automatically as soon as one is available">
Automatic
</span>
</label>
<label class="wr-input-control radio light">
<input id="postpone-system-update-radio-btn" type="radio" name="cosu-system-update-type"
class="form-control operationDataKeys" data-key="cosuSystemUpdatePolicyType"
value="postpone" onclick="slideDownPaneAgainstValueSetForRadioButtons(this, 'cosu-system-update-policy-window-select', ['window'])" disabled/>
<span class="helper" title="Incoming system update will be blocked for a maximum of 30 days">
value="postpone"
onclick="slideDownPaneAgainstValueSetForRadioButtons(this, 'cosu-system-update-policy-window-select', ['window'])"
disabled/>
<span class="helper"
title="Incoming system update will be blocked for a maximum of 30 days">
Postpone
</span>
</label>
<label class="wr-input-control radio light">
<input id="window-system-update-radio-btn" type="radio" name="cosu-system-update-type"
class="form-control operationDataKeys" data-key="cosuSystemUpdatePolicyType"
value="window" onclick="slideDownPaneAgainstValueSetForRadioButtons(this, 'cosu-system-update-policy-window-select', ['window'])" disabled/>
<span class="helper" title="Install system update automatically within a daily maintenance window, for a maximum of 30 days">
value="window"
onclick="slideDownPaneAgainstValueSetForRadioButtons(this, 'cosu-system-update-policy-window-select', ['window'])"
disabled/>
<span class="helper"
title="Install system update automatically within a daily maintenance window, for a maximum of 30 days">
Window
</span>
</label>
@ -1390,7 +1475,8 @@
<div id="cosu-whitelisted-applications-heading" class="panel-heading" role="tab">
<h2 class="sub-title panel-title">
Whitelist Applications (COSU)
<label id="cosu-whitelisted-applications-lbl" class="wr-input-control switch hidden" data-toggle="collapse"
<label id="cosu-whitelisted-applications-lbl" class="wr-input-control switch hidden"
data-toggle="collapse"
data-target="#cosu-whitelisted-applications-body">
<input type="checkbox"/>
<span class="helper"></span>
@ -1398,7 +1484,8 @@
</label>
<hr>
<div class="panel-title-description">
This configuration can be used to whitelist applications in lock task mode of an Android Device in COSU.
This configuration can be used to whitelist applications in lock task mode of an Android
Device in COSU.
Once this configuration profile is installed on a device, corresponding users will not be
able
to modify these settings on their devices.
@ -1408,17 +1495,20 @@
<div id="cosu-whitelisted-applications-body" class="panel-collapse panel-body collapse" role="tabpanel"
aria-labelledby="cosu-whitelisted-applications-body">
<div id="cosu-whitelisted-applications-feature-error-msg" class="alert alert-danger hidden" role="alert">
<div id="cosu-whitelisted-applications-feature-error-msg" class="alert alert-danger hidden"
role="alert">
<i class="icon fw fw-error"></i><span></span>
</div>
<div class="wr-input-control">
<label class="wr-input-label" for="cosu-whitelisted-applications">
Whitelisted Applications to enter Lock Task Mode
<span class="helper" title="Configuration information specific to a given third-party VPN solution. This has to be input as key/value pairs.">
<span class="helper"
title="Configuration information specific to a given third-party VPN solution. This has to be input as key/value pairs.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
<br>
<a href="#cosu-whitelisted-applications-grid" class="grid-input-add" data-click-event="add-form">
<a href="#cosu-whitelisted-applications-grid" class="grid-input-add"
data-click-event="add-form">
<span class="icon fw-stack">
<i class="fw fw-add fw-stack-1x"></i>
<i class="fw fw-ring fw-stack-2x"></i>
@ -1449,19 +1539,21 @@
</table>
<table class="template hidden">
<tbody data-add-form="#cosu-whitelisted-applications-grid">
<tr data-add-form-element="clone">
<td data-title="No:">
<span class="index"></span>
</td>
<td data-title="Application Name / Description">
<input type="text" class="form-control grid-input-text" data-child-key="appName"
maxlength="100" data-default="" placeholder="[ Application Name / Description ]" disabled/>
</td>
<td data-title="Package Name">
<input type="text" class="form-control grid-input-text" data-child-key="packageName"
maxlength="100" data-default="" placeholder="[ Package Name ]" disabled/>
</td>
<td>
<tr data-add-form-element="clone">
<td data-title="No:">
<span class="index"></span>
</td>
<td data-title="Application Name / Description">
<input type="text" class="form-control grid-input-text" data-child-key="appName"
maxlength="100" data-default=""
placeholder="[ Application Name / Description ]" disabled/>
</td>
<td data-title="Package Name">
<input type="text" class="form-control grid-input-text"
data-child-key="packageName"
maxlength="100" data-default="" placeholder="[ Package Name ]" disabled/>
</td>
<td>
<span class="list-group-item-actions hidden">
<a href="#cosu-whitelisted-applications-grid" class="grid-input-remove"
data-click-event="remove-form">
@ -1471,8 +1563,8 @@
</span>
</a>
</span>
</td>
</tr>
</td>
</tr>
</tbody>
</table>
</div>

View File

@ -5,7 +5,8 @@
<i class="fw fw-key fw-stack-2x"></i>
</span>
Passcode Policy
<span id="passcode-policy-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
<span id="passcode-policy-configured" class="has-configured status-icon hidden"><i
class="fw fw-ok"></i></span>
<span id="passcode-policy-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
<span id="passcode-policy-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
</a>
@ -23,9 +24,11 @@
<i class="fw fw-security fw-stack-2x"></i>
</span>
Encryption Settings
<span id="encrypt-storage-configured" class="has-configured status-icon hidden"><i class="fw fw-ok"></i></span>
<span id="encrypt-storage-configured" class="has-configured status-icon hidden"><i
class="fw fw-ok"></i></span>
<span id="encrypt-storage-ok" class="has-success status-icon hidden"><i class="fw fw-ok"></i></span>
<span id="encrypt-storage-error" class="encryption-error status-icon hidden"><i class="fw fw-error"></i></span>
<span id="encrypt-storage-error" class="encryption-error status-icon hidden"><i
class="fw fw-error"></i></span>
</a>
<a href="javascript:void(0)" onclick="showAdvanceOperation('wifi', this)">
<span class="wr-hidden-operations-icon fw-stack">
@ -37,46 +40,50 @@
<span id="wifi-error" class="has-error status-icon hidden"><i class="fw fw-error"></i></span>
</a>
<!--<a href="javascript:void(0)" onclick="showAdvanceOperation('install-apps', this)">-->
<!--<span class="wr-hidden-operations-icon fw-stack">-->
<!--<i class="fw fw-application fw-stack-2x"></i>-->
<!--</span>-->
<!--App Installations-->
<!--<span class="wr-hidden-operations-icon fw-stack">-->
<!--<i class="fw fw-application fw-stack-2x"></i>-->
<!--</span>-->
<!--App Installations-->
<!--</a>-->
<!--<a href="javascript:void(0)" onclick="showAdvanceOperation('blacklist-apps', this)">-->
<!--<span class="wr-hidden-operations-icon fw-stack">-->
<!--<i class="fw fw-block fw-stack-2x"></i>-->
<!--</span>-->
<!--App Blacklisting-->
<!--<span class="wr-hidden-operations-icon fw-stack">-->
<!--<i class="fw fw-block fw-stack-2x"></i>-->
<!--</span>-->
<!--App Blacklisting-->
<!--</a>-->
<!--<a href="javascript:void(0)" onclick="showAdvanceOperation('web-clips', this)">-->
<!--<span class="wr-hidden-operations-icon fw-stack">-->
<!--<i class="fw fw-website fw-stack-2x"></i>-->
<!--</span>-->
<!--Web clips-->
<!--<span class="wr-hidden-operations-icon fw-stack">-->
<!--<i class="fw fw-website fw-stack-2x"></i>-->
<!--</span>-->
<!--Web clips-->
<!--</a>-->
</div>
<div class="wr-hidden-operations-content col-lg-8">
<!-- passcode-policy -->
<div class="wr-hidden-operation" data-operation="passcode-policy" style="display: block">
<div class="panel panel-default operation-data" data-operation="passcode-policy" data-operation-code="PASSCODE_POLICY">
<div class="panel panel-default operation-data" data-operation="passcode-policy"
data-operation-code="PASSCODE_POLICY">
<div id="passcode-policy-heading" class="panel-heading" role="tab">
<h2 class="sub-title panel-title">
Passcode Policy
<label id="passcode-policy-lbl" class="wr-input-control switch" data-toggle="collapse" data-target="#passcode-policy-body">
<input type="checkbox" />
<label id="passcode-policy-lbl" class="wr-input-control switch" data-toggle="collapse"
data-target="#passcode-policy-body">
<input type="checkbox"/>
<span class="helper"></span>
<span class="text"></span>
</label>
<hr>
<div class="panel-title-description">
This configuration can be used to set a passcode policy to an Android Device.
Once this configuration profile is installed on a device, corresponding users will not be able
Once this configuration profile is installed on a device, corresponding users will not be
able
to modify these settings on their devices.
</div>
</h2>
</div>
<div id="passcode-policy-body" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="passcode-policy-body">
<div id="passcode-policy-body" class="panel-collapse panel-body collapse" role="tabpanel"
aria-labelledby="passcode-policy-body">
<div id="passcode-policy-feature-error-msg" class="alert alert-danger hidden" role="alert">
<i class="icon fw fw-error"></i><span></span>
@ -84,9 +91,12 @@
<div class="wr-input-control">
<label class="wr-input-control checkbox">
<input id="passcode-policy-allow-simple" type="checkbox" class="form-control operationDataKeys" data-key="passcodePolicyAllowSimple" checked="checked" />
<span class="helper" title="Permit the use of repeating, ascending and descending character sequences">
&nbsp;&nbsp;&nbsp;Allow simple value
<input id="passcode-policy-allow-simple" type="checkbox"
class="form-control operationDataKeys" data-key="passcodePolicyAllowSimple"
checked="checked"/>
<span class="helper"
title="Permit the use of repeating, ascending and descending character sequences">
Allow simple value
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -94,9 +104,11 @@
<div class="wr-input-control">
<label class="wr-input-control checkbox">
<input id="passcode-policy-require-alphanumeric" type="checkbox" class="form-control operationDataKeys" data-key="passcodePolicyRequireAlphanumeric" checked="checked" />
<input id="passcode-policy-require-alphanumeric" type="checkbox"
class="form-control operationDataKeys" data-key="passcodePolicyRequireAlphanumeric"
checked="checked"/>
<span class="helper" title="Require passcode to contain both letters and numbers">
&nbsp;&nbsp;&nbsp;Require alphanumeric value
Require alphanumeric value
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -109,7 +121,8 @@
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
<select id="passcode-policy-min-length" class="form-control operationDataKeys" data-key="passcodePolicyMinLength" data-default="0">
<select id="passcode-policy-min-length" class="form-control operationDataKeys"
data-key="passcodePolicyMinLength" data-default="0">
<option value="" selected="selected">
None
</option>
@ -131,11 +144,13 @@
<div class="wr-input-control">
<label class="wr-input-label" for="passcode-policy-min-complex-chars">
Minimum number of complex characters
<span class="helper" title="Minimum number of complex or non-alphanumeric characters allowed in a passcode">
<span class="helper"
title="Minimum number of complex or non-alphanumeric characters allowed in a passcode">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
<select id="passcode-policy-min-complex-chars" class="form-control operationDataKeys" data-key="passcodePolicyMinComplexChars" data-default="0">
<select id="passcode-policy-min-complex-chars" class="form-control operationDataKeys"
data-key="passcodePolicyMinComplexChars" data-default="0">
<option value="" selected="selected">
None
</option>
@ -156,7 +171,9 @@
<br>
( Should be in between 1-to-730 days or none )
</label>
<input id="passcode-policy-max-passcode-age-in-days" type="text" class="form-control operationDataKeys" data-key="passcodePolicyMaxPasscodeAgeInDays" maxlength="3">
<input id="passcode-policy-max-passcode-age-in-days" type="text"
class="form-control operationDataKeys" data-key="passcodePolicyMaxPasscodeAgeInDays"
maxlength="3">
</div>
<div class="wr-input-control">
@ -168,17 +185,20 @@
<br>
( Should be in between 1-to-50 passcodes or none )
</label>
<input id="passcode-policy-passcode-history" type="text" class="form-control operationDataKeys" data-key="passcodePolicyPasscodeHistory" maxlength="2">
<input id="passcode-policy-passcode-history" type="text" class="form-control operationDataKeys"
data-key="passcodePolicyPasscodeHistory" maxlength="2">
</div>
<div class="wr-input-control">
<label class="wr-input-label" for="passcodePolicyMaxFailedAttempts">
Maximum number of failed attempts
<span class="helper" title="Maximum number of passcode entry attempts allowed before all data on a device will be erased">
<span class="helper"
title="The maximum number of failed password entry attempts. If the correct password is not entered within the defined number of attempts, the data on the device will be erased">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
<select id="passcode-policy-max-failed-attempts" class="form-control operationDataKeys" data-key="passcodePolicyMaxFailedAttempts" data-default="0">
<select id="passcode-policy-max-failed-attempts" class="form-control operationDataKeys"
data-key="passcodePolicyMaxFailedAttempts" data-default="0">
<option value="" selected="selected">
None
</option>
@ -204,19 +224,22 @@
<h2 class="sub-title panel-title">
Restrictions on Camera
<label class="wr-input-control switch" data-toggle="collapse" data-target="#camera-body">
<input type="checkbox" />
<input type="checkbox"/>
<span class="helper"></span>
<span class="text"></span>
</label>
<hr>
<div class="panel-title-description">
This configuration can be used to restrict the usage of camera on an Android device together with all the applications using the camera.
Once this configuration profile is installed on a device, corresponding users will not be able
This configuration can be used to restrict the usage of camera on an Android device together
with all the applications using the camera.
Once this configuration profile is installed on a device, corresponding users will not be
able
to modify these settings on their devices.
</div>
</h2>
</div>
<div id="camera-body" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="camera-body">
<div id="camera-body" class="panel-collapse panel-body collapse" role="tabpanel"
aria-labelledby="camera-body">
<div id="camera-feature-error-msg" class="alert alert-danger hidden" role="alert">
<i class="icon fw fw-error"></i><span></span>
</div>
@ -225,9 +248,11 @@
<br>
<div class="wr-input-control">
<label class="wr-input-control checkbox">
<input id="camera-enabled" type="checkbox" class="operationDataKeys" data-key="cameraEnabled" checked="checked" />
<span class="helper" title="Having this checked would enable Usage of phone camera in the device.">
&nbsp;&nbsp;&nbsp;Allow use of camera
<input id="camera-enabled" type="checkbox" class="operationDataKeys"
data-key="cameraEnabled" checked="checked"/>
<span class="helper"
title="Having this checked would enable Usage of phone camera in the device.">
Allow use of camera
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -240,24 +265,29 @@
<!-- encrypt-storage -->
<div class="wr-hidden-operation" data-operation="encrypt-storage">
<div class="panel panel-default operation-data" data-operation="encrypt-storage" data-operation-code="ENCRYPT_STORAGE">
<div class="panel panel-default operation-data" data-operation="encrypt-storage"
data-operation-code="ENCRYPT_STORAGE">
<div id="encrypt-storage-heading" class="panel-heading" role="tab">
<h2 class="sub-title panel-title">
Encryption Settings
<label class="wr-input-control switch" data-toggle="collapse" data-target="#encrypt-storage-body">
<input type="checkbox" />
<label class="wr-input-control switch" data-toggle="collapse"
data-target="#encrypt-storage-body">
<input type="checkbox"/>
<span class="helper"></span>
<span class="text"></span>
</label>
<hr>
<div class="panel-title-description">
This configuration can be used to encrypt data on an Android device, when the device is locked and
make it readable when the passcode is entered. Once this configuration profile is installed on a device,
This configuration can be used to encrypt data on an Android device, when the device is
locked and
make it readable when the passcode is entered. Once this configuration profile is installed
on a device,
corresponding users will not be able to modify these settings on their devices.
</div>
</h2>
</div>
<div id="encrypt-storage-body" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="encrypt-storage-body">
<div id="encrypt-storage-body" class="panel-collapse panel-body collapse" role="tabpanel"
aria-labelledby="encrypt-storage-body">
<div id="encrypt-storage-feature-error-msg" class="alert alert-danger hidden" role="alert">
<i class="icon fw fw-error"></i><span></span>
</div>
@ -266,9 +296,11 @@
<br>
<div class="wr-input-control">
<label class="wr-input-control checkbox">
<input id="encrypt-storage-enabled" type="checkbox" class="operationDataKeys" data-key="encryptStorageEnabled" checked="checked" />
<span class="helper" title="Having this checked would enable Storage-encryption in the device">
&nbsp;&nbsp;&nbsp;Enable storage-encryption
<input id="encrypt-storage-enabled" type="checkbox" class="operationDataKeys"
data-key="encryptStorageEnabled" checked="checked"/>
<span class="helper"
title="Having this checked would enable Storage-encryption in the device">
Enable storage-encryption
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -286,62 +318,66 @@
<h2 class="sub-title panel-title">
Wi-Fi Settings
<label class="wr-input-control switch" data-toggle="collapse" data-target="#wifi-body">
<input type="checkbox" />
<input type="checkbox"/>
<span class="helper"></span>
<span class="text"></span>
</label>
<hr>
<div class="panel-title-description">
This configurations can be used to configure Wi-Fi access on an Android device.
Once this configuration profile is installed on a device, corresponding users will not be able
Once this configuration profile is installed on a device, corresponding users will not be
able
to modify these settings on their devices.
</div>
</h2>
</div>
<div id="wifi-body" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="wifi-body">
<div id="wifi-body" class="panel-collapse panel-body collapse" role="tabpanel"
aria-labelledby="wifi-body">
<!--<div class="cloneable">-->
<!--<a href="#" class="multi-view add enabled">-->
<!--<span class="icon fw-stack">-->
<!--<i class="fw fw-add fw-stack-1x"></i>-->
<!--<i class="fw fw-ring fw-stack-2x"></i>-->
<!--</span>-->
<!--</a>-->
<!--<a href="#" class="multi-view remove disabled">-->
<!--<span class="icon fw-stack">-->
<!--<i class="fw fw-minus fw-stack-1x"></i>-->
<!--<i class="fw fw-ring fw-stack-2x"></i>-->
<!--</span>-->
<!--</a>-->
<!--Wi-Fi Setting :-->
<!--<br>-->
<!--<br>-->
Please note that * sign represents required fields of data.
<br>
<br>
<div id="wifi-feature-error-msg" class="alert alert-danger hidden" role="alert">
<i class="icon fw fw-error"></i><span></span>
</div>
<div class="wr-input-control">
<label class="wr-input-label" for="wifi-ssid">
Service Set Identifier (SSID)*
<span class="helper" title="Identification of the wireless network to be configured.">
<!--<a href="#" class="multi-view add enabled">-->
<!--<span class="icon fw-stack">-->
<!--<i class="fw fw-add fw-stack-1x"></i>-->
<!--<i class="fw fw-ring fw-stack-2x"></i>-->
<!--</span>-->
<!--</a>-->
<!--<a href="#" class="multi-view remove disabled">-->
<!--<span class="icon fw-stack">-->
<!--<i class="fw fw-minus fw-stack-1x"></i>-->
<!--<i class="fw fw-ring fw-stack-2x"></i>-->
<!--</span>-->
<!--</a>-->
<!--Wi-Fi Setting :-->
<!--<br>-->
<!--<br>-->
Please note that * sign represents required fields of data.
<br>
<br>
<div id="wifi-feature-error-msg" class="alert alert-danger hidden" role="alert">
<i class="icon fw fw-error"></i><span></span>
</div>
<div class="wr-input-control">
<label class="wr-input-label" for="wifi-ssid">
Service Set Identifier (SSID)*
<span class="helper" title="Identification of the wireless network to be configured.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
<label id="wifiSsidValidationText" class="wr-input-label hidden">
Service Set Identifier should be 1-to-30 characters long
</label>
<input id="wifi-ssid" type="text" class="form-control operationDataKeys" data-key="wifiSSID" maxlength="100" placeholder="[ Should be 1-to-30 characters long ]"/>
</div>
<div class="wr-input-control">
<label class="wr-input-label" for="wifi-password">
Password*
<span class="helper" title="Password for the wireless network.">
</label>
<label id="wifiSsidValidationText" class="wr-input-label hidden">
Service Set Identifier should be 1-to-30 characters long
</label>
<input id="wifi-ssid" type="text" class="form-control operationDataKeys" data-key="wifiSSID"
maxlength="100" placeholder="[ Should be 1-to-30 characters long ]"/>
</div>
<div class="wr-input-control">
<label class="wr-input-label" for="wifi-password">
Password
<span class="helper required" title="Password for the wireless network.">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
<input id="wifi-password" type="password" class="form-control operationDataKeys" data-key="wifiPassword" maxlength="100" />
</div>
</label>
<input id="wifi-password" type="password" class="form-control operationDataKeys"
data-key="wifiPassword" maxlength="100"/>
</div>
<!--</div>-->
</div>
</div>
@ -350,108 +386,108 @@
<!-- install-applications -->
<!--<div class="wr-hidden-operation" data-operation="install-apps">-->
<!--<div class="panel panel-default operation-data" data-operation="INSTALL_APPLICATION">-->
<!--<div class="panel-heading" role="tab">-->
<!--<h2 class="sub-title panel-title">-->
<!--<br>-->
<!--&nbsp;&nbsp;&nbsp;App Installations-->
<!--<label class="wr-input-control switch" data-toggle="collapse" data-target="#installApp">-->
<!--<input type="checkbox" />-->
<!--<span class="helper"></span>-->
<!--<span class="text"></span>-->
<!--</label>-->
<!--<br>-->
<!--<br>-->
<!--</h2>-->
<!--</div>-->
<!--<div id="installApp" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="installApp">-->
<!--<div id="install-app-feature-error-msg" class="alert alert-danger hidden" role="alert">-->
<!--<i class="icon fw fw-error"></i><span></span>-->
<!--</div>-->
<!--<label class="wr-input-label" title="Application Identifier">App Identifier<span class="wr-help-tip glyphicon glyphicon-question-sign"></span></label>-->
<!--<div class="panel panel-default operation-data" data-operation="INSTALL_APPLICATION">-->
<!--<div class="panel-heading" role="tab">-->
<!--<h2 class="sub-title panel-title">-->
<!--<br>-->
<!-- App Installations-->
<!--<label class="wr-input-control switch" data-toggle="collapse" data-target="#installApp">-->
<!--<input type="checkbox" />-->
<!--<span class="helper"></span>-->
<!--<span class="text"></span>-->
<!--</label>-->
<!--<br>-->
<!--<br>-->
<!--</h2>-->
<!--</div>-->
<!--<div id="installApp" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="installApp">-->
<!--<div id="install-app-feature-error-msg" class="alert alert-danger hidden" role="alert">-->
<!--<i class="icon fw fw-error"></i><span></span>-->
<!--</div>-->
<!--<label class="wr-input-label" title="Application Identifier">App Identifier<span class="wr-help-tip glyphicon glyphicon-question-sign"></span></label>-->
<!--<div class="wr-input-control">-->
<!--<input type="text" class="form-control operationDataKeys" id="package-name" data-key="packageName" placeholder="Enter App Identifier"/>-->
<!--</div>-->
<!--<div class="wr-input-control">-->
<!--<label class="wr-input-control dropdown">-->
<!--<span class="helper" title="App Type">App Type<span class="wr-help-tip glyphicon glyphicon-question-sign"></span></span>-->
<!--<select class="form-control col-sm-8 operationDataKeys appTypesInput" id="type" data-key="type">-->
<!--<option>Public</option>-->
<!--<option>Enterprise</option>-->
<!--</select>-->
<!--</label>-->
<!--</div>-->
<!--<label class="wr-input-label" title="URL">URL<span class="wr-help-tip glyphicon glyphicon-question-sign"></span></label>-->
<!--<div class="wr-input-control">-->
<!--<input type="text" class="form-control operationDataKeys" id="package-name" data-key="packageName" placeholder="Enter App Identifier"/>-->
<!--</div>-->
<!--<div class="wr-input-control">-->
<!--<label class="wr-input-control dropdown">-->
<!--<span class="helper" title="App Type">App Type<span class="wr-help-tip glyphicon glyphicon-question-sign"></span></span>-->
<!--<select class="form-control col-sm-8 operationDataKeys appTypesInput" id="type" data-key="type">-->
<!--<option>Public</option>-->
<!--<option>Enterprise</option>-->
<!--</select>-->
<!--</label>-->
<!--</div>-->
<!--<label class="wr-input-label" title="URL">URL<span class="wr-help-tip glyphicon glyphicon-question-sign"></span></label>-->
<!--<div class="wr-input-control">-->
<!--<input type="text" class="form-control operationDataKeys" id="url" data-key="url" placeholder="Enter URL"/>-->
<!--</div>-->
<!--</div>-->
<!--</div>-->
<!--<div class="wr-input-control">-->
<!--<input type="text" class="form-control operationDataKeys" id="url" data-key="url" placeholder="Enter URL"/>-->
<!--</div>-->
<!--</div>-->
<!--</div>-->
<!--</div>-->
<!-- /install-applications -->
<!-- /uninstall-applications -->
<!--<div class="wr-hidden-operation" data-operation="uninstall-apps">-->
<!--<div class="panel panel-default operation-data" data-operation="UNINSTALL_APPLICATION">-->
<!--<div class="panel-heading" role="tab">-->
<!--<h2 class="sub-title panel-title">-->
<!--<br>-->
<!--&nbsp;&nbsp;&nbsp;App Uninstallations-->
<!--<label class="wr-input-control switch" data-toggle="collapse" data-target="#uninstallApp">-->
<!--<input type="checkbox" />-->
<!--<span class="helper"></span>-->
<!--<span class="text"></span>-->
<!--</label>-->
<!--<br>-->
<!--<br>-->
<!--</h2>-->
<!--</div>-->
<!--<div id="uninstallApp" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="uninstallApp">-->
<!--<div id="uninstall-app-feature-error-msg" class="alert alert-danger hidden" role="alert">-->
<!--<i class="icon fw fw-error"></i><span></span>-->
<!--</div>-->
<!--<label class="wr-input-label" title="Application Identifier">App Identifier<span class="wr-help-tip glyphicon glyphicon-question-sign"></span></label>-->
<!--<!--span>Identification of the wireless network to connect to</span-->
<!--<div class="wr-input-control">-->
<!--<input type="text" class="form-control operationDataKeys" id="package-name" data-key="packageName" placeholder="Enter App Identifier"/>-->
<!--</div>-->
<!--</div>-->
<!--</div>-->
<!--<div class="panel panel-default operation-data" data-operation="UNINSTALL_APPLICATION">-->
<!--<div class="panel-heading" role="tab">-->
<!--<h2 class="sub-title panel-title">-->
<!--<br>-->
<!-- App Uninstallations-->
<!--<label class="wr-input-control switch" data-toggle="collapse" data-target="#uninstallApp">-->
<!--<input type="checkbox" />-->
<!--<span class="helper"></span>-->
<!--<span class="text"></span>-->
<!--</label>-->
<!--<br>-->
<!--<br>-->
<!--</h2>-->
<!--</div>-->
<!--<div id="uninstallApp" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="uninstallApp">-->
<!--<div id="uninstall-app-feature-error-msg" class="alert alert-danger hidden" role="alert">-->
<!--<i class="icon fw fw-error"></i><span></span>-->
<!--</div>-->
<!--<label class="wr-input-label" title="Application Identifier">App Identifier<span class="wr-help-tip glyphicon glyphicon-question-sign"></span></label>-->
<!--<!--span>Identification of the wireless network to connect to</span-->
<!--<div class="wr-input-control">-->
<!--<input type="text" class="form-control operationDataKeys" id="package-name" data-key="packageName" placeholder="Enter App Identifier"/>-->
<!--</div>-->
<!--</div>-->
<!--</div>-->
<!--</div>-->
<!-- /uninstall-applications -->
<!-- /web-clips -->
<!--<div class="wr-hidden-operation" data-operation="web-clips">-->
<!--<div class="panel panel-default operation-data" data-operation="WEBCLIP">-->
<!--<div class="panel-heading" role="tab">-->
<!--<h2 class="sub-title panel-title">-->
<!--<br>-->
<!--&nbsp;&nbsp;&nbsp;Web clips-->
<!--<label class="wr-input-control switch" data-toggle="collapse" data-target="#installWebClip">-->
<!--<input type="checkbox" />-->
<!--<span class="helper"></span>-->
<!--<span class="text"></span>-->
<!--</label>-->
<!--<br>-->
<!--<br>-->
<!--</h2>-->
<!--</div>-->
<!--<div id="installWebClip" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="installWebClip">-->
<!--<div id="install-webclip-feature-error-msg" class="alert alert-danger hidden" role="alert">-->
<!--<i class="icon fw fw-error"></i><span></span>-->
<!--</div>-->
<!--<label class="wr-input-label" title="Title of the web clip">Title<span class="wr-help-tip glyphicon glyphicon-question-sign"></span></label>-->
<!--<div class="wr-input-control">-->
<!--<input type="text" class="form-control operationDataKeys" id="title" data-key="title" placeholder="Enter Title"/>-->
<!--</div>-->
<!--<label class="wr-input-label" title="URL">URL<span class="wr-help-tip glyphicon glyphicon-question-sign"></span></label>-->
<!--<div class="wr-input-control">-->
<!--<input type="text" class="form-control operationDataKeys" id="url" data-key="url" placeholder="Enter URL"/>-->
<!--</div>-->
<!--</div>-->
<!--</div>-->
<!--<div class="panel panel-default operation-data" data-operation="WEBCLIP">-->
<!--<div class="panel-heading" role="tab">-->
<!--<h2 class="sub-title panel-title">-->
<!--<br>-->
<!-- Web clips-->
<!--<label class="wr-input-control switch" data-toggle="collapse" data-target="#installWebClip">-->
<!--<input type="checkbox" />-->
<!--<span class="helper"></span>-->
<!--<span class="text"></span>-->
<!--</label>-->
<!--<br>-->
<!--<br>-->
<!--</h2>-->
<!--</div>-->
<!--<div id="installWebClip" class="panel-collapse panel-body collapse" role="tabpanel" aria-labelledby="installWebClip">-->
<!--<div id="install-webclip-feature-error-msg" class="alert alert-danger hidden" role="alert">-->
<!--<i class="icon fw fw-error"></i><span></span>-->
<!--</div>-->
<!--<label class="wr-input-label" title="Title of the web clip">Title<span class="wr-help-tip glyphicon glyphicon-question-sign"></span></label>-->
<!--<div class="wr-input-control">-->
<!--<input type="text" class="form-control operationDataKeys" id="title" data-key="title" placeholder="Enter Title"/>-->
<!--</div>-->
<!--<label class="wr-input-label" title="URL">URL<span class="wr-help-tip glyphicon glyphicon-question-sign"></span></label>-->
<!--<div class="wr-input-control">-->
<!--<input type="text" class="form-control operationDataKeys" id="url" data-key="url" placeholder="Enter URL"/>-->
<!--</div>-->
<!--</div>-->
<!--</div>-->
<!--</div>-->
<!-- /web-clips -->
</div>

View File

@ -96,7 +96,7 @@
checked="checked"/>
<span class="helper"
title="Permit the use of repeating, ascending and descending character sequences">
&nbsp;&nbsp;&nbsp;Allow simple value
Allow simple value
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -108,7 +108,7 @@
class="form-control operationDataKeys" data-key="passcodePolicyRequireAlphanumeric"
checked="checked"/>
<span class="helper" title="Require passcode to contain both letters and numbers">
&nbsp;&nbsp;&nbsp;Require alphanumeric value
Require alphanumeric value
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -258,7 +258,7 @@
data-key="cameraEnabled" checked="checked"/>
<span class="helper"
title="Having this checked would enable Usage of phone camera in the device.">
&nbsp;&nbsp;&nbsp;Allow use of camera
Allow use of camera
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -306,7 +306,7 @@
data-key="encryptStorageEnabled" checked="checked"/>
<span class="helper"
title="Having this checked would enable Storage-encryption in the device">
&nbsp;&nbsp;&nbsp;Enable storage-encryption
Enable storage-encryption
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
@ -391,7 +391,7 @@
<!--<div class="panel-heading" role="tab">-->
<!--<h2 class="sub-title panel-title">-->
<!--<br>-->
<!--&nbsp;&nbsp;&nbsp;App Installations-->
<!-- App Installations-->
<!--<label class="wr-input-control switch" data-toggle="collapse" data-target="#installApp">-->
<!--<input type="checkbox" />-->
<!--<span class="helper"></span>-->
@ -435,7 +435,7 @@
<!--<div class="panel-heading" role="tab">-->
<!--<h2 class="sub-title panel-title">-->
<!--<br>-->
<!--&nbsp;&nbsp;&nbsp;App Uninstallations-->
<!-- App Uninstallations-->
<!--<label class="wr-input-control switch" data-toggle="collapse" data-target="#uninstallApp">-->
<!--<input type="checkbox" />-->
<!--<span class="helper"></span>-->
@ -465,7 +465,7 @@
<!--<div class="panel-heading" role="tab">-->
<!--<h2 class="sub-title panel-title">-->
<!--<br>-->
<!--&nbsp;&nbsp;&nbsp;Web clips-->
<!-- Web clips-->
<!--<label class="wr-input-control switch" data-toggle="collapse" data-target="#installWebClip">-->
<!--<input type="checkbox" />-->
<!--<span class="helper"></span>-->

View File

@ -60,7 +60,7 @@
<hr>
<button class="wr-btn wizard-stepper" data-current="policy-message"
data-direct="{{@app.context}}/policies">
&nbsp;&nbsp;&nbsp;&nbsp;View policy list&nbsp;&nbsp;&nbsp;&nbsp;
View policy list
</button>
<a href="{{@app.context}}/policy/add" class="cu-btn-inner">
<span class="fw-stack">
@ -170,13 +170,13 @@
<input id="user-roles-radio-btn" type="radio"
name="select-users-radio-btn" class="select-users-radio"
checked/>
<span class="helper">&nbsp;Set user role(s)</span>
<span class="helper"> Set user role(s)</span>
</label>
<label class="wr-input-control radio light" rel="assetfilter">
<input id="users-radio-btn" type="radio"
name="select-users-radio-btn"
class="select-users-radio"/>
<span class="helper">&nbsp;Set user(s)</span>
<span class="helper"> Set user(s)</span>
</label>
</div>
<div id="user-roles-select-field" class="select-users">
@ -223,12 +223,12 @@
<a href="javascript:void(0)" class="wr-btn wizard-stepper"
data-is-back-btn="true" data-current="policy-criteria"
data-next="policy-profile">
&nbsp;&nbsp;&nbsp;&nbsp;Back&nbsp;&nbsp;&nbsp;&nbsp;
Back
</a>
<a href="javascript:void(0)" class="wr-btn wizard-stepper"
data-current="policy-criteria" data-next="policy-naming"
data-validate="false">
&nbsp;&nbsp;&nbsp;&nbsp;Continue&nbsp;&nbsp;&nbsp;&nbsp;
Continue
</a>
</div>
</div>
@ -254,9 +254,9 @@
<div class="wr-advance-operations">
<div class="wr-advance-operations-init">
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading platform features . . .
<br>
<br>
@ -266,12 +266,12 @@
<a href="javascript:window.history.back()"
class="wr-btn wizard-stepper" data-is-back-btn="true"
data-current="policy-profile" data-next="policy-platform">
&nbsp;&nbsp;&nbsp;&nbsp;Back&nbsp;&nbsp;&nbsp;&nbsp;
Back
</a>
<a href="javascript:void(0)" class="wr-btn wizard-stepper"
data-current="policy-profile" data-next="policy-criteria"
data-validate="true">
&nbsp;&nbsp;&nbsp;&nbsp;Continue&nbsp;&nbsp;&nbsp;&nbsp;
Continue
</a>
</div>
</div>

View File

@ -86,7 +86,7 @@
<span id="notifications-icon" class="icon fw-stack hidden">
<i class="fw fw-notification fw-stack-1x"></i>
</span>
<span id="notifications-spacer" class="hidden">&nbsp;</span>
<span id="notifications-spacer" class="hidden"> </span>
<span class="text-capitalize">Notifications</span>
</a>
</li>
@ -105,7 +105,7 @@
<i class="fw fw-ring fw-stroke fw-stack-2x"></i>
<i class="fw fw-notification fw-stack-1x"></i>
</span>
&nbsp;&nbsp;View All Notifications
View All Notifications
</a>
</div>
</div>

View File

@ -10,6 +10,7 @@
"adminService":"%https.ip%",
"idPServer":"%https.ip%",
"callBackUrl":"%https.ip%/mdm-admin",
"enableEval":true,
"oauthProvider": {
"appRegistration": {
"appType": "webapp",

View File

@ -52,6 +52,7 @@ under the License. --}}
</div>
</div>
</div>
{{#if enableEval}}
<div class="row">
<div class="col-md-4 wr-text">
<div class="wr-buttons text-center">
@ -65,4 +66,5 @@ under the License. --}}
</div>
</div>
</div>
{{/if}}
{{/zone}}

View File

@ -33,5 +33,6 @@ function onRequest(context) {
} else {
viewModel.companyName = companyProps.companyName;
}
viewModel.enableEval = mdmProps.enableEval;
return viewModel;
}

View File

@ -51,13 +51,13 @@ under the License. --}}
<div class="radio">
<label class="input-label">
<input type="radio" name="ownership" value="BYOD" checked>
&nbsp; BYOD (This is my own device)
BYOD (This is my own device)
</label>
</div>
<div class="radio">
<label class="input-label">
<input type="radio" name="ownership" value="COPE">
&nbsp; COPE (This is a corporate device)
COPE (This is a corporate device)
</label>
</div>
</div>

Some files were not shown because too many files have changed in this diff Show More