Merge branch 'release-3.0.x' of https://github.com/wso2/carbon-device-mgt-plugins into release-3.0.x

revert-dabc3590
Menaka Jayawardena 8 years ago
commit 862a14c2b5

@ -47,6 +47,7 @@
<dependency> <dependency>
<groupId>org.json.wso2</groupId> <groupId>org.json.wso2</groupId>
<artifactId>json</artifactId> <artifactId>json</artifactId>
<version>${analytics.json.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>junit</groupId> <groupId>junit</groupId>

@ -18,6 +18,7 @@
package org.wso2.extension.siddhi.execution.json; package org.wso2.extension.siddhi.execution.json;
import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import org.wso2.siddhi.core.config.ExecutionPlanContext; import org.wso2.siddhi.core.config.ExecutionPlanContext;
import org.wso2.siddhi.core.exception.ExecutionPlanRuntimeException; import org.wso2.siddhi.core.exception.ExecutionPlanRuntimeException;
@ -68,10 +69,13 @@ public class getPropertyFunctionExtension extends FunctionExecutor {
} }
String jsonString = (String) data[0]; String jsonString = (String) data[0];
String property = (String) data[1]; String property = (String) data[1];
JSONObject jsonObject = null;
JSONObject jsonObject = new JSONObject(jsonString); try {
Object value = jsonObject.get(property).toString(); jsonObject = new JSONObject(jsonString);
return value; return jsonObject.get(property).toString();
} catch (JSONException e) {
throw new ExecutionPlanRuntimeException("Cannot parse JSON String in json:getPeroperty() function. " + e);
}
} }
@Override @Override

@ -15,6 +15,9 @@
* specific language governing permissions and limitations * specific language governing permissions and limitations
* under the License. * under the License.
*/ */
var configuredOperations = [];
// Constants to define Android Operation Constants // Constants to define Android Operation Constants
var androidOperationConstants = { var androidOperationConstants = {
"PASSCODE_POLICY_OPERATION": "passcode-policy", "PASSCODE_POLICY_OPERATION": "passcode-policy",
@ -60,21 +63,56 @@ var updateGroupedInputVisibility = function (domElement) {
* *
* This method will be invoked from the relevant cdmf unit when the edit page gets loaded. * This method will be invoked from the relevant cdmf unit when the edit page gets loaded.
* *
* @param configuredOperations selected configurations. * @param profileFeatureList saved feature list
*/ */
var polulateProfileOperations = function (configuredOperations) { var polulateProfileOperations = function (profileFeatureList) {
var selectedOperations = androidOperationModule.populateProfile(profileFeatureList);
$(".wr-advance-operations li.grouped-input").each(function () { $(".wr-advance-operations li.grouped-input").each(function () {
updateGroupedInputVisibility(this); updateGroupedInputVisibility(this);
}); });
for (var i = 0; i < configuredOperations.length; ++i) { for (var i = 0; i < selectedOperations.length; ++i) {
var configuredOperation = configuredOperations[i]; var selectedOperation = selectedOperations[i];
$(".operation-data").filterByData("operation-code", configuredOperation) $(".operation-data").filterByData("operation-code", selectedOperation)
.find(".panel-title .wr-input-control.switch input[type=checkbox]").each(function () { .find(".panel-title .wr-input-control.switch input[type=checkbox]").each(function () {
$(this).click(); $(this).click();
}); });
} }
}; };
/**
* Generates policy profile feature list which will be saved with the profile.
*
* This function will be invoked from the relevant cdmf unit at the time of policy creation.
*
* @returns {Array} profile payloads
*/
var generateProfileFeaturesList = function () {
var profilePayloads = [];
var key;
for (key in policy["profile"]) {
if (policy["profile"].hasOwnProperty(key)) {
profilePayloads.push({
"featureCode": key,
"deviceType": policy["platform"],
"content": policy["profile"][key]
});
}
}
return profilePayloads;
};
/**
* Generates policy profile object which will be saved with the profile.
*
* This function will be invoked from the relevant cdmf unit at the time of policy creation.
*
* @returns {object} generated profile.
*/
var generatePolicyProfile = function () {
return androidOperationModule.generateProfile(configuredOperations);
};
/** /**
* Checks if provided number is valid against a range. * Checks if provided number is valid against a range.
* *
@ -542,30 +580,6 @@ var validatePolicyProfile = function () {
return wizardIsToBeContinued; return wizardIsToBeContinued;
}; };
/**
* Generates policy profile object which will be saved with the profile.
*
* This function will be invoked from the relevant cdmf unit at the time of policy creation.
*
* @returns {Array} profile payloads
*/
var generatePolicyProfile = function () {
var profilePayloads = [];
// traverses key by key in policy["profile"]
var key;
for (key in policy["profile"]) {
if (policy["profile"].hasOwnProperty(key)) {
profilePayloads.push({
"featureCode": key,
"deviceType": policy["platform"],
"content": policy["profile"][key]
});
}
}
return profilePayloads;
};
// Start of HTML embedded invoke methods // Start of HTML embedded invoke methods
var showAdvanceOperation = function (operation, button) { var showAdvanceOperation = function (operation, button) {
$(button).addClass('selected'); $(button).addClass('selected');
@ -685,6 +699,22 @@ var slideDownPaneAgainstValueSet = function (selectElement, paneID, valueSet) {
); );
} }
}; };
var slideDownPaneAgainstValueSetForRadioButtons = function (selectElement, paneID, valueSet) {
var selectedValueOnChange = selectElement.value;
var slideDownVotes = 0;
for (var i = 0; i < valueSet.length; i++) {
if (selectedValueOnChange == valueSet[i]) {
slideDownVotes++;
}
}
var paneSelector = "#" + paneID;
if (slideDownVotes > 0) {
$(paneSelector).removeClass("hidden");
} else {
$(paneSelector).addClass("hidden");
}
};
// End of HTML embedded invoke methods // End of HTML embedded invoke methods

