BUG 7394 1st commit - still not functional

This commit is contained in:
Enrique Ponce De Leon
2011-11-30 18:27:11 -04:00
parent b86ad5c09c
commit 162c0bc650
6 changed files with 379 additions and 91 deletions

View File

@@ -15,15 +15,15 @@ function G_Form ( element, id )
this.id=id; this.id=id;
this.aElements=[]; this.aElements=[];
this.ajaxServer=''; this.ajaxServer='';
this.getElementIdByName = function (name) { this.getElementIdByName = function (name){
if (name=='') return -1; if (name=='') return -1;
var j; var j;
for(j=0;j<me.aElements.length;j++) { for(j=0;j<me.aElements.length;j++){
if (me.aElements[j].name===name) return j; if (me.aElements[j].name===name) return j;
} }
return -1; return -1;
}; };
this.getElementByName = function (name) { this.getElementByName = function (name) {
var i=me.getElementIdByName(name); var i=me.getElementIdByName(name);
if (i>=0) return me.aElements[i]; else return null; if (i>=0) return me.aElements[i]; else return null;
}; };
@@ -62,6 +62,7 @@ function G_Field ( form, element, name )
this.name=name; this.name=name;
this.dependentFields=[]; this.dependentFields=[];
this.dependentOf=[]; this.dependentOf=[];
this.hide = function( parentLevel ){ this.hide = function( parentLevel ){
if (typeof(parentLevel)==='undefined') parentLevel = 1; if (typeof(parentLevel)==='undefined') parentLevel = 1;
var parent = me.element; var parent = me.element;
@@ -69,6 +70,7 @@ function G_Field ( form, element, name )
parent = parent.parentNode; parent = parent.parentNode;
parent.style.display = 'none'; parent.style.display = 'none';
}; };
this.show = function( parentLevel ){ this.show = function( parentLevel ){
if (typeof(parentLevel)==='undefined') parentLevel = 1; if (typeof(parentLevel)==='undefined') parentLevel = 1;
var parent = me.element; var parent = me.element;
@@ -326,25 +328,90 @@ function G_DropDown( form, element, name )
} }
G_DropDown.prototype=new G_Field(); G_DropDown.prototype=new G_Field();
function G_Text( form, element, name, type ) function G_Text( form, element, name)
{ {
var me=this; var me = this;
var mType = 'text'; this.mType = 'text';
this.parent = G_Field; this.parent = G_Field;
this.browser = {};
this.checkBrowser = function(){
var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName = navigator.appName;
var fullVersion = ''+parseFloat(navigator.appVersion);
var majorVersion = parseInt(navigator.appVersion,10);
var nameOffset,verOffset,ix;
// In Opera, the true version is after "Opera" or after "Version"
if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
browserName = "Opera";
fullVersion = nAgt.substring(verOffset+6);
if ((verOffset=nAgt.indexOf("Version"))!=-1)
fullVersion = nAgt.substring(verOffset+8);
}
// In MSIE, the true version is after "MSIE" in userAgent
else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
browserName = "Microsoft Internet Explorer";
fullVersion = nAgt.substring(verOffset+5);
}
// In Chrome, the true version is after "Chrome"
else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
browserName = "Chrome";
fullVersion = nAgt.substring(verOffset+7);
}
// In Safari, the true version is after "Safari" or after "Version"
else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
browserName = "Safari";
fullVersion = nAgt.substring(verOffset+7);
if ((verOffset=nAgt.indexOf("Version"))!=-1)
fullVersion = nAgt.substring(verOffset+8);
}
// In Firefox, the true version is after "Firefox"
else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
browserName = "Firefox";
fullVersion = nAgt.substring(verOffset+8);
}
// In most other browsers, "name/version" is at the end of userAgent
else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) <
(verOffset=nAgt.lastIndexOf('/')) )
{
browserName = nAgt.substring(nameOffset,verOffset);
fullVersion = nAgt.substring(verOffset+1);
if (browserName.toLowerCase()==browserName.toUpperCase()) {
browserName = navigator.appName;
}
}
// trim the fullVersion string at semicolon/space if present
if ((ix=fullVersion.indexOf(";"))!=-1)
fullVersion=fullVersion.substring(0,ix);
if ((ix=fullVersion.indexOf(" "))!=-1)
fullVersion=fullVersion.substring(0,ix);
majorVersion = parseInt(''+fullVersion,10);
if (isNaN(majorVersion)) {
fullVersion = ''+parseFloat(navigator.appVersion);
majorVersion = parseInt(navigator.appVersion,10);
}
this.browser = {
name: browserName,
fullVersion: fullVersion,
majorVersion: majorVersion,
userAgent: navigator.userAgent
};
};
this.parent( form, element, name ); this.parent( form, element, name );
if (element) { if (element) {
this.prev = element.value; this.prev = element.value;
} }
if (type){
//alert('Type: ' + type); this.validate = 'Any';
mType = type; this.mask = '';
} this.required = false;
this.validate = 'Any'; this.formula = '';
this.mask=''; this.key_Change = false;
this.required=false; var doubleChange = false;
this.formula='';
this.key_Change = false;
var doubleChange=false;
//FUNCTIONS //FUNCTIONS
@@ -354,8 +421,9 @@ function G_Text( form, element, name, type )
} }
function replaceAll( text, busca, reemplaza ){ function replaceAll( text, busca, reemplaza ){
while (text.toString().indexOf(busca) != -1) while (text.toString().indexOf(busca) != -1){
text = text.toString().replace(busca,reemplaza); text = text.toString().replace(busca,reemplaza);
}
return text; return text;
} }
@@ -369,7 +437,7 @@ function G_Text( form, element, name, type )
} }
function renderNewValue(element, keyCode){ function renderNewValue(element, keyCode){
var myField = element; /*var myField = element;
var myValue = myField.value; var myValue = myField.value;
var cursorPos = 0; var cursorPos = 0;
var csel; var csel;
@@ -377,23 +445,35 @@ function G_Text( form, element, name, type )
var csel = me.getCursorPosition(); var csel = me.getCursorPosition();
var startPos = csel.selectionStart; var startPos = csel.selectionStart;
var endPos = csel.selectionEnd; var endPos = csel.selectionEnd;
var newValue2;
switch(keyCode){ switch(keyCode){
case 8: case 8:
if (startPos>0) { if (startPos>0) {
newValue = myValue.substring(0, startPos-1); newValue = myValue.substring(0, startPos-1);
newValue = newValue + myValue.substring(endPos, myField.value.length); newValue = newValue + myValue.substring(endPos, myField.value.length);
if (mType !== 'text'){
newValue2 = G.toMask(newValue, me.mask, startPos);
}else{
newValue2 = G.toMask(newValue, me.mask, startPos, 'normal');
}
newValue = newValue2.result;
} }
break; break;
case 46: case 46:
newValue = myValue.substring(0, startPos); newValue = myValue.substring(0, startPos);
newValue = newValue + myValue.substring(endPos+1, myField.value.length); newValue = newValue + myValue.substring(endPos+1, myField.value.length);
if (mType !== 'text'){
newValue2 = G.toMask(newValue, me.mask, startPos);
}else{
newValue2 = G.toMask(newValue, me.mask, startPos, 'normal');
}
newValue = newValue2.result;
break; break;
} }
return {result: newValue, cursor: startPos}; return {result: newValue, cursor: startPos};*/
} }
//MEMBERS //MEMBERS
this.setContent = function(content) { this.setContent = function(content) {
me.element.value = ''; me.element.value = '';
if (content.options) { if (content.options) {
@@ -404,6 +484,7 @@ function G_Text( form, element, name, type )
}; };
this.validateKey = function(event){ this.validateKey = function(event){
/*
attributes = elementAttributesNS(element, 'pm'); attributes = elementAttributesNS(element, 'pm');
if(me.element.readOnly) return true; if(me.element.readOnly) return true;
me.prev = me.element.value; me.prev = me.element.value;
@@ -419,7 +500,8 @@ function G_Text( form, element, name, type )
attributes.mask=attributes.mask.replace('%M','mm'); attributes.mask=attributes.mask.replace('%M','mm');
attributes.mask=attributes.mask.replace('%S','mm'); attributes.mask=attributes.mask.replace('%S','mm');
me.mask=attributes.mask; me.mask=attributes.mask;
} }
//alert(me.mask);
if (me.mask !=='' ) { if (me.mask !=='' ) {
if ((keyCode < 48 || keyCode > 57) && (keyCode != 8 && keyCode != 0 && keyCode != 46)) return false; if ((keyCode < 48 || keyCode > 57) && (keyCode != 8 && keyCode != 0 && keyCode != 46)) return false;
if((keyCode===118 || keyCode===86) && event.ctrlKey) return false; if((keyCode===118 || keyCode===86) && event.ctrlKey) return false;
@@ -453,13 +535,13 @@ function G_Text( form, element, name, type )
break; break;
case "Alpha": case "Alpha":
if (keyCode==8) return true; if (keyCode==8) return true;
patron =/[A-Za-z\sáéíóúäëïöüñçÇÑÃ�ÉÃ�ÓÚÄËÃ�Ãâ€ÃƒÅ“]/; patron =/[A-Za-z\sáéíóúäëïöüñçÇÑ�É�ÓÚÄË�ÖÜ]/;
te = String.fromCharCode(keyCode); te = String.fromCharCode(keyCode);
return patron.test(te); return patron.test(te);
break; break;
case "AlphaNum": case "AlphaNum":
if (keyCode==8) return true; if (keyCode==8) return true;
patron =/[A-Za-z0-9\sáéíóúäëïöüñçÇÑÃ�ÉÃ�ÓÚÄËÃ�Ãâ€ÃƒÅ“]/; patron =/[A-Za-z0-9\sáéíóúäëïöüñçÇÑ�É�ÓÚÄË�ÖÜ]/;
te = String.fromCharCode(keyCode); te = String.fromCharCode(keyCode);
return patron.test(te); return patron.test(te);
break; break;
@@ -486,6 +568,8 @@ function G_Text( form, element, name, type )
newValue = newValue + myValue; newValue = newValue + myValue;
newValue = newValue + oldValue.substring(endPos, oldValue.length); newValue = newValue + oldValue.substring(endPos, oldValue.length);
startPos++; startPos++;
var newValue2; var newValue2;
@@ -494,7 +578,11 @@ function G_Text( form, element, name, type )
}else{ }else{
newValue2 = G.toMask(newValue, me.mask, startPos, 'normal'); newValue2 = G.toMask(newValue, me.mask, startPos, 'normal');
} }
//alert(newValue + ' -> ' + mType + ' -> ' + newValue2.result);
//alert(newValue2.result);
me.element.value = newValue2.result; me.element.value = newValue2.result;
//alert(me.element.value);
me.setSelectionRange(newValue2.cursor, newValue2.cursor); me.setSelectionRange(newValue2.cursor, newValue2.cursor);
if (me.element.fireEvent){ if (me.element.fireEvent){
@@ -504,12 +592,13 @@ function G_Text( form, element, name, type )
evObj.initEvent( 'change', true, true ); evObj.initEvent( 'change', true, true );
me.element.dispatchEvent(evObj); me.element.dispatchEvent(evObj);
} }
return false; return true;
} }*/
}; };
this.putFormatNumber =function (evt) { this.putFormatNumber =function (evt) {
if((typeof(evt)==="undefined" || evt===0) && me.mask!='' ){ /*
if((typeof(evt)==="undefined" || evt===0) && me.mask!='' ){*/
// var numberSet=me.element.value.split('.'); // var numberSet=me.element.value.split('.');
// maskD = me.mask.split(';'); // maskD = me.mask.split(';');
// maskL = (maskD.length >1)?maskD[1]:maskD[0]; // maskL = (maskD.length >1)?maskD[1]:maskD[0];
@@ -572,11 +661,11 @@ function G_Text( form, element, name, type )
// } // }
// } // }
// } // }
} //}
}; };
this.preValidateChange=function(event) { this.preValidateChange=function(event) {
var oNewValue; /*var oNewValue;
var newValueR; var newValueR;
me.putFormatNumber(event); me.putFormatNumber(event);
if(me.element.readOnly) return true; if(me.element.readOnly) return true;
@@ -609,8 +698,9 @@ function G_Text( form, element, name, type )
} }
return false; return false;
} }
//alert(me.element.value);
me.prev=me.element.value; me.prev=me.element.value;
return true; return true;*/
}; };
this.execFormula=function(event) { this.execFormula=function(event) {
@@ -623,23 +713,23 @@ function G_Text( form, element, name, type )
}; };
this.validateChange=function(event) { this.validateChange=function(event) {
if (me.mask ==='') return true; /*if (me.mask ==='') return true;
var sel=me.getSelectionRange(); var sel=me.getSelectionRange();
var newValue2=G.cleanMask( me.element.value, me.mask, sel.selectionStart ); var newValue2=G.cleanMask( me.element.value, me.mask, sel.selectionStart );
newValue2=G.toMask( newValue2.result, me.mask, newValue2.cursor); newValue2=G.toMask( newValue2.result, me.mask, newValue2.cursor);
me.element.value = newValue2.result; me.element.value = newValue2.result;
me.setSelectionRange(newValue2.cursor, newValue2.cursor); me.setSelectionRange(newValue2.cursor, newValue2.cursor);
return true; return true;*/
}; };
this.value=function() this.value = function()
{ {
return me.element.value; return me.element.value;
}; };
//Get Cursor Position //Get Cursor Position
this.getCursorPos = function () { this.getCursorPos = function () {
var textElement=me.element; /*var textElement=me.element;
if (!document.selection) return textElement.selectionStart; if (!document.selection) return textElement.selectionStart;
//save off the current value to restore it later, //save off the current value to restore it later,
var sOldText = textElement.value; var sOldText = textElement.value;
@@ -663,7 +753,7 @@ function G_Text( form, element, name, type )
var cursorPos = (i - sOldRange.length); var cursorPos = (i - sOldRange.length);
return cursorPos; return cursorPos;
} }
} }*/
}; };
this.setSelectionRange = function(selectionStart, selectionEnd) { this.setSelectionRange = function(selectionStart, selectionEnd) {
@@ -775,76 +865,252 @@ function G_Text( form, element, name, type )
} }
}; };
if(this.element) { this.removeMask = function(value, cursor){
this.element.onblur = function(event) return {result: value, cursor: cursor};
{ };
var evt = event || window.event;
var keyPressed = evt.which || evt.keyCode; this.replaceMask= function(cursor, type, mask, keyCode, direction){
me.putFormatNumber(keyPressed); var oldValue = me.element.value;
var valueWOMask = me.removeMask(oldValue, cursor);
var realValue = valueWOMask.result;
var realCursor = valueWOMask.cursor;
var startPos = realCursor.selectionStart;
var endPos = realCursor.selectionEnd;
switch(keyCode){
case 8: case 46:
if (startPos != endPos){
newValue = realValue.substring(0, startPos);
newValue += realValue.substring(endPos, realValue.length);
newCursor = startPos;
}else{
if (keyCode == 8){
newValue = realValue.substring(0, startPos - 1);
newValue += realValue.substring(endPos, realValue.length);
newCursor = startPos - 1;
}
else{
newValue = realValue.substring(0, startPos);
newValue += realValue.substring(endPos + 1, realValue.length);
newCursor = startPos;
}
}
break;
default:
newKey = String.fromCharCode(keyCode);
newValue = realValue.substring(0, startPos);
newValue += newKey;
newValue += realValue.substring(endPos, realValue.length);
newCursor = startPos + 1;
break;
}
alert(newValue);
return {result: newValue, cursor: newCursor};
};
this.replaceMasks= function(cursor, type, mask, keyCode, direction){
var aMasks = mask.split(';');
var aValues = [];
for(m=0; m < aMasks.length; m++){
aValues.push(me.replaceMask(cursor, type, aMasks[m], keyCode, direction))
}
index = 0;
minMask = aValues[0].result;
if (aValues.length > 1){
for(v=1; v < aValues.length; v++){
if (aValues[v].result < minMask){
minMask = aValues[v].result;
index = v;
}
}
}
return aValues[index];
};
this.applyMask = function(event){
var outData = null;
if (me.mask != ''){
var selCursor = me.getCursorPosition();
switch(event.keyCode){
case 35: case 36: case 37: case 38: case 39: case 40: case 13:
break;
case 8: case 46: default:
switch(me.mType){
case 'text':
outData = me.replaceMasks(selCursor, 'text', me.mask, event.keyCode,'forward');
break;
case 'percentage':
case 'currency':
outData = me.replaceMasks(selCursor, 'number', me.mask, event.keyCode,'reverse');
break;
case 'date':
outData = me.replaceMasks(selCursor, 'date', me.mask, event.keyCode,'forward');
break;
}
break;
}
}
return outData;
};
this.pressKeyDown = function(event){
me.checkBrowser();
var keyValid = true;
//CHECK IF KEY IS VALID AND AFFECT THE FIELD'S VALUE
switch(event.keyCode){
case 8: //BACKSPACE
case 46: //DELETE
keyValid = (me.mask == '');
break;
case 35: //HOME
case 36: //END
case 37: //LEFT KEY
case 38: //TOP KEY
case 39: //RIGHT KEY
case 40: //BOTTOM KEY
keyValid = true;//
break;
case 13:
keyValid = true;
break;
default:
switch(me.validate){
case 'Any':
keyValid = true;
break;
case 'Int':
keyValid = ((event.keyCode > 47) && (event.keyCode < 58) || (event.keyCode > 95) && (event.keyCode < 106));
break;
case 'Real':
keyValid = ((event.keyCode > 47) && (event.keyCode < 58) || (event.keyCode > 95) && (event.keyCode < 106));
keyValid = keyValid || (event.keyCode == 109);
keyValid = keyValid || (event.keyCode == 110);
keyValid = keyValid || (event.keyCode == 190);
break;
case 'Alpha':
patron =/[a-zA-Z]/; // \sÃÆÃ¡ÃÆÃ©ÃÆÃ­ÃÆÃ³ÃÆÃºÃÆÃ¤ÃÆÃ«ÃÆÃ¯ÃÆÃ¶ÃÆÃ¼ÃÆÃ±ÃÆÃ§ÃÆÃ¢â¬Â¡ÃƒÆÃ¢â¬ËœÃƒÆÃ¯Â¿Â½ÃƒÆÃ¢â¬Â°ÃƒÆÃ¯Â¿Â½ÃƒÆÃ¢â¬Å“ÃÆÃ…¡ÃÆÃ¢â¬Å¾ÃƒÆÃ¢â¬Â¹ÃƒÆÃ¯Â¿Â½ÃƒÆÃ¢â¬â€œÃƒÆÃ…“]/;
key = String.fromCharCode(event.keyCode);
keyValid = patron.test(key);
break;
case 'AlphaNum':
patron =/[a-zA-Z0-9\sÃÆÃ¡ÃÆÃ©ÃÆÃ­ÃÆÃ³ÃÆÃºÃÆÃ¤ÃÆÃ«ÃÆÃ¯ÃÆÃ¶ÃÆÃ¼ÃÆÃ±ÃÆÃ§ÃÆÃ¢â¬Â¡ÃƒÆÃ¢â¬ËœÃƒÆÃ¯Â¿Â½ÃƒÆÃ¢â¬Â°ÃƒÆÃ¯Â¿Â½ÃƒÆÃ¢â¬Å“ÃÆÃ…¡ÃÆÃ¢â¬Å¾ÃƒÆÃ¢â¬Â¹ÃƒÆÃ¯Â¿Â½ÃƒÆÃ¢â¬â€œÃƒÆÃ…“]/;
key = String.fromCharCode(event.keyCode);
keyValid = patron.test(key);
break;
default:
var k = new leimnud.module.validator({
valid :[me.validate],
key :event,
lang :(typeof(me.language)!=='undefined')?me.language:"en"
});
keyValid = k.result();
break;
}
if(this.validate=="Email") }
{ //APPLIES MASK AND RETURNS VALUES
//var pat=/^[\w\_\-\.çñ]{2,255}@[\w\_\-]{2,255}\.[a-z]{1,3}\.?[a-z]{0,3}$/; if (keyValid){
var pat=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$/; maskResult = me.applyMask(event);
if(!pat.test(this.element.value)) if (maskResult != null){
{ me.element.value = maskResult.result;
//old|if(this.required=="0"&&this.element.value=="") { me.setSelectionRange(maskResult.cursor, maskResult.cursor);
if(this.element.value=="") { //me.setSelectionRange(0, 0);
this.element.className="module_app_input___gray";
return;
}
else {
this.element.className=this.element.className.split(" ")[0]+" FormFieldInvalid";
}
} }
else //LAUNCH ON_CHANGE EVENT
{ if (me.element.fireEvent){
this.element.className=this.element.className.split(" ")[0]+" FormFieldValid"; me.element.fireEvent("onchange");
}else{
var evObj = document.createEvent('HTMLEvents');
evObj.initEvent( 'change', true, true );
me.element.dispatchEvent(evObj);
}
return true;
}
else{
if (me.browser.name == 'Chrome'){
event.returnValue = false;
}
else{
return false;
} }
} }
};
if(this.element) {
this.element.onblur = function(event)
{
var evt = event || window.event;
var keyPressed = evt.which || evt.keyCode;
me.putFormatNumber(keyPressed);
if(this.validate=="Email")
{
//var pat=/^[\w\_\-\.çñ]{2,255}@[\w\_\-]{2,255}\.[a-z]{1,3}\.?[a-z]{0,3}$/;
var pat=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$/;
if(!pat.test(this.element.value))
{
//old|if(this.required=="0"&&this.element.value=="") {
if(this.element.value=="") {
this.element.className="module_app_input___gray";
return;
}
else {
this.element.className=this.element.className.split(" ")[0]+" FormFieldInvalid";
}
}
else
{
this.element.className=this.element.className.split(" ")[0]+" FormFieldValid";
}
}
if (this.strTo) { if (this.strTo) {
switch (this.strTo) { switch (this.strTo){
case 'UPPER': case 'UPPER':
this.element.value = this.element.value.toUpperCase(); this.element.value = this.element.value.toUpperCase();
break; break;
case 'LOWER': case 'LOWER':
this.element.value = this.element.value.toLowerCase(); this.element.value = this.element.value.toLowerCase();
break; break;
}
} }
} if (this.validate == 'NodeName') {
if (this.validate == 'NodeName') { var pat = /^[a-z\_](.)[a-z\d\_]{1,255}$/i;
var pat = /^[a-z\_](.)[a-z\d\_]{1,255}$/i; if(!pat.test(this.element.value)) {
if(!pat.test(this.element.value)) { this.element.value = '_' + this.element.value;
this.element.value = '_' + this.element.value; }
} }
} }.extend(this);
}.extend(this);
} }
if (!element) return; if (!element) return;
if (!window.event){ if (!window.event){
this.element.onkeypress = this.validateKey; //THIS ASSIGN FUNCTIONS FOR FIREFOX/MOZILLA
this.element.onkeydown = this.preValidateChange; this.element.onkeypress = this.pressKeyDown;
//this.element.onchange = this.updateDepententFields; //alert('window.event');
/*this.element.onkeypress = this.validateKey;
this.element.onkeydown = this.preValidateChange;*/
}else{ }else{
leimnud.event.add(this.element,'keypress',this.validateKey); //THIS ASSIGN FUNCTIONS FOR IE/CHROME
//leimnud.event.add(this.element,'change',this.updateDepententFields); leimnud.event.add(this.element,'keypress',this.pressKeyDown);
leimnud.event.add(this.element,'keydown',this.preValidateChange); //alert('validateKey');
//leimnud.event.add(this.element,'keypress',this.execFormula); /*leimnud.event.add(this.element,'keypress',this.validateKey);
leimnud.event.add(this.element,'keydown',this.preValidateChange); */
} }
leimnud.event.add(this.element,'change',this.updateDepententFields); //leimnud.event.add(this.element,'change',this.updateDepententFields);
} };
G_Text.prototype=new G_Field(); G_Text.prototype=new G_Field();
function G_Percentage( form, element, name ) function G_Percentage( form, element, name )
{ {
var me=this; var me=this;
this.parent = G_Text; this.parent = G_Text;
this.parent( form, element, name, 'percentage'); this.parent( form, element, name);
this.validate = 'Int'; this.validate = 'Int';
this.mType = 'percentage';
this.mask= '###.##'; this.mask= '###.##';
this.comma_separator = ".";
} }
G_Percentage.prototype=new G_Field(); G_Percentage.prototype=new G_Field();
@@ -852,9 +1118,11 @@ function G_Currency( form, element, name )
{ {
var me=this; var me=this;
this.parent = G_Text; this.parent = G_Text;
this.parent( form, element, name, 'currency'); this.parent( form, element, name);
this.validate = 'Int'; this.validate = 'Int';
this.mType = 'currency';
this.mask= '_###,###,###,###,###;###,###,###,###,###.00'; this.mask= '_###,###,###,###,###;###,###,###,###,###.00';
this.comma_separator = ".";
} }
G_Currency.prototype=new G_Field(); G_Currency.prototype=new G_Field();
@@ -873,6 +1141,7 @@ function G_Date( form, element, name )
var me=this; var me=this;
this.parent = G_Text; this.parent = G_Text;
this.parent( form, element, name ); this.parent( form, element, name );
this.mType = 'date';
this.mask= 'dd-mm-yyyy'; this.mask= 'dd-mm-yyyy';
} }
G_Date.prototype=new G_Field(); G_Date.prototype=new G_Field();
@@ -1405,7 +1674,7 @@ function G()
var objId=G.getId(element); var objId=G.getId(element);
switch (element.tagName){ switch (element.tagName){
case 'FORM': case 'FORM':
return eval('form_'+objId); return eval('form_' + objId);
break; break;
default: default:
if (element.form) { if (element.form) {
@@ -1947,7 +2216,7 @@ var validateForm = function(sRequiredFields) {
else { else {
vtext.passed(); vtext.passed();
} }
break; break;
case 'dropdown': case 'dropdown':
var vtext = new input(getField(aRequiredFields[i].name)); var vtext = new input(getField(aRequiredFields[i].name));
@@ -1979,7 +2248,7 @@ var validateForm = function(sRequiredFields) {
} else { } else {
vpass.passed(); vpass.passed();
} }
break; break;
case 'currency': case 'currency':
var vcurr = new input(getField(aRequiredFields[i].name)); var vcurr = new input(getField(aRequiredFields[i].name));
@@ -2091,7 +2360,7 @@ var validateForm = function(sRequiredFields) {
if(getField(aRequiredFields[i].name).value!='') { if(getField(aRequiredFields[i].name).value!='') {
var email = getField(aRequiredFields[i].name); var email = getField(aRequiredFields[i].name);
//var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; //var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
//var filter = /^[\w\_\-\.çñ]{2,255}@[\w\_\-]{2,255}\.[a-z]{1,3}\.?[a-z]{0,3}$/; //var filter = /^[\w\_\-\.çñ]{2,255}@[\w\_\-]{2,255}\.[a-z]{1,3}\.?[a-z]{0,3}$/;
var filter =/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/; var filter =/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if (!filter.test(email.value)&&email.value!="") { if (!filter.test(email.value)&&email.value!="") {
fielEmailInvalid.push(aRequiredFields[i].label); fielEmailInvalid.push(aRequiredFields[i].label);

View File

@@ -1598,6 +1598,7 @@ class XmlForm_Field_Currency extends XmlForm_Field_SimpleText {
var $formula = ''; var $formula = '';
var $function = ''; var $function = '';
var $gridFieldType = 'currency'; var $gridFieldType = 'currency';
var $comma_separator = '.';
/** /**
* render the field in a dynaform * render the field in a dynaform
@@ -1624,6 +1625,7 @@ class XmlForm_Field_Currency extends XmlForm_Field_SimpleText {
$html .= $this->NSDefaultValue().' '; $html .= $this->NSDefaultValue().' ';
$html .= $this->NSRequiredValue().' '; $html .= $this->NSRequiredValue().' ';
$html .= $this->NSGridType().' '; $html .= $this->NSGridType().' ';
$html .= 'pm:decimal_separator="'.$this->comma_separator.'" ';
$html .= '/>'; $html .= '/>';
}else{ //VIEW MODE }else{ //VIEW MODE
$html .= $this->htmlentities($value, ENT_COMPAT, 'utf-8'); $html .= $this->htmlentities($value, ENT_COMPAT, 'utf-8');
@@ -1673,6 +1675,7 @@ class XmlForm_Field_Percentage extends XmlForm_Field_SimpleText {
var $formula = ''; var $formula = '';
var $function = ''; var $function = '';
var $gridFieldType = 'percentage'; var $gridFieldType = 'percentage';
var $comma_separator = '.';
function render( $value = NULL, $owner = NULL) { function render( $value = NULL, $owner = NULL) {
@@ -1692,6 +1695,7 @@ class XmlForm_Field_Percentage extends XmlForm_Field_SimpleText {
$html .= 'onkeypress="'.$this->htmlentities($onkeypress, ENT_COMPAT, 'utf-8').'" '; $html .= 'onkeypress="'.$this->htmlentities($onkeypress, ENT_COMPAT, 'utf-8').'" ';
$html .= $this->NSDefaultValue().' '; $html .= $this->NSDefaultValue().' ';
$html .= $this->NSRequiredValue().' '; $html .= $this->NSRequiredValue().' ';
$html .= 'pm:decimal_separator="' + $this->comma_separator + '" ';
$html .= '/>'; $html .= '/>';
}else{ //VIEW MODE }else{ //VIEW MODE
$html .= $this->htmlentities($value, ENT_COMPAT, 'utf-8'); $html .= $this->htmlentities($value, ENT_COMPAT, 'utf-8');

View File

@@ -54,6 +54,11 @@
<td class="FormLabel" width="{$form_labelWidth}">{$PME_VALIDATE}</td> <td class="FormLabel" width="{$form_labelWidth}">{$PME_VALIDATE}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.PME_VALIDATE} </td> //--> <!-- <td class='FormFieldContent' width="{$form_width}" >{$form.PME_VALIDATE} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.PME_VALIDATE}</td> <td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.PME_VALIDATE}</td>
</tr>
<td class="FormLabel" width="{$form_labelWidth}">{$PME_COMMA_SEPARATOR}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.PME_VALIDATE} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.PME_COMMA_SEPARATOR}</td>
</tr> </tr>
<tr> <tr>
<td class="FormLabel" width="{$form_labelWidth}">{$PME_MASK}</td> <td class="FormLabel" width="{$form_labelWidth}">{$PME_MASK}</td>

View File

@@ -33,7 +33,9 @@ SELECT XMLNODE_NAME, TYPE FROM dynaForm WHERE XMLNODE_NAME = @@PME_XMLNODE_NAME
<PME_VALIDATE type="dropdown" defaultvalue="Real"> <PME_VALIDATE type="dropdown" defaultvalue="Real">
<en>Validate<option name="Int">Integer</option><option name="Real">Real Number</option></en> <en>Validate<option name="Int">Integer</option><option name="Real">Real Number</option></en>
</PME_VALIDATE> </PME_VALIDATE>
<PME_COMMA_SEPARATOR type="dropdown" defaultvalue=".">
<en>Decimal Separator<option name=".">Period [.]</option><option name=",">Comma [,]</option></en>
</PME_COMMA_SEPARATOR>
<PME_MASK type="text" maxlength="50" size="50" defaultvalue="###,###,###,###.##"> <PME_MASK type="text" maxlength="50" size="50" defaultvalue="###,###,###,###.##">
<en>Mask</en> <en>Mask</en>
</PME_MASK> </PME_MASK>

View File

@@ -49,6 +49,11 @@
<td class="FormLabel" width="{$form_labelWidth}">{$PME_VALIDATE}</td> <td class="FormLabel" width="{$form_labelWidth}">{$PME_VALIDATE}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.PME_VALIDATE} </td> //--> <!-- <td class='FormFieldContent' width="{$form_width}" >{$form.PME_VALIDATE} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.PME_VALIDATE}</td> <td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.PME_VALIDATE}</td>
</tr>
<td class="FormLabel" width="{$form_labelWidth}">{$PME_COMMA_SEPARATOR}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.PME_VALIDATE} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.PME_COMMA_SEPARATOR}</td>
</tr> </tr>
<tr> <tr>
<td class="FormLabel" width="{$form_labelWidth}">{$PME_MASK}</td> <td class="FormLabel" width="{$form_labelWidth}">{$PME_MASK}</td>

View File

@@ -32,6 +32,9 @@ SELECT XMLNODE_NAME, TYPE FROM dynaForm WHERE XMLNODE_NAME = @@PME_XMLNODE_NAME
<PME_VALIDATE type="dropdown" defaultvalue="Real"> <PME_VALIDATE type="dropdown" defaultvalue="Real">
<en>Validate<option name="Int">Integer </option><option name="Real">Real Number</option></en> <en>Validate<option name="Int">Integer </option><option name="Real">Real Number</option></en>
</PME_VALIDATE> </PME_VALIDATE>
<PME_COMMA_SEPARATOR type="dropdown" defaultvalue=".">
<en>Decimal Separator<option name=".">Period [.]</option><option name=",">Comma [,]</option></en>
</PME_COMMA_SEPARATOR>
<PME_MASK type="text" maxlength="50" size="30" defaultvalue="###.## %"> <PME_MASK type="text" maxlength="50" size="30" defaultvalue="###.## %">
<en>Mask</en> <en>Mask</en>