264 lines
8.8 KiB
Plaintext
264 lines
8.8 KiB
Plaintext
compile function RTI_Example_Login_Template( object, method, param1, param2, param3, param4, param5, param6, param7, param8 )
|
|
/*
|
|
** Copyright (C) 2012-2019 Revelation Software Inc. All Rights Reserved **
|
|
|
|
Author : Mr C
|
|
Date : September 2019
|
|
Purpose : Commuter module for the RTI_EXAMPLE_LOGIN_TEMPLATE form
|
|
|
|
Comments
|
|
========
|
|
|
|
|
|
Amended Date Reason
|
|
======= ==== ======
|
|
*/
|
|
#pragma precomp event_precomp
|
|
|
|
declare function get_Property, set_Property, utility, retStack, rti_ErrorText
|
|
declare function ps_Get_Property, rti_Res2Str, msg, exec_Method
|
|
$insert rti_SSP_Equates
|
|
$insert logical
|
|
|
|
if assigned( object ) else object = ""
|
|
if assigned( method ) else method = ""
|
|
if assigned( param1 ) else param1 = ""
|
|
if assigned( param2 ) else param2 = ""
|
|
if assigned( param3 ) else param3 = ""
|
|
if assigned( param4 ) else param4 = ""
|
|
if assigned( param5 ) else param5 = ""
|
|
if assigned( param6 ) else param6 = ""
|
|
if assigned( param7 ) else param7 = ""
|
|
if assigned( param8 ) else param8 = ""
|
|
|
|
errorText = ""
|
|
abort = FALSE$
|
|
retVal = ""
|
|
atCtrl = field( object, ".", 2, 999 )
|
|
|
|
if bLen( method ) then
|
|
locate method in "CLICK,OMNIEVENT" using "," setting pos then
|
|
on pos goSub onClick,onOmniEvent
|
|
end
|
|
end
|
|
|
|
if abort then
|
|
if bLen( errorText ) then
|
|
goSub errorMsg
|
|
end
|
|
end
|
|
|
|
return retVal
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// onClick subroutine
|
|
//
|
|
// Main CLICK event dispatch handler
|
|
//
|
|
// ----------------------------------------------------------------------------
|
|
// [i] atCtrl : ID of the object triggering the CLICK event - this is
|
|
// : NOT fully qualified.
|
|
// ----------------------------------------------------------------------------
|
|
onClick:
|
|
|
|
begin case
|
|
case ( atCtrl == "LOGIN_BUTTON" )
|
|
goSub loginButton_OnClick
|
|
end case
|
|
|
|
return
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// onOmniEvent subroutine
|
|
//
|
|
// Main OMNIEVENT event dispatch handler
|
|
//
|
|
// ----------------------------------------------------------------------------
|
|
// [i] param1 : message
|
|
// [i] param2 : Param 1
|
|
// [i] param3 : Param 2
|
|
// [i] param4 : Param 3
|
|
// [i] param5 : Param 4
|
|
// [i] param6 : Param 5
|
|
// [i] param7 : Param 6
|
|
// ----------------------------------------------------------------------------
|
|
onOmniEvent:
|
|
|
|
transfer param1 to message
|
|
transfer param2 to param1
|
|
transfer param3 to param2
|
|
transfer param4 to param3
|
|
transfer param5 to param4
|
|
transfer param6 to param5
|
|
transfer param7 to param6
|
|
|
|
begin case
|
|
case ( atCtrl == "INITLOGIN" )
|
|
goSub initLogin_OnOmniEvent
|
|
end case
|
|
|
|
transfer param6 to param7
|
|
transfer param5 to param6
|
|
transfer param4 to param5
|
|
transfer param3 to param4
|
|
transfer param2 to param3
|
|
transfer param1 to param2
|
|
transfer message to param1
|
|
|
|
return
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
#region initLogin
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// initLogin_OnOmniEvent subroutine
|
|
//
|
|
// OMNIEVENT event handler for the INITLOGIN control
|
|
//
|
|
// INITLOGIN is a simple static control that responds to an "INITLOGIN"
|
|
// OMNIEVENT message - this is called from the "hosting" PS_OPENAPP form
|
|
// this form is used as a template
|
|
//
|
|
// ----------------------------------------------------------------------------
|
|
// [i] message : Identifies the message to process
|
|
// [i] param1 : Message dependant parameter
|
|
// [i] param2 : Message dependant parameter
|
|
// [i] param3 : Message dependant parameter
|
|
// [i] param4 : Message dependant parameter
|
|
// [i] param5 : Message dependant parameter
|
|
// [i] param6 : Message dependant parameter
|
|
// ----------------------------------------------------------------------------
|
|
initLogin_OnOmniEvent:
|
|
|
|
locate message in "INITLOGIN" using "," setting pos then
|
|
on pos goSub initLogin_OnOmniEvent_initLogin
|
|
end
|
|
|
|
return
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// initLogin_OnOmniEvent_initLogin subroutine
|
|
//
|
|
// INITLOGIN OMNIEVENT message handler for the INITLOGIN control
|
|
//
|
|
// 1) Check that we have an EXAMPLES application and select it
|
|
// 2) Force it into run mode
|
|
//
|
|
// ----------------------------------------------------------------------------
|
|
// [i] param1 : CreateParam. Contains the original parameters as passed to
|
|
// : the "real" login form (PS_OPENAPP)
|
|
// :
|
|
// : <1> AppID to preselect
|
|
// : <2> UserID to preselect
|
|
// : <3> Primary boot flag
|
|
// : <4> Template ID to use
|
|
// ----------------------------------------------------------------------------
|
|
initLogin_OnOmniEvent_initLogin:
|
|
|
|
createParam = param1
|
|
|
|
// Check to see that this system supports the EXAMPLES app
|
|
appIDs = .lst_AppIDs->list
|
|
|
|
locate "EXAMPLES" in appIDs using @fm setting pos else
|
|
errorText = "The EXAMPLES app cannot be found in this system"
|
|
goSub errorMsg; errorText = ""
|
|
call send_Event( @window, "CLOSE" )
|
|
return
|
|
end
|
|
|
|
// Changing the appID and checking the "RunApp" checkbox will change
|
|
// the window title so something like "Open Application" or "Run
|
|
// Application", so cache it and reset it after the changes.
|
|
winText = @@window->text
|
|
|
|
// Force the examples app to load
|
|
.lst_appIDs->changeText( "EXAMPLES" )
|
|
|
|
// If the EXAMPLES app can be "Run" then the CHK_RUNAPP checkbox will be
|
|
// enabled - in this case we'll ensure it's checked.
|
|
if ( .chk_RunApp->enabled ) then
|
|
.chk_RunApp->setChecked( TRUE$ )
|
|
end
|
|
|
|
// Restore the title from the template
|
|
@@window->text = winText
|
|
|
|
return
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
#endregion initLogin
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
#region loginButton
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// loginButton_OnClick subroutine
|
|
//
|
|
// CLICK event handler for the LOGIN_BUTTON control.
|
|
//
|
|
// 1) Transfer the username and password entered by the user to the "real"
|
|
// controls (EDL_USERNAME) and (EDL_PASSWORD)
|
|
// 2) Execute a Click method on the "real" OK button (BTK_OK) to log into
|
|
// the application.
|
|
//
|
|
// ----------------------------------------------------------------------------
|
|
loginButton_OnClick:
|
|
|
|
// Transfer the credentials
|
|
.edl_UserName->text = .userName->text
|
|
.edl_Password->text = .password->text
|
|
|
|
// Click the OK button to authenticate
|
|
.btn_ok->click( "" )
|
|
|
|
return
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
#endregion loginButton
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
#region errorHandlers
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// errorMsg subroutine
|
|
//
|
|
// Displays a simple error message
|
|
//
|
|
// ----------------------------------------------------------------------------
|
|
// [i] errorText : Text to display in the message
|
|
// [i] errorCaption : Caption for the message
|
|
// ----------------------------------------------------------------------------
|
|
errorMsg:
|
|
|
|
if assigned( errorCaption ) else errorCaption = ""
|
|
if bLen( errorCaption ) else
|
|
errorCaption = @@window->text
|
|
end
|
|
|
|
msgArray = errorText
|
|
msgArray<4> = "!"
|
|
msgArray<6> = -2
|
|
msgArray<7> = -2
|
|
msgArray<8> = "C"
|
|
msgArray<12> = errorCaption
|
|
|
|
call msg( @window, msgArray )
|
|
|
|
return
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// setSPError subroutine
|
|
//
|
|
// Translates an SSP status error array into a "text version" from REVERROR.DAT
|
|
//
|
|
// ----------------------------------------------------------------------------
|
|
// [i,o] errorText : SSP status error to convert. Returns the "text" version
|
|
// ----------------------------------------------------------------------------
|
|
setSPError:
|
|
errorText = rti_ErrorText( "SP", errorText )
|
|
abort = TRUE$
|
|
return
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
#endregion errorHandlers
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
///////////////////////////////////////////////////////////////////////////////
|