@ -16,8 +16,6 @@
* under the License. * under the License.
*/ */
var configuredOperations = [];
/** /**
* Method to update the visibility (i.e. disabled or enabled view) * Method to update the visibility (i.e. disabled or enabled view)
* of grouped input according to the values * of grouped input according to the values
@ -47,9 +45,10 @@ var updateGroupedInputVisibility = function (domElement) {
* *
* This method will be invoked from the relevant cdmf unit when the edit page gets loaded. * This method will be invoked from the relevant cdmf unit when the edit page gets loaded.
* *
* @param selectedConfigurations selected configurations. * @param profileFeatureList selected configurations.
*/ */
var polulateProfileOperations = function (selectedConfigurations) { var polulateProfileOperations = function (profileFeatureList) {
var selectedConfigurations = androidOperationModule.populateProfile(profileFeatureList);
$(".wr-advance-operations li.grouped-input").each(function () { $(".wr-advance-operations li.grouped-input").each(function () {
updateGroupedInputVisibility(this); updateGroupedInputVisibility(this);
}); });
@ -169,35 +168,6 @@ var slideDownPaneAgainstValueSetForRadioButtons = function (selectElement, paneI
}; };
// End of HTML embedded invoke methods // End of HTML embedded invoke methods
// Start of functions related to grid-input-view
/**
* Method to set count id to cloned elements.
* @param {object} addFormContainer
*/
var setId = function (addFormContainer) {
$(addFormContainer).find("[data-add-form-clone]").each(function (i) {
$(this).attr("id", $(this).attr("data-add-form-clone").slice(1) + "-" + (i + 1));
if ($(this).find(".index").length > 0) {
$(this).find(".index").html(i + 1);
}
});
};
/**
* Method to set count id to cloned elements.
* @param {object} addFormContainer
*/
var showHideHelpText = function (addFormContainer) {
var helpText = "[data-help-text=add-form]";
if ($(addFormContainer).find("[data-add-form-clone]").length > 0) {
$(addFormContainer).find(helpText).hide();
} else {
$(addFormContainer).find(helpText).show();
}
};
/** /**
* This method will display appropriate fields based on wifi type * This method will display appropriate fields based on wifi type
* @param {object} wifi type select object * @param {object} wifi type select object
@ -229,148 +199,19 @@ var changeAndroidWifiPolicyEAP = function (select, superSelect) {
}; };
$(document).ready(function () { $(document).ready(function () {
// Maintains an array of configured features of the profile
var advanceOperations = ".wr-advance-operations"; var advanceOperations = ".wr-advance-operations";
$(advanceOperations).on("click", ".wr-input-control.switch", function (event) { $(advanceOperations).on("click", ".wr-input-control.switch", function (event) {
var operationCode = $(this).parents(".operation-data").data("operation-code");
var operation = $(this).parents(".operation-data").data("operation"); var operation = $(this).parents(".operation-data").data("operation");
var operationDataWrapper = $(this).data("target");
// prevents event bubbling by figuring out what element it's being called from. // prevents event bubbling by figuring out what element it's being called from.
if (event.target.tagName == "INPUT") { if (event.target.tagName == "INPUT") {
var featureConfiguredIcon; var featureConfiguredIcon;
if ($("input[type='checkbox']", this).is(":checked")) { if ($("input[type='checkbox']", this).is(":checked")) {
configuredOperations.push(operationCode);
// when a feature is enabled, if "zero-configured-features" msg is available, hide that.
var zeroConfiguredOperationsErrorMsg = "#policy-profile-main-error-msg";
if (!$(zeroConfiguredOperationsErrorMsg).hasClass("hidden")) {
$(zeroConfiguredOperationsErrorMsg).addClass("hidden");
}
// add configured-state-icon to the feature // add configured-state-icon to the feature
featureConfiguredIcon = "#" + operation + "-configured"; featureConfiguredIcon = "#" + operation + "-configured";
if ($(featureConfiguredIcon).hasClass("hidden")) { if ($(featureConfiguredIcon).hasClass("hidden")) {
$(featureConfiguredIcon).removeClass("hidden"); $(featureConfiguredIcon).removeClass("hidden");
} }
} else {
//splicing the array if operation is present.
var index = $.inArray(operationCode, configuredOperations);
if (index != -1) {
configuredOperations.splice(index, 1);
}
// when a feature is disabled, clearing all its current configured, error or success states
var subErrorMsgWrapper = "#" + operation + "-feature-error-msg";
var subErrorIcon = "#" + operation + "-error";
var subOkIcon = "#" + operation + "-ok";
featureConfiguredIcon = "#" + operation + "-configured";
if (!$(subErrorMsgWrapper).hasClass("hidden")) {
$(subErrorMsgWrapper).addClass("hidden");
}
if (!$(subErrorIcon).hasClass("hidden")) {
$(subErrorIcon).addClass("hidden");
}
if (!$(subOkIcon).hasClass("hidden")) {
$(subOkIcon).addClass("hidden");
}
if (!$(featureConfiguredIcon).hasClass("hidden")) {
$(featureConfiguredIcon).addClass("hidden");
}
// reinitializing input fields into the defaults
$(operationDataWrapper + " input").each(
function () {
if ($(this).is("input:text")) {
$(this).val($(this).data("default"));
} else if ($(this).is("input:password")) {
$(this).val("");
} else if ($(this).is("input:checkbox")) {
$(this).prop("checked", $(this).data("default"));
// if this checkbox is the parent input of a grouped-input
if ($(this).hasClass("parent-input")) {
var groupedInput = $(this).parent().parent().parent();
updateGroupedInputVisibility(groupedInput);
}
}
}
);
// reinitializing select fields into the defaults
$(operationDataWrapper + " select").each(
function () {
var defaultOption = $(this).data("default");
$("option:eq(" + defaultOption + ")", this).prop("selected", "selected");
}
);
// collapsing expanded-panes (upon the selection of html-select-options) if any
$(operationDataWrapper + " .expanded").each(
function () {
if ($(this).hasClass("expanded")) {
$(this).removeClass("expanded");
}
$(this).slideUp();
}
);
// removing all entries of grid-input elements if exist
$(operationDataWrapper + " .grouped-array-input").each(
function () {
var gridInputs = $(this).find("[data-add-form-clone]");
if (gridInputs.length > 0) {
gridInputs.remove();
}
var helpTexts = $(this).find("[data-help-text=add-form]");
if (helpTexts.length > 0) {
helpTexts.show();
}
} }
);
}
}
});
// adding support for cloning multiple profiles per feature with cloneable class definitions
$(advanceOperations).on("click", ".multi-view.add.enabled", function () {
// get a copy of .cloneable and create new .cloned div element
var cloned = "<div class='cloned'><hr>" + $(".cloneable", $(this).parent().parent()).html() + "</div>";
// append newly created .cloned div element to panel-body
$(this).parent().parent().append(cloned);
// enable remove action of newly cloned div element
$(".cloned", $(this).parent().parent()).each(
function () {
if ($(".multi-view.remove", this).hasClass("disabled")) {
$(".multi-view.remove", this).removeClass("disabled");
} }
if (!$(".multi-view.remove", this).hasClass("enabled")) {
$(".multi-view.remove", this).addClass("enabled");
}
}
);
});
$(advanceOperations).on("click", ".multi-view.remove.enabled", function () {
$(this).parent().remove();
});
// enabling or disabling grouped-input based on the status of a parent check-box
$(advanceOperations).on("click", ".grouped-input", function () {
updateGroupedInputVisibility(this);
});
// add form entry click function for grid inputs
$(advanceOperations).on("click", "[data-click-event=add-form]", function () {
var addFormContainer = $("[data-add-form-container=" + $(this).attr("href") + "]");
var clonedForm = $("[data-add-form=" + $(this).attr("href") + "]").clone().find("[data-add-form-element=clone]").attr("data-add-form-clone", $(this).attr("href"));
// adding class .child-input to capture text-input-array-values
$("input, select", clonedForm).addClass("child-input");
$(addFormContainer).append(clonedForm);
setId(addFormContainer);
showHideHelpText(addFormContainer);
});
// remove form entry click function for grid inputs
$(advanceOperations).on("click", "[data-click-event=remove-form]", function () {
var addFormContainer = $("[data-add-form-container=" + $(this).attr("href") + "]");
$(this).closest("[data-add-form-element=clone]").remove();
setId(addFormContainer);
showHideHelpText(addFormContainer);
}); });
}); });

@ -16,6 +16,8 @@
* under the License. * under the License.
*/ */
var configuredOperations = [];
var androidOperationConstants = { var androidOperationConstants = {
"PASSCODE_POLICY_OPERATION": "passcode-policy", "PASSCODE_POLICY_OPERATION": "passcode-policy",
"PASSCODE_POLICY_OPERATION_CODE": "PASSCODE_POLICY", "PASSCODE_POLICY_OPERATION_CODE": "PASSCODE_POLICY",
@ -523,13 +525,13 @@ var validatePolicyProfile = function () {
}; };
/** /**
* Generates policy profile object which will be saved with the profile. * Generates policy profile feature list which will be saved with the profile.
* *
* This function will be invoked from the relevant cdmf unit at the time of policy creation. * This function will be invoked from the relevant cdmf unit at the time of policy creation.
* *
* @returns {Array} profile payloads * @returns {Array} profile payloads
*/ */
var generatePolicyProfile = function () { var generateProfileFeaturesList = function () {
var profilePayloads = []; var profilePayloads = [];
// traverses key by key in policy["profile"] // traverses key by key in policy["profile"]
var key; var key;
@ -546,6 +548,24 @@ var generatePolicyProfile = function () {
return profilePayloads; return profilePayloads;
}; };
/**
* Generates policy profile object which will be saved with the profile.
*
* This function will be invoked from the relevant cdmf unit at the time of policy creation.
*
* @returns {object} generated profile.
*/
var generatePolicyProfile = function () {
return androidOperationModule.generateProfile(configuredOperations);
};
/**
* Resets policy profile configurations.
*/
var resetPolicyProfile = function () {
configuredOperations = [];
};
// Start of HTML embedded invoke methods // Start of HTML embedded invoke methods
var showAdvanceOperation = function (operation, button) { var showAdvanceOperation = function (operation, button) {
$(button).addClass('selected'); $(button).addClass('selected');
@ -665,6 +685,22 @@ var slideDownPaneAgainstValueSet = function (selectElement, paneID, valueSet) {
); );
} }
}; };
var slideDownPaneAgainstValueSetForRadioButtons = function (selectElement, paneID, valueSet) {
var selectedValueOnChange = selectElement.value;
var slideDownVotes = 0;
for (var i = 0; i < valueSet.length; i++) {
if (selectedValueOnChange == valueSet[i]) {
slideDownVotes++;
}
}
var paneSelector = "#" + paneID;
if (slideDownVotes > 0) {
$(paneSelector).removeClass("hidden");
} else {
$(paneSelector).addClass("hidden");
}
};
// End of HTML embedded invoke methods // End of HTML embedded invoke methods

