mirror of
https://repository.entgra.net/community/device-mgt-plugins.git
synced 2025-09-16 23:42:15 +00:00
commit
2517b7b385
@ -24,15 +24,15 @@ function onRequest(context) {
|
||||
if (devices) {
|
||||
return {
|
||||
"devices": stringify(devices),
|
||||
"backendApiUri": devicemgtProps["httpsURL"] + "/android_sense/stats/"
|
||||
"backendApiUri": "/android_sense/stats/"
|
||||
};
|
||||
} else if (deviceType != null && deviceType != undefined && deviceId != null && deviceId != undefined) {
|
||||
var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"];
|
||||
var device = deviceModule.viewDevice(deviceType, deviceId);
|
||||
if (device && device.status != "error") {
|
||||
return {
|
||||
"device": device,
|
||||
"backendApiUrl": devicemgtProps["httpsURL"] + "/android_sense/stats/" + deviceId + "/sensors/"
|
||||
"device": device.content,
|
||||
"backendApiUrl": "/android_sense/stats/" + deviceId + "/sensors/"
|
||||
};
|
||||
} else {
|
||||
response.sendError(404, "Device Id " + deviceId + " of type " + deviceType + " cannot be found!");
|
||||
|
||||
@ -29,7 +29,7 @@ function onRequest(context) {
|
||||
var device = deviceModule.viewDevice(deviceType, deviceId);
|
||||
if (device && device.status != "error") {
|
||||
return {
|
||||
"device": device,
|
||||
"device": device.content,
|
||||
"backendApiUri": devicemgtProps["httpsURL"] + "/android_sense/",
|
||||
"autoCompleteParams": autoCompleteParams
|
||||
};
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
|
||||
$(document).ready(function () {
|
||||
invokerUtil.get(
|
||||
"/devicemgt_admin/configuration",
|
||||
"/api/device-mgt/android_sense/v1.0/configuration",
|
||||
function (data) {
|
||||
data = JSON.parse(data);
|
||||
if (data && data.configuration) {
|
||||
@ -52,7 +52,7 @@ var addConfiguration = function () {
|
||||
var errorMsgWrapper = "#android_sense-config-error-msg";
|
||||
var errorMsg = "#android_sense-config-error-msg span";
|
||||
var addConfigFormData = {};
|
||||
var configList = new Array();
|
||||
var configList = [];
|
||||
var mqttEp = $("input#mqtt-endpoint").val();
|
||||
var mqttConfig = {
|
||||
"name": "ANDROID_SENSE_MQTT_EP",
|
||||
@ -61,10 +61,10 @@ var addConfiguration = function () {
|
||||
};
|
||||
|
||||
configList.push(mqttConfig);
|
||||
addConfigFormData.type = "android_sense"
|
||||
addConfigFormData.type = "android_sense";
|
||||
addConfigFormData.configuration = configList;
|
||||
|
||||
var addConfigAPI = "/devicemgt_admin/configuration";
|
||||
var addConfigAPI = "/api/device-mgt/android_sense/v1.0/configuration";
|
||||
invokerUtil.post(
|
||||
addConfigAPI,
|
||||
addConfigFormData,
|
||||
|
||||
@ -16,9 +16,9 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
var modalPopup = ".wr-modalpopup";
|
||||
var modalPopupContainer = modalPopup + " .modalpopup-container";
|
||||
var modalPopupContent = modalPopup + " .modalpopup-content";
|
||||
var modalPopup = ".modal";
|
||||
var modalPopupContainer = modalPopup + " .modal-content";
|
||||
var modalPopupContent = modalPopup + " .modal-content";
|
||||
var body = "body";
|
||||
|
||||
/*
|
||||
|
||||
@ -26,15 +26,15 @@ function onRequest(context) {
|
||||
if (devices) {
|
||||
return {
|
||||
"devices": stringify(devices),
|
||||
"backendApiUri": devicemgtProps["httpsURL"] + "/arduino/device/stats/"
|
||||
"backendApiUri": "/arduino/device/stats/"
|
||||
};
|
||||
} else if (deviceType != null && deviceType != undefined && deviceId != null && deviceId != undefined) {
|
||||
var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"];
|
||||
var device = deviceModule.viewDevice(deviceType, deviceId);
|
||||
if (device && device.status != "error") {
|
||||
return {
|
||||
"device": device,
|
||||
"backendApiUri": devicemgtProps["httpsURL"] + "/arduino/device/stats/" + deviceId
|
||||
"device": device.content,
|
||||
"backendApiUri": "/arduino/device/stats/" + deviceId
|
||||
};
|
||||
} else {
|
||||
response.sendError(404, "Device Id " + deviceId + " of type " + deviceType + " cannot be found!");
|
||||
|
||||
@ -28,7 +28,7 @@ function onRequest(context) {
|
||||
var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"];
|
||||
var device = deviceModule.viewDevice(deviceType, deviceId);
|
||||
if (device && device.status != "error") {
|
||||
return {"device": device, "backendApiUri" : devicemgtProps["httpsURL"] + "/arduino/", "autoCompleteParams" : autoCompleteParams};
|
||||
return {"device": device.content, "backendApiUri" : devicemgtProps["httpsURL"] + "/arduino/", "autoCompleteParams" : autoCompleteParams};
|
||||
} else {
|
||||
response.sendError(404, "Device Id " + deviceId + " of type " + deviceType + " cannot be found!");
|
||||
exit();
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
|
||||
$(document).ready(function () {
|
||||
invokerUtil.get(
|
||||
"/devicemgt_admin/configuration",
|
||||
"/api/device-mgt/arduino/v1.0/configuration",
|
||||
function (data) {
|
||||
data = JSON.parse(data);
|
||||
if (data && data.configuration) {
|
||||
@ -69,10 +69,10 @@ var addConfiguration = function () {
|
||||
|
||||
configList.push(httpConfig);
|
||||
configList.push(httpsConfig);
|
||||
addConfigFormData.type = "arduino"
|
||||
addConfigFormData.type = "arduino";
|
||||
addConfigFormData.configuration = configList;
|
||||
|
||||
var addConfigAPI = "/devicemgt_admin/configuration";
|
||||
var addConfigAPI = "/api/device-mgt/arduino/v1.0/configuration";
|
||||
invokerUtil.post(
|
||||
addConfigAPI,
|
||||
addConfigFormData,
|
||||
|
||||
@ -16,9 +16,9 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
var modalPopup = ".wr-modalpopup";
|
||||
var modalPopupContainer = modalPopup + " .modalpopup-container";
|
||||
var modalPopupContent = modalPopup + " .modalpopup-content";
|
||||
var modalPopup = ".modal";
|
||||
var modalPopupContainer = modalPopup + " .modal-content";
|
||||
var modalPopupContent = modalPopup + " .modal-content";
|
||||
var body = "body";
|
||||
|
||||
/*
|
||||
|
||||
@ -75,6 +75,10 @@
|
||||
<groupId>org.wso2.carbon.identity</groupId>
|
||||
<artifactId>org.wso2.carbon.identity.oauth.stub</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-pool.wso2</groupId>
|
||||
<artifactId>commons-pool</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
||||
@ -248,7 +248,7 @@ var updatePolicy = function (policy, state) {
|
||||
payload["roles"] = [];
|
||||
}
|
||||
|
||||
var serviceURL = "/devicemgt_admin/policies/" + getParameterByName("id");
|
||||
var serviceURL = "/api/device-mgt/v1.0/policies/" + getParameterByName("id");
|
||||
invokerUtil.put(
|
||||
serviceURL,
|
||||
payload,
|
||||
@ -257,7 +257,7 @@ var updatePolicy = function (policy, state) {
|
||||
if (state == "save"){
|
||||
var policyList = [];
|
||||
policyList.push(getParameterByName("id"));
|
||||
serviceURL = "/devicemgt_admin/policies/inactivate";
|
||||
serviceURL = "/api/device-mgt/v1.0/policies/inactivate";
|
||||
invokerUtil.put(
|
||||
serviceURL,
|
||||
policyList,
|
||||
@ -274,7 +274,7 @@ var updatePolicy = function (policy, state) {
|
||||
}else if(state == "publish"){
|
||||
var policyList = [];
|
||||
policyList.push(getParameterByName("id"));
|
||||
serviceURL = "/devicemgt_admin/policies/activate";
|
||||
serviceURL = "/api/device-mgt/v1.0/policies/activate";
|
||||
invokerUtil.put(
|
||||
serviceURL,
|
||||
policyList,
|
||||
@ -451,7 +451,7 @@ $(document).ready(function () {
|
||||
data: function (params) {
|
||||
var postData = {};
|
||||
postData.actionMethod = "GET";
|
||||
postData.actionUrl = "/devicemgt_admin/users?q=ad";
|
||||
postData.actionUrl = "/api/device-mgt/v1.0/users?q=ad";
|
||||
postData.actionPayload = JSON.stringify({
|
||||
q: params.term, // search term
|
||||
page: params.page
|
||||
@ -479,7 +479,7 @@ $(document).ready(function () {
|
||||
|
||||
var policyPayloadObj;
|
||||
invokerUtil.get(
|
||||
"/devicemgt_admin/policies/" + getParameterByName("id"),
|
||||
"/api/device-mgt/v1.0/policies/" + getParameterByName("id"),
|
||||
// on success
|
||||
function (data) {
|
||||
data = JSON.parse(data);
|
||||
|
||||
@ -111,7 +111,7 @@ $(document).ready(function () {
|
||||
|
||||
var policyPayloadObj;
|
||||
invokerUtil.get(
|
||||
"/devicemgt_admin/policies/" + getParameterByName("id"),
|
||||
"/api/device-mgt/v1.0/policies/" + getParameterByName("id"),
|
||||
// on success
|
||||
function (data) {
|
||||
// console.log("success: " + JSON.stringify(data));
|
||||
|
||||
@ -241,9 +241,9 @@ var savePolicy = function (policy, state) {
|
||||
|
||||
var serviceURL;
|
||||
if (state == "save") {
|
||||
serviceURL = "/devicemgt_admin/policies/inactive-policy"
|
||||
serviceURL = "/api/device-mgt/v1.0/policies/inactive-policy"
|
||||
} else if (state == "publish") {
|
||||
serviceURL = "/devicemgt_admin/policies/active-policy"
|
||||
serviceURL = "/api/device-mgt/v1.0/policies/active-policy"
|
||||
}
|
||||
invokerUtil.post(
|
||||
serviceURL,
|
||||
@ -414,7 +414,7 @@ $(document).ready(function () {
|
||||
data: function (params) {
|
||||
var postData = {};
|
||||
postData.actionMethod = "GET";
|
||||
postData.actionUrl = "/devicemgt_admin/users";
|
||||
postData.actionUrl = "/api/device-mgt/v1.0/users";
|
||||
postData.actionPayload = JSON.stringify({
|
||||
q: params.term, // search term
|
||||
page: params.page
|
||||
@ -442,7 +442,7 @@ $(document).ready(function () {
|
||||
templateSelection: formatRepoSelection // omitted for brevity, see the source of this page
|
||||
});
|
||||
|
||||
$("#groups-input").select2({
|
||||
$("#groups-input").select2({
|
||||
multiple: true,
|
||||
tags: true,
|
||||
ajax: {
|
||||
@ -457,7 +457,7 @@ $(document).ready(function () {
|
||||
var postData = {};
|
||||
postData.actionMethod = "GET";
|
||||
var username = $("#platform").data("username");
|
||||
postData.actionUrl = "/devicemgt_admin/groups/user/" + username +
|
||||
postData.actionUrl = "/api/device-mgt/v1.0/groups/user/" + username +
|
||||
"/search?groupName=" + params.term;
|
||||
return JSON.stringify(postData);
|
||||
},
|
||||
|
||||
@ -72,7 +72,7 @@
|
||||
org.wso2.carbon.utils,
|
||||
javax.xml.bind,
|
||||
javax.xml.bind.annotation,
|
||||
javax.xml.parsers,
|
||||
javax.xml.parsers; version="${javax.xml.parsers.import.pkg.version}",
|
||||
org.w3c.dom
|
||||
</Import-Package>
|
||||
<Export-Package>
|
||||
|
||||
@ -26,15 +26,15 @@ function onRequest(context) {
|
||||
if (devices) {
|
||||
return {
|
||||
"devices": stringify(devices),
|
||||
"backendApiUri": devicemgtProps["httpsURL"] + "/raspberrypi/device/stats/"
|
||||
"backendApiUri": "/raspberrypi/device/stats/"
|
||||
};
|
||||
} else if (deviceType != null && deviceType != undefined && deviceId != null && deviceId != undefined) {
|
||||
var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"];
|
||||
var device = deviceModule.viewDevice(deviceType, deviceId);
|
||||
if (device && device.status != "error") {
|
||||
return {
|
||||
"device": device,
|
||||
"backendApiUri": devicemgtProps["httpsURL"] + "/raspberrypi/device/stats/" + deviceId
|
||||
"device": device.content,
|
||||
"backendApiUri": "/raspberrypi/device/stats/" + deviceId
|
||||
};
|
||||
} else {
|
||||
response.sendError(404, "Device Id " + deviceId + " of type " + deviceType + " cannot be found!");
|
||||
|
||||
@ -28,7 +28,7 @@ function onRequest(context) {
|
||||
var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"];
|
||||
var device = deviceModule.viewDevice(deviceType, deviceId);
|
||||
if (device && device.status != "error") {
|
||||
return {"device": device, "backendApiUri" : devicemgtProps["httpsURL"] + "/raspberrypi/", "autoCompleteParams" : autoCompleteParams};
|
||||
return {"device": device.content, "backendApiUri" : devicemgtProps["httpsURL"] + "/raspberrypi/", "autoCompleteParams" : autoCompleteParams};
|
||||
} else {
|
||||
response.sendError(404, "Device Id " + deviceId + " of type " + deviceType + " cannot be found!");
|
||||
exit();
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
|
||||
$(document).ready(function () {
|
||||
invokerUtil.get(
|
||||
"/devicemgt_admin/configuration",
|
||||
"/api/device-mgt/raspberrypi/v1.0/configuration",
|
||||
function (data) {
|
||||
data = JSON.parse(data);
|
||||
if (data && data.configuration) {
|
||||
@ -79,10 +79,10 @@ var addConfiguration = function () {
|
||||
configList.push(httpConfig);
|
||||
configList.push(httpsConfig);
|
||||
configList.push(mqttConfig);
|
||||
addConfigFormData.type = "raspberrypi"
|
||||
addConfigFormData.type = "raspberrypi";
|
||||
addConfigFormData.configuration = configList;
|
||||
|
||||
var addConfigAPI = "/devicemgt_admin/configuration";
|
||||
var addConfigAPI = "/api/device-mgt/raspberrypi/v1.0/configuration";
|
||||
invokerUtil.post(
|
||||
addConfigAPI,
|
||||
addConfigFormData,
|
||||
|
||||
@ -16,9 +16,9 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
var modalPopup = ".wr-modalpopup";
|
||||
var modalPopupContainer = modalPopup + " .modalpopup-container";
|
||||
var modalPopupContent = modalPopup + " .modalpopup-content";
|
||||
var modalPopup = ".modal";
|
||||
var modalPopupContainer = modalPopup + " .modal-content";
|
||||
var modalPopupContent = modalPopup + " .modal-content";
|
||||
var body = "body";
|
||||
|
||||
/*
|
||||
|
||||
@ -26,15 +26,15 @@ function onRequest(context) {
|
||||
if (devices) {
|
||||
return {
|
||||
"devices": stringify(devices),
|
||||
"backendApiUri": devicemgtProps["httpsURL"] + "/virtual_firealarm/device/stats/"
|
||||
"backendApiUri": "/virtual_firealarm/device/stats/"
|
||||
};
|
||||
} else if (deviceType != null && deviceType != undefined && deviceId != null && deviceId != undefined) {
|
||||
var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"];
|
||||
var device = deviceModule.viewDevice(deviceType, deviceId);
|
||||
if (device && device.status != "error") {
|
||||
return {
|
||||
"device": device,
|
||||
"backendApiUri": devicemgtProps["httpsURL"] + "/virtual_firealarm/device/stats/" + deviceId
|
||||
"device": device.content,
|
||||
"backendApiUri": "/virtual_firealarm/device/stats/" + deviceId
|
||||
};
|
||||
} else {
|
||||
response.sendError(404, "Device Id " + deviceId + " of type " + deviceType + " cannot be found!");
|
||||
|
||||
@ -28,7 +28,7 @@ function onRequest(context) {
|
||||
var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"];
|
||||
var device = deviceModule.viewDevice(deviceType, deviceId);
|
||||
if (device && device.status != "error") {
|
||||
return {"device": device, "backendApiUri" : devicemgtProps["httpsURL"] + "/virtual_firealarm/", "autoCompleteParams" : autoCompleteParams};
|
||||
return {"device": device.content, "backendApiUri" : devicemgtProps["httpsURL"] + "/virtual_firealarm/", "autoCompleteParams" : autoCompleteParams};
|
||||
} else {
|
||||
response.sendError(404, "Device Id " + deviceId + " of type " + deviceType + " cannot be found!");
|
||||
exit();
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
|
||||
$(document).ready(function () {
|
||||
invokerUtil.get(
|
||||
"/devicemgt_admin/configuration",
|
||||
"/api/device-mgt/virtual_firealarm/v1.0/configuration",
|
||||
function (data) {
|
||||
data = JSON.parse(data);
|
||||
if (data && data.configuration) {
|
||||
@ -69,10 +69,10 @@ var addConfiguration = function () {
|
||||
configList.push(httpConfig);
|
||||
configList.push(httpsConfig);
|
||||
configList.push(mqttConfig);
|
||||
addConfigFormData.type = "virtual_firealarm"
|
||||
addConfigFormData.type = "virtual_firealarm";
|
||||
addConfigFormData.configuration = configList;
|
||||
|
||||
var addConfigAPI = "/devicemgt_admin/configuration";
|
||||
var addConfigAPI = "/api/device-mgt/virtual_firealarm/v1.0/configuration";
|
||||
invokerUtil.post(
|
||||
addConfigAPI,
|
||||
addConfigFormData,
|
||||
|
||||
@ -18,27 +18,30 @@
|
||||
|
||||
function onRequest(context) {
|
||||
var log = new Log("stats.js");
|
||||
var carbonServer = require("carbon").server;
|
||||
var device = context.unit.params.device;
|
||||
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||
var constants = require("/app/modules/constants.js");
|
||||
|
||||
var websocketEndpoint = devicemgtProps["wssURL"].replace("https", "wss");
|
||||
var jwtService = carbon.server.osgiService('org.wso2.carbon.identity.jwt.client.extension.service.JWTClientManagerService');
|
||||
var jwtService = carbonServer.osgiService(
|
||||
'org.wso2.carbon.identity.jwt.client.extension.service.JWTClientManagerService');
|
||||
var jwtClient = jwtService.getJWTClient();
|
||||
var encodedClientKeys = session.get(constants.ENCODED_CLIENT_KEYS_IDENTIFIER);
|
||||
var encodedClientKeys = session.get(constants["ENCODED_TENANT_BASED_CLIENT_APP_CREDENTIALS"]);
|
||||
if (encodedClientKeys) {
|
||||
var tokenUtil = require("/app/modules/util.js").util;
|
||||
var resp = tokenUtil.decode(encodedClientKeys).split(",");
|
||||
var user = session.get(constants.USER_SESSION_KEY);
|
||||
var deviceParam = "{\"scope\":\"stats\",\"deviceIdentifiers\":[{\"id\":\""+device.deviceIdentifier+" \", \"type\":\""+device.type+"\"}]}";
|
||||
var tokenUtil = require("/app/modules/oauth/token-handler-utils.js")["utils"];
|
||||
var resp = tokenUtil.decode(encodedClientKeys).split(":");
|
||||
var deviceParam = "{\"scope\":\"stats\",\"deviceIdentifiers\":[{\"id\":\"" + device.deviceIdentifier
|
||||
+ "\", \"type\":\"" + device.type + "\"}]}";
|
||||
var encodedScope = tokenUtil.encode(deviceParam);
|
||||
var tokenPair = jwtClient.getAccessToken(resp[0], resp[1], user.username, null,
|
||||
"{\"device\": \"" +encodedScope+"\"}");
|
||||
var tokenPair = jwtClient.getAccessToken(resp[0], resp[1], context.user.username,"default",
|
||||
{"device": encodedScope});
|
||||
var token = "";
|
||||
if (tokenPair) {
|
||||
token = tokenPair.accessToken;
|
||||
}
|
||||
websocketEndpoint = websocketEndpoint + "/secured-outputui/org.wso2.iot.devices.temperature/1.0.0?" +
|
||||
"token=" + token + "&deviceId=" + device.deviceIdentifier + "&deviceType=" + device.type;
|
||||
"token=" + token + "&deviceId=" + device.deviceIdentifier + "&deviceType=" + device.type;
|
||||
}
|
||||
return {"device": device, "websocketEndpoint" : websocketEndpoint};
|
||||
return {"device": device, "websocketEndpoint": websocketEndpoint};
|
||||
}
|
||||
@ -16,9 +16,9 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
var modalPopup = ".wr-modalpopup";
|
||||
var modalPopupContainer = modalPopup + " .modalpopup-container";
|
||||
var modalPopupContent = modalPopup + " .modalpopup-content";
|
||||
var modalPopup = ".modal";
|
||||
var modalPopupContainer = modalPopup + " .modal-content";
|
||||
var modalPopupContent = modalPopup + " .modal-content";
|
||||
var body = "body";
|
||||
|
||||
/*
|
||||
|
||||
@ -23,7 +23,7 @@ function onRequest(context) {
|
||||
|
||||
if (deviceType != null && deviceType != undefined && deviceId != null && deviceId != undefined) {
|
||||
var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"];
|
||||
var device = deviceModule.viewDevice(deviceType, deviceId);
|
||||
var device = deviceModule.viewDevice(deviceType, deviceId)["content"];
|
||||
|
||||
if (device) {
|
||||
var viewModel = {};
|
||||
|
||||
@ -21,57 +21,265 @@
|
||||
var deviceIdentifier = deviceId.data("deviceid");
|
||||
var deviceType = deviceId.data("type");
|
||||
var payload = [deviceIdentifier];
|
||||
var serviceUrl = "/mdm-android-agent/operation/device-info";
|
||||
invokerUtil.post(serviceUrl, payload,
|
||||
function (message) {
|
||||
console.log(message);
|
||||
}, function (message) {
|
||||
console.log(message);
|
||||
});
|
||||
var operationTable;
|
||||
if (deviceType == "ios") {
|
||||
serviceUrl = "/ios/operation/deviceinfo";
|
||||
} else if (deviceType == "android") {
|
||||
//var serviceUrl = "/mdm-android-agent/operation/device-info";
|
||||
serviceUrl = "/api/device-mgt/android/v1.0/admin/devices/info";
|
||||
}
|
||||
if (serviceUrl) {
|
||||
invokerUtil.post(serviceUrl, payload,
|
||||
function (message) {
|
||||
console.log(message);
|
||||
}, function (message) {
|
||||
console.log(message);
|
||||
});
|
||||
}
|
||||
$(document).ready(function () {
|
||||
$(".panel-body").removeClass("hidden");
|
||||
$("#loading-content").remove();
|
||||
|
||||
loadOperationsLog();
|
||||
loadApplicationsList();
|
||||
loadPolicyCompliance();
|
||||
|
||||
$("#refresh-policy").click(function () {
|
||||
$('#policy-spinner').removeClass('hidden');
|
||||
loadPolicyCompliance();
|
||||
});
|
||||
|
||||
$("#refresh-apps").click(function () {
|
||||
$('#apps-spinner').removeClass('hidden');
|
||||
loadApplicationsList();
|
||||
});
|
||||
|
||||
$("#refresh-operations").click(function () {
|
||||
$('#operations-spinner').removeClass('hidden');
|
||||
loadOperationsLog(true);
|
||||
});
|
||||
loadOperationBar(deviceType);
|
||||
});
|
||||
|
||||
function loadOperationsLog(update) {
|
||||
var operationsLogTable = "#operations-log-table";
|
||||
if (update) {
|
||||
operationTable = $(operationsLogTable).DataTable();
|
||||
operationTable.ajax.reload(false);
|
||||
return;
|
||||
}
|
||||
operationTable = $(operationsLogTable)
|
||||
.datatables_extended({
|
||||
serverSide: true,
|
||||
processing: false,
|
||||
searching: false,
|
||||
ordering: false,
|
||||
pageLength: 10,
|
||||
order: [],
|
||||
ajax: {
|
||||
url: context + "/api/operation/paginate",
|
||||
data: {
|
||||
deviceId: deviceIdentifier,
|
||||
deviceType: deviceType
|
||||
},
|
||||
dataSrc: function (json) {
|
||||
$("#operations-spinner").addClass(
|
||||
"hidden");
|
||||
$("#operations-log-container").empty();
|
||||
return json.data;
|
||||
}
|
||||
},
|
||||
columnDefs: [
|
||||
{targets: 0, data: "code"},
|
||||
{
|
||||
targets: 1,
|
||||
data: "status",
|
||||
render: function (status) {
|
||||
var html;
|
||||
switch (status) {
|
||||
case "COMPLETED" :
|
||||
html =
|
||||
"<span><i class='fw fw-ok icon-success'></i> Completed</span>";
|
||||
break;
|
||||
case "PENDING" :
|
||||
html =
|
||||
"<span><i class='fw fw-warning icon-warning'></i> Pending</span>";
|
||||
break;
|
||||
case "ERROR" :
|
||||
html =
|
||||
"<span><i class='fw fw-error icon-danger'></i> Error</span>";
|
||||
break;
|
||||
case "IN_PROGRESS" :
|
||||
html =
|
||||
"<span><i class='fw fw-ok icon-warning'></i> In Progress</span>";
|
||||
break;
|
||||
case "REPEATED" :
|
||||
html =
|
||||
"<span><i class='fw fw-ok icon-warning'></i> Repeated</span>";
|
||||
break;
|
||||
}
|
||||
return html;
|
||||
}
|
||||
},
|
||||
{
|
||||
targets: 2,
|
||||
data: "createdTimeStamp",
|
||||
render: function (date) {
|
||||
var value = String(date);
|
||||
return value.slice(0, 16);
|
||||
}
|
||||
}
|
||||
],
|
||||
"createdRow": function (row, data) {
|
||||
$(row).attr("data-type", "selectable");
|
||||
$(row).attr("data-id", data["id"]);
|
||||
$.each($("td", row),
|
||||
function (colIndex) {
|
||||
switch (colIndex) {
|
||||
case 1:
|
||||
$(this).attr(
|
||||
"data-grid-label",
|
||||
"Code");
|
||||
$(this).attr(
|
||||
"data-display",
|
||||
data["code"]);
|
||||
break;
|
||||
case 2:
|
||||
$(this).attr(
|
||||
"data-grid-label",
|
||||
"Status");
|
||||
$(this).attr(
|
||||
"data-display",
|
||||
data["status"]);
|
||||
break;
|
||||
case 3:
|
||||
$(this).attr(
|
||||
"data-grid-label",
|
||||
"Created Timestamp");
|
||||
$(this).attr(
|
||||
"data-display",
|
||||
data["createdTimeStamp"]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function loadApplicationsList() {
|
||||
var applicationsList = $("#applications-list");
|
||||
var deviceListingSrc = applicationsList.attr("src");
|
||||
var applicationListingTemplate = applicationsList.attr("src");
|
||||
var deviceId = applicationsList.data("device-id");
|
||||
var deviceType = applicationsList.data("device-type");
|
||||
|
||||
$.template("application-list", deviceListingSrc, function (template) {
|
||||
var serviceURL = "/devicemgt_admin/operations/" + deviceType + "/" + deviceId + "/apps";
|
||||
$.template("application-list", applicationListingTemplate, function (template) {
|
||||
var serviceURL = "/api/device-mgt/v1.0/devices/" + deviceType + "/" + deviceId + "/applications";
|
||||
invokerUtil.get(
|
||||
serviceURL,
|
||||
// success-callback
|
||||
function (data, textStatus, jqXHR) {
|
||||
if (jqXHR.status == 200 && data) {
|
||||
data = JSON.parse(data);
|
||||
$("#apps-spinner").addClass("hidden");
|
||||
if (data.length > 0) {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
data[i]["name"] = decodeURIComponent(data[i]["name"]);
|
||||
data[i]["platform"] = deviceType;
|
||||
}
|
||||
|
||||
var successCallback = function (data) {
|
||||
data = JSON.parse(data);
|
||||
$('#apps-spinner').addClass('hidden');
|
||||
var viewModel = {};
|
||||
if (data != null && data.length > 0) {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
data[i].name = data[i].name.replace(/[^\w\s]/gi, ' ');
|
||||
data[i].name = data[i].name.replace(/[0-9]/g, ' ');
|
||||
var viewModel = {};
|
||||
viewModel["applications"] = data;
|
||||
viewModel["deviceType"] = deviceType;
|
||||
var content = template(viewModel);
|
||||
$("#applications-list-container").html(content);
|
||||
} else {
|
||||
$("#applications-list-container").
|
||||
html("<div class='message message-info'><h4><i class='icon fw fw-info'></i>No applications found.</h4>" +
|
||||
"<p>Please try refreshing the list in a while.</p></div>");
|
||||
}
|
||||
}
|
||||
}
|
||||
viewModel.applications = data;
|
||||
viewModel.deviceType = deviceType;
|
||||
if (data.length > 0) {
|
||||
var content = template(viewModel);
|
||||
$("#applications-list-container").html(content);
|
||||
}
|
||||
|
||||
};
|
||||
invokerUtil.get(serviceURL,
|
||||
successCallback, function (message) {
|
||||
console.log(message);
|
||||
},
|
||||
// error-callback
|
||||
function () {
|
||||
$("#applications-list-container").
|
||||
html("<div class='panel-body'><br><p class='fw-warning'> Loading application list " +
|
||||
"was not successful. please try refreshing the list in a while.<p></div>");
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function loadPolicyCompliance() {
|
||||
var policyCompliance = $("#policy-view");
|
||||
var policyComplianceTemplate = policyCompliance.attr("src");
|
||||
var deviceId = policyCompliance.data("device-id");
|
||||
var deviceType = policyCompliance.data("device-type");
|
||||
var activePolicy = null;
|
||||
|
||||
$.template(
|
||||
"policy-view",
|
||||
policyComplianceTemplate,
|
||||
function (template) {
|
||||
var getEffectivePolicyURL = "/api/device-mgt/v1.0/devices/" + deviceType + "/" + deviceId + "/effective-policy";
|
||||
var getDeviceComplianceURL = "/api/device-mgt/v1.0/devices/" + deviceType + "/" + deviceId + "/compliance-data";
|
||||
|
||||
invokerUtil.get(
|
||||
getEffectivePolicyURL,
|
||||
// success-callback
|
||||
function (data, textStatus, jqXHR) {
|
||||
if (jqXHR.status == 200 && data) {
|
||||
data = JSON.parse(data);
|
||||
$("#policy-spinner").addClass("hidden");
|
||||
if (data["active"] == true) {
|
||||
activePolicy = data;
|
||||
invokerUtil.get(
|
||||
getDeviceComplianceURL,
|
||||
// success-callback
|
||||
function (data, textStatus, jqXHR) {
|
||||
if (jqXHR.status == 200 && data) {
|
||||
var viewModel = {};
|
||||
viewModel["policy"] = activePolicy;
|
||||
viewModel["deviceType"] = deviceType;
|
||||
data = JSON.parse(data);
|
||||
var content;
|
||||
if (data["complianceData"]) {
|
||||
if (data["complianceData"]["complianceFeatures"] &&
|
||||
data["complianceData"]["complianceFeatures"].length > 0) {
|
||||
viewModel["compliance"] = "NON-COMPLIANT";
|
||||
viewModel["complianceFeatures"] = data["complianceData"]["complianceFeatures"];
|
||||
content = template(viewModel);
|
||||
$("#policy-list-container").html(content);
|
||||
} else {
|
||||
viewModel["compliance"] = "COMPLIANT";
|
||||
content = template(viewModel);
|
||||
$("#policy-list-container").html(content);
|
||||
$("#policy-compliance-table").addClass("hidden");
|
||||
}
|
||||
} else {
|
||||
$("#policy-list-container").
|
||||
html("<div class='panel-body'><br><p class='fw-warning'> This device " +
|
||||
"has no policy applied.<p></div>");
|
||||
}
|
||||
}
|
||||
},
|
||||
// error-callback
|
||||
function () {
|
||||
$("#policy-list-container").
|
||||
html("<div class='panel-body'><br><p class='fw-warning'> Loading policy compliance related data " +
|
||||
"was not successful. please try refreshing data in a while.<p></div>");
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
},
|
||||
// error-callback
|
||||
function () {
|
||||
$("#policy-list-container").
|
||||
html("<div class='panel-body'><br><p class='fw-warning'> Loading policy compliance related data " +
|
||||
"was not successful. please try refreshing data in a while.<p></div>");
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
}());
|
||||
|
||||
@ -50,7 +50,7 @@
|
||||
{{/if}}
|
||||
{{#if permissions.ADVANCED_SEARCH}}
|
||||
<li id="advanced-search-btn" class="hidden">
|
||||
<a href="{{appContext}}devices/search">
|
||||
<a href="{{@app.context}}/devices/search">
|
||||
<span class="fw-stack">
|
||||
<i class="fw fw-ring fw-stroke fw-stack-2x"></i>
|
||||
<i class="fw fw-search fw-stack-1x"></i>
|
||||
|
||||
@ -21,8 +21,8 @@
|
||||
*/
|
||||
|
||||
var operations = '.wr-operations',
|
||||
modalPopup = '.wr-modalpopup',
|
||||
modalPopupContent = modalPopup + ' .modalpopup-content',
|
||||
modalPopup = '.modal',
|
||||
modalPopupContent = modalPopup + ' .modal-content',
|
||||
navHeight = $('#nav').height(),
|
||||
headerHeight = $('header').height(),
|
||||
offset = (headerHeight + navHeight),
|
||||
@ -51,9 +51,9 @@ function getSelectedDeviceIds() {
|
||||
var deviceId = device.data('deviceid');
|
||||
var deviceType = device.data('type');
|
||||
deviceIdentifierList.push({
|
||||
"id": deviceId,
|
||||
"type": deviceType
|
||||
});
|
||||
"id": deviceId,
|
||||
"type": deviceType
|
||||
});
|
||||
});
|
||||
if (deviceIdentifierList.length == 0) {
|
||||
var thisTable = $(".DTTT_selected").closest('.dataTables_wrapper').find('.dataTable').dataTable();
|
||||
@ -62,9 +62,9 @@ function getSelectedDeviceIds() {
|
||||
var deviceId = $(thisTable.api().row(this).node()).data('deviceid');
|
||||
var deviceType = $(thisTable.api().row(this).node()).data('devicetype');
|
||||
deviceIdentifierList.push({
|
||||
"id": deviceId,
|
||||
"type": deviceType
|
||||
});
|
||||
"id": deviceId,
|
||||
"type": deviceType
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -208,14 +208,16 @@ function runOperation(operationName) {
|
||||
|
||||
var payload, serviceEndPoint;
|
||||
if (list[platformTypeConstants.IOS]) {
|
||||
payload = operationModule.generatePayload(platformTypeConstants.IOS, operationName, list[platformTypeConstants.IOS]);
|
||||
payload =
|
||||
operationModule.generatePayload(platformTypeConstants.IOS, operationName, list[platformTypeConstants.IOS]);
|
||||
serviceEndPoint = operationModule.getIOSServiceEndpoint(operationName);
|
||||
} else if (list[platformTypeConstants.ANDROID]) {
|
||||
payload = operationModule
|
||||
.generatePayload(platformTypeConstants.ANDROID, operationName, list[platformTypeConstants.ANDROID]);
|
||||
serviceEndPoint = operationModule.getAndroidServiceEndpoint(operationName);
|
||||
} else if (list[platformTypeConstants.WINDOWS]) {
|
||||
payload = operationModule.generatePayload(platformTypeConstants.WINDOWS, operationName, list[platformTypeConstants.WINDOWS]);
|
||||
payload = operationModule.generatePayload(platformTypeConstants.WINDOWS, operationName,
|
||||
list[platformTypeConstants.WINDOWS]);
|
||||
serviceEndPoint = operationModule.getWindowsServiceEndpoint(operationName);
|
||||
}
|
||||
if (operationName == "NOTIFICATION") {
|
||||
|
||||
@ -1822,13 +1822,13 @@ stepForwardFrom["policy-naming-publish"] = function () {
|
||||
policy["policyName"] = $("#policy-name-input").val();
|
||||
policy["description"] = $("#policy-description-input").val();
|
||||
//All data is collected. Policy can now be updated.
|
||||
savePolicy(policy, "/devicemgt_admin/policies/active-policy");
|
||||
savePolicy(policy, "/api/device-mgt/v1.0/policies/active-policy");
|
||||
};
|
||||
stepForwardFrom["policy-naming"] = function () {
|
||||
policy["policyName"] = $("#policy-name-input").val();
|
||||
policy["description"] = $("#policy-description-input").val();
|
||||
//All data is collected. Policy can now be updated.
|
||||
savePolicy(policy, "/devicemgt_admin/policies/inactive-policy");
|
||||
savePolicy(policy, "/api/device-mgt/v1.0/policies/inactive-policy");
|
||||
};
|
||||
|
||||
var savePolicy = function (policy, serviceURL) {
|
||||
@ -2058,9 +2058,9 @@ $(document).ready(function () {
|
||||
data: function (params) {
|
||||
var postData = {};
|
||||
postData.actionMethod = "GET";
|
||||
postData.actionUrl = "/devicemgt_admin/users";
|
||||
postData.actionUrl = "/api/device-mgt/v1.0/users/search/usernames";
|
||||
postData.actionPayload = JSON.stringify({
|
||||
q: params.term, // search term
|
||||
filter: params.term, // search term
|
||||
page: params.page
|
||||
});
|
||||
|
||||
|
||||
@ -79,7 +79,7 @@
|
||||
{{#zone "navbarCollapsableRightItems"}}
|
||||
<ul id="notification-bubble-wrapper" class="nav navbar-nav navbar-right">
|
||||
<li class="visible-inline-block">
|
||||
<!--<a href="{{appContext}}notification-listing" title="Failures of operations on the device side will be listed here">-->
|
||||
<!--<a href="{{@app.context}}notification-listing" title="Failures of operations on the device side will be listed here">-->
|
||||
<a data-toggle="sidebar" data-target="#right-sidebar" data-container=".page-content"
|
||||
aria-expanded="false" rel="notifications-sidebar">
|
||||
<span id="notification-bubble" class="badge notifications hidden"></span>
|
||||
@ -100,7 +100,7 @@
|
||||
<ul class="sidebar-messages"></ul>
|
||||
<br>
|
||||
<div class="text-center">
|
||||
<a href="{{appContext}}notification-listing" class="btn-operations btn-default">
|
||||
<a href="{{@app.context}}/notification-listing" class="btn-operations btn-default">
|
||||
<span class="fw-stack">
|
||||
<i class="fw fw-ring fw-stroke fw-stack-2x"></i>
|
||||
<i class="fw fw-notification fw-stack-1x"></i>
|
||||
@ -112,7 +112,7 @@
|
||||
{{/zone}}
|
||||
{{#zone "bottomJs"}}
|
||||
<!--suppress HtmlUnknownTarget -->
|
||||
<script id="notifications" data-current-user="{{currentUser.username}}"
|
||||
<script id="notifications" data-current-user="{{@user.username}}"
|
||||
data-image-resource="{{@unit.publicUri}}/images/" src="{{@unit.publicUri}}/templates/notifications.hbs"
|
||||
type="text/x-handlebars-template"></script>
|
||||
{{js "js/nav-menu.js"}}
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
|
||||
var WEB_APP_TITLE = "WSO2 CDM";
|
||||
var WEB_APP_CONTEXT = "/devicemgt";
|
||||
var ADMIN_SERVICE_CONTEXT = "/devicemgt_admin";
|
||||
var ADMIN_SERVICE_CONTEXT = "/api/device-mgt/v1.0";
|
||||
var USER_SESSION_KEY = "_UUF_USER";
|
||||
var UNSPECIFIED = "Unspecified";
|
||||
var httpURL = "httpURL";
|
||||
|
||||
@ -87,7 +87,7 @@
|
||||
{{#zone "navbarCollapsableRightItems"}}
|
||||
<ul id="notification-bubble-wrapper" class="nav navbar-nav navbar-right">
|
||||
<li class="visible-inline-block">
|
||||
<!--<a href="{{appContext}}notification-listing" title="Failures of operations on the device side will be listed here">-->
|
||||
<!--<a href="{{@app.context}}notification-listing" title="Failures of operations on the device side will be listed here">-->
|
||||
<a data-toggle="sidebar" data-target="#right-sidebar" data-container=".page-content"
|
||||
aria-expanded="false" rel="notifications-sidebar">
|
||||
<span class="icon fw-stack">
|
||||
@ -105,13 +105,13 @@
|
||||
data-offset-top="80">
|
||||
<ul class="sidebar-messages">
|
||||
</ul>
|
||||
<h4 class="text-center"><a href="{{appContext}}notification-listing" class="text-center">Show all notifications</a>
|
||||
<h4 class="text-center"><a href="{{@app.context}}notification-listing" class="text-center">Show all notifications</a>
|
||||
</h4>
|
||||
</div>
|
||||
{{/zone}}
|
||||
{{#zone "bottomJs"}}
|
||||
<script id="notifications" data-current-user="{{currentUser.username}}"
|
||||
data-image-resource="{{self.publicURL}}/images/" src="{{self.publicURL}}/templates/notifications.hbs"
|
||||
<script id="notifications" data-current-user="{{@user.username}}"
|
||||
data-image-resource="{{@unit.publicUri}}/images/" src="{{@unit.publicUri}}/templates/notifications.hbs"
|
||||
type="text/x-handlebars-template"></script>
|
||||
{{js "js/nav-menu.js"}}
|
||||
{{/zone}}
|
||||
|
||||
@ -16,9 +16,10 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
var modalPopup = ".wr-modalpopup",
|
||||
modalPopupContainer = modalPopup + " .modalpopup-container",
|
||||
modalPopupContent = modalPopup + " .modalpopup-content";
|
||||
var modalPopup = ".modal";
|
||||
var modalPopupContainer = modalPopup + " .modal-content";
|
||||
var modalPopupContent = modalPopup + " .modal-content";
|
||||
var body = "body";
|
||||
|
||||
var emmAdminBasePath = "/api/device-mgt/v1.0";
|
||||
|
||||
|
||||
@ -23,9 +23,10 @@
|
||||
var payload = [deviceIdentifier];
|
||||
var operationTable;
|
||||
if (deviceType == "ios") {
|
||||
var serviceUrl = "/ios/operation/deviceinfo";
|
||||
serviceUrl = "/ios/operation/deviceinfo";
|
||||
} else if (deviceType == "android") {
|
||||
var serviceUrl = "/mdm-android-agent/operation/device-info";
|
||||
//var serviceUrl = "/mdm-android-agent/operation/device-info";
|
||||
serviceUrl = "/api/device-mgt/android/v1.0/admin/devices/info";
|
||||
}
|
||||
if (serviceUrl) {
|
||||
invokerUtil.post(serviceUrl, payload,
|
||||
@ -61,137 +62,224 @@
|
||||
});
|
||||
|
||||
function loadOperationsLog(update) {
|
||||
var operationsLog = $("#operations-log");
|
||||
var deviceListingSrc = operationsLog.attr("src");
|
||||
var deviceId = operationsLog.data("device-id");
|
||||
var deviceType = operationsLog.data("device-type");
|
||||
|
||||
$.template("operations-log", deviceListingSrc, function (template) {
|
||||
var serviceURL = "/devicemgt_admin/operations/" + deviceType + "/" + deviceId;
|
||||
|
||||
var successCallback = function (data) {
|
||||
data = JSON.parse(data);
|
||||
$('#operations-spinner').addClass('hidden');
|
||||
var viewModel = {};
|
||||
viewModel.operations = data;
|
||||
if (data.length > 0) {
|
||||
var content = template(viewModel);
|
||||
if (!update) {
|
||||
$("#operations-log-container").html(content);
|
||||
operationTable = $('#operations-log-table').datatables_extended();
|
||||
} else {
|
||||
$('#operations-log-table').dataTable().fnClearTable();
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var status;
|
||||
if (data[i].status == "COMPLETED") {
|
||||
status = "<span><i class='fw fw-ok icon-success'></i> Completed</span>";
|
||||
} else if (data[i].status == "PENDING") {
|
||||
status = "<span><i class='fw fw-warning icon-warning'></i> Pending</span>";
|
||||
} else if (data[i].status == "ERROR") {
|
||||
status = "<span><i class='fw fw-error icon-danger'></i> Error</span>";
|
||||
} else if (data[i].status == "IN_PROGRESS") {
|
||||
status = "<span><i class='fw fw-ok icon-warning'></i> In Progress</span>";
|
||||
}
|
||||
|
||||
$('#operations-log-table').dataTable().fnAddData([
|
||||
data[i].code,
|
||||
status,
|
||||
data[i].createdTimeStamp
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
invokerUtil.get(serviceURL,
|
||||
successCallback, function (message) {
|
||||
console.log(message);
|
||||
});
|
||||
});
|
||||
|
||||
var operationsLogTable = "#operations-log-table";
|
||||
if (update) {
|
||||
operationTable = $(operationsLogTable).DataTable();
|
||||
operationTable.ajax.reload(false);
|
||||
return;
|
||||
}
|
||||
operationTable = $(operationsLogTable)
|
||||
.datatables_extended({
|
||||
serverSide: true,
|
||||
processing: false,
|
||||
searching: false,
|
||||
ordering: false,
|
||||
pageLength: 10,
|
||||
order: [],
|
||||
ajax: {
|
||||
url: context + "/api/operation/paginate",
|
||||
data: {
|
||||
deviceId: deviceIdentifier,
|
||||
deviceType: deviceType
|
||||
},
|
||||
dataSrc: function (json) {
|
||||
$("#operations-spinner").addClass(
|
||||
"hidden");
|
||||
$("#operations-log-container").empty();
|
||||
return json.data;
|
||||
}
|
||||
},
|
||||
columnDefs: [
|
||||
{targets: 0, data: "code"},
|
||||
{
|
||||
targets: 1,
|
||||
data: "status",
|
||||
render: function (status) {
|
||||
var html;
|
||||
switch (status) {
|
||||
case "COMPLETED" :
|
||||
html =
|
||||
"<span><i class='fw fw-ok icon-success'></i> Completed</span>";
|
||||
break;
|
||||
case "PENDING" :
|
||||
html =
|
||||
"<span><i class='fw fw-warning icon-warning'></i> Pending</span>";
|
||||
break;
|
||||
case "ERROR" :
|
||||
html =
|
||||
"<span><i class='fw fw-error icon-danger'></i> Error</span>";
|
||||
break;
|
||||
case "IN_PROGRESS" :
|
||||
html =
|
||||
"<span><i class='fw fw-ok icon-warning'></i> In Progress</span>";
|
||||
break;
|
||||
case "REPEATED" :
|
||||
html =
|
||||
"<span><i class='fw fw-ok icon-warning'></i> Repeated</span>";
|
||||
break;
|
||||
}
|
||||
return html;
|
||||
}
|
||||
},
|
||||
{
|
||||
targets: 2,
|
||||
data: "createdTimeStamp",
|
||||
render: function (date) {
|
||||
var value = String(date);
|
||||
return value.slice(0, 16);
|
||||
}
|
||||
}
|
||||
],
|
||||
"createdRow": function (row, data) {
|
||||
$(row).attr("data-type", "selectable");
|
||||
$(row).attr("data-id", data["id"]);
|
||||
$.each($("td", row),
|
||||
function (colIndex) {
|
||||
switch (colIndex) {
|
||||
case 1:
|
||||
$(this).attr(
|
||||
"data-grid-label",
|
||||
"Code");
|
||||
$(this).attr(
|
||||
"data-display",
|
||||
data["code"]);
|
||||
break;
|
||||
case 2:
|
||||
$(this).attr(
|
||||
"data-grid-label",
|
||||
"Status");
|
||||
$(this).attr(
|
||||
"data-display",
|
||||
data["status"]);
|
||||
break;
|
||||
case 3:
|
||||
$(this).attr(
|
||||
"data-grid-label",
|
||||
"Created Timestamp");
|
||||
$(this).attr(
|
||||
"data-display",
|
||||
data["createdTimeStamp"]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function loadApplicationsList() {
|
||||
var applicationsList = $("#applications-list");
|
||||
var deviceListingSrc = applicationsList.attr("src");
|
||||
var applicationListingTemplate = applicationsList.attr("src");
|
||||
var deviceId = applicationsList.data("device-id");
|
||||
var deviceType = applicationsList.data("device-type");
|
||||
|
||||
$.template("application-list", deviceListingSrc, function (template) {
|
||||
var serviceURL = "/devicemgt_admin/operations/" + deviceType + "/" + deviceId + "/apps";
|
||||
$.template("application-list", applicationListingTemplate, function (template) {
|
||||
var serviceURL = "/api/device-mgt/v1.0/devices/" + deviceType + "/" + deviceId + "/applications";
|
||||
invokerUtil.get(
|
||||
serviceURL,
|
||||
// success-callback
|
||||
function (data, textStatus, jqXHR) {
|
||||
if (jqXHR.status == 200 && data) {
|
||||
data = JSON.parse(data);
|
||||
$("#apps-spinner").addClass("hidden");
|
||||
if (data.length > 0) {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
data[i]["name"] = decodeURIComponent(data[i]["name"]);
|
||||
data[i]["platform"] = deviceType;
|
||||
}
|
||||
|
||||
var successCallback = function (data) {
|
||||
data = JSON.parse(data);
|
||||
$('#apps-spinner').addClass('hidden');
|
||||
var viewModel = {};
|
||||
if (data != null && data.length > 0) {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
data[i].name = data[i].name.replace(/[^\w\s]/gi, ' ');
|
||||
data[i].name = data[i].name.replace(/[0-9]/g, ' ');
|
||||
var viewModel = {};
|
||||
viewModel["applications"] = data;
|
||||
viewModel["deviceType"] = deviceType;
|
||||
var content = template(viewModel);
|
||||
$("#applications-list-container").html(content);
|
||||
} else {
|
||||
$("#applications-list-container").
|
||||
html("<div class='message message-info'><h4><i class='icon fw fw-info'></i>No applications found.</h4>" +
|
||||
"<p>Please try refreshing the list in a while.</p></div>");
|
||||
}
|
||||
}
|
||||
}
|
||||
viewModel.applications = data;
|
||||
viewModel.deviceType = deviceType;
|
||||
if (data.length > 0) {
|
||||
var content = template(viewModel);
|
||||
$("#applications-list-container").html(content);
|
||||
}
|
||||
|
||||
};
|
||||
invokerUtil.get(serviceURL,
|
||||
successCallback, function (message) {
|
||||
console.log(message);
|
||||
},
|
||||
// error-callback
|
||||
function () {
|
||||
$("#applications-list-container").
|
||||
html("<div class='panel-body'><br><p class='fw-warning'> Loading application list " +
|
||||
"was not successful. please try refreshing the list in a while.<p></div>");
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function loadPolicyCompliance() {
|
||||
var policyCompliance = $("#policy-view");
|
||||
var policySrc = policyCompliance.attr("src");
|
||||
var policyComplianceTemplate = policyCompliance.attr("src");
|
||||
var deviceId = policyCompliance.data("device-id");
|
||||
var deviceType = policyCompliance.data("device-type");
|
||||
var activePolicy = null;
|
||||
|
||||
$.template("policy-view", policySrc, function (template) {
|
||||
var serviceURLPolicy = "/devicemgt_admin/policies/" + deviceType + "/" + deviceId + "/active-policy"
|
||||
var serviceURLCompliance = "/devicemgt_admin/policies/" + deviceType + "/" + deviceId;
|
||||
|
||||
var successCallbackCompliance = function (data) {
|
||||
var viewModel = {};
|
||||
viewModel.policy = activePolicy;
|
||||
viewModel.deviceType = deviceType;
|
||||
if (data != null && data.complianceFeatures != null && data.complianceFeatures != undefined && data.complianceFeatures.length > 0) {
|
||||
viewModel.compliance = "NON-COMPLIANT";
|
||||
viewModel.complianceFeatures = data.complianceFeatures;
|
||||
var content = template(viewModel);
|
||||
$("#policy-list-container").html(content);
|
||||
} else {
|
||||
viewModel.compliance = "COMPLIANT";
|
||||
var content = template(viewModel);
|
||||
$("#policy-list-container").html(content);
|
||||
$("#policy-compliance-table").addClass("hidden");
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
var successCallbackPolicy = function (data) {
|
||||
data = JSON.parse(data);
|
||||
$('#policy-spinner').addClass('hidden');
|
||||
if (data != null && data.active == true) {
|
||||
activePolicy = data;
|
||||
invokerUtil.get(serviceURLCompliance,
|
||||
successCallbackCompliance, function (message) {
|
||||
console.log(message);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
invokerUtil.get(serviceURLPolicy,
|
||||
successCallbackPolicy, function (message) {
|
||||
console.log(message);
|
||||
});
|
||||
});
|
||||
$.template(
|
||||
"policy-view",
|
||||
policyComplianceTemplate,
|
||||
function (template) {
|
||||
var getEffectivePolicyURL = "/api/device-mgt/v1.0/devices/" + deviceType + "/" + deviceId + "/effective-policy";
|
||||
var getDeviceComplianceURL = "/api/device-mgt/v1.0/devices/" + deviceType + "/" + deviceId + "/compliance-data";
|
||||
|
||||
invokerUtil.get(
|
||||
getEffectivePolicyURL,
|
||||
// success-callback
|
||||
function (data, textStatus, jqXHR) {
|
||||
if (jqXHR.status == 200 && data) {
|
||||
data = JSON.parse(data);
|
||||
$("#policy-spinner").addClass("hidden");
|
||||
if (data["active"] == true) {
|
||||
activePolicy = data;
|
||||
invokerUtil.get(
|
||||
getDeviceComplianceURL,
|
||||
// success-callback
|
||||
function (data, textStatus, jqXHR) {
|
||||
if (jqXHR.status == 200 && data) {
|
||||
var viewModel = {};
|
||||
viewModel["policy"] = activePolicy;
|
||||
viewModel["deviceType"] = deviceType;
|
||||
data = JSON.parse(data);
|
||||
var content;
|
||||
if (data["complianceData"]) {
|
||||
if (data["complianceData"]["complianceFeatures"] &&
|
||||
data["complianceData"]["complianceFeatures"].length > 0) {
|
||||
viewModel["compliance"] = "NON-COMPLIANT";
|
||||
viewModel["complianceFeatures"] = data["complianceData"]["complianceFeatures"];
|
||||
content = template(viewModel);
|
||||
$("#policy-list-container").html(content);
|
||||
} else {
|
||||
viewModel["compliance"] = "COMPLIANT";
|
||||
content = template(viewModel);
|
||||
$("#policy-list-container").html(content);
|
||||
$("#policy-compliance-table").addClass("hidden");
|
||||
}
|
||||
} else {
|
||||
$("#policy-list-container").
|
||||
html("<div class='panel-body'><br><p class='fw-warning'> This device " +
|
||||
"has no policy applied.<p></div>");
|
||||
}
|
||||
}
|
||||
},
|
||||
// error-callback
|
||||
function () {
|
||||
$("#policy-list-container").
|
||||
html("<div class='panel-body'><br><p class='fw-warning'> Loading policy compliance related data " +
|
||||
"was not successful. please try refreshing data in a while.<p></div>");
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
},
|
||||
// error-callback
|
||||
function () {
|
||||
$("#policy-list-container").
|
||||
html("<div class='panel-body'><br><p class='fw-warning'> Loading policy compliance related data " +
|
||||
"was not successful. please try refreshing data in a while.<p></div>");
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
}());
|
||||
|
||||
5
pom.xml
5
pom.xml
@ -1248,8 +1248,8 @@
|
||||
<swagger.version>1.5.8</swagger.version>
|
||||
|
||||
<!-- Carbon Analytics -->
|
||||
<carbon.analytics.common.version>5.0.11</carbon.analytics.common.version>
|
||||
<carbon.analytics.common.version.range>[5.0.11,6.0.0)</carbon.analytics.common.version.range>
|
||||
<carbon.analytics.common.version>5.1.3</carbon.analytics.common.version>
|
||||
<carbon.analytics.common.version.range>[5.1.3,6.0.0)</carbon.analytics.common.version.range>
|
||||
<carbon.analytics.version>1.0.6-ALPHA</carbon.analytics.version>
|
||||
<carbon.analytics.version.range>[1.0.5,2.0.0]</carbon.analytics.version.range>
|
||||
|
||||
@ -1315,6 +1315,7 @@
|
||||
<servlet-api.version>2.5</servlet-api.version>
|
||||
|
||||
<hibernate-validator.version>5.0.2.Final</hibernate-validator.version>
|
||||
<javax.xml.parsers.import.pkg.version>[0.0.0,1.0.0)</javax.xml.parsers.import.pkg.version>
|
||||
</properties>
|
||||
|
||||
<scm>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user