diff --git a/gulliver/js/form/core/form.js b/gulliver/js/form/core/form.js index 59b219cd7..d22121d69 100644 --- a/gulliver/js/form/core/form.js +++ b/gulliver/js/form/core/form.js @@ -3549,10 +3549,25 @@ var saveAndRedirectForm = function(oObject, oLocation) { } }; +var getGridFieldId = function(sFieldName){ + var arrayLabel = sFieldName.split("["); + var arrayLabelSanitized = []; + arrayLabel.map( function(n){ arrayLabelSanitized.push(n.replace(/]|\[/g, ''));} ); + var gridFieldId = "form["+arrayLabelSanitized[0]+"]["+arrayLabelSanitized[1]+"]["+arrayLabelSanitized[2]+"]"; + return gridFieldId; +}; var removeRequiredById = function(sFieldName) { if (!notValidateThisFields.inArray(sFieldName)) { notValidateThisFields.push(sFieldName); + var fieldId; + if(sFieldName.indexOf("]") > 1) { + fieldId = getGridFieldId(sFieldName); + } else { + fieldId = "form["+sFieldName+"]"; + } + document.getElementById(fieldId).setAttribute('pm:required','0'); + var oAux = document.getElementById('__notValidateThisFields__'); if (oAux) { oAux.value = notValidateThisFields.toJSONString(); @@ -3562,6 +3577,14 @@ var removeRequiredById = function(sFieldName) { var enableRequiredById = function(sFieldName) { if (notValidateThisFields.inArray(sFieldName)) { + var fieldId; + if(sFieldName.indexOf("]") > -1) { + fieldId = getGridFieldId(sFieldName); + } else { + fieldId = "form["+sFieldName+"]"; + } + document.getElementById(fieldId).setAttribute('pm:required','1'); + var i; var aAux = []; for(i = 0; i < notValidateThisFields.length; i++) { diff --git a/gulliver/js/maborak/core/maborak.js b/gulliver/js/maborak/core/maborak.js index 08091ba02..d6794373b 100644 --- a/gulliver/js/maborak/core/maborak.js +++ b/gulliver/js/maborak/core/maborak.js @@ -1191,7 +1191,9 @@ return oAux;};var saveAndRefreshForm=function(oObject){if(oObject){oObject.form. else{var oAux=window.document.getElementsByTagName('form');if(oAux.length>0){oAux[0].action+='&_REFRESH_=1';oAux[0].submit();}}};var sessionPersits=function(){var rpc=new leimnud.module.rpc.xmlhttp({url:'../services/sessionPersists',args:'dynaformRestoreValues='+(typeof(__dynaformSVal__)!='undefined'?__dynaformSVal__:''),async:false});rpc.make();var response=rpc.xmlhttp.responseText.parseJSON();return response.status;};var showPromptLogin=function(lastAction){lastActionPerformed=lastAction;promptPanel=new leimnud.module.panel();promptPanel.options={statusBarButtons:[{value:_('LOGIN')}],position:{center:true},size:{w:300,h:130},control:{close:false,resize:false},fx:{modal:true}};promptPanel.setStyle={content:{padding:10,paddingBottom:2,textAlign:'left',paddingLeft:50,backgroundRepeat:'no-repeat',backgroundPosition:'10 50%',backgroundColor:'transparent',borderWidth:0}};promptPanel.make();promptPanel.addContent(_('ID_DYNAFORM_EDITOR_LOGIN_AGAIN'));promptPanel.addContent('
');var thePassword=$dce('input');thePassword.type='password';thePassword.id='thePassword';leimnud.dom.setStyle(thePassword,{font:'normal 8pt Tahoma,MiscFixed',color:'#000',width:'100%',marginTop:3,backgroundColor:'white',border:'1px solid #919B9C'});promptPanel.addContent(thePassword);thePassword.focus();thePassword.onkeyup=function(evt) {var evt=(window.event)?window.event:evt;var key=(evt.which)?evt.which:evt.keyCode;if(key==13){verifyLogin();}}.extend(this);promptPanel.fixContent();promptPanel.elements.statusBarButtons[0].onmouseup=verifyLogin;};var verifyLogin=function(){if(document.getElementById('thePassword').value.trim()==''){alert(_('ID_WRONG_PASS'));return;} var rpc=new leimnud.module.rpc.xmlhttp({url:'../login/authentication',args:'form[USR_USERNAME]='+__usernameLogged__+'&form[USR_PASSWORD]='+document.getElementById('thePassword').value.trim()+'&form[USR_LANG]='+SYS_LANG});rpc.callback=function(rpc){if(rpc.xmlhttp.responseText.indexOf('form[USR_USERNAME]')==-1){promptPanel.remove();lastActionPerformed='';}else{alert(_('ID_WRONG_PASS'));}}.extend(this);rpc.make();};var saveForm=function(oObject,actionParameter){if(oObject){var actionUrl=actionParameter||oObject.form.action.replace('cases_SaveData','saveForm');ajax_post(actionUrl,oObject.form,'POST');} -else{var oAux=window.document.getElementsByTagName('form');if(oAux.length>0){var actionUrl=actionParameter||oAux[0].action.replace('cases_SaveData','saveForm');ajax_post(actionUrl,oAux[0],'POST');}}};var validateURL=function(url){var regexp=/http?s?:\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?/;if(regexp.test(url)){return true;}else{return false;}};var saveAndRedirectForm=function(oObject,oLocation){saveForm(oObject);if(validateURL(oLocation)){if(typeof(parent)!="undefined"){parent.location.href=oLocation;}else{document.location.href=oLocation;}}};var removeRequiredById=function(sFieldName){if(!notValidateThisFields.inArray(sFieldName)){notValidateThisFields.push(sFieldName);var oAux=document.getElementById('__notValidateThisFields__');if(oAux){oAux.value=notValidateThisFields.toJSONString();}}};var enableRequiredById=function(sFieldName){if(notValidateThisFields.inArray(sFieldName)){var i;var aAux=[];for(i=0;i0){var actionUrl=actionParameter||oAux[0].action.replace('cases_SaveData','saveForm');ajax_post(actionUrl,oAux[0],'POST');}}};var validateURL=function(url){var regexp=/http?s?:\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?/;if(regexp.test(url)){return true;}else{return false;}};var saveAndRedirectForm=function(oObject,oLocation){saveForm(oObject);if(validateURL(oLocation)){if(typeof(parent)!="undefined"){parent.location.href=oLocation;}else{document.location.href=oLocation;}}};var getGridFieldId=function(sFieldName){var arrayLabel=sFieldName.split("[");var arrayLabelSanitized=[];arrayLabel.map(function(n){arrayLabelSanitized.push(n.replace(/]|\[/g,''));});var gridFieldId="form["+arrayLabelSanitized[0]+"]["+arrayLabelSanitized[1]+"]["+arrayLabelSanitized[2]+"]";return gridFieldId;};var removeRequiredById=function(sFieldName){if(!notValidateThisFields.inArray(sFieldName)){notValidateThisFields.push(sFieldName);var fieldId;if(sFieldName.indexOf("]")>1){fieldId=getGridFieldId(sFieldName);}else{fieldId="form["+sFieldName+"]";} +document.getElementById(fieldId).setAttribute('pm:required','0');var oAux=document.getElementById('__notValidateThisFields__');if(oAux){oAux.value=notValidateThisFields.toJSONString();}}};var enableRequiredById=function(sFieldName){if(notValidateThisFields.inArray(sFieldName)){var fieldId;if(sFieldName.indexOf("]")>-1){fieldId=getGridFieldId(sFieldName);}else{fieldId="form["+sFieldName+"]";} +document.getElementById(fieldId).setAttribute('pm:required','1');var i;var aAux=[];for(i=0;igetPreviousStep( $_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['STEP_POSITION'] ); - $_POST['req_val'] = $missing_req_values; - global $G_PUBLISH; - $G_PUBLISH = new Publisher(); - $G_PUBLISH->AddContent( 'view', 'cases/missRequiredFields' ); - G::RenderPage( 'publish', 'blank' ); - exit( 0 ); + /*hotfix notValidateThisFields */ + $validate = false; + $string = serialize($missing_req_values); + if(!is_array($_POST['__notValidateThisFields__'])) { + $notValidateThisFields = explode("," ,$_POST['__notValidateThisFields__']); + } else { + $notValidateThisFields = $_POST['__notValidateThisFields__']; + } + + foreach($notValidateThisFields as $val) { + if(strpos($val,"]")) { + $gridField = substr($val,strrpos($val,"["),strlen($val)); + $gridField = preg_replace("/[^a-zA-Z0-9_-]+/", "", $gridField); + $pattern = "/".$gridField."/i"; + } else { + $pattern = "/".$val."/i"; + } + preg_match($pattern, $string, $matches, PREG_OFFSET_CAPTURE); + if(sizeof($matches)) { + $validate = true; + } + } + + if(!$validate && !sizeof($matches)) { + $_POST['next_step'] = $aNextStep; + $_POST['previous_step'] = $oCase->getPreviousStep( $_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['STEP_POSITION'] ); + $_POST['req_val'] = $missing_req_values; + global $G_PUBLISH; + $G_PUBLISH = new Publisher(); + $G_PUBLISH->AddContent( 'view', 'cases/missRequiredFields' ); + G::RenderPage( 'publish', 'blank' ); + exit( 0 ); + } + /*end hotfix notValidateThisFields */ } G::header( 'location: ' . $aNextStep['PAGE'] );