319 lines
13 KiB
XML
319 lines
13 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>
|
||
<ru-RU><![CDATA[Профиль]]></ru-RU>
|
||
</TITLE3>
|
||
<USR_PHOTO type="file" group="1">
|
||
<en>Photo</en>
|
||
<ru-RU><![CDATA[Фотография]]></ru-RU>
|
||
</USR_PHOTO>
|
||
<USR_RESUME type="file" group="1">
|
||
<en>Resume</en>
|
||
<ru-RU><![CDATA[Резюме]]></ru-RU>
|
||
</USR_RESUME>
|
||
<TITLE1 type="title" group="1">
|
||
<en>Personal Information</en>
|
||
<ru-RU><![CDATA[Персональные данные]]></ru-RU>
|
||
</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>
|
||
<ru-RU><![CDATA[Имя]]></ru-RU>
|
||
</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>
|
||
<ru-RU><![CDATA[Фамилия]]></ru-RU>
|
||
</USR_LASTNAME>
|
||
<USR_USERNAME type="text" size="15" maxlength="50" validate="Email" defaultvalue="" required="1" group="1" dependentfields="" linkfield="" strto="" readonly="0" noshowingrid="0" readonlyingrid="0" totalizeable="0" onchange="">
|
||
<en>User ID (*)</en>
|
||
<ru-RU><![CDATA[Идентификатор (*)]]></ru-RU>
|
||
</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>
|
||
<ru-RU><![CDATA[Email]]></ru-RU>
|
||
</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>
|
||
<ru-RU><![CDATA[Адрес]]></ru-RU>
|
||
</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>
|
||
<ru-RU><![CDATA[Индекс]]></ru-RU>
|
||
</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>
|
||
<ru-RU><![CDATA[Страна]]><option name="''"><![CDATA['']]></option></ru-RU></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>
|
||
<ru-RU><![CDATA[Регион/область]]></ru-RU></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>
|
||
<ru-RU><![CDATA[Местонахождение]]></ru-RU></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>
|
||
<ru-RU><![CDATA[Телефон]]></ru-RU>
|
||
</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>
|
||
<ru-RU><![CDATA[Должность]]></ru-RU>
|
||
</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>
|
||
<ru-RU><![CDATA[В подчинении]]><option name="''"><![CDATA['']]></option></ru-RU></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>
|
||
<ru-RU><![CDATA[Заместитель]]><option name="''"><![CDATA['']]></option></ru-RU></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>
|
||
<ru-RU><![CDATA[Срок]]></ru-RU>
|
||
</USR_DUE_DATE>
|
||
<USR_CALENDAR type="dropdown" sqlconnection="dbarray">
|
||
SELECT CALENDAR_UID, CALENDAR_NAME FROM availableCalendars
|
||
<en>Calendar
|
||
<option name="">- None -</option>
|
||
</en>
|
||
<ru-RU><![CDATA[Календарь]]><option name="''"><![CDATA[- None -]]></option></ru-RU></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>
|
||
<ru-RU><![CDATA[Статус]]><option name="ACTIVE"><![CDATA[Действующий]]></option><option name="INACTIVE"><![CDATA[Отключенный]]></option><option name="VACATION"><![CDATA[В отпуске]]></option></ru-RU>
|
||
</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>
|
||
<ru-RU><![CDATA[Роль]]></ru-RU></USR_ROLE>
|
||
<TITLE2 type="title" group="1">
|
||
<en>Change Password</en>
|
||
<ru-RU><![CDATA[Изменить пароль]]></ru-RU>
|
||
</TITLE2>
|
||
<USR_NEW_PASS type="password" size="30" maxlength="20" validate="5" mask="" required="1">
|
||
<en>New Password </en>
|
||
<ru-RU><![CDATA[Новый пароль]]></ru-RU>
|
||
</USR_NEW_PASS>
|
||
<USR_CNF_PASS type="password" size="30" maxlength="20" validate="5" mask="" required="1">
|
||
<en>Confirm Password </en>
|
||
<ru-RU><![CDATA[Подтверждение]]></ru-RU>
|
||
</USR_CNF_PASS>
|
||
<SUBMIT type="button" onclick="validateLocalFields(this.form);" group="1">
|
||
<en>Save</en>
|
||
<ru-RU><![CDATA[Сохранить]]></ru-RU>
|
||
</SUBMIT>
|
||
<BTN_CANCEL type="button" onclick="cancel();">
|
||
<en>Cancel</en>
|
||
<ru-RU><![CDATA[Отменить]]></ru-RU>
|
||
</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>
|