From f5009d84067f9bb30f472ef673ad97c1415ad46d Mon Sep 17 00:00:00 2001 From: Saad Sahibjan Date: Tue, 20 Sep 2016 16:29:36 +0530 Subject: [PATCH] Added validations for COSU create and edit configurations - Android EMM UI --- .../public/js/policy-create.js | 91 ++++++++++++++++++- .../templates/hidden-operations-android.hbs | 24 ++--- .../mdm.unit.policy.edit/public/js/edit.js | 91 ++++++++++++++++++- .../templates/hidden-operations-android.hbs | 24 ++--- .../mdm.unit.policy.view/public/js/view.js | 18 ++++ .../templates/hidden-operations-android.hbs | 26 +++--- 6 files changed, 235 insertions(+), 39 deletions(-) diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.ui/src/main/resources/jaggeryapps/devicemgt/app/units/mdm.unit.policy.create/public/js/policy-create.js b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.ui/src/main/resources/jaggeryapps/devicemgt/app/units/mdm.unit.policy.create/public/js/policy-create.js index 655acfc1d7..6ee4e6d822 100644 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.ui/src/main/resources/jaggeryapps/devicemgt/app/units/mdm.unit.policy.create/public/js/policy-create.js +++ b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.ui/src/main/resources/jaggeryapps/devicemgt/app/units/mdm.unit.policy.create/public/js/policy-create.js @@ -49,7 +49,9 @@ var androidOperationConstants = { "VPN_OPERATION": "vpn", "VPN_OPERATION_CODE": "VPN", "APPLICATION_OPERATION":"app-restriction", - "APPLICATION_OPERATION_CODE":"APP-RESTRICTION" + "APPLICATION_OPERATION_CODE":"APP-RESTRICTION", + "KIOSK_APPS_CODE":"KIOSK_APPS", + "KIOSK_APPS":"cosu-whitelisted-applications" }; // Constants to define iOS Operation Constants @@ -520,6 +522,93 @@ validateStep["policy-profile"] = function () { validationStatusArray.push(validationStatus); } + if ($.inArray(androidOperationConstants["KIOSK_APPS_CODE"], configuredOperations) != -1) { + //If COSU whitelisting applications configured + operation = androidOperationConstants["KIOSK_APPS"]; + // Initializing continueToCheckNextInputs to true + continueToCheckNextInputs = true; + + var whitelistedApplicationsGridChildInputs = "div#cosu-whitelisted-applications .child-input"; + + if (continueToCheckNextInputs) { + if ($(whitelistedApplicationsGridChildInputs).length == 0) { + validationStatus = { + "error": true, + "subErrorMsg": "Applications are not provided in application whitelist list.", + "erroneousFeature": operation + }; + continueToCheckNextInputs = false; + } + else { + childInputCount = 0; + childInputArray = []; + emptyChildInputCount = 0; + duplicatesExist = false; + // Looping through each child input + $(whitelistedApplicationsGridChildInputs).each(function () { + childInputCount++; + if (childInputCount % 2 == 0) { + // If child input is of second column + childInput = $(this).val(); + childInputArray.push(childInput); + // Updating emptyChildInputCount + if (!childInput) { + // If child input field is empty + emptyChildInputCount++; + } + } + }); + // Checking for duplicates + initialChildInputArrayLength = childInputArray.length; + if (emptyChildInputCount == 0 && initialChildInputArrayLength > 1) { + for (m = 0; m < (initialChildInputArrayLength - 1); m++) { + poppedChildInput = childInputArray.pop(); + for (n = 0; n < childInputArray.length; n++) { + if (poppedChildInput == childInputArray[n]) { + duplicatesExist = true; + break; + } + } + if (duplicatesExist) { + break; + } + } + } + // Updating validationStatus + if (emptyChildInputCount > 0) { + // If empty child inputs are present + validationStatus = { + "error": true, + "subErrorMsg": "One or more package names of " + + "applications are empty.", + "erroneousFeature": operation + }; + continueToCheckNextInputs = false; + } else if (duplicatesExist) { + // If duplicate input is present + validationStatus = { + "error": true, + "subErrorMsg": "Duplicate values exist with " + + "for package names.", + "erroneousFeature": operation + }; + continueToCheckNextInputs = false; + } + + } + } + + if (continueToCheckNextInputs) { + validationStatus = { + "error": false, + "okFeature": operation + }; + } + + // Updating validationStatusArray with validationStatus + validationStatusArray.push(validationStatus); + + } } }if (policy["platform"] == platformTypeConstants["WINDOWS"]) { if (configuredOperations.length == 0) { diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.ui/src/main/resources/jaggeryapps/devicemgt/app/units/mdm.unit.policy.create/public/templates/hidden-operations-android.hbs b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.ui/src/main/resources/jaggeryapps/devicemgt/app/units/mdm.unit.policy.create/public/templates/hidden-operations-android.hbs index cc8318d0d9..58b2aedad5 100644 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.ui/src/main/resources/jaggeryapps/devicemgt/app/units/mdm.unit.policy.create/public/templates/hidden-operations-android.hbs +++ b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.ui/src/main/resources/jaggeryapps/devicemgt/app/units/mdm.unit.policy.create/public/templates/hidden-operations-android.hbs @@ -77,14 +77,14 @@ - + Whitelist Apps (COSU) - - - + + + @@ -1333,14 +1333,14 @@ -
-
+
-