@ -16,6 +16,8 @@
* under the License. * under the License.
*/ */
var configuredOperations = [];
var windowsOperationConstants = { var windowsOperationConstants = {
"PASSCODE_POLICY_OPERATION": "passcode-policy", "PASSCODE_POLICY_OPERATION": "passcode-policy",
"PASSCODE_POLICY_OPERATION_CODE": "PASSCODE_POLICY", "PASSCODE_POLICY_OPERATION_CODE": "PASSCODE_POLICY",
@ -52,21 +54,60 @@ var updateGroupedInputVisibility = function (domElement) {
* *
* This method will be invoked from the relevant cdmf unit when the edit page gets loaded. * This method will be invoked from the relevant cdmf unit when the edit page gets loaded.
* *
* @param configuredOperations selected configurations. * @param profileFeatureList saved feature list
*/ */
var polulateProfileOperations = function (configuredOperations) { var polulateProfileOperations = function (profileFeatureList) {
var selectedOperations = windowsOperationModule.populateProfile(profileFeatureList);
$(".wr-advance-operations li.grouped-input").each(function () { $(".wr-advance-operations li.grouped-input").each(function () {
updateGroupedInputVisibility(this); updateGroupedInputVisibility(this);
}); });
for (var i = 0; i < configuredOperations.length; ++i) { for (var i = 0; i < selectedOperations.length; ++i) {
var configuredOperation = configuredOperations[i]; var selectedOperation = selectedOperations[i];
$(".operation-data").filterByData("operation-code", configuredOperation) $(".operation-data").filterByData("operation-code", selectedOperation)
.find(".panel-title .wr-input-control.switch input[type=checkbox]").each(function () { .find(".panel-title .wr-input-control.switch input[type=checkbox]").each(function () {
$(this).click(); $(this).click();
}); });
} }
}; };
/**
* Generates policy profile feature list which will be saved with the profile.
*
* This function will be invoked from the relevant cdmf unit at the time of policy creation.
*
* @returns {Array} profile payloads
*/
var generateProfileFeaturesList = function () {
var profilePayloads = [];
// traverses key by key in policy["profile"]
var key;
for (key in policy["profile"]) {
if (policy["profile"].hasOwnProperty(key)) {
if (key == windowsOperationConstants["PASSCODE_POLICY_OPERATION_CODE"]) {
policy["profile"][key].enablePassword = true;
}
profilePayloads.push({
"featureCode": key,
"deviceType": policy["platform"],
"content": policy["profile"][key]
});
}
}
return profilePayloads;
};
/**
* Generates policy profile object which will be saved with the profile.
*
* This function will be invoked from the relevant cdmf unit at the time of policy creation.
*
* @returns {object} generated profile.
*/
var generatePolicyProfile = function () {
return windowsOperationModule.generateProfile(configuredOperations);
};
/** /**
* Checks if provided number is valid against a range. * Checks if provided number is valid against a range.
* *
@ -256,33 +297,6 @@ var validatePolicyProfile = function () {
return wizardIsToBeContinued; return wizardIsToBeContinued;
}; };
/**
* Generates policy profile object which will be saved with the profile.
*
* This function will be invoked from the relevant cdmf unit at the time of policy creation.
*
* @returns {Array} profile payloads
*/
var generatePolicyProfile = function () {
var profilePayloads = [];
// traverses key by key in policy["profile"]
var key;
for (key in policy["profile"]) {
if (key == windowsOperationConstants["PASSCODE_POLICY_OPERATION_CODE"]) {
policy["profile"][key].enablePassword = true;
}
if (policy["profile"].hasOwnProperty(key)) {
profilePayloads.push({
"featureCode": key,
"deviceType": policy["platform"],
"content": policy["profile"][key]
});
}
}
return profilePayloads;
};
// Start of HTML embedded invoke methods // Start of HTML embedded invoke methods
var showAdvanceOperation = function (operation, button) { var showAdvanceOperation = function (operation, button) {
$(button).addClass('selected'); $(button).addClass('selected');

@ -16,8 +16,6 @@
* under the License. * under the License.
*/ */
var configuredOperations = [];
/** /**
* Method to update the visibility (i.e. disabled or enabled view) * Method to update the visibility (i.e. disabled or enabled view)
* of grouped input according to the values * of grouped input according to the values
@ -47,9 +45,10 @@ var updateGroupedInputVisibility = function (domElement) {
* *
* This method will be invoked from the relevant cdmf unit when the edit page gets loaded. * This method will be invoked from the relevant cdmf unit when the edit page gets loaded.
* *
* @param selectedConfigurations selected configurations. * @param profileFeatureList selected configurations.
*/ */
var polulateProfileOperations = function (selectedConfigurations) { var polulateProfileOperations = function (profileFeatureList) {
var selectedConfigurations = windowsOperationModule.populateProfile(profileFeatureList);
$(".wr-advance-operations li.grouped-input").each(function () { $(".wr-advance-operations li.grouped-input").each(function () {
updateGroupedInputVisibility(this); updateGroupedInputVisibility(this);
}); });
@ -168,208 +167,20 @@ var slideDownPaneAgainstValueSetForRadioButtons = function (selectElement, paneI
}; };
// End of HTML embedded invoke methods // End of HTML embedded invoke methods
// Start of functions related to grid-input-view
/**
* Method to set count id to cloned elements.
* @param {object} addFormContainer
*/
var setId = function (addFormContainer) {
$(addFormContainer).find("[data-add-form-clone]").each(function (i) {
$(this).attr("id", $(this).attr("data-add-form-clone").slice(1) + "-" + (i + 1));
if ($(this).find(".index").length > 0) {
$(this).find(".index").html(i + 1);
}
});
};
/**
* Method to set count id to cloned elements.
* @param {object} addFormContainer
*/
var showHideHelpText = function (addFormContainer) {
var helpText = "[data-help-text=add-form]";
if ($(addFormContainer).find("[data-add-form-clone]").length > 0) {
$(addFormContainer).find(helpText).hide();
} else {
$(addFormContainer).find(helpText).show();
}
};
/**
* This method will display appropriate fields based on wifi type
* @param {object} wifi type select object
*/
var changeAndroidWifiPolicy = function (select) {
slideDownPaneAgainstValueSet(select, 'control-wifi-password', ['wep', 'wpa', '802eap']);
slideDownPaneAgainstValueSet(select, 'control-wifi-eap', ['802eap']);
slideDownPaneAgainstValueSet(select, 'control-wifi-phase2', ['802eap']);
slideDownPaneAgainstValueSet(select, 'control-wifi-identity', ['802eap']);
slideDownPaneAgainstValueSet(select, 'control-wifi-anoidentity', ['802eap']);
slideDownPaneAgainstValueSet(select, 'control-wifi-cacert', ['802eap']);
};
/**
* This method will display appropriate fields based on wifi EAP type
* @param {object} wifi eap select object
* @param {object} wifi type select object
*/
var changeAndroidWifiPolicyEAP = function (select, superSelect) {
slideDownPaneAgainstValueSet(select, 'control-wifi-password', ['peap', 'ttls', 'pwd', 'fast', 'leap']);
slideDownPaneAgainstValueSet(select, 'control-wifi-phase2', ['peap', 'ttls', 'fast']);
slideDownPaneAgainstValueSet(select, 'control-wifi-provisioning', ['fast']);
slideDownPaneAgainstValueSet(select, 'control-wifi-identity', ['peap', 'tls', 'ttls', 'pwd', 'fast', 'leap']);
slideDownPaneAgainstValueSet(select, 'control-wifi-anoidentity', ['peap', 'ttls']);
slideDownPaneAgainstValueSet(select, 'control-wifi-cacert', ['peap', 'tls', 'ttls']);
if (superSelect.value != '802eap') {
changeAndroidWifiPolicy(superSelect);
}
};
$(document).ready(function () { $(document).ready(function () {
// Maintains an array of configured features of the profile
var advanceOperations = ".wr-advance-operations"; var advanceOperations = ".wr-advance-operations";
$(advanceOperations).on("click", ".wr-input-control.switch", function (event) { $(advanceOperations).on("click", ".wr-input-control.switch", function (event) {
var operationCode = $(this).parents(".operation-data").data("operation-code");
var operation = $(this).parents(".operation-data").data("operation"); var operation = $(this).parents(".operation-data").data("operation");
var operationDataWrapper = $(this).data("target");
// prevents event bubbling by figuring out what element it's being called from. // prevents event bubbling by figuring out what element it's being called from.
if (event.target.tagName == "INPUT") { if (event.target.tagName == "INPUT") {
var featureConfiguredIcon; var featureConfiguredIcon;
if ($("input[type='checkbox']", this).is(":checked")) { if ($("input[type='checkbox']", this).is(":checked")) {
configuredOperations.push(operationCode);
// when a feature is enabled, if "zero-configured-features" msg is available, hide that.
var zeroConfiguredOperationsErrorMsg = "#policy-profile-main-error-msg";
if (!$(zeroConfiguredOperationsErrorMsg).hasClass("hidden")) {
$(zeroConfiguredOperationsErrorMsg).addClass("hidden");
}
// add configured-state-icon to the feature // add configured-state-icon to the feature
featureConfiguredIcon = "#" + operation + "-configured"; featureConfiguredIcon = "#" + operation + "-configured";
if ($(featureConfiguredIcon).hasClass("hidden")) { if ($(featureConfiguredIcon).hasClass("hidden")) {
$(featureConfiguredIcon).removeClass("hidden"); $(featureConfiguredIcon).removeClass("hidden");
} }
} else {
//splicing the array if operation is present.
var index = $.inArray(operationCode, configuredOperations);
if (index != -1) {
configuredOperations.splice(index, 1);
}
// when a feature is disabled, clearing all its current configured, error or success states
var subErrorMsgWrapper = "#" + operation + "-feature-error-msg";
var subErrorIcon = "#" + operation + "-error";
var subOkIcon = "#" + operation + "-ok";
featureConfiguredIcon = "#" + operation + "-configured";
if (!$(subErrorMsgWrapper).hasClass("hidden")) {
$(subErrorMsgWrapper).addClass("hidden");
}
if (!$(subErrorIcon).hasClass("hidden")) {
$(subErrorIcon).addClass("hidden");
}
if (!$(subOkIcon).hasClass("hidden")) {
$(subOkIcon).addClass("hidden");
}
if (!$(featureConfiguredIcon).hasClass("hidden")) {
$(featureConfiguredIcon).addClass("hidden");
}
// reinitializing input fields into the defaults
$(operationDataWrapper + " input").each(
function () {
if ($(this).is("input:text")) {
$(this).val($(this).data("default"));
} else if ($(this).is("input:password")) {
$(this).val("");
} else if ($(this).is("input:checkbox")) {
$(this).prop("checked", $(this).data("default"));
// if this checkbox is the parent input of a grouped-input
if ($(this).hasClass("parent-input")) {
var groupedInput = $(this).parent().parent().parent();
updateGroupedInputVisibility(groupedInput);
}
}
}
);
// reinitializing select fields into the defaults
$(operationDataWrapper + " select").each(
function () {
var defaultOption = $(this).data("default");
$("option:eq(" + defaultOption + ")", this).prop("selected", "selected");
}
);
// collapsing expanded-panes (upon the selection of html-select-options) if any
$(operationDataWrapper + " .expanded").each(
function () {
if ($(this).hasClass("expanded")) {
$(this).removeClass("expanded");
}
$(this).slideUp();
}
);
// removing all entries of grid-input elements if exist
$(operationDataWrapper + " .grouped-array-input").each(
function () {
var gridInputs = $(this).find("[data-add-form-clone]");
if (gridInputs.length > 0) {
gridInputs.remove();
}
var helpTexts = $(this).find("[data-help-text=add-form]");
if (helpTexts.length > 0) {
helpTexts.show();
}
}
);
}
}
});
// adding support for cloning multiple profiles per feature with cloneable class definitions
$(advanceOperations).on("click", ".multi-view.add.enabled", function () {
// get a copy of .cloneable and create new .cloned div element
var cloned = "<div class='cloned'><hr>" + $(".cloneable", $(this).parent().parent()).html() + "</div>";
// append newly created .cloned div element to panel-body
$(this).parent().parent().append(cloned);
// enable remove action of newly cloned div element
$(".cloned", $(this).parent().parent()).each(
function () {
if ($(".multi-view.remove", this).hasClass("disabled")) {
$(".multi-view.remove", this).removeClass("disabled");
} }
if (!$(".multi-view.remove", this).hasClass("enabled")) {
$(".multi-view.remove", this).addClass("enabled");
} }
}
);
});
$(advanceOperations).on("click", ".multi-view.remove.enabled", function () {
$(this).parent().remove();
});
// enabling or disabling grouped-input based on the status of a parent check-box
$(advanceOperations).on("click", ".grouped-input", function () {
updateGroupedInputVisibility(this);
});
// add form entry click function for grid inputs
$(advanceOperations).on("click", "[data-click-event=add-form]", function () {
var addFormContainer = $("[data-add-form-container=" + $(this).attr("href") + "]");
var clonedForm = $("[data-add-form=" + $(this).attr("href") + "]").clone().find("[data-add-form-element=clone]").attr("data-add-form-clone", $(this).attr("href"));
// adding class .child-input to capture text-input-array-values
$("input, select", clonedForm).addClass("child-input");
$(addFormContainer).append(clonedForm);
setId(addFormContainer);
showHideHelpText(addFormContainer);
});
// remove form entry click function for grid inputs
$(advanceOperations).on("click", "[data-click-event=remove-form]", function () {
var addFormContainer = $("[data-add-form-container=" + $(this).attr("href") + "]");
$(this).closest("[data-add-form-element=clone]").remove();
setId(addFormContainer);
showHideHelpText(addFormContainer);
}); });
}); });

@ -16,6 +16,8 @@
* under the License. * under the License.
*/ */
var configuredOperations = [];
var windowsOperationConstants = { var windowsOperationConstants = {
"PASSCODE_POLICY_OPERATION": "passcode-policy", "PASSCODE_POLICY_OPERATION": "passcode-policy",
"PASSCODE_POLICY_OPERATION_CODE": "PASSCODE_POLICY", "PASSCODE_POLICY_OPERATION_CODE": "PASSCODE_POLICY",
@ -237,21 +239,21 @@ var validatePolicyProfile = function () {
}; };
/** /**
* Generates policy profile object which will be saved with the profile. * Generates policy profile feature list which will be saved with the profile.
* *
* This function will be invoked from the relevant cdmf unit at the time of policy creation. * This function will be invoked from the relevant cdmf unit at the time of policy creation.
* *
* @returns {Array} profile payloads * @returns {Array} profile payloads
*/ */
var generatePolicyProfile = function () { var generateProfileFeaturesList = function () {
var profilePayloads = []; var profilePayloads = [];
// traverses key by key in policy["profile"] // traverses key by key in policy["profile"]
var key; var key;
for (key in policy["profile"]) { for (key in policy["profile"]) {
if (policy["profile"].hasOwnProperty(key)) {
if (key == windowsOperationConstants["PASSCODE_POLICY_OPERATION_CODE"]) { if (key == windowsOperationConstants["PASSCODE_POLICY_OPERATION_CODE"]) {
policy["profile"][key].enablePassword = true; policy["profile"][key].enablePassword = true;
} }
if (policy["profile"].hasOwnProperty(key)) {
profilePayloads.push({ profilePayloads.push({
"featureCode": key, "featureCode": key,
"deviceType": policy["platform"], "deviceType": policy["platform"],
@ -259,10 +261,27 @@ var generatePolicyProfile = function () {
}); });
} }
} }
return profilePayloads; return profilePayloads;
}; };
/**
* Generates policy profile object which will be saved with the profile.
*
* This function will be invoked from the relevant cdmf unit at the time of policy creation.
*
* @returns {object} generated profile.
*/
var generatePolicyProfile = function () {
return windowsOperationModule.generateProfile(configuredOperations);
};
/**
* Resets policy profile configurations.
*/
var resetPolicyProfile = function () {
configuredOperations = [];
};
// Start of HTML embedded invoke methods // Start of HTML embedded invoke methods
var showAdvanceOperation = function (operation, button) { var showAdvanceOperation = function (operation, button) {
$(button).addClass('selected'); $(button).addClass('selected');
@ -272,37 +291,6 @@ var showAdvanceOperation = function (operation, button) {
$(hiddenOperation + '[data-operation="' + operation + '"]').siblings().hide(); $(hiddenOperation + '[data-operation="' + operation + '"]').siblings().hide();
}; };
/**
* This method will display appropriate fields based on wifi type
* @param select
*/
var changeAndroidWifiPolicy = function (select) {
slideDownPaneAgainstValueSet(select, 'control-wifi-password', ['wep', 'wpa', '802eap']);
slideDownPaneAgainstValueSet(select, 'control-wifi-eap', ['802eap']);
slideDownPaneAgainstValueSet(select, 'control-wifi-phase2', ['802eap']);
slideDownPaneAgainstValueSet(select, 'control-wifi-identity', ['802eap']);
slideDownPaneAgainstValueSet(select, 'control-wifi-anoidentity', ['802eap']);
slideDownPaneAgainstValueSet(select, 'control-wifi-cacert', ['802eap']);
};
/**
* This method will display appropriate fields based on wifi EAP type
* @param select
* @param superSelect
*/
var changeAndroidWifiPolicyEAP = function (select, superSelect) {
slideDownPaneAgainstValueSet(select, 'control-wifi-password', ['peap', 'ttls', 'pwd', 'fast', 'leap']);
slideDownPaneAgainstValueSet(select, 'control-wifi-phase2', ['peap', 'ttls', 'fast']);
slideDownPaneAgainstValueSet(select, 'control-wifi-provisioning', ['fast']);
slideDownPaneAgainstValueSet(select, 'control-wifi-identity', ['peap', 'tls', 'ttls', 'pwd', 'fast', 'leap']);
slideDownPaneAgainstValueSet(select, 'control-wifi-anoidentity', ['peap', 'ttls']);
slideDownPaneAgainstValueSet(select, 'control-wifi-cacert', ['peap', 'tls', 'ttls']);
if (superSelect.value != '802eap') {
changeAndroidWifiPolicy(superSelect);
}
};
/** /**
* Method to slide down a provided pane upon provided value set. * Method to slide down a provided pane upon provided value set.
* *

@ -65,7 +65,6 @@
<bundleDef> <bundleDef>
org.wso2.carbon.devicemgt-plugins:org.wso2.extension.siddhi.execution.json:${carbon.devicemgt.plugins.version} org.wso2.carbon.devicemgt-plugins:org.wso2.extension.siddhi.execution.json:${carbon.devicemgt.plugins.version}
</bundleDef> </bundleDef>
<bundleDef>org.json.wso2:json:${commons-json.version}</bundleDef>
</bundles> </bundles>
</configuration> </configuration>
</execution> </execution>

@ -856,7 +856,6 @@
<artifactId>gcm-server</artifactId> <artifactId>gcm-server</artifactId>
<version>${gcm.server.version}</version> <version>${gcm.server.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.json.wso2</groupId> <groupId>org.json.wso2</groupId>
<artifactId>json</artifactId> <artifactId>json</artifactId>
@ -1377,6 +1376,7 @@
<maven-antrun-plugin.version>1.7</maven-antrun-plugin.version> <maven-antrun-plugin.version>1.7</maven-antrun-plugin.version>
<siddhi.version>3.1.2</siddhi.version> <siddhi.version>3.1.2</siddhi.version>
<maven.scr.version>1.7.2</maven.scr.version> <maven.scr.version>1.7.2</maven.scr.version>
<analytics.json.version>2.0.0.wso2v1</analytics.json.version>
</properties> </properties>
<scm> <scm>

Loading…
Cancel
Save