BUG 10396 Mensaje de Invalid Response al crear Dynaform SOLVED

- Missing validation when session is expired
- Add validation when session is expired
This commit is contained in:
Julio Cesar Laura
2013-01-28 20:41:39 -04:00
parent 7a1753baaa
commit a1e527265c
8 changed files with 112 additions and 36 deletions

View File

@@ -3327,6 +3327,14 @@ function dynaformVerifyFieldName(){
}
function verifyFieldName1() {
if (getField('PME_VALIDATE_NAME').value == '__error_session__') {
showPrompt('refreshDynaformEditor');
return;
}
verifyFieldNameFunction();
}
function verifyFieldNameFunction() {
var newFieldName=fieldName.value;
var msj = _('DYNAFIELD_ALREADY_EXIST');
var validatedFieldName=getField("PME_VALIDATE_NAME",fieldForm).value;
@@ -3358,6 +3366,9 @@ function verifyFieldName1(){
return valid;
}
function refreshDynaformEditor() {
window.location.href = window.location.href.replace('#', '');
}
var objectsWithFormula = Array();

View File

@@ -1228,10 +1228,13 @@ 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 saveForm=function(oObject){if(oObject){ajax_post(oObject.form.action,oObject.form,'POST');}
else{var oAux=window.document.getElementsByTagName('form');if(oAux.length>0){ajax_post(oAux[0].action,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;i<notValidateThisFields.length;i++){if(notValidateThisFields[i]!=sFieldName){aAux.push(notValidateThisFields[i]);}}
notValidateThisFields=aAux;var oAux=document.getElementById('__notValidateThisFields__');if(oAux){oAux.value=notValidateThisFields.toJSONString();}}};function dynaformVerifyFieldName(){pme_validating=true;setTimeout('verifyFieldName1();',0);return true;}
function verifyFieldName1(){var newFieldName=fieldName.value;var msj=_('DYNAFIELD_ALREADY_EXIST');var validatedFieldName=getField("PME_VALIDATE_NAME",fieldForm).value;var dField=new input(getField('PME_XMLNODE_NAME'));var valid=(newFieldName!=='')&&(((newFieldName!==savedFieldName)&&(validatedFieldName===''))||((newFieldName===savedFieldName)));if(newFieldName.length==0){valid=false;msj=_('DYNAFIELD_EMPTY');}
function verifyFieldName1(){if(getField('PME_VALIDATE_NAME').value=='__error_session__'){showPrompt('refreshDynaformEditor');return;}
verifyFieldNameFunction();}
function verifyFieldNameFunction(){var newFieldName=fieldName.value;var msj=_('DYNAFIELD_ALREADY_EXIST');var validatedFieldName=getField("PME_VALIDATE_NAME",fieldForm).value;var dField=new input(getField('PME_XMLNODE_NAME'));var valid=(newFieldName!=='')&&(((newFieldName!==savedFieldName)&&(validatedFieldName===''))||((newFieldName===savedFieldName)));if(newFieldName.length==0){valid=false;msj=_('DYNAFIELD_EMPTY');}
if(!(isNaN(parseInt(newFieldName.substr(0,1))))){valid=false;msj=_('DYNAFIELD_NODENAME_NUMBER');}
if(valid){dField.passed();getField("PME_ACCEPT",fieldForm).disabled=false;}else{getField("PME_ACCEPT",fieldForm).disabled=true;dField.failed();new leimnud.module.app.alert().make({label:msj});dField.focus();}
pme_validating=false;return valid;}
function refreshDynaformEditor(){window.location.href=window.location.href.replace('#','');}
var objectsWithFormula=Array();function sumaformu(ee,fma,mask){afma=fma;var operators=['+','-','*','/','(','[','{','}',']',')',',','Math.pow','Math.PI','Math.sqrt'];var wos;for(var i=0;i<operators.length;i++){var j=0;while(j<fma.length){nfma=fma.replace(operators[i]," ");nfma=nfma.replace(" "," ");fma=nfma;j++;}}
wos=nfma.replace(/^\s+/g,'');nfma=wos.replace(/\s+$/g,'');theelemts=nfma.split(" ");objectsWithFormula[objectsWithFormula.length]={ee:ee,fma:afma,mask:mask,theElements:theelemts};for(var i=0;i<theelemts.length;i++){leimnud.event.add(getField(theelemts[i]),'keyup',function(key){var eventElement=key.srcElement?key.srcElement:key.target;if(typeof(this.id)=='undefined'){myId=eventElement.id.replace("form[","").replace("]","");}
else{myId=this.id.replace("form[","").replace("]","");}

View File

@@ -228,6 +228,7 @@ class dynaformEditor extends WebResource
leimnud.event.add(window,"load",function(){ loadEditor(); });
');
$oHeadPublisher->addScriptCode(' var jsMeta;var usernameLogged = "' . (isset($_SESSION['USR_USERNAME']) ? $_SESSION['USR_USERNAME'] : '') . '";var SYS_LANG = "' . SYS_LANG . '";');
$oHeadPublisher->addScriptCode('var dynaformEditorParams = \'' . serialize($Parameters) . '\';');
G::RenderPage("publish", 'blank');
}

View File

@@ -8,10 +8,12 @@ var h3OK = 1;
var promptPanel;
var lastActionPerformed = '';
var lastTypeSelected = '';
var sessionPersits = function() {
var rpc = new leimnud.module.rpc.xmlhttp({
url: '../services/sessionPersists',
args: 'dynaformEditorParams=' + dynaformEditorParams,
async: false
});
rpc.make();
@@ -65,6 +67,21 @@ var verifyLogin = function() {
case 'changeToShowHide':
dynaformEditor.changeToShowHide();
break;
case 'refreshDynaformEditor':
refreshDynaformEditor();
break;
case 'fieldsSave':
fieldsSave(getField('PME_XMLNODE_NAME').form);
break;
case 'fieldsAdd':
fieldsAdd(lastTypeSelected);
break;
case '__ActionEdit':
document.getElementById('dynaframe').contentWindow.__ActionEdit(document.getElementById('dynaframe').contentWindow.lastUidFHSelected);
break;
case '__ActionDelete':
document.getElementById('dynaframe').contentWindow.__ActionDelete(document.getElementById('dynaframe').contentWindow.lastUidFHSelected, document.getElementById('dynaframe').contentWindow.lastFTypeFHSelected);
break;
}
lastActionPerformed = '';
} else {
@@ -836,6 +853,11 @@ function getElementByPMClass(__class){
function fieldsSave( form ) {
if (!sessionPersits()) {
showPrompt('fieldsSave');
return;
}
var str = document.getElementById('form[PME_XMLNODE_NAME]').value;
var dField = new input(getField('PME_XMLNODE_NAME'));
@@ -880,6 +902,11 @@ function getElementByPMClass(__class){
var typePopup = 0;
function fieldsAdd( type,label )
{
lastTypeSelected = type;
if (!sessionPersits()) {
showPrompt('fieldsAdd');
return;
}
switch (type){
case 'text' : label=TRANSLATIONS.ID_FIELD_DYNAFORM_TEXT; typePopup = 1; break;
case 'currency' : label=TRANSLATIONS.ID_FIELD_DYNAFORM_CURRENCY; typePopup = 1; break;

View File

@@ -22,6 +22,23 @@
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
*/
if (!isset($_SESSION['USER_LOGGED'])) {
$aux1 = new stdclass();
$aux2 = new stdclass();
$aux2->type = 'hidden';
$aux2->options = array();
$aux1->name = 'PME_VALIDATE_NAME';
$aux1->content = $aux2;
$aux1->value = '__error_session__';
$result = array();
$result[] = array('name' => 'PME_VALIDATE_NAME',
'content' => array('type' => 'hidden',
'options' => array(array('key' => '__error_session__',
'value' => '__error_session__'))),
'value' => '__error_session__');
die(Bootstrap::json_encode($result));
}
if (($RBAC_Response = $RBAC->userCanAccess( "PM_FACTORY" )) != 1) {
return $RBAC_Response;
}

View File

@@ -1,4 +1,7 @@
<?php
$response = new stdclass();
$response->status = isset($_SESSION['USER_LOGGED']);
if (isset($_REQUEST['dynaformEditorParams'])) {
$_SESSION['Current_Dynafom']['Parameters'] = unserialize(stripslashes($_REQUEST['dynaformEditorParams']));
}
die(G::json_encode($response));

View File

@@ -191,7 +191,14 @@
</table>
</body>
<script language="javascript">
var lastUidFHSelected;
var lastFTypeFHSelected;
function __ActionEdit(uid){
lastUidFHSelected = uid;
if (!parent.sessionPersits()) {
parent.showPrompt('__ActionEdit');
return;
}
var client_window = parent.getClientWindowSize();
h = client_window.height;
h1 = (h / 100) * 92;
@@ -200,6 +207,12 @@
}
function __ActionDelete(uid, ftype){
lastUidFHSelected = uid;
lastFTypeFHSelected = ftype;
if (!parent.sessionPersits()) {
parent.showPrompt('__ActionDelete');
return;
}
new window.parent.leimnud.module.app.confirm().make({
label: '<?php echo G::LoadTranslation('ID_FIELD_HANDLER_ACTION_DELETE');?>' + ' ' + ftype + "?",
action:function(){

View File

@@ -771,6 +771,7 @@ if (! defined( 'EXECUTE_BY_CRON' )) {
$noLoginFiles[] = 'retrivePassword';
$noLoginFiles[] = 'defaultAjaxDynaform';
$noLoginFiles[] = 'dynaforms_checkDependentFields';
$noLoginFiles[] = 'fields_Ajax';
$noLoginFolders[] = 'services';
$noLoginFolders[] = 'tracker';