mirror of
https://repository.entgra.net/community/device-mgt-plugins.git
synced 2025-09-16 23:42:15 +00:00
Merge branch 'release-3.0.x' of https://github.com/wso2/carbon-device-mgt-plugins into release-3.0.x
This commit is contained in:
commit
989dc12752
@ -56,13 +56,6 @@
|
|||||||
"ishidden": false,
|
"ishidden": false,
|
||||||
"subordinates": [],
|
"subordinates": [],
|
||||||
"title": "Communication"
|
"title": "Communication"
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "test",
|
|
||||||
"isanon": false,
|
|
||||||
"ishidden": false,
|
|
||||||
"title": "Test",
|
|
||||||
"subordinates": []
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"pages": [
|
"pages": [
|
||||||
@ -1299,151 +1292,6 @@
|
|||||||
"fluidLayout": false
|
"fluidLayout": false
|
||||||
},
|
},
|
||||||
"title": "Communication"
|
"title": "Communication"
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "test",
|
|
||||||
"title": "Test",
|
|
||||||
"layout": {
|
|
||||||
"content": {
|
|
||||||
"loggedIn": {
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"id": "49cada6f023f237c953761b597752212",
|
|
||||||
"x": 0,
|
|
||||||
"y": 1,
|
|
||||||
"width": 5,
|
|
||||||
"height": 1,
|
|
||||||
"banner": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "a26d2f62dbb0011edf13371a2eb3cdd1",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": 3,
|
|
||||||
"height": 1,
|
|
||||||
"banner": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"fluidLayout": false
|
|
||||||
},
|
|
||||||
"isanon": false,
|
|
||||||
"content": {
|
|
||||||
"default": {
|
|
||||||
"49cada6f023f237c953761b597752212": [
|
|
||||||
{
|
|
||||||
"id": "date-picker-widget-0",
|
|
||||||
"content": {
|
|
||||||
"id": "date-picker-widget",
|
|
||||||
"title": "Date Picker Widget",
|
|
||||||
"type": "widget",
|
|
||||||
"category": "Widgets",
|
|
||||||
"thumbnail": "fs://gadget/date-picker-widget/index.png",
|
|
||||||
"data": {
|
|
||||||
"url": "fs://gadget/date-picker-widget/index.xml"
|
|
||||||
},
|
|
||||||
"options": {},
|
|
||||||
"styles": {
|
|
||||||
"no_heading": true,
|
|
||||||
"hide_gadget": false,
|
|
||||||
"titlePosition": "left",
|
|
||||||
"title": "Date Picker Widget"
|
|
||||||
},
|
|
||||||
"notify": {
|
|
||||||
"date-selected": {
|
|
||||||
"type": "message",
|
|
||||||
"description": "This notifies selected date"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"locale_titles": {
|
|
||||||
"en-US": "Date Picker Widget"
|
|
||||||
},
|
|
||||||
"settings": {
|
|
||||||
"priority": "5",
|
|
||||||
"timeoutInterval": "60000"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"33faa57accead8af549c70f111face99": [
|
|
||||||
{
|
|
||||||
"id": "EsbAnalytics-Gadget-Search_Box-0",
|
|
||||||
"content": {
|
|
||||||
"id": "EsbAnalytics-Gadget-Search_Box",
|
|
||||||
"title": "Search Box",
|
|
||||||
"type": "widget",
|
|
||||||
"category": "Widgets",
|
|
||||||
"thumbnail": "fs://gadget/usa-business-revenue/index.png",
|
|
||||||
"data": {
|
|
||||||
"url": "fs://gadget/EsbAnalytics-Gadget-Search_Box/index.xml"
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"no_heading": true,
|
|
||||||
"hide_gadget": false,
|
|
||||||
"titlePosition": "left",
|
|
||||||
"title": "Search Box"
|
|
||||||
},
|
|
||||||
"toolbarButtons": {
|
|
||||||
"default": {
|
|
||||||
"maximize": false,
|
|
||||||
"configurations": false
|
|
||||||
},
|
|
||||||
"custom": [],
|
|
||||||
"isDropdownView": false
|
|
||||||
},
|
|
||||||
"options": {},
|
|
||||||
"locale_titles": {
|
|
||||||
"en-US": "Search Box"
|
|
||||||
},
|
|
||||||
"settings": {
|
|
||||||
"priority": "5",
|
|
||||||
"timeoutInterval": "60000"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"be290fcc084ff118decc23588febc2ed": [],
|
|
||||||
"a26d2f62dbb0011edf13371a2eb3cdd1": [
|
|
||||||
{
|
|
||||||
"id": "Android_Device_SearchBox-0",
|
|
||||||
"content": {
|
|
||||||
"id": "Android_Device_SearchBox",
|
|
||||||
"title": "Search Box",
|
|
||||||
"type": "gadget",
|
|
||||||
"category": "Gadgets",
|
|
||||||
"thumbnail": "fs://gadget/usa-business-revenue/index.png",
|
|
||||||
"data": {
|
|
||||||
"url": "fs://gadget/Android_Device_SearchBox/index.xml"
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"no_heading": true,
|
|
||||||
"hide_gadget": false,
|
|
||||||
"titlePosition": "left",
|
|
||||||
"title": "Search Box"
|
|
||||||
},
|
|
||||||
"toolbarButtons": {
|
|
||||||
"default": {
|
|
||||||
"maximize": false,
|
|
||||||
"configurations": false
|
|
||||||
},
|
|
||||||
"custom": [],
|
|
||||||
"isDropdownView": false
|
|
||||||
},
|
|
||||||
"options": {},
|
|
||||||
"locale_titles": {
|
|
||||||
"en-US": "Search Box"
|
|
||||||
},
|
|
||||||
"settings": {
|
|
||||||
"priority": "5",
|
|
||||||
"timeoutInterval": "60000"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"anon": {}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"permissions": {
|
"permissions": {
|
||||||
|
|||||||
@ -69,6 +69,8 @@ import javax.ws.rs.core.Response;
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@Api(value = "Android Sense Device Management",
|
||||||
|
description = "This carries all the resources related to the Android sense device management functionalities.")
|
||||||
public interface AndroidSenseService {
|
public interface AndroidSenseService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -44,7 +44,7 @@
|
|||||||
<li><a class="list-group-item" href="#event_log" role="tab" data-toggle="tab"
|
<li><a class="list-group-item" href="#event_log" role="tab" data-toggle="tab"
|
||||||
aria-controls="event_log">Operations Log</a></li>
|
aria-controls="event_log">Operations Log</a></li>
|
||||||
<li><a class="list-group-item" href="#geo_dashboard" role="tab" data-toggle="tab"
|
<li><a class="list-group-item" href="#geo_dashboard" role="tab" data-toggle="tab"
|
||||||
aria-controls="geo_dashboard">Map</a></li>
|
aria-controls="geo_dashboard">Geo Fencing</a></li>
|
||||||
{{/zone}}
|
{{/zone}}
|
||||||
|
|
||||||
{{#zone "device-view-tab-contents"}}
|
{{#zone "device-view-tab-contents"}}
|
||||||
@ -77,18 +77,18 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="panel panel-default tab-pane"
|
<div class="panel panel-default tab-pane"
|
||||||
id="geo_dashboard" role="tabpanel" aria-labelledby="geo_dashboard">
|
id="geo_dashboard" role="tabpanel" aria-labelledby="geo_dashboard">
|
||||||
<div class="panel-heading">Map</div>
|
<div class="panel-heading">Geo Fencing</div>
|
||||||
|
|
||||||
<div id="chartWrapper">
|
<div id="chartWrapper">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a class="padding-left"
|
<a class="padding-left" target="_blank"
|
||||||
href="{{portalUrl}}/portal/dashboards/geo-dashboard/?GLOBAL-STATE={{anchor}}">
|
href="{{portalUrl}}/portal/dashboards/geo-dashboard/?GLOBAL-STATE={{anchor}}">
|
||||||
|
|
||||||
<span class="fw-stack">
|
<span class="fw-stack">
|
||||||
<i class="fw fw-circle-outline fw-stack-2x"></i>
|
<i class="fw fw-circle-outline fw-stack-2x"></i>
|
||||||
<i class="fw fw-statistics fw-stack-1x"></i>
|
<i class="fw fw-statistics fw-stack-1x"></i>
|
||||||
</span> View Device Location
|
</span> Add Geo Fencing
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
{{/zone}}
|
{{/zone}}
|
||||||
|
|||||||
@ -35,11 +35,11 @@ function onRequest(context) {
|
|||||||
"autoCompleteParams": autoCompleteParams,
|
"autoCompleteParams": autoCompleteParams,
|
||||||
"encodedFeaturePayloads": "",
|
"encodedFeaturePayloads": "",
|
||||||
"portalUrl" : devicemgtProps['portalURL'],
|
"portalUrl" : devicemgtProps['portalURL'],
|
||||||
"anchor" : JSON.stringify(anchor)
|
"anchor" : encodeURI(JSON.stringify(anchor))
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
response.sendError(404, "Device Id " + deviceId + " of type " + deviceType + " cannot be found!");
|
response.sendError(404, "Device Id " + deviceId + " of type " + deviceType + " cannot be found!");
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -339,7 +339,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<br/>
|
<br/>
|
||||||
<a class="padding-left" target="_blank"
|
<a class="padding-left" target="_blank"
|
||||||
href="{{portalUrl}}/portal/dashboards/geo-dashboard/?GLOBAL-STATE={{deviceId}},{{deviceType}}">
|
href="{{portalUrl}}/portal/dashboards/geo-dashboard/?GLOBAL-STATE={{anchor}}">
|
||||||
<span class="fw-stack">
|
<span class="fw-stack">
|
||||||
<i class="fw fw-circle-outline fw-stack-2x"></i>
|
<i class="fw fw-circle-outline fw-stack-2x"></i>
|
||||||
<i class="fw fw-map-location fw-stack-1x"></i>
|
<i class="fw fw-map-location fw-stack-1x"></i>
|
||||||
|
|||||||
@ -213,7 +213,6 @@ function onRequest(context) {
|
|||||||
deviceViewData["autoCompleteParams"] = autoCompleteParams;
|
deviceViewData["autoCompleteParams"] = autoCompleteParams;
|
||||||
|
|
||||||
deviceViewData["portalUrl"] = devicemgtProps['portalURL'];
|
deviceViewData["portalUrl"] = devicemgtProps['portalURL'];
|
||||||
deviceViewData["deviceId"] = deviceId;
|
deviceViewData["anchor"] = encodeURI(JSON.stringify({ "device" : { "id" : deviceId, "type" : deviceType}}));
|
||||||
deviceViewData["deviceType"] = deviceType;
|
|
||||||
return deviceViewData;
|
return deviceViewData;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -131,7 +131,10 @@ function loadNewNotifications() {
|
|||||||
viewModel["appContext"] = context;
|
viewModel["appContext"] = context;
|
||||||
$(messageSideBar).html(template(viewModel));
|
$(messageSideBar).html(template(viewModel));
|
||||||
} else {
|
} else {
|
||||||
$(messageSideBar).html('<div class="alert alert-info" role="alert"><i class="icon fw fw-info"></i>No new notifications found...</div>');
|
$(messageSideBar).html("<h4 class='text-center'>No New Notifications</h4>" +
|
||||||
|
"<h5 class='text-center text-muted'>" +
|
||||||
|
"Check this section for error notifications<br>related to device operations" +
|
||||||
|
"</h5>");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$(messageSideBar).html("<h4 class ='message-danger'>Unexpected error " +
|
$(messageSideBar).html("<h4 class ='message-danger'>Unexpected error " +
|
||||||
|
|||||||
@ -68,13 +68,11 @@ public class DiscoveryServiceImpl implements DiscoveryService {
|
|||||||
String emailId = discoveryRequest.getEmailId();
|
String emailId = discoveryRequest.getEmailId();
|
||||||
String[] userDomains = emailId.split(DELIMITER);
|
String[] userDomains = emailId.split(DELIMITER);
|
||||||
String domain = userDomains[DOMAIN_SEGMENT];
|
String domain = userDomains[DOMAIN_SEGMENT];
|
||||||
String applicationVersion = discoveryRequest.getApplicationVersion();
|
|
||||||
String[] osVersions = applicationVersion .split("\\.");
|
|
||||||
String os = osVersions[0];
|
|
||||||
DiscoveryResponse discoveryResponse;
|
DiscoveryResponse discoveryResponse;
|
||||||
if (PluginConstants.WindowsVersionProperties.OS_VERSION.equals(os) && FEDERATED.equals(getAuthPolicy())) {
|
|
||||||
discoveryResponse = new DiscoveryResponse();
|
|
||||||
|
|
||||||
|
if (!PluginConstants.WindowsVersionProperties.REQUESTED_WIN81_VERSION.equals(discoveryRequest.getVersion())
|
||||||
|
&& FEDERATED.equals(getAuthPolicy())) {
|
||||||
|
discoveryResponse = new DiscoveryResponse();
|
||||||
discoveryResponse.setAuthPolicy(FEDERATED);
|
discoveryResponse.setAuthPolicy(FEDERATED);
|
||||||
discoveryResponse.setEnrollmentVersion(PluginConstants.WindowsVersionProperties.REQUESTED_WIN10_VERSION);
|
discoveryResponse.setEnrollmentVersion(PluginConstants.WindowsVersionProperties.REQUESTED_WIN10_VERSION);
|
||||||
discoveryResponse.setEnrollmentPolicyServiceUrl(PluginConstants.Discovery.DEVICE_ENROLLMENT_SUBDOMAIN +
|
discoveryResponse.setEnrollmentPolicyServiceUrl(PluginConstants.Discovery.DEVICE_ENROLLMENT_SUBDOMAIN +
|
||||||
|
|||||||
@ -20,18 +20,16 @@ package org.wso2.carbon.device.mgt.mobile.windows.api.services.enrollment.beans;
|
|||||||
|
|
||||||
import org.wso2.carbon.device.mgt.mobile.windows.api.common.PluginConstants;
|
import org.wso2.carbon.device.mgt.mobile.windows.api.common.PluginConstants;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
import javax.xml.bind.annotation.*;
|
||||||
import javax.xml.bind.annotation.XmlAccessorType;
|
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
|
||||||
import javax.xml.bind.annotation.XmlType;
|
|
||||||
|
|
||||||
@XmlAccessorType(XmlAccessType.PROPERTY)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
@XmlType(name = "ContextItem", namespace = PluginConstants.SOAP_AUTHORIZATION_TARGET_NAMESPACE)
|
@XmlType(name = "ContextItem", namespace = PluginConstants.SOAP_AUTHORIZATION_TARGET_NAMESPACE,
|
||||||
|
propOrder = {"Name", "Value"})
|
||||||
public class ContextItem {
|
public class ContextItem {
|
||||||
|
|
||||||
@XmlElement(required = true, namespace = PluginConstants.SOAP_AUTHORIZATION_TARGET_NAMESPACE)
|
@XmlAttribute(name = "Name", required = true, namespace = PluginConstants.SOAP_AUTHORIZATION_TARGET_NAMESPACE)
|
||||||
protected String Name;
|
protected String Name;
|
||||||
@XmlElement(required = true, namespace = PluginConstants.SOAP_AUTHORIZATION_TARGET_NAMESPACE)
|
@XmlElement(name = "Value", required = true, namespace = PluginConstants.SOAP_AUTHORIZATION_TARGET_NAMESPACE)
|
||||||
protected String Value;
|
protected String Value;
|
||||||
|
|
||||||
public String getValue() {
|
public String getValue() {
|
||||||
|
|||||||
@ -295,114 +295,5 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- /encrypt-storage -->
|
<!-- /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 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"/>
|
|
||||||
<span class="helper"></span>
|
|
||||||
<span class="text"></span>
|
|
||||||
</label>
|
|
||||||
</h2>
|
|
||||||
<div class="panel-title-description">
|
|
||||||
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">
|
|
||||||
<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>
|
|
||||||
<option value="" selected="selected">
|
|
||||||
None
|
|
||||||
</option>
|
|
||||||
<option value="black-list">Black List</option>
|
|
||||||
<option value="white-list">White List</option>
|
|
||||||
</select>
|
|
||||||
<br>
|
|
||||||
<div class="wr-input-control">
|
|
||||||
<label class="wr-input-label" for="restricted-applications">
|
|
||||||
Restricted Application List
|
|
||||||
<span class="helper" title="Add an application to restrict.">
|
|
||||||
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
|
|
||||||
</span>
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
<a href="#restricted-applications-grid" class="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-circle-outline fw-stack-2x"></i>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
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">
|
|
||||||
<table class="table table-responsive table-striped">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>No:</th>
|
|
||||||
<th>Application Name/Description</th>
|
|
||||||
<th>Package Name</th>
|
|
||||||
<th></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody data-add-form-container="#restricted-applications-grid">
|
|
||||||
<tr data-help-text="add-form">
|
|
||||||
<td colspan="4">
|
|
||||||
No entries added yet .
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<table class="template hidden">
|
|
||||||
<tbody data-add-form="#restricted-applications-grid">
|
|
||||||
<tr data-add-form-element="clone">
|
|
||||||
<td data-title="No:">
|
|
||||||
<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 ]" 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 of Application ]" disabled/>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<span class="list-group-item-actions hidden">
|
|
||||||
<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-circle-outline fw-stack-2x"></i>
|
|
||||||
<i class="fw fw-delete fw-stack-1x"></i>
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!--/app-restriction-->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -131,7 +131,10 @@ function loadNewNotifications() {
|
|||||||
viewModel["appContext"] = context;
|
viewModel["appContext"] = context;
|
||||||
$(messageSideBar).html(template(viewModel));
|
$(messageSideBar).html(template(viewModel));
|
||||||
} else {
|
} else {
|
||||||
$(messageSideBar).html('<div class="alert alert-info" role="alert"><i class="icon fw fw-info"></i>No new notifications found...</div>');
|
$(messageSideBar).html("<h4 class='text-center'>No New Notifications</h4>" +
|
||||||
|
"<h5 class='text-center text-muted'>" +
|
||||||
|
"Check this section for error notifications<br>related to device operations" +
|
||||||
|
"</h5>");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$(messageSideBar).html("<h4 class ='message-danger'>Unexpected error " +
|
$(messageSideBar).html("<h4 class ='message-danger'>Unexpected error " +
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user