/*
*+------------------------------------------------------------------------+
*| Licensed Materials - Property of IBM
*| BI and PM: prmt
*| (C) Copyright IBM Corp. 2002, 2013
*|
*| US Government Users Restricted Rights - Use, duplication or
*| disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
*|
*+------------------------------------------------------------------------+
*/
/*
CSelectDataSourceSignon.js
This script is used to allow users to select a connection and signon for a datasource
*/
//Constructor to create a select datasource signon component
//Constructor to create a checkboxlist component
// oDataSourceConnection: the form control used to for the data source connection value
// oDataSourceSignon: the form control used for the data source signon value
// oUsername: the form control used for the user name
// oPassword: the form control used for the password
// oSubmit: the form control to submit selections to the server
// oUseSignonDefault: form control used to set whether choosing signons should be the default
// sSubmitType: 'default' will submit as a standard form
// 'XML' will convert the submission to XML and submit
// bSignonForCube: set to true if this signon is for a password protected cube (credentials are differents in this case). Default = false
// bOKButtonPromptTypeIsNext this is used to determine whether this should do a next or a finish to conform with the onClick of the OKButton of the defaultpagefooter
function CSelectDataSourceSignon(oDataSourceConnection, oDataSourceSignon, oUsername, oPassword, oSubmit, oUseSignonDefault, sSubmitType, oRadioList, oImgTest, bSignonForCube, sCVId, sPromptId, bOKButtonPromptTypeIsNext)
{
this.setCVId(sCVId);
this.m_oDataSourceConnection = oDataSourceConnection;
this.m_oDataSourceSignon = oDataSourceSignon;
this.m_oUsername = oUsername;
this.m_oPassword = oPassword;
this.m_oSubmit = oSubmit;
this.m_bValid = false;
this.m_sSubmitType = sSubmitType;
this.m_bUseSignon = true;
this.m_bOKButtonPromptTypeIsNext = (bOKButtonPromptTypeIsNext === true);
this.m_bSignonForCube = (bSignonForCube === true);
if (typeof oRadioList != K_PRMT_sUNDEFINED) {
this.m_oRadioList = oRadioList;
}
else {
this.m_oConnectionRadioList = null;
}
if (typeof oImgTest != K_PRMT_sUNDEFINED) {
this.m_oImgTest = oImgTest;
}
else {
this.m_oImgTest = null;
}
this.m_sPromptId = sPromptId;
//skin folder
this.m_sSkin = (typeof getPromptSkin != K_PRMT_sUNDEFINED ? getPromptSkin() : K_PRMT_sDEFAULTSKIN);
if (this.m_oImgTest != null)
{
this.m_oImgErrorFalse= new Image();
this.m_oImgErrorFalse.src = this.m_sSkin + "/prompting/images/error_timed_small_off.gif";
this.m_oImgErrorTrue = new Image();
this.m_oImgErrorTrue.src = this.m_sSkin + "/prompting/images/error_timed_small.gif";
}
//use a User Id and Password or a Signon
//default use Signon = 'true';
if (oUseSignonDefault)
{
if (oUseSignonDefault.value == 'false')
{
this.m_bUseSignon = false;
}
}
// Event handlers
PRMTUtils.f_addEvent( this.m_oUsername, "keypress", this.keyPress.bind(this) );
PRMTUtils.f_addEvent( this.m_oPassword, "keypress", this.keyPress.bind(this) );
this.checkData();
}
CSelectDataSourceSignon.prototype = new CPromptControl();
//render the validated state
function CSelectDataSourceSignon_checkPass()
{
if ((this.m_oImgTest != null) && (this.m_oImgTest.src != this.m_oImgErrorFalse.src))
{
this.m_oImgTest.src = this.m_oImgErrorFalse.src;
}
this.notify(gPASS, this);
}
//render the validation error state
function CSelectDataSourceSignon_checkFail()
{
if (this.m_oImgTest != null)
{
this.m_oImgTest.src = this.m_oImgErrorTrue.src + '?' + Math.random();
}
this.notify(gFAIL, this);
}
//validate the input into the control
function CSelectDataSourceSignon_checkData()
{
this.m_bValid = true;
if (this.m_oRadioList != null)
{
this.m_bValid = false;
if (this.m_oRadioList.checked == true) {
this.m_bValid = true;
}
else
{
for (var i = 0; i < this.m_oRadioList.length; i++)
{
if (this.m_oRadioList[i].checked) {
this.m_bValid = true;
}
}
}
}
if (this.m_bValid) {
this.checkPass();
}
else {
this.checkFail();
}
this.notify((this.m_bValid ? gPASS : gFAIL), this);
return this.m_bValid;
}
function CSelectDataSourceSignon_preProcess()
{
if (this.m_sSubmitType == K_PRMT_sXML && this.m_oSubmit)
{
this.m_oSubmit.value = '';
}
}
function CSelectDataSourceSignon_sGetPersistValue()
{
var v_sResult = K_PRMT_sEMPTY;
var v_oPersistCheckBox = $( "oPersist" + this.m_sPromptId );
if (v_oPersistCheckBox && v_oPersistCheckBox.checked) {
v_sResult += ' persist="true"';
}
return v_sResult;
}
//return the selection in the following XML format:
//
//
// ...searchPath to connection...
// ...searchPath to signon...
// ...
// ...
//
function CSelectDataSourceSignon_sGetValue()
{
var sCredential = K_PRMT_sEMPTY;
var v_sPersist = this.sGetPersistValue();
sCredential += "";
//create credential elements
//data source connection
var v_oConnectionName = K_PRMT_sEMPTY;
var v_oConnectionNameElem = $( "oConnectionName" + this.m_sPromptId );
if (v_sPersist.length > 0 && v_oConnectionNameElem && v_oConnectionNameElem.value) {
v_oConnectionName = ' name="' + v_oConnectionNameElem.value +'"';
}
sCredential += "";
if (this.m_oDataSourceConnection != null)
{
sCredential += this.m_oDataSourceConnection.value;
}
sCredential += "";
if (this.m_bUseSignon == true)
{
//data source signon
sCredential += "";
if (this.m_oDataSourceSignon != null)
{
sCredential += this.m_oDataSourceSignon.value;
}
sCredential += "";
//user name
sCredential += "";
//password
sCredential += "";
}
else
{
//data source signon
sCredential += "";
//user name
sCredential += "";
if (this.m_oUsername != null)
{
sCredential += this.m_oUsername.value;
}
sCredential += "";
if (this.m_bSignonForCube) {
//cubePassword
sCredential += "";
if (this.m_oPassword != null)
{
sCredential += sXmlEncode(this.m_oPassword.value);
}
sCredential += "";
}
else {
//password
sCredential += "";
if (this.m_oPassword != null)
{
sCredential += sXmlEncode(this.m_oPassword.value);
}
sCredential += "";
}
}
sCredential += "";
return sCredential;
}
function CSelectDataSourceSignon_setDataSourceConnection(s)
{
this.m_oDataSourceConnection.value = s;
}
function CSelectDataSourceSignon_setDataSourceSignon(s)
{
this.m_oDataSourceSignon.value = s;
}
function CSelectDataSourceSignon_setbUseSignon(sUseSignon)
{
if (sUseSignon == 'true')
{
this.m_bUseSignon = true;
}
else if (sUseSignon == 'false')
{
this.m_bUseSignon = false;
}
else
{
this.m_bUseSignon = sUseSignon;
}
}
function CSelectDataSourceSignon_keyPress()
{
var v_oEvt = ( arguments && arguments.length ? arguments[arguments.length-1] : null );
if ( v_oEvt )
{
var keyCode = (v_oEvt.keyCode) ? v_oEvt.keyCode : v_oEvt.which;
if ( keyCode == '13' )
{
var oCV = this.getCV();
if ( oCV && (typeof oCV.canSubmitPrompt == K_PRMT_sFUNCTION) && oCV.canSubmitPrompt() && (typeof oCV.promptAction == K_PRMT_sFUNCTION))
{
// If instructed to do so submit the form using next action
if (this.m_bOKButtonPromptTypeIsNext == true)
{
oCV.promptAction(K_ACTION_NEXT);
}
else // do the old thing cause it doesn't have a next button
{
oCV.promptAction(K_ACTION_FINISH);
}
}
return PRMTUtils.F_StopEvent( v_oEvt );
}
}
return true;
}
//Prototypes to assign methods to new instances of the object
CSelectDataSourceSignon.prototype.preProcess = CSelectDataSourceSignon_preProcess;
CSelectDataSourceSignon.prototype.checkPass = CSelectDataSourceSignon_checkPass;
CSelectDataSourceSignon.prototype.checkFail = CSelectDataSourceSignon_checkFail;
CSelectDataSourceSignon.prototype.checkData = CSelectDataSourceSignon_checkData;
CSelectDataSourceSignon.prototype.keyPress = CSelectDataSourceSignon_keyPress;
CSelectDataSourceSignon.prototype.sGetPersistValue = CSelectDataSourceSignon_sGetPersistValue;
CSelectDataSourceSignon.prototype.sGetValue = CSelectDataSourceSignon_sGetValue;
CSelectDataSourceSignon.prototype.setDataSourceConnection = CSelectDataSourceSignon_setDataSourceConnection;
CSelectDataSourceSignon.prototype.setDataSourceSignon = CSelectDataSourceSignon_setDataSourceSignon;
CSelectDataSourceSignon.prototype.setbUseSignon = CSelectDataSourceSignon_setbUseSignon;