BUG 7394 1st commit - still not functional
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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');
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user