mirror of
https://repository.entgra.net/community/device-mgt-plugins.git
synced 2025-09-16 23:42:15 +00:00
Merge branch 'master' of https://github.com/wso2/carbon-device-mgt-plugins
This commit is contained in:
commit
f6032004fb
@ -73,7 +73,8 @@ public class ApplicationOperationsImpl implements ApplicationOperations {
|
||||
getDevicesOfUser(userName);
|
||||
|
||||
for (org.wso2.carbon.device.mgt.common.Device device : deviceList) {
|
||||
if(applicationOperationAction.getApp().getPlatform().equalsIgnoreCase(device.getType())){
|
||||
if(MDMAppConstants.WEBAPP.equals(applicationOperationAction.getApp().getPlatform()) ||
|
||||
applicationOperationAction.getApp().getPlatform().equalsIgnoreCase(device.getType())){
|
||||
deviceIdentifiers.add(getDeviceIdentifierByDevice(device));
|
||||
}
|
||||
}
|
||||
@ -176,8 +177,11 @@ public class ApplicationOperationsImpl implements ApplicationOperations {
|
||||
operation =
|
||||
IOSApplicationOperationUtil.createInstallAppOperation(mobileApp);
|
||||
} else {
|
||||
operation =
|
||||
IOSApplicationOperationUtil.createAppUninstallOperation(mobileApp);
|
||||
if (MDMAppConstants.WEBAPP.equals(app.getPlatform())) {
|
||||
operation = IOSApplicationOperationUtil.createWebClipUninstallOperation(mobileApp);
|
||||
} else {
|
||||
operation = IOSApplicationOperationUtil.createAppUninstallOperation(mobileApp);
|
||||
}
|
||||
}
|
||||
}
|
||||
activity = MDMServiceAPIUtils.getAppManagementService(applicationOperationAction.getTenantId())
|
||||
|
||||
@ -23,6 +23,15 @@ import java.io.Serializable;
|
||||
public class RemoveApplication implements Serializable {
|
||||
|
||||
private String bundleId;
|
||||
private String url;
|
||||
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public void setUrl(String url) {
|
||||
this.url = url;
|
||||
}
|
||||
|
||||
public String getBundleId() {
|
||||
return bundleId;
|
||||
|
||||
@ -111,4 +111,22 @@ public class IOSApplicationOperationUtil {
|
||||
return operation;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create uninstall operations for webclip.
|
||||
*
|
||||
* @param application
|
||||
* @return Uninstall operation
|
||||
* @throws DeviceApplicationException
|
||||
*/
|
||||
public static Operation createWebClipUninstallOperation(MobileApp application) throws
|
||||
DeviceApplicationException {
|
||||
ProfileOperation operation = new ProfileOperation();
|
||||
operation.setCode(MDMAppConstants.IOSConstants.OPCODE_REMOVE_APPLICATION);
|
||||
operation.setType(Operation.Type.PROFILE);
|
||||
RemoveApplication removeApplication = new RemoveApplication();
|
||||
removeApplication.setUrl(application.getIdentifier());
|
||||
operation.setPayLoad(removeApplication.toJSON());
|
||||
return operation;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -32,8 +32,10 @@
|
||||
"identityProviderUrl" : "https://localhost:9443/samlsso",
|
||||
"acs": "https://localhost:9443/emm/uuf/sso/acs",
|
||||
"identityAlias": "wso2carbon",
|
||||
"responseSigningEnabled" : "true",
|
||||
"useTenantKey": false
|
||||
"responseSigningEnabled" : true,
|
||||
"validateAssertionValidityPeriod": true,
|
||||
"validateAudienceRestriction": true,
|
||||
"assertionSigningEnabled": true
|
||||
}
|
||||
},
|
||||
"generalConfig" : {
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
"httpsWebURL" : "%https.ip%",
|
||||
"wssURL" : "%https.ip%",
|
||||
"wsURL" : "%http.ip%",
|
||||
"dashboardServerURL" : "%https.ip%",
|
||||
"enrollmentDir": "/emm-web-agent/enrollment",
|
||||
"iOSConfigRoot" : "%https.ip%/ios-enrollment/",
|
||||
"iOSAPIRoot" : "%https.ip%/ios/",
|
||||
@ -121,5 +120,6 @@
|
||||
"isOAuthEnabled" : true,
|
||||
"backendRestEndpoints" : {
|
||||
"deviceMgt" : "/api/device-mgt/v1.0"
|
||||
}
|
||||
},
|
||||
"deviceStatisticsEnabled" : false
|
||||
}
|
||||
@ -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
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -102,11 +102,6 @@ function getDevicesByTypes(deviceList) {
|
||||
return deviceTypes;
|
||||
}
|
||||
|
||||
//function unloadOperationBar() {
|
||||
// $("#showOperationsBtn").addClass("hidden");
|
||||
// $(".wr-operations").html("");
|
||||
//}
|
||||
|
||||
function loadOperationBar(deviceType, ownership, mode) {
|
||||
var operationBar = $("#operations-bar");
|
||||
var operationBarSrc = operationBar.attr("src");
|
||||
@ -166,7 +161,7 @@ function loadOperationBar(deviceType, ownership, mode) {
|
||||
/* adding ownership in addition to device-type
|
||||
as it's vital in cases where UI for the same feature should change
|
||||
according to ownership
|
||||
*/
|
||||
*/
|
||||
if (ownership) {
|
||||
current.ownership = ownership;
|
||||
}
|
||||
@ -190,22 +185,21 @@ function loadOperationBar(deviceType, ownership, mode) {
|
||||
}
|
||||
|
||||
function runOperation(operationName) {
|
||||
if (operationName == "NOTIFICATION") {
|
||||
var messageTitle = $("#messageTitle").val();
|
||||
var messageText = $("#messageText").val();
|
||||
if (!messageTitle || !messageText) {
|
||||
var errorMsg = "#notification-error-msg span";
|
||||
var errorMsgWrapper = "#notification-error-msg";
|
||||
$(errorMsg).text("Either the message title / message text or both are empty.");
|
||||
$(errorMsgWrapper).removeClass("hidden");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var deviceIdList = getSelectedDeviceIds();
|
||||
var list = getDevicesByTypes(deviceIdList);
|
||||
|
||||
var successCallback = function (data) {
|
||||
if (operationName == "NOTIFICATION") {
|
||||
$(modalPopupContent).html($("#messageSuccess").html());
|
||||
} else {
|
||||
$(modalPopupContent).html($("#operationSuccess").html());
|
||||
}
|
||||
showPopup();
|
||||
};
|
||||
var errorCallback = function (data) {
|
||||
$(modalPopupContent).html($("#errorOperationUnexpected").html());
|
||||
showPopup();
|
||||
};
|
||||
|
||||
var payload, serviceEndPoint;
|
||||
if (list[platformTypeConstants.IOS]) {
|
||||
payload =
|
||||
@ -217,27 +211,22 @@ function runOperation(operationName) {
|
||||
serviceEndPoint = operationModule.getAndroidServiceEndpoint(operationName);
|
||||
} else if (list[platformTypeConstants.WINDOWS]) {
|
||||
payload = operationModule.generatePayload(platformTypeConstants.WINDOWS, operationName,
|
||||
list[platformTypeConstants.WINDOWS]);
|
||||
list[platformTypeConstants.WINDOWS]);
|
||||
serviceEndPoint = operationModule.getWindowsServiceEndpoint(operationName);
|
||||
}
|
||||
if (operationName == "NOTIFICATION") {
|
||||
var errorMsgWrapper = "#notification-error-msg";
|
||||
var errorMsg = "#notification-error-msg span";
|
||||
var messageTitle = $("#messageTitle").val();
|
||||
var messageText = $("#messageText").val();
|
||||
if (!(messageTitle && messageText)) {
|
||||
$(errorMsg).text("Enter a message. It cannot be empty.");
|
||||
$(errorMsgWrapper).removeClass("hidden");
|
||||
|
||||
var successCallback = function () {
|
||||
if (operationName == "NOTIFICATION") {
|
||||
$(modalPopupContent).html($("#messageSuccess").html());
|
||||
} else {
|
||||
invokerUtil.post(serviceEndPoint, payload, successCallback, errorCallback);
|
||||
$(modalPopupContent).removeData();
|
||||
hidePopup();
|
||||
$(modalPopupContent).html($("#operationSuccess").html());
|
||||
}
|
||||
} else {
|
||||
invokerUtil.post(serviceEndPoint, payload, successCallback, errorCallback);
|
||||
$(modalPopupContent).removeData();
|
||||
hidePopup();
|
||||
}
|
||||
};
|
||||
var errorCallback = function () {
|
||||
$(modalPopupContent).html($("#errorOperationUnexpected").html());
|
||||
};
|
||||
|
||||
invokerUtil.post(serviceEndPoint, payload, successCallback, errorCallback);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -25,10 +25,16 @@
|
||||
<li>
|
||||
<a href="{{@app.context}}">
|
||||
<i class="fw fw-dashboard"></i>
|
||||
Resource Dashboard
|
||||
System Resources
|
||||
</a>
|
||||
</li>
|
||||
|
||||
{{#if dashboardAvailable}}
|
||||
{{#if permissions.VIEW_DASHBOARD}}
|
||||
<li><a href="{{serverURL}}/portal/t/{{currentUser.domain}}/dashboards/device-statistics-dashboard/">
|
||||
<i class="fw fw-bar-chart"></i>Device Statistics</a>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{#if permissions.LIST_DEVICES}}
|
||||
<li>
|
||||
<!--suppress HtmlUnknownTarget -->
|
||||
@ -74,11 +80,6 @@
|
||||
</ul>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if permissions.VIEW_DASHBOARD}}
|
||||
<li><a href="{{serverURL}}/portal/dashboards/emm-analytics-dashboard/">
|
||||
<i class="fw fw-pie-chart"></i>Device Management Dashboard</a>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{/zone}}
|
||||
|
||||
{{#zone "navbarCollapsableRightItems"}}
|
||||
@ -105,12 +106,13 @@
|
||||
<ul class="sidebar-messages"></ul>
|
||||
<br>
|
||||
<div class="text-center">
|
||||
<!--suppress HtmlUnknownTarget -->
|
||||
<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>
|
||||
</span>
|
||||
View All Notifications
|
||||
View All Notifications
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -17,6 +17,10 @@
|
||||
*/
|
||||
|
||||
function onRequest(context) {
|
||||
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||
var mdmProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||
var constants = require("/app/modules/constants.js");
|
||||
|
||||
context.handlebars.registerHelper('equal', function (lvalue, rvalue, options) {
|
||||
if (arguments.length < 3) {
|
||||
throw new Error("Handlebars Helper equal needs 2 parameters");
|
||||
@ -27,9 +31,7 @@ function onRequest(context) {
|
||||
return options.fn(this);
|
||||
}
|
||||
});
|
||||
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
|
||||
var mdmProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||
var constants = require("/app/modules/constants.js");
|
||||
|
||||
var links = {
|
||||
"user-mgt": [],
|
||||
"role-mgt": [],
|
||||
@ -40,7 +42,7 @@ function onRequest(context) {
|
||||
|
||||
// following viewModel.link value comes here based on the value passed at the point
|
||||
// where units are attached to a page zone.
|
||||
// eg: {{unit "appbar" pageLink="users" title="User Management"}}
|
||||
// eg: {{unit "app-bar" pageLink="users" title="User Management"}}
|
||||
viewModel["currentActions"] = links[viewModel["pageLink"]];
|
||||
viewModel["enrollmentURL"] = mdmProps["generalConfig"]["host"] + mdmProps["enrollmentDir"];
|
||||
viewModel["currentUser"] = session.get(constants["USER_SESSION_KEY"]);
|
||||
@ -57,6 +59,8 @@ function onRequest(context) {
|
||||
permissions["LIST_NOTIFICATIONS"] = userModule.isAuthorized("/permission/admin/device-mgt/notifications/view");
|
||||
permissions["VIEW_DASHBOARD"] = userModule.isAuthorized("/permission/admin/device-mgt/dashboard/view");
|
||||
|
||||
viewModel["dashboardAvailable"] = mdmProps["deviceStatisticsEnabled"];
|
||||
|
||||
viewModel["permissions"] = permissions;
|
||||
viewModel["appContext"] = mdmProps["appContext"];
|
||||
viewModel["serverURL"] = mdmProps["httpsWebURL"];
|
||||
|
||||
Loading…
Reference in New Issue
Block a user