android-plugin
org.wso2.carbon.devicemgt-plugins
-
4.2.5-SNAPSHOT
+
4.2.7-SNAPSHOT
../pom.xml
@@ -46,7 +46,6 @@
org.apache.felix
maven-bundle-plugin
- 1.4.0
true
diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/AndroidDeviceManagementService.java b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/AndroidDeviceManagementService.java
index f81dfb833..5e7f0ac28 100644
--- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/AndroidDeviceManagementService.java
+++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/AndroidDeviceManagementService.java
@@ -14,6 +14,22 @@
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
+ *
+ * Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
package org.wso2.carbon.device.mgt.mobile.android.impl;
@@ -25,6 +41,7 @@ import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig;
import org.wso2.carbon.device.mgt.common.ProvisioningConfig;
import org.wso2.carbon.device.mgt.common.InitialOperationConfig;
import org.wso2.carbon.device.mgt.common.DeviceStatusTaskPluginConfig;
+import org.wso2.carbon.device.mgt.common.StartupOperationConfig;
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
@@ -34,6 +51,7 @@ import org.wso2.carbon.device.mgt.common.policy.mgt.PolicyMonitoringManager;
import org.wso2.carbon.device.mgt.common.pull.notification.PullNotificationSubscriber;
import org.wso2.carbon.device.mgt.common.push.notification.PushNotificationConfig;
import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService;
+import org.wso2.carbon.device.mgt.common.type.mgt.DeviceTypePlatformDetails;
import org.wso2.carbon.device.mgt.mobile.android.impl.util.AndroidPluginConstants;
import org.wso2.carbon.device.mgt.mobile.android.internal.AndroidDeviceManagementDataHolder;
@@ -123,6 +141,11 @@ public class AndroidDeviceManagementService implements DeviceManagementService {
return null;
}
+ @Override
+ public StartupOperationConfig getStartupOperationConfig() {
+ return null;
+ }
+
@Override
public PullNotificationSubscriber getPullNotificationSubscriber() {
return null;
@@ -138,6 +161,9 @@ public class AndroidDeviceManagementService implements DeviceManagementService {
return null;
}
+ @Override
+ public DeviceTypePlatformDetails getDeviceTypePlatformDetails() { return null; }
+
private String getConfigProperty(List configs, String propertyName) {
for (ConfigurationEntry entry : configs) {
if (propertyName.equals(entry.getName())) {
diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/AndroidFeatureManager.java b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/AndroidFeatureManager.java
index 957ce5a79..2494d1cd3 100644
--- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/AndroidFeatureManager.java
+++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/AndroidFeatureManager.java
@@ -16,8 +16,28 @@
* under the License.
*
*/
+
+/*
+ * Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.wso2.carbon.device.mgt.mobile.android.impl;
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.device.mgt.common.Feature;
@@ -32,6 +52,7 @@ import org.wso2.carbon.device.mgt.mobile.android.impl.util.MobileDeviceManagemen
import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
public class AndroidFeatureManager implements FeatureManager {
@@ -97,14 +118,43 @@ public class AndroidFeatureManager implements FeatureManager {
public List getFeatures() throws DeviceManagementException {
try {
List mobileFeatures = featureDAO.getAllFeatures();
- List featureList = new ArrayList(mobileFeatures.size());
- for (MobileFeature mobileFeature : mobileFeatures) {
- featureList.add(MobileDeviceManagementUtil.convertToFeature(mobileFeature));
+ return mobileFeatures.stream().map(MobileDeviceManagementUtil::convertToFeature).collect(
+ Collectors.toList());
+ } catch (MobileDeviceManagementDAOException e) {
+ throw new DeviceManagementException("Error occurred while retrieving the list of features registered for " +
+ "Android platform", e);
+ }
+ }
+
+ @Override
+ public List getFeatures(String featureType) throws DeviceManagementException {
+ if (StringUtils.isEmpty(featureType)) {
+ return this.getFeatures();
+ }
+ try {
+ List mobileFeatures = featureDAO.getFeaturesByFeatureType(featureType);
+ return mobileFeatures.stream().map(MobileDeviceManagementUtil::convertToFeature).collect(
+ Collectors.toList());
+ } catch (MobileDeviceManagementDAOException e) {
+ throw new DeviceManagementException("Error occurred while retrieving the list of features registered for " +
+ "Android platform", e);
+ }
+ }
+
+ @Override
+ public List getFeatures(String featureType, boolean isHidden) throws DeviceManagementException {
+ try {
+ List mobileFeatures;
+ if (StringUtils.isNotEmpty(featureType)) {
+ mobileFeatures = featureDAO.getFeaturesByFeatureType(featureType, isHidden);
+ } else {
+ mobileFeatures = featureDAO.getAllFeatures(isHidden);
}
- return featureList;
+ return mobileFeatures.stream().map(MobileDeviceManagementUtil::convertToFeature).collect(
+ Collectors.toList());
} catch (MobileDeviceManagementDAOException e) {
throw new DeviceManagementException("Error occurred while retrieving the list of features registered for " +
- "Android platform", e);
+ "Android platform", e);
}
}
@@ -469,6 +519,54 @@ public class AndroidFeatureManager implements FeatureManager {
feature.setDescription("Unlock the device");
supportedFeatures.add(feature);
+ feature = new Feature();
+ feature.setCode("DISALLOW_SET_WALLPAPER");
+ feature.setName("Device Unlock");
+ feature.setDescription("Unlock the device");
+ supportedFeatures.add(feature);
+
+ feature = new Feature();
+ feature.setCode("DISALLOW_SET_USER_ICON");
+ feature.setName("Device Unlock");
+ feature.setDescription("Unlock the device");
+ supportedFeatures.add(feature);
+
+ feature = new Feature();
+ feature.setCode("DISALLOW_REMOVE_MANAGEMENT_PROFILE");
+ feature.setName("Device Unlock");
+ feature.setDescription("Unlock the device");
+ supportedFeatures.add(feature);
+
+ feature = new Feature();
+ feature.setCode("DISALLOW_AUTOFILL");
+ feature.setName("Device Unlock");
+ feature.setDescription("Unlock the device");
+ supportedFeatures.add(feature);
+
+ feature = new Feature();
+ feature.setCode("DISALLOW_BLUETOOTH");
+ feature.setName("Device Unlock");
+ feature.setDescription("Unlock the device");
+ supportedFeatures.add(feature);
+
+ feature = new Feature();
+ feature.setCode("DISALLOW_BLUETOOTH_SHARING");
+ feature.setName("Device Unlock");
+ feature.setDescription("Unlock the device");
+ supportedFeatures.add(feature);
+
+ feature = new Feature();
+ feature.setCode("DISALLOW_REMOVE_USER");
+ feature.setName("Device Unlock");
+ feature.setDescription("Unlock the device");
+ supportedFeatures.add(feature);
+
+ feature = new Feature();
+ feature.setCode("DISALLOW_DATA_ROAMING");
+ feature.setName("Device Unlock");
+ feature.setDescription("Unlock the device");
+ supportedFeatures.add(feature);
+
return supportedFeatures;
}
}
\ No newline at end of file
diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/dao/MobileFeatureDAO.java b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/dao/MobileFeatureDAO.java
index b9a4d72af..aba4c13b3 100644
--- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/dao/MobileFeatureDAO.java
+++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/dao/MobileFeatureDAO.java
@@ -16,6 +16,24 @@
* under the License.
*/
+/*
+ * Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.wso2.carbon.device.mgt.mobile.android.impl.dao;
import org.wso2.carbon.device.mgt.mobile.android.impl.dto.MobileFeature;
@@ -107,4 +125,32 @@ public interface MobileFeatureDAO {
* @throws MobileDeviceManagementDAOException
*/
List getAllFeatures() throws MobileDeviceManagementDAOException;
+
+ /**
+ * Get all the MobileFeatures by a given ui visibility
+ *
+ * @param isHidden Whether the operation is hidden from UI or not.
+ * @return {@link MobileFeature} object list.
+ * @throws MobileDeviceManagementDAOException If an error occurred while retrieving the Feature list
+ */
+ List getAllFeatures(boolean isHidden) throws MobileDeviceManagementDAOException;
+
+ /**
+ * Retrieve all MobileFeatures of a given feature type
+ *
+ * @param featureType Feature type.
+ * @return {@link MobileFeature} object list.
+ * @throws MobileDeviceManagementDAOException If an error occurred while retrieving the Feature list
+ */
+ List getFeaturesByFeatureType(String featureType) throws MobileDeviceManagementDAOException;
+
+ /**
+ * Retrieve all MobileFeatures of a given feature type and ui visibility
+ *
+ * @param featureType Feature type.
+ * @param isHidden Whether the operation is hidden from UI or not.
+ * @return {@link MobileFeature} object list.
+ * @throws MobileDeviceManagementDAOException If an error occurred while retrieving the Feature list
+ */
+ List getFeaturesByFeatureType(String featureType, boolean isHidden) throws MobileDeviceManagementDAOException;
}
diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/dao/impl/AndroidFeatureDAOImpl.java b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/dao/impl/AndroidFeatureDAOImpl.java
index 7a6de77b5..2d9fe21d0 100644
--- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/dao/impl/AndroidFeatureDAOImpl.java
+++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/dao/impl/AndroidFeatureDAOImpl.java
@@ -16,6 +16,25 @@
* under the License.
*
*/
+
+/*
+ * Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.wso2.carbon.device.mgt.mobile.android.impl.dao.impl;
import org.apache.commons.logging.Log;
@@ -51,17 +70,19 @@ public class AndroidFeatureDAOImpl implements MobileFeatureDAO {
Connection conn;
try {
conn = AndroidDAOFactory.getConnection();
- String sql = "INSERT INTO AD_FEATURE(CODE, NAME, DESCRIPTION) VALUES (?, ?, ?)";
+ String sql = "INSERT INTO AD_FEATURE(CODE, NAME, TYPE, HIDDEN, DESCRIPTION) VALUES (?, ?, ?, ?, ?)";
stmt = conn.prepareStatement(sql);
stmt.setString(1, mobileFeature.getCode());
stmt.setString(2, mobileFeature.getName());
- stmt.setString(3, mobileFeature.getDescription());
+ stmt.setString(3, mobileFeature.getType());
+ stmt.setBoolean(4, mobileFeature.isHidden());
+ stmt.setString(5, mobileFeature.getDescription());
stmt.executeUpdate();
status = true;
} catch (SQLException e) {
throw new AndroidFeatureManagementDAOException(
"Error occurred while adding android feature '" +
- mobileFeature.getName() + "' into the metadata repository", e);
+ mobileFeature.getName() + "' into the metadata repository", e);
} finally {
MobileDeviceManagementDAOUtil.cleanupResources(stmt, null);
}
@@ -71,28 +92,27 @@ public class AndroidFeatureDAOImpl implements MobileFeatureDAO {
@Override
public boolean addFeatures(List mobileFeatures) throws MobileDeviceManagementDAOException {
PreparedStatement stmt = null;
- MobileFeature mobileFeature;
- boolean status = false;
Connection conn;
try {
conn = AndroidDAOFactory.getConnection();
- stmt = conn.prepareStatement("INSERT INTO AD_FEATURE(CODE, NAME, DESCRIPTION) VALUES (?, ?, ?)");
- for (int i = 0; i < mobileFeatures.size(); i++) {
- mobileFeature = mobileFeatures.get(i);
+ stmt = conn.prepareStatement("INSERT INTO AD_FEATURE(CODE, NAME, TYPE, HIDDEN, DESCRIPTION) " +
+ "VALUES (?, ?, ?, ?, ?)");
+ for (MobileFeature mobileFeature : mobileFeatures) {
stmt.setString(1, mobileFeature.getCode());
stmt.setString(2, mobileFeature.getName());
- stmt.setString(3, mobileFeature.getDescription());
+ stmt.setString(3, mobileFeature.getType());
+ stmt.setBoolean(4, mobileFeature.isHidden());
+ stmt.setString(5, mobileFeature.getDescription());
stmt.addBatch();
}
stmt.executeBatch();
- status = true;
+ return true;
} catch (SQLException e) {
throw new AndroidFeatureManagementDAOException(
"Error occurred while adding android features into the metadata repository", e);
} finally {
MobileDeviceManagementDAOUtil.cleanupResources(stmt, null);
}
- return status;
}
@Override
@@ -103,25 +123,27 @@ public class AndroidFeatureDAOImpl implements MobileFeatureDAO {
try {
conn = AndroidDAOFactory.getConnection();
String updateDBQuery =
- "UPDATE AD_FEATURE SET NAME = ?, DESCRIPTION = ?" +
- "WHERE CODE = ?";
+ "UPDATE AD_FEATURE SET NAME = ?, TYPE = ?, HIDDEN = ? ,DESCRIPTION = ?" +
+ "WHERE CODE = ?";
stmt = conn.prepareStatement(updateDBQuery);
stmt.setString(1, mobileFeature.getName());
- stmt.setString(2, mobileFeature.getDescription());
- stmt.setString(3, mobileFeature.getCode());
+ stmt.setString(2, mobileFeature.getType());
+ stmt.setBoolean(3, mobileFeature.isHidden());
+ stmt.setString(4, mobileFeature.getDescription());
+ stmt.setString(5, mobileFeature.getCode());
int rows = stmt.executeUpdate();
if (rows > 0) {
status = true;
if (log.isDebugEnabled()) {
log.debug("Android Feature " + mobileFeature.getCode() + " data has been " +
- "modified.");
+ "modified.");
}
}
} catch (SQLException e) {
String msg = "Error occurred while updating the Android Feature '" +
- mobileFeature.getCode() + "' to the Android db.";
+ mobileFeature.getCode() + "' to the Android db.";
log.error(msg, e);
throw new AndroidFeatureManagementDAOException(msg, e);
} finally {
@@ -146,7 +168,7 @@ public class AndroidFeatureDAOImpl implements MobileFeatureDAO {
} catch (SQLException e) {
throw new AndroidFeatureManagementDAOException(
"Error occurred while deleting android feature '" +
- mblFeatureId + "' from Android database.", e);
+ mblFeatureId + "' from Android database.", e);
} finally {
MobileDeviceManagementDAOUtil.cleanupResources(stmt, null);
}
@@ -156,7 +178,7 @@ public class AndroidFeatureDAOImpl implements MobileFeatureDAO {
@Override
public boolean deleteFeatureByCode(String mblFeatureCode) throws MobileDeviceManagementDAOException {
PreparedStatement stmt = null;
- boolean status = false;
+ boolean status;
Connection conn;
try {
conn = AndroidDAOFactory.getConnection();
@@ -168,7 +190,7 @@ public class AndroidFeatureDAOImpl implements MobileFeatureDAO {
} catch (SQLException e) {
throw new AndroidFeatureManagementDAOException(
"Error occurred while deleting android feature '" +
- mblFeatureCode + "' from Android database.", e);
+ mblFeatureCode + "' from Android database.", e);
} finally {
MobileDeviceManagementDAOUtil.cleanupResources(stmt, null);
}
@@ -182,7 +204,7 @@ public class AndroidFeatureDAOImpl implements MobileFeatureDAO {
Connection conn;
try {
conn = AndroidDAOFactory.getConnection();
- String sql = "SELECT ID, CODE, NAME, DESCRIPTION FROM AD_FEATURE WHERE ID = ?";
+ String sql = "SELECT ID, CODE, NAME, TYPE, HIDDEN, DESCRIPTION FROM AD_FEATURE WHERE ID = ?";
stmt = conn.prepareStatement(sql);
stmt.setInt(1, mblFeatureId);
rs = stmt.executeQuery();
@@ -193,8 +215,10 @@ public class AndroidFeatureDAOImpl implements MobileFeatureDAO {
mobileFeature.setId(rs.getInt(AndroidPluginConstants.ANDROID_FEATURE_ID));
mobileFeature.setCode(rs.getString(AndroidPluginConstants.ANDROID_FEATURE_CODE));
mobileFeature.setName(rs.getString(AndroidPluginConstants.ANDROID_FEATURE_NAME));
+ mobileFeature.setType(rs.getString(AndroidPluginConstants.ANDROID_FEATURE_TYPE));
+ mobileFeature.setHidden(rs.getBoolean(AndroidPluginConstants.ANDROID_FEATURE_HIDDEN));
mobileFeature.setDescription(rs.getString(AndroidPluginConstants.
- ANDROID_FEATURE_DESCRIPTION));
+ ANDROID_FEATURE_DESCRIPTION));
mobileFeature.setDeviceType(
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID);
}
@@ -202,7 +226,7 @@ public class AndroidFeatureDAOImpl implements MobileFeatureDAO {
} catch (SQLException e) {
throw new AndroidFeatureManagementDAOException(
"Error occurred while retrieving android feature '" +
- mblFeatureId + "' from the Android database.", e);
+ mblFeatureId + "' from the Android database.", e);
} finally {
MobileDeviceManagementDAOUtil.cleanupResources(stmt, rs);
AndroidDAOFactory.closeConnection();
@@ -217,27 +241,20 @@ public class AndroidFeatureDAOImpl implements MobileFeatureDAO {
try {
conn = AndroidDAOFactory.getConnection();
- String sql = "SELECT ID, CODE, NAME, DESCRIPTION FROM AD_FEATURE WHERE CODE = ?";
+ String sql = "SELECT ID, CODE, NAME, TYPE, HIDDEN, DESCRIPTION FROM AD_FEATURE WHERE CODE = ?";
stmt = conn.prepareStatement(sql);
stmt.setString(1, mblFeatureCode);
rs = stmt.executeQuery();
MobileFeature mobileFeature = null;
if (rs.next()) {
- mobileFeature = new MobileFeature();
- mobileFeature.setId(rs.getInt(AndroidPluginConstants.ANDROID_FEATURE_ID));
- mobileFeature.setCode(rs.getString(AndroidPluginConstants.ANDROID_FEATURE_CODE));
- mobileFeature.setName(rs.getString(AndroidPluginConstants.ANDROID_FEATURE_NAME));
- mobileFeature.setDescription(rs.getString(AndroidPluginConstants.
- ANDROID_FEATURE_DESCRIPTION));
- mobileFeature.setDeviceType(
- DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID);
+ mobileFeature = populateMobileFeature(rs);
}
return mobileFeature;
} catch (SQLException e) {
throw new AndroidFeatureManagementDAOException(
"Error occurred while retrieving android feature '" +
- mblFeatureCode + "' from the Android database.", e);
+ mblFeatureCode + "' from the Android database.", e);
} finally {
MobileDeviceManagementDAOUtil.cleanupResources(stmt, rs);
AndroidDAOFactory.closeConnection();
@@ -258,28 +275,123 @@ public class AndroidFeatureDAOImpl implements MobileFeatureDAO {
List features = new ArrayList<>();
try {
conn = AndroidDAOFactory.getConnection();
- String sql = "SELECT ID, CODE, NAME, DESCRIPTION FROM AD_FEATURE";
+ String sql = "SELECT ID, CODE, NAME, TYPE, HIDDEN, DESCRIPTION FROM AD_FEATURE";
stmt = conn.prepareStatement(sql);
rs = stmt.executeQuery();
- MobileFeature mobileFeature = null;
while (rs.next()) {
- mobileFeature = new MobileFeature();
- mobileFeature.setId(rs.getInt(AndroidPluginConstants.ANDROID_FEATURE_ID));
- mobileFeature.setCode(rs.getString(AndroidPluginConstants.ANDROID_FEATURE_CODE));
- mobileFeature.setName(rs.getString(AndroidPluginConstants.ANDROID_FEATURE_NAME));
- mobileFeature.setDescription(rs.getString(AndroidPluginConstants.ANDROID_FEATURE_DESCRIPTION));
- mobileFeature.setDeviceType(
- DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID);
- features.add(mobileFeature);
+ features.add(populateMobileFeature(rs));
}
return features;
} catch (SQLException e) {
- throw new AndroidFeatureManagementDAOException("Error occurred while retrieving all " +
- "android features from the android database.", e);
+ throw new AndroidFeatureManagementDAOException("Error occurred while retrieving all android features " +
+ "from the android database.", e);
} finally {
MobileDeviceManagementDAOUtil.cleanupResources(stmt, rs);
AndroidDAOFactory.closeConnection();
}
}
+
+ @Override
+ public List getAllFeatures(boolean isHidden) throws MobileDeviceManagementDAOException {
+ PreparedStatement stmt = null;
+ ResultSet rs = null;
+ Connection conn = null;
+ List features = new ArrayList<>();
+ try {
+ conn = AndroidDAOFactory.getConnection();
+ String sql = "SELECT ID, CODE, NAME, TYPE, HIDDEN, DESCRIPTION FROM AD_FEATURE WHERE HIDDEN = ?";
+ stmt = conn.prepareStatement(sql);
+ stmt.setBoolean(1, isHidden);
+ rs = stmt.executeQuery();
+
+ while (rs.next()) {
+ features.add(populateMobileFeature(rs));
+ }
+ return features;
+ } catch (SQLException e) {
+ throw new AndroidFeatureManagementDAOException("Error occurred while retrieving all android features " +
+ "from the android database.", e);
+ } finally {
+ MobileDeviceManagementDAOUtil.cleanupResources(stmt, rs);
+ AndroidDAOFactory.closeConnection();
+ }
+ }
+
+ @Override
+ public List getFeaturesByFeatureType(String featureType) throws MobileDeviceManagementDAOException {
+ PreparedStatement stmt = null;
+ ResultSet rs = null;
+ Connection conn;
+ List features = new ArrayList<>();
+ try {
+ conn = AndroidDAOFactory.getConnection();
+ String sql = "SELECT ID, CODE, NAME, TYPE, HIDDEN, DESCRIPTION FROM AD_FEATURE WHERE TYPE = ?";
+ stmt = conn.prepareStatement(sql);
+ stmt.setString(1, featureType);
+ rs = stmt.executeQuery();
+
+ while (rs.next()) {
+ features.add(populateMobileFeature(rs));
+ }
+ return features;
+ } catch (SQLException e) {
+ throw new AndroidFeatureManagementDAOException("Error occurred while retrieving all android features of " +
+ "type " + featureType + " from the android database.", e);
+ } finally {
+ MobileDeviceManagementDAOUtil.cleanupResources(stmt, rs);
+ AndroidDAOFactory.closeConnection();
+ }
+ }
+
+ @Override
+ public List getFeaturesByFeatureType(String featureType, boolean isHidden) throws MobileDeviceManagementDAOException {
+ PreparedStatement stmt = null;
+ ResultSet rs = null;
+ Connection conn;
+ List features = new ArrayList<>();
+ try {
+ conn = AndroidDAOFactory.getConnection();
+ String sql = "SELECT ID, CODE, NAME, TYPE, HIDDEN, DESCRIPTION " +
+ "FROM AD_FEATURE " +
+ "WHERE TYPE = ? AND HIDDEN = ?";
+ stmt = conn.prepareStatement(sql);
+ stmt.setString(1, featureType);
+ stmt.setBoolean(2, isHidden);
+ rs = stmt.executeQuery();
+
+ while (rs.next()) {
+ features.add(populateMobileFeature(rs));
+ }
+ return features;
+ } catch (SQLException e) {
+ throw new AndroidFeatureManagementDAOException("Error occurred while retrieving all android features of " +
+ "[type: " + featureType + " & hidden: " + isHidden + "] from the android database.", e);
+ } finally {
+ MobileDeviceManagementDAOUtil.cleanupResources(stmt, rs);
+ AndroidDAOFactory.closeConnection();
+ }
+ }
+
+ /**
+ * Generate {@link MobileFeature} from the SQL {@link ResultSet}
+ *
+ * @param rs Result set
+ * @return populated {@link MobileFeature}
+ * @throws SQLException if unable to extract data from {@link ResultSet}
+ */
+ private MobileFeature populateMobileFeature(ResultSet rs) throws SQLException {
+ MobileFeature mobileFeature = new MobileFeature();
+ mobileFeature.setId(rs.getInt(AndroidPluginConstants.ANDROID_FEATURE_ID));
+ mobileFeature.setCode(rs.getString(AndroidPluginConstants.ANDROID_FEATURE_CODE));
+ mobileFeature.setName(rs.getString(AndroidPluginConstants.ANDROID_FEATURE_NAME));
+ mobileFeature.setDescription(rs.getString(AndroidPluginConstants.
+ ANDROID_FEATURE_DESCRIPTION));
+ mobileFeature.setType(rs.getString(AndroidPluginConstants.ANDROID_FEATURE_TYPE));
+ mobileFeature.setHidden(rs.getBoolean(AndroidPluginConstants.ANDROID_FEATURE_HIDDEN));
+ mobileFeature.setDeviceType(
+ DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID);
+
+ return mobileFeature;
+ }
}
\ No newline at end of file
diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/dao/impl/MobileFeatureDAOImpl.java b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/dao/impl/MobileFeatureDAOImpl.java
deleted file mode 100644
index eeade1e6a..000000000
--- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/dao/impl/MobileFeatureDAOImpl.java
+++ /dev/null
@@ -1,336 +0,0 @@
-/*
- * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * you may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.mobile.android.impl.dao.impl;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.device.mgt.mobile.android.impl.dao.MobileDeviceManagementDAOException;
-import org.wso2.carbon.device.mgt.mobile.android.impl.dao.MobileFeatureDAO;
-import org.wso2.carbon.device.mgt.mobile.android.impl.dao.util.MobileDeviceManagementDAOUtil;
-import org.wso2.carbon.device.mgt.mobile.android.impl.dto.MobileFeature;
-
-import javax.sql.DataSource;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Implementation of MobileFeatureDAO.
- */
-public class MobileFeatureDAOImpl implements MobileFeatureDAO {
-
- private DataSource dataSource;
- private static final Log log = LogFactory.getLog(MobileFeatureDAOImpl.class);
-
- public MobileFeatureDAOImpl(DataSource dataSource) {
- this.dataSource = dataSource;
- }
-
- @Override
- public boolean addFeature(MobileFeature mobileFeature)
- throws MobileDeviceManagementDAOException {
- boolean status = false;
- Connection conn = null;
- PreparedStatement stmt = null;
- try {
- conn = this.getConnection();
- String createDBQuery =
- "INSERT INTO AD_FEATURE(CODE, NAME, DESCRIPTION, DEVICE_TYPE) VALUES (?, ?, ?, ?)";
-
- stmt = conn.prepareStatement(createDBQuery);
- stmt.setString(1, mobileFeature.getCode());
- stmt.setString(2, mobileFeature.getName());
- stmt.setString(3, mobileFeature.getDescription());
- stmt.setString(4, mobileFeature.getDeviceType());
- int rows = stmt.executeUpdate();
- if (rows > 0) {
- if (log.isDebugEnabled()) {
- log.debug("Added a new MobileFeature " + mobileFeature.getCode() + " to the MDM database.");
- }
- status = true;
- }
- } catch (SQLException e) {
- String msg = "Error occurred while adding feature code - '" +
- mobileFeature.getCode() + "' to feature table";
- log.error(msg, e);
- throw new MobileDeviceManagementDAOException(msg, e);
- } finally {
- MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null);
- }
- return status;
- }
-
- @Override
- public boolean addFeatures(List mobileFeatures) throws MobileDeviceManagementDAOException {
- return false;
- }
-
- @Override
- public boolean updateFeature(MobileFeature mobileFeature)
- throws MobileDeviceManagementDAOException {
- boolean status = false;
- Connection conn = null;
- PreparedStatement stmt = null;
- try {
- conn = this.getConnection();
- String updateDBQuery =
- "UPDATE AD_FEATURE SET CODE = ?, NAME = ?, DESCRIPTION = ?, DEVICE_TYPE = ?" +
- " WHERE ID = ?";
- stmt = conn.prepareStatement(updateDBQuery);
- stmt.setString(1, mobileFeature.getCode());
- stmt.setString(2, mobileFeature.getName());
- stmt.setString(3, mobileFeature.getDescription());
- stmt.setString(4, mobileFeature.getDeviceType());
- stmt.setInt(5, mobileFeature.getId());
- int rows = stmt.executeUpdate();
- if (rows > 0) {
- status = true;
- if (log.isDebugEnabled()) {
- log.debug("Updated MobileFeature " + mobileFeature.getCode());
- }
- }
- } catch (SQLException e) {
- String msg = "Error occurred while updating the feature with feature code - '" +
- mobileFeature.getId() + "'";
- log.error(msg, e);
- throw new MobileDeviceManagementDAOException(msg, e);
- } finally {
- MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null);
- }
- return status;
- }
-
- @Override
- public boolean deleteFeatureByCode(String mblFeatureCode)
- throws MobileDeviceManagementDAOException {
- boolean status = false;
- Connection conn = null;
- PreparedStatement stmt = null;
- try {
- conn = this.getConnection();
- String deleteDBQuery =
- "DELETE FROM AD_FEATURE WHERE CODE = ?";
- stmt = conn.prepareStatement(deleteDBQuery);
- stmt.setString(1, mblFeatureCode);
- int rows = stmt.executeUpdate();
- if (rows > 0) {
- status = true;
- if (log.isDebugEnabled()) {
- log.debug("Deleted MobileFeature code " + mblFeatureCode + " from the MDM database.");
- }
- }
- } catch (SQLException e) {
- String msg = "Error occurred while deleting feature with code - " + mblFeatureCode;
- log.error(msg, e);
- throw new MobileDeviceManagementDAOException(msg, e);
- } finally {
- MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null);
- }
- return status;
- }
-
- @Override
- public boolean deleteFeatureById(int mblFeatureId)
- throws MobileDeviceManagementDAOException {
- boolean status = false;
- Connection conn = null;
- PreparedStatement stmt = null;
- try {
- conn = this.getConnection();
- String deleteDBQuery =
- "DELETE FROM AD_FEATURE WHERE ID = ?";
- stmt = conn.prepareStatement(deleteDBQuery);
- stmt.setInt(1, mblFeatureId);
- int rows = stmt.executeUpdate();
- if (rows > 0) {
- status = true;
- if (log.isDebugEnabled()) {
- log.debug("Deleted MobileFeature id " + mblFeatureId + " from the MDM database.");
- }
- }
- } catch (SQLException e) {
- String msg = "Error occurred while deleting feature with id - " + mblFeatureId;
- log.error(msg, e);
- throw new MobileDeviceManagementDAOException(msg, e);
- } finally {
- MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, null);
- }
- return status;
- }
-
- @Override
- public MobileFeature getFeatureByCode(String mblFeatureCode)
- throws MobileDeviceManagementDAOException {
- Connection conn = null;
- PreparedStatement stmt = null;
- MobileFeature mobileFeature = null;
- ResultSet resultSet = null;
- try {
- conn = this.getConnection();
- String selectDBQuery =
- "SELECT ID, CODE, NAME, DESCRIPTION, DEVICE_TYPE FROM AD_FEATURE " +
- "WHERE CODE = ?";
- stmt = conn.prepareStatement(selectDBQuery);
- stmt.setString(1, mblFeatureCode);
- resultSet = stmt.executeQuery();
- if (resultSet.next()) {
- mobileFeature = new MobileFeature();
- mobileFeature.setId(resultSet.getInt(1));
- mobileFeature.setCode(resultSet.getString(2));
- mobileFeature.setName(resultSet.getString(3));
- mobileFeature.setDescription(resultSet.getString(4));
- mobileFeature.setDeviceType(resultSet.getString(5));
- if (log.isDebugEnabled()) {
- log.debug("Fetched MobileFeature " + mblFeatureCode + " from the MDM database.");
- }
- }
- } catch (SQLException e) {
- String msg = "Error occurred while fetching feature code - '" + mblFeatureCode + "'";
- log.error(msg, e);
- throw new MobileDeviceManagementDAOException(msg, e);
- } finally {
- MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, resultSet);
- }
- return mobileFeature;
- }
-
- @Override
- public MobileFeature getFeatureById(int mblFeatureId)
- throws MobileDeviceManagementDAOException {
- Connection conn = null;
- PreparedStatement stmt = null;
- MobileFeature mobileFeature = null;
- ResultSet resultSet = null;
- try {
- conn = this.getConnection();
- String selectDBQuery =
- "SELECT ID, CODE, NAME, DESCRIPTION, DEVICE_TYPE FROM AD_FEATURE" +
- " WHERE ID = ?";
- stmt = conn.prepareStatement(selectDBQuery);
- stmt.setInt(1, mblFeatureId);
- resultSet = stmt.executeQuery();
- if (resultSet.next()) {
- mobileFeature = new MobileFeature();
- mobileFeature.setId(resultSet.getInt(1));
- mobileFeature.setCode(resultSet.getString(2));
- mobileFeature.setName(resultSet.getString(3));
- mobileFeature.setDescription(resultSet.getString(4));
- mobileFeature.setDeviceType(resultSet.getString(5));
- if (log.isDebugEnabled()) {
- log.debug("Fetched MobileFeatureId" + mblFeatureId + " from the MDM database.");
- }
- }
- } catch (SQLException e) {
- String msg = "Error occurred while fetching feature id - '" + mblFeatureId + "'";
- log.error(msg, e);
- throw new MobileDeviceManagementDAOException(msg, e);
- } finally {
- MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, resultSet);
- }
- return mobileFeature;
- }
-
- @Override
- public List getAllFeatures() throws MobileDeviceManagementDAOException {
- Connection conn = null;
- PreparedStatement stmt = null;
- MobileFeature mobileFeature;
- List mobileFeatures = new ArrayList();
- ResultSet resultSet = null;
- try {
- conn = this.getConnection();
- String selectDBQuery =
- "SELECT ID, CODE, NAME, DESCRIPTION, DEVICE_TYPE FROM AD_FEATURE";
- stmt = conn.prepareStatement(selectDBQuery);
- resultSet = stmt.executeQuery();
- while (resultSet.next()) {
- mobileFeature = new MobileFeature();
- mobileFeature.setId(resultSet.getInt(1));
- mobileFeature.setCode(resultSet.getString(2));
- mobileFeature.setName(resultSet.getString(3));
- mobileFeature.setDescription(resultSet.getString(4));
- mobileFeature.setDeviceType(resultSet.getString(5));
- mobileFeatures.add(mobileFeature);
- }
- if (log.isDebugEnabled()) {
- log.debug("Fetched all MobileFeatures from the MDM database.");
- }
- return mobileFeatures;
- } catch (SQLException e) {
- String msg = "Error occurred while fetching all features.'";
- log.error(msg, e);
- throw new MobileDeviceManagementDAOException(msg, e);
- } finally {
- MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, resultSet);
- }
- }
-
- @Override
- public List getFeatureByDeviceType(String deviceType) throws MobileDeviceManagementDAOException {
- Connection conn = null;
- PreparedStatement stmt = null;
- MobileFeature mobileFeature;
- List mobileFeatures = new ArrayList<>();
- ResultSet resultSet = null;
- try {
- conn = this.getConnection();
- String selectDBQuery =
- "SELECT ID, CODE, NAME, DESCRIPTION, DEVICE_TYPE FROM AD_FEATURE" +
- " WHERE DEVICE_TYPE = ?";
- stmt = conn.prepareStatement(selectDBQuery);
- stmt.setString(1, deviceType);
- resultSet = stmt.executeQuery();
- while (resultSet.next()) {
- mobileFeature = new MobileFeature();
- mobileFeature.setId(resultSet.getInt(1));
- mobileFeature.setCode(resultSet.getString(2));
- mobileFeature.setName(resultSet.getString(3));
- mobileFeature.setDescription(resultSet.getString(4));
- mobileFeature.setDeviceType(resultSet.getString(5));
- mobileFeatures.add(mobileFeature);
- }
- if (log.isDebugEnabled()) {
- log.debug("Fetched all MobileFeatures of type " + deviceType + " from the MDM" +
- " database.");
- }
- return mobileFeatures;
- } catch (SQLException e) {
- String msg = "Error occurred while fetching all features.'";
- log.error(msg, e);
- throw new MobileDeviceManagementDAOException(msg, e);
- } finally {
- MobileDeviceManagementDAOUtil.cleanupResources(conn, stmt, resultSet);
- }
- }
-
- private Connection getConnection() throws MobileDeviceManagementDAOException {
- try {
- return dataSource.getConnection();
- } catch (SQLException e) {
- String msg = "Error occurred while obtaining a connection from the mobile specific " +
- "datasource.";
- log.error(msg, e);
- throw new MobileDeviceManagementDAOException(msg, e);
- }
- }
-
-}
diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/dto/MobileFeature.java b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/dto/MobileFeature.java
index 6568c9d5c..1778f8560 100644
--- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/dto/MobileFeature.java
+++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/dto/MobileFeature.java
@@ -16,6 +16,24 @@
* under the License.
*/
+/*
+ * Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.wso2.carbon.device.mgt.mobile.android.impl.dto;
import java.io.Serializable;
@@ -29,6 +47,8 @@ public class MobileFeature implements Serializable {
private String deviceType;
private String code;
private String name;
+ private String type;
+ private boolean hidden;
private String description;
public int getId() {
@@ -55,6 +75,22 @@ public class MobileFeature implements Serializable {
this.name = name;
}
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public boolean isHidden() {
+ return hidden;
+ }
+
+ public void setHidden(boolean hidden) {
+ this.hidden = hidden;
+ }
+
public String getDescription() {
return description;
}
diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/util/AndroidPluginConstants.java b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/util/AndroidPluginConstants.java
index 09b278e2c..a0c7a332d 100644
--- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/util/AndroidPluginConstants.java
+++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/util/AndroidPluginConstants.java
@@ -16,6 +16,24 @@
* under the License.
*/
+/*
+ * Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.wso2.carbon.device.mgt.mobile.android.impl.util;
/**
@@ -43,6 +61,8 @@ public final class AndroidPluginConstants {
public static final String ANDROID_FEATURE_ID = "ID";
public static final String ANDROID_FEATURE_CODE = "CODE";
public static final String ANDROID_FEATURE_NAME = "NAME";
+ public static final String ANDROID_FEATURE_TYPE = "TYPE";
+ public static final String ANDROID_FEATURE_HIDDEN = "HIDDEN";
public static final String ANDROID_FEATURE_DESCRIPTION = "DESCRIPTION";
public static final class NotifierType {
diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/util/MobileDeviceManagementUtil.java b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/util/MobileDeviceManagementUtil.java
index b56e70d88..be7be45b5 100644
--- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/util/MobileDeviceManagementUtil.java
+++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/util/MobileDeviceManagementUtil.java
@@ -16,6 +16,24 @@
* under the License.
*/
+/*
+ * Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.wso2.carbon.device.mgt.mobile.android.impl.util;
import org.apache.commons.logging.Log;
@@ -42,7 +60,13 @@ import javax.xml.XMLConstants;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
/**
* Provides utility methods required by the mobile device management bundle.
@@ -202,6 +226,8 @@ public class MobileDeviceManagementUtil {
mobileFeature.setCode(feature.getCode());
mobileFeature.setDescription(feature.getDescription());
mobileFeature.setDeviceType(feature.getDeviceType());
+ mobileFeature.setType(feature.getType());
+ mobileFeature.setHidden(feature.isHidden());
return mobileFeature;
}
@@ -211,6 +237,8 @@ public class MobileDeviceManagementUtil {
feature.setDeviceType(mobileFeature.getDeviceType());
feature.setCode(mobileFeature.getCode());
feature.setName(mobileFeature.getName());
+ feature.setType(mobileFeature.getType());
+ feature.setHidden(mobileFeature.isHidden());
return feature;
}
diff --git a/components/mobile-plugins/android-plugin/pom.xml b/components/mobile-plugins/android-plugin/pom.xml
index 2f5bf0640..47f0b2874 100644
--- a/components/mobile-plugins/android-plugin/pom.xml
+++ b/components/mobile-plugins/android-plugin/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt-plugins
mobile-plugins
- 4.2.5-SNAPSHOT
+ 4.2.7-SNAPSHOT
../pom.xml
diff --git a/components/mobile-plugins/pom.xml b/components/mobile-plugins/pom.xml
index 64c5a0590..ac7d0ba7d 100644
--- a/components/mobile-plugins/pom.xml
+++ b/components/mobile-plugins/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt-plugins
carbon-device-mgt-plugins-parent
- 4.2.5-SNAPSHOT
+ 4.2.7-SNAPSHOT
../../pom.xml
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/pom.xml b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/pom.xml
index 4b9c840bf..9fa78dec0 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/pom.xml
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/pom.xml
@@ -21,7 +21,7 @@
windows-plugin
org.wso2.carbon.devicemgt-plugins
- 4.2.5-SNAPSHOT
+ 4.2.7-SNAPSHOT
../pom.xml
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/pom.xml b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/pom.xml
index 26c008fee..1896294d6 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/pom.xml
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/pom.xml
@@ -23,13 +23,13 @@
windows-plugin
org.wso2.carbon.devicemgt-plugins
- 4.2.5-SNAPSHOT
+ 4.2.7-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.mobile.windows.ui
- 4.2.5-SNAPSHOT
+ 4.2.7-SNAPSHOT
WSO2 Carbon - Mobile Windows UI
pom
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.hbs b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.hbs
index b2adb105b..f1951c492 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.hbs
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.hbs
@@ -46,7 +46,7 @@
Device Operations
- {{unit "cdmf.unit.device.type.windows.new.operation-bar" device=device
+ {{unit "cdmf.unit.device.type.windows.operation-bar" device=device
backendApiUri=backendApiUri autoCompleteParams=autoCompleteParams}}
{{/if}}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.new.operation-bar/operation-bar.js b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.new.operation-bar/operation-bar.js
deleted file mode 100644
index 30a8d397f..000000000
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.new.operation-bar/operation-bar.js
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-function onRequest(context) {
- var log = new Log("operation.js");
- var operationModule = require("/app/modules/business-controllers/operation.js")["operationModule"];
- var device = context.unit.params.device;
- var autoCompleteParams = context.unit.params.autoCompleteParams;
- var encodedFeaturePayloads=context.unit.params.encodedFeaturePayloads;
- var controlOperations = operationModule.getControlOperations(device);
- var queryParams = [];
- var formParams = [];
- var pathParams = [];
- for (var i = 0; i < controlOperations.length; i++) {
- var currentParamList = controlOperations[i]["params"];
- var uiParamList = controlOperations[i]["uiParams"];
- for (var j = 0; j < currentParamList.length; j++) {
- var currentParam = currentParamList[j];
- currentParamList[j]["formParams"] = processParams(currentParam["formParams"], autoCompleteParams);
- currentParamList[j]["queryParams"] = processParams(currentParam["queryParams"], autoCompleteParams);
- currentParamList[j]["pathParams"] = processParams(currentParam["pathParams"], autoCompleteParams);
- }
- controlOperations[i]["uiParams"] = uiParamList;
- if (encodedFeaturePayloads) {
- controlOperations[i]["payload"] = getPayload(encodedFeaturePayloads, controlOperations[i]["operation"]);
- }
- }
- return {"control_operations": controlOperations, "device": device};
-}
-
-function processParams(paramsList, autoCompleteParams) {
- for (var i = 0; i < paramsList.length; i++) {
- var paramName = paramsList[i];
- var paramValue = "";
- var paramType = "text";
- for (var k = 0; k < autoCompleteParams.length; k++) {
- if (paramName == autoCompleteParams[k].name) {
- paramValue = autoCompleteParams[k].value;
- paramType = "hidden";
- }
- }
- paramsList[i] = {"name": paramName, "value": paramValue, "type": paramType};
- }
- return paramsList;
-}
-
-function getPayload(featuresPayload, featureCode){
- var featuresJSONPayloads = JSON.parse(featuresPayload);
- return featuresJSONPayloads[featureCode];
-}
\ No newline at end of file
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.new.operation-bar/operation-bar.json b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.new.operation-bar/operation-bar.json
deleted file mode 100644
index 688e93980..000000000
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.new.operation-bar/operation-bar.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "version": "1.0.0"
-}
\ No newline at end of file
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.new.operation-bar/public/js/operation-bar.js b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.new.operation-bar/public/js/operation-bar.js
deleted file mode 100644
index aa3d69f68..000000000
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.new.operation-bar/public/js/operation-bar.js
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/*
- * On operation click function.
- * @param selection: Selected operation
- */
-function operationSelect(selection) {
- $(modalPopupContent).addClass("operation-data");
- $(modalPopupContent).html($(" .operation[data-operation-code=" + selection + "]").html());
- $(modalPopupContent).data("operation-code", selection);
- showPopup();
-}
-
-function submitForm(formId) {
- var form = $("#" + formId);
- var uri = form.attr("action");
- var deviceId = form.data("device-id");
- var contentType = form.data("content-type");
- var operationCode = form.data("operation-code");
- var uriencodedQueryStr = "";
- var uriencodedFormStr = "";
- var payload = {};
- form.find("input").each(function () {
- var input = $(this);
- if (input.data("param-type") == "path") {
- uri = uri.replace("{" + input.attr("id") + "}", input.val());
- } else if (input.data("param-type") == "query") {
- var prefix = (uriencodedQueryStr == "") ? "?" : "&";
- uriencodedQueryStr += prefix + input.attr("id") + "=" + input.val();
- } else if (input.data("param-type") == "form") {
- var prefix = (uriencodedFormStr == "") ? "" : "&";
- uriencodedFormStr += prefix + input.attr("id") + "=" + input.val();
- if(input.attr("type") == "text"){
- payload[input.attr("id")] = input.val();
- } else if(input.attr("type") == "checkbox"){
- payload[input.attr("id")] = input.is(":checked");
- }
- }
- });
- uri += uriencodedQueryStr;
- var httpMethod = form.attr("method").toUpperCase();
- //var contentType = form.attr("enctype");
-
- if (contentType == undefined || contentType == "") {
- contentType = "application/x-www-form-urlencoded";
- payload = uriencodedFormStr;
- }
-
- //setting responses callbacks
- var defaultStatusClasses = "fw fw-stack-1x";
- var content = $("#operation-response-template").find(".content");
- var title = content.find("#title");
- var statusIcon = content.find("#status-icon");
- var description = content.find("#description");
- description.html("");
- var successCallBack = function (response) {
- var res = response;
- try {
- res = JSON.parse(response).messageFromServer;
- } catch (err) {
- //do nothing
- }
- title.html("Operation Triggered!");
- statusIcon.attr("class", defaultStatusClasses + " fw-check");
- description.html(res);
- console.log("success!");
- $(modalPopupContent).html(content.html());
- };
- var errorCallBack = function (response) {
- console.log(response);
- title.html("An Error Occurred!");
- statusIcon.attr("class", defaultStatusClasses + " fw-error");
- var reason = (response.responseText == "null")?response.statusText:response.responseText;
- try {
- reason = JSON.parse(reason).message;
- } catch (err) {
- //do nothing
- }
- description.html(reason);
- console.log("Error!");
- $(modalPopupContent).html(content.html());
- };
- //executing http request
- if (httpMethod == "GET") {
- invokerUtil.get(uri, successCallBack, errorCallBack, contentType);
- } else if (httpMethod == "POST") {
- var deviceList = [deviceId];
- payload = generatePayload(operationCode, payload, deviceList);
- invokerUtil.post(uri, payload, successCallBack, errorCallBack, contentType);
- } else if (httpMethod == "PUT") {
- invokerUtil.put(uri, payload, successCallBack, errorCallBack, contentType);
- } else if (httpMethod == "DELETE") {
- invokerUtil.delete(uri, successCallBack, errorCallBack, contentType);
- } else {
- title.html("An Error Occurred!");
- statusIcon.attr("class", defaultStatusClasses + " fw-error");
- description.html("This operation requires http method: " + httpMethod + " which is not supported yet!");
- $(modalPopupContent).html(content.html());
- }
-}
-
-$(document).on('submit', 'form', function (e) {
- cosole.log("darn!!");
- e.preventDefault();
- var postOperationRequest = $.ajax({
- url: $(this).attr("action") + '&' + $(this).serialize(),
- method: "post"
- });
-
- var btnSubmit = $('#btnSend', this);
- btnSubmit.addClass('hidden');
-
- var lblSending = $('#lblSending', this);
- lblSending.removeClass('hidden');
-
- var lblSent = $('#lblSent', this);
- postOperationRequest.done(function (data) {
- lblSending.addClass('hidden');
- lblSent.removeClass('hidden');
- setTimeout(function () {
- hidePopup();
- }, 3000);
- });
-
- postOperationRequest.fail(function (jqXHR, textStatus) {
- lblSending.addClass('hidden');
- lblSent.addClass('hidden');
- });
-});
-
-// Constants to define operation types available
-var operationTypeConstants = {
- "PROFILE": "profile",
- "CONFIG": "config",
- "COMMAND": "command"
-};
-
-
-var generatePayload = function (operationCode, operationData, deviceList) {
- var payload;
- var operationType;
- switch (operationCode) {
- case windowsOperationConstants["CAMERA_OPERATION_CODE"]:
- operationType = operationTypeConstants["PROFILE"];
- payload = {
- "operation": {
- "enabled": operationData["cameraEnabled"]
- }
- };
- break;
- case windowsOperationConstants["CHANGE_LOCK_CODE_OPERATION_CODE"]:
- operationType = operationTypeConstants["PROFILE"];
- payload = {
- "operation": {
- "lockCode": operationData["lockCode"]
- }
- };
- break;
- case windowsOperationConstants["ENCRYPT_STORAGE_OPERATION_CODE"]:
- operationType = operationTypeConstants["PROFILE"];
- payload = {
- "operation": {
- "encrypted": operationData["encryptStorageEnabled"]
- }
- };
- break;
- case windowsOperationConstants["NOTIFICATION_OPERATION_CODE"]:
- operationType = operationTypeConstants["PROFILE"];
- payload = {
- "operation": {
- "message": operationData["message"]
- }
- };
- break;
- case windowsOperationConstants["PASSCODE_POLICY_OPERATION_CODE"]:
- operationType = operationTypeConstants["PROFILE"];
- payload = {
- "operation": {
- "allowSimple": operationData["passcodePolicyAllowSimple"],
- "requireAlphanumeric": operationData["passcodePolicyRequireAlphanumeric"],
- "minLength": operationData["passcodePolicyMinLength"],
- "minComplexChars": operationData["passcodePolicyMinComplexChars"],
- "maxPINAgeInDays": operationData["passcodePolicyMaxPasscodeAgeInDays"],
- "pinHistory": operationData["passcodePolicyPasscodeHistory"],
- "maxFailedAttempts": operationData["passcodePolicyMaxFailedAttempts"]
- }
- };
- break;
- default:
- // If the operation is neither of above, it is a command operation
- operationType = operationTypeConstants["COMMAND"];
- // Operation payload of a command operation is simply an array of device IDs
- payload = deviceList;
- }
-
- if (operationType == operationTypeConstants["PROFILE"] && deviceList) {
- payload["deviceIDs"] = deviceList;
- }
-
- return payload;
-};
-
-
-// Constants to define Windows Operation Constants
-var windowsOperationConstants = {
- "PASSCODE_POLICY_OPERATION_CODE": "PASSCODE_POLICY",
- "CAMERA_OPERATION_CODE": "CAMERA",
- "ENCRYPT_STORAGE_OPERATION_CODE": "ENCRYPT_STORAGE",
- "NOTIFICATION_OPERATION_CODE": "NOTIFICATION",
- "CHANGE_LOCK_CODE_OPERATION_CODE": "CHANGE_LOCK_CODE"
-};
\ No newline at end of file
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/operation-bar.hbs b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/operation-bar.hbs
index fa79c9270..9c836a537 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/operation-bar.hbs
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/operation-bar.hbs
@@ -15,18 +15,132 @@
specific language governing permissions and limitations
under the License.
}}
+{{#if control_operations}}
+
-{{/zone}}
+{{else}}
+
+
+ Operations Loading Failed!
+
+{{/if}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{#zone "bottomJs"}}
-
-
{{js "js/operation-bar.js"}}
-{{/zone}}
\ No newline at end of file
+{{/zone}}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/operation-bar.js b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/operation-bar.js
index 242cb4874..30a8d397f 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/operation-bar.js
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/operation-bar.js
@@ -17,90 +17,49 @@
*/
function onRequest(context) {
- var log = new Log("cdmf.unit.device.type.windows.operation-bar");
- var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
- var viewModel = {};
- var permissions = {};
+ var log = new Log("operation.js");
+ var operationModule = require("/app/modules/business-controllers/operation.js")["operationModule"];
+ var device = context.unit.params.device;
+ var autoCompleteParams = context.unit.params.autoCompleteParams;
+ var encodedFeaturePayloads=context.unit.params.encodedFeaturePayloads;
+ var controlOperations = operationModule.getControlOperations(device);
+ var queryParams = [];
+ var formParams = [];
+ var pathParams = [];
+ for (var i = 0; i < controlOperations.length; i++) {
+ var currentParamList = controlOperations[i]["params"];
+ var uiParamList = controlOperations[i]["uiParams"];
+ for (var j = 0; j < currentParamList.length; j++) {
+ var currentParam = currentParamList[j];
+ currentParamList[j]["formParams"] = processParams(currentParam["formParams"], autoCompleteParams);
+ currentParamList[j]["queryParams"] = processParams(currentParam["queryParams"], autoCompleteParams);
+ currentParamList[j]["pathParams"] = processParams(currentParam["pathParams"], autoCompleteParams);
+ }
+ controlOperations[i]["uiParams"] = uiParamList;
+ if (encodedFeaturePayloads) {
+ controlOperations[i]["payload"] = getPayload(encodedFeaturePayloads, controlOperations[i]["operation"]);
+ }
+ }
+ return {"control_operations": controlOperations, "device": device};
+}
- // adding android operations related permission checks
- permissions["android"] = [];
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning-device/operations/android/ring")) {
- permissions["android"].push("DEVICE_RING");
- }
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning-device/operations/android/lock")) {
- permissions["android"].push("DEVICE_LOCK");
- }
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning-device/operations/android/unlock")) {
- permissions["android"].push("DEVICE_UNLOCK");
- }
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning-device/operations/android/location")) {
- permissions["android"].push("DEVICE_LOCATION");
- }
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning-device/operations/android/clear-password")) {
- permissions["android"].push("CLEAR_PASSWORD");
- }
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning-device/operations/android/reboot")) {
- permissions["android"].push("DEVICE_REBOOT");
- }
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning-device/operations/android/upgrade-firmware")) {
- permissions["android"].push("UPGRADE_FIRMWARE");
- }
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning-device/operations/android/mute")) {
- permissions["android"].push("DEVICE_MUTE");
- }
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning-device/operations/android/send-notification")) {
- permissions["android"].push("NOTIFICATION");
- }
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning-device/operations/android/change-lock-code")) {
- permissions["android"].push("CHANGE_LOCK_CODE");
- }
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning-device/operations/android/enterprise-wipe")) {
- permissions["android"].push("ENTERPRISE_WIPE");
- }
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning-device/operations/android/wipe")) {
- permissions["android"].push("WIPE_DATA");
- }
-
- // adding ios operations related permission checks
- permissions["ios"] = [];
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/ios/lock")) {
- permissions["ios"].push("DEVICE_LOCK");
- }
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/ios/location")) {
- permissions["ios"].push("LOCATION");
- }
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/ios/enterprise-wipe")) {
- permissions["ios"].push("ENTERPRISE_WIPE");
- }
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/ios/notification")) {
- permissions["ios"].push("NOTIFICATION");
- }
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/ios/ring")) {
- permissions["ios"].push("RING");
- }
-
- // adding windows operations related permission checks
- permissions["windows"] = [];
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/windows/lock")) {
- permissions["windows"].push("DEVICE_LOCK");
- }
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/disenroll/windows")) {
- permissions["windows"].push("DISENROLL");
- }
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/windows/wipe")) {
- permissions["windows"].push("WIPE_DATA");
- }
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/windows/ring")) {
- permissions["windows"].push("DEVICE_RING");
- }
- if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/windows/lock-reset")) {
- permissions["windows"].push("LOCK_RESET");
- }
-
- viewModel["permissions"] = stringify(permissions);
-
- viewModel["deviceType"] = context.unit.params.deviceType;
- viewModel["ownership"] = context.unit.params.ownership;
+function processParams(paramsList, autoCompleteParams) {
+ for (var i = 0; i < paramsList.length; i++) {
+ var paramName = paramsList[i];
+ var paramValue = "";
+ var paramType = "text";
+ for (var k = 0; k < autoCompleteParams.length; k++) {
+ if (paramName == autoCompleteParams[k].name) {
+ paramValue = autoCompleteParams[k].value;
+ paramType = "hidden";
+ }
+ }
+ paramsList[i] = {"name": paramName, "value": paramValue, "type": paramType};
+ }
+ return paramsList;
+}
- return viewModel;
+function getPayload(featuresPayload, featureCode){
+ var featuresJSONPayloads = JSON.parse(featuresPayload);
+ return featuresJSONPayloads[featureCode];
}
\ No newline at end of file
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/public/js/operation-bar.js b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/public/js/operation-bar.js
index 90ce9ce4a..64d736076 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/public/js/operation-bar.js
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/public/js/operation-bar.js
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
@@ -17,232 +17,227 @@
*/
/*
- * Setting-up global variables.
- */
-
-var operations = '.wr-operations',
- modalPopup = '.modal',
- modalPopupContent = modalPopup + ' .modal-content',
- navHeight = $('#nav').height(),
- headerHeight = $('header').height(),
- offset = (headerHeight + navHeight),
- deviceSelection = '.device-select',
- platformTypeConstants = {
- "ANDROID": "android",
- "IOS": "ios",
- "WINDOWS": "windows"
- },
- ownershipTypeConstants = {
- "BYOD": "BYOD",
- "COPE": "COPE"
- },
- operationBarModeConstants = {
- "BULK": "BULK_OPERATION_MODE",
- "SINGLE": "SINGLE_OPERATION_MODE"
- };
-
-/*
- * Function to get selected devices ID's
+ * Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
-function getSelectedDeviceIds() {
- var deviceIdentifierList = [];
- $(deviceSelection).each(function (index) {
- var device = $(this);
- var deviceId = device.data('deviceid');
- var deviceType = device.data('type');
- deviceIdentifierList.push({
- "id": deviceId,
- "type": deviceType
- });
- });
- if (deviceIdentifierList.length == 0) {
- var thisTable = $(".DTTT_selected").closest('.dataTables_wrapper').find('.dataTable').dataTable();
- thisTable.api().rows().every(function () {
- if ($(this.node()).hasClass('DTTT_selected')) {
- var deviceId = $(thisTable.api().row(this).node()).data('deviceid');
- var deviceType = $(thisTable.api().row(this).node()).data('devicetype');
- deviceIdentifierList.push({
- "id": deviceId,
- "type": deviceType
- });
- }
- });
- }
-
- return deviceIdentifierList;
-}
/*
* On operation click function.
* @param selection: Selected operation
*/
function operationSelect(selection) {
- var deviceIdList = getSelectedDeviceIds();
- if (deviceIdList == 0) {
- $(modalPopupContent).html($("#errorOperations").html());
- } else {
- $(modalPopupContent).addClass("operation-data");
- $(modalPopupContent).html($(operations + " .operation[data-operation-code=" + selection + "]").html());
- $(modalPopupContent).data("operation-code", selection);
- }
+ $(modalPopupContent).addClass("operation-data");
+ $(modalPopupContent).html($(" .operation[data-operation-code=" + selection + "]").html());
+ $(modalPopupContent).data("operation-code", selection);
showPopup();
}
-function getDevicesByTypes(deviceList) {
- var deviceTypes = {};
- $.each(deviceList, function (index, item) {
- if (!deviceTypes[item.type]) {
- deviceTypes[item.type] = [];
- }
- if (item.type == platformTypeConstants.ANDROID ||
- item.type == platformTypeConstants.IOS || item.type == platformTypeConstants.WINDOWS) {
- deviceTypes[item.type].push(item.id);
+function submitForm(formId) {
+ var form = $("#" + formId);
+ var uri = form.attr("action");
+ var deviceIdList = form.data("device-id");
+ var contentType = form.data("content-type");
+ var operationCode = form.data("operation-code");
+ var uriEncodedQueryStr = "";
+ var uriEncodedFormStr = "";
+ var payload = {};
+ form.find("input").each(function () {
+ var input = $(this);
+ var prefix;
+ if (input.data("param-type") === "path") {
+ uri = uri.replace("{" + input.attr("id") + "}", input.val());
+ } else if (input.data("param-type") === "query") {
+ prefix = !uriEncodedQueryStr ? "?" : "&";
+ uriEncodedQueryStr += prefix + input.attr("id") + "=" + input.val();
+ } else if (input.data("param-type") === "form") {
+ prefix = !uriEncodedFormStr ? "" : "&";
+ uriEncodedFormStr += prefix + input.attr("id") + "=" + input.val();
+ if(input.attr("type") === "text"){
+ payload[input.attr("id")] = input.val();
+ } else if(input.attr("type") === "checkbox"){
+ payload[input.attr("id")] = input.is(":checked");
+ }
}
});
- return deviceTypes;
-}
-
-//function unloadOperationBar() {
-// $("#showOperationsBtn").addClass("hidden");
-// $(".wr-operations").html("");
-//}
-
-function loadOperationBar(deviceType, ownership, mode) {
- var operationBar = $("#operations-bar");
- var operationBarSrc = operationBar.attr("src");
-
- $.template("operations-bar", operationBarSrc, function (template) {
- var serviceURL = "/api/device-mgt/v1.0/devices/" + deviceType + "/*/features";
- invokerUtil.get(
- serviceURL,
- // success callback
- function (data) {
- var permittedOperations = [];
- var i;
- var permissionList = $("#operations-mod").data("permissions");
- var totalFeatures = JSON.parse(data);
- for (i = 0; i < permissionList[deviceType].length; i++) {
- var j;
- for (j = 0; j < totalFeatures.length; j++) {
- if (permissionList[deviceType][i] == totalFeatures[j]["code"]) {
- if (deviceType == platformTypeConstants.ANDROID) {
- if (totalFeatures[j]["code"] == "DEVICE_UNLOCK") {
- if (ownership == ownershipTypeConstants.COPE) {
- permittedOperations.push(totalFeatures[j]);
- }
- } else if (totalFeatures[j]["code"] == "WIPE_DATA") {
- if (mode == operationBarModeConstants.BULK) {
- if (ownership == ownershipTypeConstants.COPE) {
- permittedOperations.push(totalFeatures[j]);
- }
- } else {
- permittedOperations.push(totalFeatures[j]);
- }
- } else {
- permittedOperations.push(totalFeatures[j]);
- }
- } else {
- permittedOperations.push(totalFeatures[j]);
- }
- }
- }
- }
+ uri += uriEncodedQueryStr;
+ var httpMethod = form.attr("method").toUpperCase();
- var viewModel = {};
- permittedOperations = permittedOperations.filter(function (current) {
- var iconName;
- switch (deviceType) {
- case platformTypeConstants.ANDROID:
- iconName = operationModule.getAndroidIconForFeature(current.code);
- break;
- case platformTypeConstants.WINDOWS:
- iconName = operationModule.getWindowsIconForFeature(current.code);
- break;
- case platformTypeConstants.IOS:
- iconName = operationModule.getIOSIconForFeature(current.code);
- break;
- }
-
- /* 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;
- }
-
- if (iconName) {
- current.icon = iconName;
- }
-
- return current;
- });
-
- viewModel.features = permittedOperations;
- var content = template(viewModel);
- $(".wr-operations").html(content);
- },
- // error callback
- function (message) {
- $(".wr-operations").html(message);
- });
- });
-}
-
-function runOperation(operationName) {
- var deviceIdList = getSelectedDeviceIds();
- var list = getDevicesByTypes(deviceIdList);
+ if (!contentType) {
+ contentType = "application/x-www-form-urlencoded";
+ payload = uriEncodedFormStr;
+ }
- var successCallback = function (data) {
- if (operationName == "NOTIFICATION") {
- $(modalPopupContent).html($("#messageSuccess").html());
- } else {
- $(modalPopupContent).html($("#operationSuccess").html());
+ //setting responses callbacks
+ var defaultStatusClasses = "fw fw-stack-1x";
+ var content = $("#operation-response-template").find(".content");
+ var title = content.find("#title");
+ var statusIcon = content.find("#status-icon");
+ var description = content.find("#description");
+ description.html("");
+ var successCallBack = function (response) {
+ var res = response;
+ try {
+ res = JSON.parse(response).messageFromServer;
+ } catch (err) {
+ //do nothing
}
- showPopup();
+ title.html("Operation Triggered!");
+ statusIcon.attr("class", defaultStatusClasses + " fw-check");
+ description.html(res);
+ console.log("success!");
+ $(modalPopupContent).html(content.html());
};
- var errorCallback = function (data) {
- $(modalPopupContent).html($("#errorOperationUnexpected").html());
- showPopup();
- };
-
- var payload, serviceEndPoint;
- if (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]);
- 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");
- } else {
- invokerUtil.post(serviceEndPoint, payload, successCallback, errorCallback);
- $(modalPopupContent).removeData();
- hidePopup();
+ var errorCallBack = function (response) {
+ console.log(response);
+ title.html("An Error Occurred!");
+ statusIcon.attr("class", defaultStatusClasses + " fw-error");
+ var reason = (response.responseText === "null")?response.statusText:response.responseText;
+ try {
+ reason = JSON.parse(reason).message;
+ } catch (err) {
+ //do nothing
}
+ description.html(reason);
+ console.log("Error!");
+ $(modalPopupContent).html(content.html());
+ };
+ //executing http request
+ if (httpMethod === "GET") {
+ invokerUtil.get(uri, successCallBack, errorCallBack, contentType);
+ } else if (httpMethod === "POST") {
+ var deviceList = deviceIdList.split(",");
+ payload = generatePayload(operationCode, payload, deviceList);
+ invokerUtil.post(uri, payload, successCallBack, errorCallBack, contentType);
+ } else if (httpMethod === "PUT") {
+ invokerUtil.put(uri, payload, successCallBack, errorCallBack, contentType);
+ } else if (httpMethod === "DELETE") {
+ invokerUtil.delete(uri, successCallBack, errorCallBack, contentType);
} else {
- invokerUtil.post(serviceEndPoint, payload, successCallback, errorCallback);
- $(modalPopupContent).removeData();
- hidePopup();
+ title.html("An Error Occurred!");
+ statusIcon.attr("class", defaultStatusClasses + " fw-error");
+ description.html("This operation requires http method: " + httpMethod + " which is not supported yet!");
+ $(modalPopupContent).html(content.html());
}
}
-/*
- * DOM ready functions.
- */
-$(document).ready(function () {
- $(operations).show();
+$(document).on('submit', 'form', function (e) {
+ e.preventDefault();
+ var postOperationRequest = $.ajax({
+ url: $(this).attr("action") + '&' + $(this).serialize(),
+ method: "post"
+ });
+
+ var btnSubmit = $('#btnSend', this);
+ btnSubmit.addClass('hidden');
+
+ var lblSending = $('#lblSending', this);
+ lblSending.removeClass('hidden');
+
+ var lblSent = $('#lblSent', this);
+ postOperationRequest.done(function (data) {
+ lblSending.addClass('hidden');
+ lblSent.removeClass('hidden');
+ setTimeout(function () {
+ hidePopup();
+ }, 3000);
+ });
+
+ postOperationRequest.fail(function (jqXHR, textStatus) {
+ lblSending.addClass('hidden');
+ lblSent.addClass('hidden');
+ });
});
+
+// Constants to define operation types available
+var operationTypeConstants = {
+ "PROFILE": "profile",
+ "CONFIG": "config",
+ "COMMAND": "command"
+};
+
+
+var generatePayload = function (operationCode, operationData, deviceList) {
+ var payload;
+ var operationType;
+ switch (operationCode) {
+ case windowsOperationConstants["CAMERA_OPERATION_CODE"]:
+ operationType = operationTypeConstants["PROFILE"];
+ payload = {
+ "operation": {
+ "enabled": operationData["cameraEnabled"]
+ }
+ };
+ break;
+ case windowsOperationConstants["CHANGE_LOCK_CODE_OPERATION_CODE"]:
+ operationType = operationTypeConstants["PROFILE"];
+ payload = {
+ "operation": {
+ "lockCode": operationData["lockCode"]
+ }
+ };
+ break;
+ case windowsOperationConstants["ENCRYPT_STORAGE_OPERATION_CODE"]:
+ operationType = operationTypeConstants["PROFILE"];
+ payload = {
+ "operation": {
+ "encrypted": operationData["encryptStorageEnabled"]
+ }
+ };
+ break;
+ case windowsOperationConstants["NOTIFICATION_OPERATION_CODE"]:
+ operationType = operationTypeConstants["PROFILE"];
+ payload = {
+ "operation": {
+ "message": operationData["message"]
+ }
+ };
+ break;
+ case windowsOperationConstants["PASSCODE_POLICY_OPERATION_CODE"]:
+ operationType = operationTypeConstants["PROFILE"];
+ payload = {
+ "operation": {
+ "allowSimple": operationData["passcodePolicyAllowSimple"],
+ "requireAlphanumeric": operationData["passcodePolicyRequireAlphanumeric"],
+ "minLength": operationData["passcodePolicyMinLength"],
+ "minComplexChars": operationData["passcodePolicyMinComplexChars"],
+ "maxPINAgeInDays": operationData["passcodePolicyMaxPasscodeAgeInDays"],
+ "pinHistory": operationData["passcodePolicyPasscodeHistory"],
+ "maxFailedAttempts": operationData["passcodePolicyMaxFailedAttempts"]
+ }
+ };
+ break;
+ default:
+ // If the operation is neither of above, it is a command operation
+ operationType = operationTypeConstants["COMMAND"];
+ // Operation payload of a command operation is simply an array of device IDs
+ payload = deviceList;
+ }
+
+ if (operationType === operationTypeConstants["PROFILE"] && deviceList) {
+ payload["deviceIDs"] = deviceList;
+ }
+ return payload;
+};
+
+
+// Constants to define Windows Operation Constants
+var windowsOperationConstants = {
+ "PASSCODE_POLICY_OPERATION_CODE": "PASSCODE_POLICY",
+ "CAMERA_OPERATION_CODE": "CAMERA",
+ "ENCRYPT_STORAGE_OPERATION_CODE": "ENCRYPT_STORAGE",
+ "NOTIFICATION_OPERATION_CODE": "NOTIFICATION",
+ "CHANGE_LOCK_CODE_OPERATION_CODE": "CHANGE_LOCK_CODE"
+};
\ No newline at end of file
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/public/templates/hidden-operations-android.hbs b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/public/templates/hidden-operations-android.hbs
deleted file mode 100644
index 5bf6fcb99..000000000
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/public/templates/hidden-operations-android.hbs
+++ /dev/null
@@ -1,286 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Enable Encryption
-
-
-
Configure
-
-
-
-
-
-
-
Maximum Failed Attempts
-
-
-
-
-
Minimum Length
-
-
-
-
-
PIN History
-
-
-
-
-
Minimum complex characters
-
-
-
-
-
Minimum PIN Age in days
-
-
-
-
-
-
-
- Require Alphanumeric
-
-
-
-
-
-
- Allow simple PIN
-
-
-
-
Configure
-
-
-
-
-
-
-
-
-
Service Set
- Identifier
-
-
-
-
-
-
Password
-
-
-
-
-
Configure
-
-
-
-
-
-
-
-
-
-
App Identifier
-
-
-
-
-
-
- App Type
-
- Public
- Enterprise
-
-
-
-
URL
-
-
-
-
-
Install
-
-
-
-
-
-
Title
-
-
-
-
-
URL
-
-
-
-
-
Install
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Enable Camera
-
-
-
Configure
-
-
-
-
-
-
\ No newline at end of file
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/public/templates/hidden-operations-ios.hbs b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/public/templates/hidden-operations-ios.hbs
deleted file mode 100644
index c16672f99..000000000
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/public/templates/hidden-operations-ios.hbs
+++ /dev/null
@@ -1,366 +0,0 @@
-
-
-
-
-
-
-
-
-
-
App identifier
-
-
-
-
iTunes store ID
-
-
-
-
-
Bundle ID
-
-
-
-
-
-
- Remove App upon dis-enrollment
-
-
-
-
-
-
- Prevent backup of App data
-
-
-
-
Install
-
-
-
-
-
-
-
App identifier
-
-
-
-
Manifest URL
-
-
-
-
-
Bundle ID
-
-
-
-
-
-
- Remove App upon dis-enrollment
-
-
-
-
-
-
- Prevent backup of App data
-
-
-
-
Install
-
-
-
-
-
-
-
-
-
Service Set Identifier
-
-
-
-
-
-
-
-
- Hidden Network
-
-
-
-
-
-
-
- Auto Join
-
-
-
-
-
Proxy Setup
-
-
-
- None
-
-
-
-
Security Type
-
-
-
- WPA/WPA2 Personal
-
-
-
-
Password
-
-
-
-
-
-
Network Type
-
-
-
- Standard
-
-
-
Configure
-
-
-
-
-
-
Account Description
-
-
-
-
-
-
Account Type
-
-
-
-
User Display Name
-
-
-
-
-
-
Email Address
-
-
-
-
-
-
-
-
- Allow user to move messages from this account
-
-
-
-
-
-
-
- Allow Recent Address syncing
-
-
-
-
-
-
-
- Use Only in Mail
-
-
-
-
-
-
-
- Enable S/MIME
-
-
-
-
-
Mail Server and Port
-
-
-
-
Username
-
-
-
-
-
-
Authentication Type
-
-
-
- Password
-
-
-
-
Password
-
-
-
-
-
-
-
-
- Use SSL
-
-
-
-
-
-
-
-
-
-
-
-
Location
-
-
-
-
Device Name
-
-
-
AirPlay password
-
-
-
-
Configure
-
-
-
-
\ No newline at end of file
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.new.operation-bar/operation-bar.hbs b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/public/templates/operation-bar.hbs
similarity index 95%
rename from components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.new.operation-bar/operation-bar.hbs
rename to components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/public/templates/operation-bar.hbs
index 9c836a537..f15d531de 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.new.operation-bar/operation-bar.hbs
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/public/templates/operation-bar.hbs
@@ -1,7 +1,7 @@
{{!
- Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
- WSO2 Inc. licenses this file to you under the Apache License,
+ Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
Version 2.0 (the "License"); you may not use this file except
in compliance with the License.
You may obtain a copy of the License at
@@ -69,7 +69,7 @@
-
-{{#zone "bottomJs"}}
- {{js "js/operation-bar.js"}}
-{{/zone}}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/public/templates/operations.hbs b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/public/templates/operations.hbs
deleted file mode 100644
index 2a96b1503..000000000
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/public/templates/operations.hbs
+++ /dev/null
@@ -1,249 +0,0 @@
-