300 lines
11 KiB
XML
300 lines
11 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<dynaForm name="myInfo" width="70%" labelWidth="300px" mode="edit" enableTemplate="1">
|
|
<menuUser type="xmlmenu" xmlfile="users/users_NewOptions">
|
|
<en/>
|
|
</menuUser>
|
|
<START_DATE type="phpVariable"/>
|
|
<DEFAULT_ROLE type="phpVariable"/>
|
|
<END_DATE type="phpVariable"/>
|
|
<TITLE3 type="title" group="1">
|
|
<en>Profile</en>
|
|
</TITLE3>
|
|
<USR_PHOTO type="file" group="1">
|
|
<en>Photo</en>
|
|
</USR_PHOTO>
|
|
<USR_RESUME type="file" group="1">
|
|
<en>Resume</en>
|
|
</USR_RESUME>
|
|
<TITLE1 type="title" group="1">
|
|
<en>Personal Information</en>
|
|
</TITLE1>
|
|
<USR_UID type="private"/>
|
|
<USR_FIRSTNAME type="text" size="30" maxlength="32" defaultvalue="" required="1" group="1" dependentfields="" linkfield="" strto="" readonly="0" noshowingrid="0" readonlyingrid="0" totalizeable="0" sqlconnection="">
|
|
<en>First Name</en>
|
|
</USR_FIRSTNAME>
|
|
<USR_LASTNAME type="text" size="30" maxlength="32" defaultvalue="" required="1" group="1" dependentfields="" linkfield="" strto="" readonly="0" noshowingrid="0" readonlyingrid="0" totalizeable="0" sqlconnection="">
|
|
<en>Last Name</en>
|
|
</USR_LASTNAME>
|
|
<USR_USERNAME type="text" size="15" maxlength="50" validate="Login" defaultvalue="" required="1" group="1" dependentfields="" linkfield="" strto="" readonly="0" noshowingrid="0" readonlyingrid="0" totalizeable="0" onchange="">
|
|
<en>User ID (*)</en>
|
|
</USR_USERNAME>
|
|
<USR_EMAIL type="text" size="35" maxlength="100" validate="Email" defaultvalue="" required="0" group="1" dependentfields="" linkfield="" strto="" readonly="0" noshowingrid="0" readonlyingrid="0" totalizeable="0" sqlconnection="">
|
|
<en>Email</en>
|
|
</USR_EMAIL>
|
|
<USR_ADDRESS type="textarea" rows="3" cols="50" defaultvalue="" required="0" group="1" dependentfields="" linkfield="" strto="" readonly="0" noshowingrid="0" readonlyingrid="0" totalizeable="0" sqlconnection="">
|
|
<en>Address</en>
|
|
</USR_ADDRESS>
|
|
<USR_ZIP_CODE type="text" size="30" maxlength="30" defaultvalue="" required="0" group="1" dependentfields="" linkfield="" strto="" readonly="0" noshowingrid="0" readonlyingrid="0" totalizeable="0" sqlconnection="">
|
|
<en>Zip Code</en>
|
|
</USR_ZIP_CODE>
|
|
<USR_COUNTRY type="dropdown" style="width:174pt" defaultvalue="" required="0" group="1" dependentfields="USR_CITY" readonly="0" sqlconnection="" noshowingrid="0" readonlyingrid="0">
|
|
SELECT IC_UID, IC_NAME FROM ISO_COUNTRY ORDER BY IC_NAME
|
|
<en>Country<option name=""/></en>
|
|
</USR_COUNTRY>
|
|
<USR_CITY type="dropdown" style="width:174pt" defaultvalue="" required="0" group="1" dependentfields="USR_LOCATION" readonly="0" sqlconnection="" noshowingrid="0" readonlyingrid="0">
|
|
SELECT IS_UID, IS_NAME FROM ISO_SUBDIVISION WHERE IC_UID = "@#USR_COUNTRY" ORDER BY IS_NAME
|
|
<en>State or Region</en>
|
|
</USR_CITY>
|
|
<USR_LOCATION type="dropdown" style="width:174pt" defaultvalue="" required="0" group="1" readonly="0" sqlconnection="" noshowingrid="0" readonlyingrid="0">
|
|
SELECT IL_UID, IL_NAME FROM ISO_LOCATION WHERE IC_UID = "@#USR_COUNTRY" AND IS_UID = "@#USR_CITY" AND IS_UID NOT IN ("") ORDER BY IL_NAME
|
|
<en>Location</en>
|
|
</USR_LOCATION>
|
|
<USR_PHONE type="text" size="15" maxlength="16" defaultvalue="" required="0" group="1" dependentfields="" linkfield="" strto="" readonly="0" noshowingrid="0" readonlyingrid="0" totalizeable="0" sqlconnection="">
|
|
<en>Phone</en>
|
|
</USR_PHONE>
|
|
<USR_POSITION type="text" size="35" maxlength="35" defaultvalue="" required="0" group="1" dependentfields="" linkfield="" strto="" readonly="0" noshowingrid="0" readonlyingrid="0" totalizeable="0" sqlconnection="">
|
|
<en>Position</en>
|
|
</USR_POSITION>
|
|
<USR_REPORTS_TO type="dropdown" defaultvalue="" required="0" group="1" dependentfields="" readonly="0" sqlconnection="dbarray" noshowingrid="0" readonlyingrid="0">
|
|
SELECT * FROM aUserInfo
|
|
<en>Reports to<option name=""/></en>
|
|
</USR_REPORTS_TO>
|
|
<USR_REPLACED_BY type="dropdown" defaultvalue="" required="0" group="1" dependentfields="" readonly="0" sqlconnection="dbarray" noshowingrid="0" readonlyingrid="0">
|
|
SELECT * FROM aUserInfo
|
|
<en>Replaced by<option name=""/></en>
|
|
</USR_REPLACED_BY>
|
|
<USR_DUE_DATE type="date" mask="Y-m-d" startDate="@#START_DATE" endDate="@#END_DATE" defaultvalue="" required="1" group="1" readonly="0" noshowingrid="0" readonlyingrid="0">
|
|
<en>Expiration Date</en>
|
|
</USR_DUE_DATE>
|
|
<USR_CALENDAR type="dropdown" sqlconnection="dbarray">
|
|
SELECT CALENDAR_UID, CALENDAR_NAME FROM availableCalendars
|
|
<en>Calendar
|
|
<option name="">- None -</option>
|
|
</en>
|
|
</USR_CALENDAR>
|
|
<USR_STATUS type="dropdown" group="1" required="0">
|
|
<en>Status
|
|
<option name="ACTIVE">ACTIVE</option>
|
|
<option name="INACTIVE">INACTIVE</option>
|
|
<option name="VACATION">ON VACATION</option>
|
|
</en>
|
|
</USR_STATUS>
|
|
<USR_ROLE type="dropdown" defaultvalue="" required="0" group="1" dependentfields="" readonly="0" sqlconnection="rbac" noshowingrid="0" readonlyingrid="0">
|
|
SELECT ROL_CODE AS USR_ROLE, ROL_CODE AS CODE FROM ROLES WHERE ROL_SYSTEM = '00000000000000000000000000000002' AND ROL_STATUS = 1 ORDER BY FIELD(ROL_CODE,'@#DEFAULT_ROLE') DESC
|
|
<en>Role</en>
|
|
</USR_ROLE>
|
|
<TITLE2 type="title" group="1">
|
|
<en>Change Password</en>
|
|
</TITLE2>
|
|
<USR_NEW_PASS type="password" size="30" maxlength="20" validate="5" mask="" required="1">
|
|
<en>New Password </en>
|
|
</USR_NEW_PASS>
|
|
<USR_CNF_PASS type="password" size="30" maxlength="20" validate="5" mask="" required="1">
|
|
<en>Confirm Password </en>
|
|
</USR_CNF_PASS>
|
|
<SUBMIT type="button" onclick="validateLocalFields(this.form);" group="1">
|
|
<en>Save</en>
|
|
</SUBMIT>
|
|
<BTN_CANCEL type="button" onclick="cancel();">
|
|
<en>Cancel</en>
|
|
</BTN_CANCEL>
|
|
<MESSAGE0 type="phpvariable"/>
|
|
<MESSAGE1 type="phpvariable"/>
|
|
<MESSAGE2 type="phpvariable"/>
|
|
<MESSAGE3 type="phpvariable"/>
|
|
<MESSAGE4 type="phpvariable"/>
|
|
<MESSAGE5 type="phpvariable"/>
|
|
<JS type="javascript" replacetags="1"><![CDATA[
|
|
var sUsername;
|
|
|
|
var dynaformOnload = function()
|
|
{
|
|
sUsername = document.forms[0].elements['form[USR_USERNAME]'].value;
|
|
leimnud.event.add(document.forms[0].elements['form[USR_USERNAME]'], 'change', {method:verifyUsername, instance:document.forms[0].elements['form[USR_USERNAME]'], event:true});
|
|
leimnud.event.add(document.forms[0].elements['form[USR_CITY]'], 'change', {method:existsElements, instance:document.forms[0].elements['form[USR_CITY]'], event:true});
|
|
leimnud.event.add(document.forms[0].elements['form[USR_LOCATION]'], 'change', {method:existsElements, instance:document.forms[0].elements['form[USR_LOCATION]'], event:true});
|
|
if (document.forms[0].elements['form[USR_CITY]'].options.length == 0) {
|
|
hideRow(document.forms[0].elements['form[USR_CITY]']);
|
|
}
|
|
if (document.forms[0].elements['form[USR_LOCATION]'].options.length == 0) {
|
|
hideRow(document.forms[0].elements['form[USR_LOCATION]']);
|
|
}
|
|
};
|
|
|
|
var verifyUsername = function()
|
|
{
|
|
document.forms[0].elements['form[USR_USERNAME]'].disabled = true;
|
|
document.forms[0].elements['form[SUBMIT]'].disabled = true;
|
|
var oRPC = new leimnud.module.rpc.xmlhttp({
|
|
url :'users_Ajax',
|
|
async : false,
|
|
method :'POST',
|
|
args :'function=verifyUsername&sOriginalUsername=' + sUsername + '&sUsername=' + encodeURIComponent(this.value)});
|
|
oRPC.make();
|
|
var sResponse = oRPC.xmlhttp.responseText;
|
|
document.forms[0].elements['form[USR_USERNAME]'].disabled = false;
|
|
if (sResponse == 1)
|
|
{
|
|
new leimnud.module.app.alert().make({
|
|
label: "@#MESSAGE0"
|
|
});
|
|
document.forms[0].elements['form[USR_USERNAME]'].focus();
|
|
}
|
|
else
|
|
{
|
|
document.forms[0].elements['form[SUBMIT]'].disabled = false;
|
|
}
|
|
};
|
|
|
|
var verifyUserInformation = function(oForm)
|
|
{
|
|
var oAux1, oAux2;
|
|
var bContinue = true;
|
|
|
|
oAux1 = oForm.elements['form[USR_FIRSTNAME]'];
|
|
if (oAux1.value == '')
|
|
{
|
|
new leimnud.module.app.alert().make({
|
|
label: "@#MESSAGE4"
|
|
});
|
|
oAux1.focus();
|
|
bContinue = false;
|
|
return false;
|
|
}
|
|
|
|
oAux1 = oForm.elements['form[USR_LASTNAME]'];
|
|
if (oAux1.value == '')
|
|
{
|
|
new leimnud.module.app.alert().make({
|
|
label: "@#MESSAGE5"
|
|
});
|
|
oAux1.focus();
|
|
bContinue = false;
|
|
return false;
|
|
}
|
|
|
|
oAux1 = oForm.elements['form[USR_USERNAME]'];
|
|
if (oAux1.value == '')
|
|
{
|
|
new leimnud.module.app.alert().make({
|
|
label: "@#MESSAGE1"
|
|
});
|
|
oAux1.focus();
|
|
bContinue = false;
|
|
return false;
|
|
}
|
|
oAux1 = oForm.elements['form[USR_DUE_DATE]'];
|
|
if (oAux1.value == '')
|
|
{
|
|
new leimnud.module.app.alert().make({
|
|
label: "@#MESSAGE2"
|
|
});
|
|
oAux1.focus();
|
|
bContinue = false;
|
|
return false;
|
|
}
|
|
oAux1 = oForm.elements['form[USR_NEW_PASS]'];
|
|
if (oAux1.value != '')
|
|
{
|
|
oAux2 = oForm.elements['form[USR_CNF_PASS]'];
|
|
if (oAux1.value != oAux2.value)
|
|
{
|
|
new leimnud.module.app.alert().make({
|
|
label: "@#MESSAGE3"
|
|
});
|
|
oAux1.focus();
|
|
bContinue = false;
|
|
return false;
|
|
}
|
|
}
|
|
if (bContinue)
|
|
{
|
|
oForm.submit();
|
|
}
|
|
};
|
|
|
|
var existsElements = function () {
|
|
if (this.options.length > 0) {
|
|
showRow(this);
|
|
}
|
|
else {
|
|
hideRow(this);
|
|
}
|
|
};
|
|
|
|
|
|
/*
|
|
* function validateLocalEmail
|
|
* @author gustavo cruz gustavo-at-colosa-dot-com
|
|
* @param sEmail email form field.
|
|
* @return true / false
|
|
* @desc function using regular expressions ir order to validate
|
|
* an email adress.
|
|
*/
|
|
|
|
var validateLocalEmail = function(sEmail){
|
|
var sFilter = /^[a-zA-Z]+([_\.-]?[a-zA-Z0-9]+)*@[a-zA-Z0-9]+([\.-]?[a-zA-Z0-9]+)*(\.[a-zA-Z]{2,4})+$/;
|
|
if (!sFilter.test(sEmail.value)) {
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
/*
|
|
* function validatePasswordFields
|
|
* @author gustavo cruz gustavo-at-colosa-dot-com
|
|
* @param sPassword email form field.
|
|
* @param sPasswordCnf email form field.
|
|
* @return true/false
|
|
* @desc function that compares the values of two password fields
|
|
*/
|
|
|
|
var validatePasswordsFields = function(sPassword,sPasswordCnf){
|
|
if (sPassword.value==sPasswordCnf.value){
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/*
|
|
* function validateLocalData
|
|
* @author gustavo cruz gustavo-at-colosa-dot-com
|
|
* @param oForm form that is validated.
|
|
* @return void.
|
|
* @desc function that validates local data for email and passwords.
|
|
*/
|
|
|
|
var validateLocalFields = function(oForm)
|
|
{
|
|
var sEmail = document.getElementById('form[USR_EMAIL]');
|
|
var sPassword = document.getElementById('form[USR_NEW_PASS]');
|
|
var sPasswordRep = document.getElementById('form[USR_CNF_PASS]');
|
|
var sAlert = "";
|
|
var bContinue = true;
|
|
bContinue = validateForm("[{\"name\":\"USR_FIRSTNAME\",\"type\":\"text\",\"label\":\"First Name\"},{\"name\":\"USR_LASTNAME\",\"type\":\"text\",\"label\":\"Last Name\"},{\"name\":\"USR_USERNAME\",\"type\":\"text\",\"label\":\"User ID (*)\"},{\"name\":\"USR_DUE_DATE\",\"type\":\"date\",\"label\":\"Expiration Date\"},{\"name\":\"USR_NEW_PASS\",\"type\":\"password\",\"label\":\"New Password\"},{\"name\":\"USR_CNF_PASS\",\"type\":\"password\",\"label\":\"Confirm Password\"}]".parseJSON());
|
|
if (bContinue){
|
|
if (!validateLocalEmail(sEmail)){
|
|
sAlert = sAlert+"Please provide a valid email address. <br>";
|
|
bContinue = false;
|
|
}
|
|
if (!validatePasswordsFields(sPassword,sPasswordRep)){
|
|
sAlert = sAlert+"The password fields don't match. <br>";
|
|
bContinue = false;
|
|
}
|
|
if (!bContinue){
|
|
msgBox(sAlert, "alert");
|
|
} else {
|
|
oForm.submit();
|
|
}
|
|
}
|
|
};
|
|
|
|
function cancel() {
|
|
window.location = 'users_List';
|
|
}
|
|
|
|
]]></JS>
|
|
</dynaForm>
|