ca-mas-foundation-cordova
Version:
Cordova MAS Plugin
1,270 lines • 67.4 kB
HTML
<!DOCTYPE html>
<html>
<head>
<title>Home Page</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
<meta charset="utf-8">
<!-- iPad/iPhone specific css below, add after your main css >
<link rel="stylesheet" media="only screen and (max-device-width: 1024px)" href="ipad.css" type="text/css" />
<link rel="stylesheet" media="only screen and (max-device-width: 480px)" href="iphone.css" type="text/css" />
-->
<!-- If your application is targeting iOS BEFORE 4.0 you MUST put json2.js from http://www.JSON.org/json2.js into your www directory and include it here -->
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8" src="plugins/cordova-plugin-mas-core/www/MASPlugin.js"></script>
<script type="text/javascript">
// If you want to prevent dragging, uncomment this section
/*
function preventBehavior(e)
{
e.preventDefault();
};
document.addEventListener("touchmove", preventBehavior, false);
*/
/* If you are supporting your own protocol, the var invokeString will contain any arguments to the app launch.
see http://iphonedevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html
for more details -jm */
/*
function handleOpenURL(url)
{
// TODO: do something with the url passed in.
}
*/
function onBodyLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
var MAS = new MASPlugin.MAS();
MAS.initialize(function(result) {}, function(error) {
alert("Initialization failure");
});
}
</script>
<script type="text/javascript">
$(document).ready(function() {
$("#scan").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
if ('plugins' in cordova && 'barcodeScanner' in cordova.plugins) {
cordova.plugins.barcodeScanner.scan(function(result) {
var MAS = new MASPlugin.MAS();
MAS.authorize(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
}, function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, result.text);
},
function(error) {
alert("Scanning failed: " + error);
}, {
"preferFrontCamera": false, // iOS and Android
"showFlipCameraButton": true, // iOS and Android
"prompt": "Place a barcode inside the scan area", // supported on Android only
"formats": "QR_CODE,PDF_417", // default: all but PDF_417 and RSS_EXPANDED
"orientation": "landscape" // Android only (portrait|landscape), default unset so it rotates with the device
});
} else if (typeof QRCode !== 'undefined') {
QRCode.scanCode(function(info) {
var MAS = new MASPlugin.MAS();
MAS.authorize(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
}, function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, info);
});
} else {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, "No QRCode Scanner plugin added !!");
}
});
$("#init").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.initialize(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
}, function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#useNativeMASUI").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.useNativeMASUI(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
}, function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#setCustomLoginPage").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
var loginPageName = $("input[name='loginPageName']").val();
MAS.setCustomLoginPage(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, loginPageName);
});
$("#setCustomOTPChannelsPage").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
var otpChannelsPageName = $("input[name='otpChannelsPageName']").val();
MAS.setCustomOTPChannelsPage(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, otpChannelsPageName);
});
$("#setCustomOTPPage").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
var otpPageName = $("input[name='otpPageName']").val();
MAS.setCustomOTPPage(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, otpPageName);
});
$("#setGrantFlowPassword").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.grantFlow(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, MASPlugin.MASGrantFlow.MASGrantFlowPassword);
});
$("#setGrantFlowClientCredential").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.grantFlow(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, MASPlugin.MASGrantFlow.MASGrantFlowClientCredentials);
});
$("#setConfigName").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
var configFileName = $("input[name='configName']").val();
MAS.configFileName(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, configFileName);
});
$("#start").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.start(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#startWithDefault").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.startWithDefaultConfiguration(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, true);
});
$("#startWithJSON").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
var jsonObject = thisElement.find("input[name='jsonObject']").val() ? JSON.parse(thisElement.find("input[name='jsonObject']").val()) : null;
MAS.startWithJSON(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, jsonObject);
});
$("#stop").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.stop(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, MASPlugin.MASGrantFlow.MASGrantFlowClientCredentials);
});
$("#initEnterpriseBrowser").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MASApplication = new MASPlugin.MASApplication();
MASApplication.initEnterpriseBrowser(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#gatewayIsReachable").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.gatewayIsReachable(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#userLogin").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var username = $("input[name='userLoginUsername']").val();
var password = $("input[name='userLoginPassword']").val();
MASPluginUser.loginWithUsernameAndPassword(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, username, password);
});
$("#getUsername").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
MASPluginUser.currentUser(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result.userName);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#getName").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
MASPluginUser.currentUser(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result.formattedName);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#getAddressList").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
MASPluginUser.currentUser(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result.addresses);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#getEmailList").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
MASPluginUser.currentUser(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result.emailAddresses);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#userImplicitLogin").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
MASPluginUser.loginWithImplicitFlow(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#getCurrentUser").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
MASPluginUser.currentUser(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#isSessionLocked").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
MASPluginUser.currentUser(function(result) {
result.isSessionLocked(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
})
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#lockSession").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
MASPluginUser.currentUser(function(currentUser) {
currentUser.lockSession(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#unlockSession").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
MASPluginUser.currentUser(function(currentUser) {
currentUser.unlockSession(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#unlockSessionWithMessage").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
MASPluginUser.currentUser(function(currentUser) {
currentUser.unlockSessionWithMessage(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, "My Message");
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#removeSessionLock").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
MASPluginUser.currentUser(function(currentUser) {
currentUser.removeSessionLock(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#isUserAuthenticated").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
MASPluginUser.currentUser(function(result) {
result.isAuthenticated(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#isDeviceRegistered").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MASDevice = new MASPlugin.MASDevice();
MASDevice.isDeviceRegistered(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#getCurrentDevice").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MASDevice = new MASPlugin.MASDevice();
MASDevice.getCurrentDevice(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#isActive").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MASDevice = new MASPlugin.MASDevice();
MASDevice.isActive(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#getDeviceIdentifier").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MASDevice = new MASPlugin.MASDevice();
MASDevice.getDeviceIdentifier(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#userLogout").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
MASPluginUser.currentUser(function(currentUser) {
currentUser.logout(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#deregisterDevice").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MASDevice = new MASPlugin.MASDevice();
MASDevice.deregister(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#resetLocally").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MASDevice = new MASPlugin.MASDevice();
MASDevice.resetLocally(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#getApplicationIdentifier").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MASApplication = new MASPlugin.MASApplication();
MASApplication.getIdentifier(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#getApplicationName").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MASApplication = new MASPlugin.MASApplication();
MASApplication.getName(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, ApplicationIdentifiersList[2]);
});
$("#getApplicationIconUrl").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MASApplication = new MASPlugin.MASApplication();
MASApplication.getIconUrl(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#getApplicationAuthUrl").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MASApplication = new MASPlugin.MASApplication();
MASApplication.getAuthUrl(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#getApplicationNativeUri").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MASApplication = new MASPlugin.MASApplication();
MASApplication.getNativeUri(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#getApplicationCustom").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MASApplication = new MASPlugin.MASApplication();
MASApplication.getCustom(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
var ApplicationIdentifiersList = "";
$("#retrieveEnterpriseApps").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MASApplication = new MASPlugin.MASApplication();
MASApplication.retrieveEnterpriseApps(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
ApplicationIdentifiersList = result;
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#getCRUD").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
var requestType = parseRequestResponseType(thisElement.find("select[name='requestType']").val());
var responseType = parseRequestResponseType(thisElement.find("select[name='responseType']").val());
var requestParam = thisElement.find("input[name='parameter']").val() ? JSON.parse(thisElement.find("input[name='parameter']").val()) : null;
var requestHeader = thisElement.find("input[name='header']").val() ? JSON.parse(thisElement.find("input[name='header']").val()) : null;
var requestPath = thisElement.find("input[name='path']").val().trim();
// $.mobile.showPageLoadingMsg();
MAS.getFromPath(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
// $.mobile.hidePageLoadingMsg();
},
function(error) {
// console.log(error);
var returnedMsg = getErrorMessage(error);
if (returnedMsg != null && returnedMsg != undefined && returnedMsg != "") {
error.errorMessage = returnedMsg;
}
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
// $.mobile.hidePageLoadingMsg();
}, requestPath, requestParam, requestHeader, requestType, responseType);
});
$("#putCRUD").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
var requestType = parseRequestResponseType(thisElement.find("select[name='requestType']").val());
var responseType = parseRequestResponseType(thisElement.find("select[name='responseType']").val());
var requestParam = thisElement.find("input[name='parameter']").val() ? JSON.parse(thisElement.find("input[name='parameter']").val()) : null;
var requestHeader = thisElement.find("input[name='header']").val() ? JSON.parse(thisElement.find("input[name='header']").val()) : null;
var requestPath = thisElement.find("input[name='path']").val().trim();
// $.mobile.showPageLoadingMsg();
MAS.putToPath(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
// $.mobile.hidePageLoadingMsg();
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
// $.mobile.hidePageLoadingMsg();
}, requestPath, requestParam, requestHeader, requestType, responseType);
});
$("#postCRUD").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
var requestType = parseRequestResponseType(thisElement.find("select[name='requestType']").val());
var responseType = parseRequestResponseType(thisElement.find("select[name='responseType']").val());
var requestParam = thisElement.find("input[name='parameter']").val() ? JSON.parse(thisElement.find("input[name='parameter']").val()) : null;
var requestHeader = thisElement.find("input[name='header']").val() ? JSON.parse(thisElement.find("input[name='header']").val()) : null;
var requestPath = thisElement.find("input[name='path']").val().trim();
// $.mobile.showPageLoadingMsg();
MAS.postToPath(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
// $.mobile.hidePageLoadingMsg();
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
// $.mobile.hidePageLoadingMsg();
}, requestPath, requestParam, requestHeader, requestType, responseType);
});
$("#deleteCRUD").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
var requestType = parseRequestResponseType(thisElement.find("select[name='requestType']").val());
var responseType = parseRequestResponseType(thisElement.find("select[name='responseType']").val());
var requestParam = thisElement.find("input[name='parameter']").val() ? JSON.parse(thisElement.find("input[name='parameter']").val()) : null;
var requestHeader = thisElement.find("input[name='header']").val() ? JSON.parse(thisElement.find("input[name='header']").val()) : null;
var requestPath = thisElement.find("input[name='path']").val().trim();
// $.mobile.showPageLoadingMsg();
MAS.deleteFromPath(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
// $.mobile.hidePageLoadingMsg();
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
// $.mobile.hidePageLoadingMsg();
}, requestPath, requestParam, requestHeader, requestType, responseType);
});
function parseRequestResponseType(type) {
if (type == "json") {
return MASPlugin.MASRequestResponseType.MASRequestResponseTypeJson;
} else if (type == "scimJSON") {
return MASPlugin.MASRequestResponseType.MASRequestResponseTypeScimJson;
} else if (type == "text") {
return MASPlugin.MASRequestResponseType.MASRequestResponseTypeTextPlain;
} else if (type == "urlEncoded") {
return MASPlugin.MASRequestResponseType.MASRequestResponseTypeWwwFormUrlEncoded;
} else if (type == "xml") {
return MASPlugin.MASRequestResponseType.MASRequestResponseTypeXml;
} else {
return MASPlugin.MASRequestResponseType.MASRequestResponseTypeUnknown;
}
}
function resetAction(element) {
element.find("textarea.error").hide();
element.removeClass("success").removeClass("failure");
}
function displayResult(element, result) {
var isJSON = true;
try {
var json = $.parseJSON(result);
} catch (err) {
isJSON = false;
}
if (isJSON) {
element.find("textarea.error").show();
element.find("textarea.error").html(JSON.stringify(result));
} else {
element.find("textarea.error").show();
element.find("textarea.error").html(result + "");
}
}
function displayError(element, error) {
element.find("textarea.error").show();
var errorMessage = "";
if (typeof error === 'undefined' || typeof error.errorMessage === 'undefined') {
errorMessage = "Unknown error";
} else if (error.errorMessage === 'Internal Server Error' && typeof error.errorMessageDetail === 'undefined') {
errorMessage = error.errorMessage;
} else if (error.errorMessage === 'Internal Server Error' && typeof error.errorMessageDetail !== 'undefined') {
errorMessage = error.errorMessageDetail;
} else {
errorMessage = error.errorMessage;
}
element.find("textarea.error").html(errorMessage);
}
});
</script>
<script type="text/javascript">
function getErrorMessage(error) {
var errorMsgToDisplay = "";
if (error != null && error != undefined && error != "") {
if (error.errorCode != null && error.errorCode != undefined && !isNaN(error.errorCode)) {
var errorCodeLastDigits = error.errorCode % 1000;
if (errorCodeLastDigits === 140) {
errorMsgToDisplay = "X-OTP header required";
} else if (errorCodeLastDigits === 142) {
errorMsgToDisplay = "Authentication failed due to an invalid OTP.";
} else if (errorCodeLastDigits === 143) {
errorMsgToDisplay = "The OTP has expired.";
} else if (errorCodeLastDigits === 144) {
errorMsgToDisplay = "You have exceeded the maximum number of invalid attempts. Please try after some time.";
} else if (errorCodeLastDigits === 145) {
errorMsgToDisplay = "Your account is blocked. Try after some time.";
}
}
}
return errorMsgToDisplay;
}
</script>
<style type="text/css">
.success {
background-color: chartreuse;
color: #898989;
}
.failure {
background-color: chocolate;
color: #FFFFFF;
}
.ui-loader-background {
width: 100%;
height: 100%;
top: 0;
padding: 0;
margin: 0;
background: rgba(0, 0, 0, 0.3);
display: none;
position: fixed;
z-index: 100;
}
.ui-loading .ui-loader-background {
display: block;
}
</style>
</head>
<body onload="onBodyLoad();">
<div data-role="page">
<div style="margin-top:20px" data-theme="b" data-role="header">
<h1>Demo App</h1>
</div>
<!-- /header -->
<div data-role="content">
<div align="center">
<img src="img/logo.png" alt="Layer7 Logo" width="86" height="72">
</div>
<ul data-role="listview" data-inset="true" data-filter="false" id="actionsListView">
<li data-role="collapsible" data-iconpos="right" data-inset="false">
<h2>MAS Lifecycle</h2>
<ul data-role="listview" data-theme="b">
<li data-icon="false"><a href="#" id="init">MAS Init<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="setGrantFlowPassword">MAS GrantFlow: password<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="setGrantFlowClientCredential">MAS GrantFlow: client credential<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="setConfigName">MAS set configuration file name <input type="text" name="configName" placeholder="configName"/><textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="start">MAS start<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="startWithDefault">MAS start with new configuration discarding local storage<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="startWithJSON">MAS start with JSON <input type="text" name="jsonObject" placeholder="JSON object in text"/><textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="stop">MAS stop<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
</ul>
</li>
<li data-role="collapsible" data-iconpos="right" data-inset="false">
<h2>MAS UI Customization</h2>
<ul data-role="listview" data-theme="b">
<li data-icon="false"><a href="#" id="useNativeMASUI">Use Native MASUI<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="setCustomLoginPage">MAS set custom login page <input type="text" name="loginPageName" placeholder="loginPageName"/><textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="setCustomOTPChannelsPage">MAS set custom OTP Channels page <input type="text" name="otpChannelsPageName" placeholder="otpChannelsPageName"/><textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="setCustomOTPPage">MAS set custom OTP page <input type="text" name="otpPageName" placeholder="otpPageName"/><textarea class='error' style="display:none;" readonly=""></textarea></a></li>
</ul>
</li>
<li data-role="collapsible" data-iconpos="right" data-inset="false">
<h2>MAS User</h2>
<ul data-role="listview" data-theme="b">
<li data-icon="false"><a href="#" id="getCurrentUser">MASUser getCurrentUser<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="getUsername">MASUser getUsername<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="getName">MASUser getFullName<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="isSessionLocked">MASUser isSessionLocked<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="lockSession">MASUser lockSession<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="unlockSession">MASUser unlockSession<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="unlockSessionWithMessage">MASUser unlockSessionWithMessage<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="removeSessionLock">MASUser removeSessionLock<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="isUserAuthenticated">MASUser isAuthenticated<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="userLogin">MASUser login with username and password <input type="text" name="userLoginUsername" placeholder="username"/><input type="text" name="userLoginPassword" placeholder="password"/><textarea class='error' style="display:none;" readonly=""></textarea></a></li>
</ul>
</li>
<li data-role="collapsible" data-iconpos="right" data-inset="false">
<h2>MAS Device</h2>
<ul data-role="listview" data-theme="b">
<li data-icon="false"><a href="#" id="isDeviceRegistered">MASDevice isDeviceRegistered<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="getDeviceIdentifier">MASDevice getDeviceIdentifier<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="getCurrentDevice">MASDevice getCurrentDevice<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
</ul>
</li>
<li data-role="collapsible" data-iconpos="right" data-inset="false">
<h2>MAS Enterprise Browser</h2>
<ul data-role="listview" data-theme="b">
<li data-icon="false"><a href="#" id="initEnterpriseBrowser">MAS InitEnterpriseBrowser<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="retrieveEnterpriseApps">MASApplication Retrieve Enterprise Apps<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
</ul>
</li>
<!--
<li data-icon="false"><a href="#" id="getApplicationIdentifier">MASApplication Identifier<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="getApplicationName">MASApplication Name<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="getApplicationIconUrl">MASApplication IconUrl<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="getApplicationAuthUrl">MASApplication AuthUrl<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="getApplicationNativeUri">MASApplication NativeUri<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="getApplicationCustom">MASApplication Custom<textarea class='error' style="display:none;" readonly=""></textarea></a></li> -->
<li data-role="collapsible" data-iconpos="right" data-inset="false">
<h2>MAS CRUD Operations</h2>
<ul data-role="listview" data-theme="b">
<li data-icon="false">
<a href="#" id="getCRUD">MAS get
<input type="text" name="path" placeholder="API path"/>
<label for="requestTypeGet">Request Type:</label>
<select id="requestTypeGet" name="requestType" >
<option value="json">JSON</option>
<option value="scimJSON">SCIM JSON</option>
<option value="text">Plain Text</option>
<option value="urlEncoded">URL Encoded</option>
<option value="xml">XML</option>
</select>
<label for="responseTypeGet">Response Type:</label>
<select id="responseTypeGet" name="responseType" >
<option value="json">JSON</option>
<option value="scimJSON">SCIM JSON</option>
<option value="text">Plain Text</option>
<option value="urlEncoded">URL Encoded</option>
<option value="xml">XML</option>
</select>
<input type="text" name="parameter" placeholder="Parameter in JSON format"/>
<input type="text" name="header" placeholder="Header in JSON format"/>
<textarea class='error' style="display:none;" readonly=""></textarea>
</a>
</li>
<li data-icon="false">
<a href="#" id="putCRUD">MAS put
<input type="text" name="path" placeholder="API path"/>
<label for="requestTypePut">Request Type:</label>
<select id="requestTypePut" name="requestType" >
<option value="json">JSON</option>
<option value="scimJSON">SCIM JSON</option>
<option value="text">Plain Text</option>
<option value="urlEncoded">URL Encoded</option>
<option value="xml">XML</option>
</select>
<label for="responseTypePut">Response Type:</label>
<select id="responseTypePut" name="responseType" >
<option value="json">JSON</option>
<option value="scimJSON">SCIM JSON</option>
<option value="text">Plain Text</option>
<option value="urlEncoded">URL Encoded</option>
<option value="xml">XML</option>
</select>
<input type="text" name="parameter" placeholder="Parameter in JSON format"/>
<input type="text" name="header" placeholder="Header in JSON format"/>
<textarea class='error' style="display:none;" readonly=""></textarea>
</a>
</li>
<li data-icon="false">
<a href="#" id="postCRUD">MAS post
<input type="text" name="path" placeholder="API path"/>
<label for="requestTypePost">Request Type:</label>
<select id="requestTypePost" name="requestType" >
<option value="json">JSON</option>
<option value="scimJSON">SCIM JSON</option>
<option value="text">Plain Text</option>
<option value="urlEncoded">URL Encoded</option>
<option value="xml">XML</option>
</select>
<label for="responseTypePost">Response Type:</label>
<select id="responseTypePost" name="responseType" >
<option value="json">JSON</option>
<option value="scimJSON">SCIM JSON</option>
<option value="text">Plain Text</option>
<option value="urlEncoded">URL Encoded</option>
<option value="xml">XML</option>
</select>
<input type="text" name="parameter" placeholder="Parameter in JSON format"/>
<input type="text" name="header" placeholder="Header in JSON format"/>
<textarea class='error' style="display:none;" readonly=""></textarea>
</a>
</li>
<li data-icon="false">
<a href="#" id="deleteCRUD">MAS delete
<input type="text" name="path" placeholder="API path"/>
<label for="requestTypeD">Request Type:</label>
<select id="requestTypeD" name="requestType" >
<option value="json">JSON</option>
<option value="scimJSON">SCIM JSON</option>
<option value="text">Plain Text</option>
<option value="urlEncoded">URL Encoded</option>
<option value="xml">XML</option>
</select>
<label for="responseTypeD">Response Type:</label>
<select id="responseTypeD" name="responseType" >
<option value="json">JSON</option>
<option value="scimJSON">SCIM JSON</option>
<option value="text">Plain Text</option>
<option value="urlEncoded">URL Encoded</option>
<option value="xml">XML</option>
</select>
<input type="text" name="parameter" placeholder="Parameter in JSON format"/>
<input type="text" name="header" placeholder="Header in JSON format"/>
<textarea class='error' style="display:none;" readonly=""></textarea>
</a>
</li>
</ul>
</li>
<li data-role="collapsible" data-iconpos="right" data-inset="false">
<h2>MAS Additionals</h2>
<ul data-role="listview" data-theme="b">
<li data-icon="false"><a href="#" id="gatewayIsReachable">MAS gatewayIsReachable<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="scan">Scan QRCode<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
</ul>
</li>
<li data-icon="false"><a href="#" id="userLogout">MASUser logout<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="deregisterDevice">MASDevice deregister<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
<li data-icon="false"><a href="#" id="resetLocally">MASDevice resetLocally<textarea class='error' style="display:none;" readonly=""></textarea></a></li>
</ul>
</div>
<!-- /content -->
</div>
<!-- /page -->
</body>
</html>