From bb3d02e0328b372ab6595466982f9e50fce0f7fb Mon Sep 17 00:00:00 2001 From: Brayan Osmar Pereyra Suxo Date: Tue, 5 Jun 2012 17:32:36 -0400 Subject: [PATCH 1/3] BUG 8933 The option visible in Fields handler tab no work SOLVED - The javascript not refresh the property "meta", this property have fields to hide - The javascript resfresh with code empty --- workflow/engine/classes/class.dynaformEditor.php | 8 ++++++-- .../engine/js/dynaformEditor/core/dynaformEditor.js | 6 ++++-- .../engine/js/dynaforms/dynaforms_fieldsHandler.js | 11 ++++++++--- .../engine/methods/dynaforms/dynaforms_Editor.php | 3 +++ .../engine/methods/dynaforms/fieldsHandlerAjax.php | 5 +++-- workflow/engine/templates/dynaforms/fieldsHandler.php | 10 ++++++++-- 6 files changed, 32 insertions(+), 11 deletions(-) diff --git a/workflow/engine/classes/class.dynaformEditor.php b/workflow/engine/classes/class.dynaformEditor.php index 27eeb24c6..735ea0f01 100755 --- a/workflow/engine/classes/class.dynaformEditor.php +++ b/workflow/engine/classes/class.dynaformEditor.php @@ -664,8 +664,12 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax * @param string $sCode * @return array */ - function set_javascript($A,$fieldName,$sCode) + function set_javascript($A,$fieldName,$sCode,$meta) { + if ($fieldName == '___pm_boot_strap___') { + return 0; + } + $sCode = urldecode($sCode) ; try { $sCode = rtrim($sCode); @@ -678,7 +682,7 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax G::LoadSystem('dynaformhandler'); $dynaform = new dynaFormHandler(PATH_DYNAFORM."{$file}.xml"); - $dynaform->replace($fieldName, $fieldName, Array('type'=>'javascript', '#cdata'=>$sCode)); + $dynaform->replace($fieldName, $fieldName, Array('type'=>'javascript', 'meta'=>$meta, '#cdata'=>$sCode)); return 0; } catch(Exception $e) { diff --git a/workflow/engine/js/dynaformEditor/core/dynaformEditor.js b/workflow/engine/js/dynaformEditor/core/dynaformEditor.js index dfad059a5..70afbdf7c 100755 --- a/workflow/engine/js/dynaformEditor/core/dynaformEditor.js +++ b/workflow/engine/js/dynaformEditor/core/dynaformEditor.js @@ -165,10 +165,11 @@ var dynaformEditor={ { var field=getField("JS_LIST","dynaforms_JSEditor"); var code=this.getJSCode(); - + var meta=jsMeta; + if (field.value) { - var res = this.ajax.set_javascript(this.A,field.value, encodeURIComponent(code)); + var res = this.ajax.set_javascript(this.A,field.value, encodeURIComponent(code),meta); if (typeof(res["*message"])==="string") { G.alert(res["*message"]); @@ -463,6 +464,7 @@ var dynaformEditor={ field.remove(j); } } + this.currentJS=field.value; var res=this.ajax.get_javascripts(this.A,field.value); if(field.value == ''){ diff --git a/workflow/engine/js/dynaforms/dynaforms_fieldsHandler.js b/workflow/engine/js/dynaforms/dynaforms_fieldsHandler.js index 0d2c69227..aec4c78ff 100755 --- a/workflow/engine/js/dynaforms/dynaforms_fieldsHandler.js +++ b/workflow/engine/js/dynaforms/dynaforms_fieldsHandler.js @@ -90,9 +90,11 @@ //alert( "Data Saved: " + httpResponse ); } }); + fieldsHandlerSaveHidden(); } function fieldsHandlerSaveHidden(){ + var responseMeta; e = $('input:checkbox'); hidden_elements = ''; for(i=0; iuserCanAccess("PM_FACTORY"))!=1) return $RBAC_Respons $editor->_render(); ?> + \ No newline at end of file diff --git a/workflow/engine/methods/dynaforms/fieldsHandlerAjax.php b/workflow/engine/methods/dynaforms/fieldsHandlerAjax.php index e5a783a25..650280861 100755 --- a/workflow/engine/methods/dynaforms/fieldsHandlerAjax.php +++ b/workflow/engine/methods/dynaforms/fieldsHandlerAjax.php @@ -88,8 +88,9 @@ if( $o->nodeExists('___pm_boot_strap___') ){ $o->remove('___pm_boot_strap___'); } - $o->add('___pm_boot_strap___', Array('type'=>'javascript', "meta"=>G::encrypt($hidden_items_tmp, 'dynafieldsHandler')), "/*$msg*/ $hStr"); - + $metaEncrypt = G::encrypt($hidden_items_tmp, 'dynafieldsHandler'); + $o->add('___pm_boot_strap___', Array('type'=>'javascript', "meta"=>$metaEncrypt), "/*$msg*/ $hStr"); + echo $metaEncrypt; } else { //we must to remove the boot strap node; $o->remove('___pm_boot_strap___'); } diff --git a/workflow/engine/templates/dynaforms/fieldsHandler.php b/workflow/engine/templates/dynaforms/fieldsHandler.php index 4b18b07a7..75cf61bfe 100755 --- a/workflow/engine/templates/dynaforms/fieldsHandler.php +++ b/workflow/engine/templates/dynaforms/fieldsHandler.php @@ -69,11 +69,17 @@ foreach($elements as $node_name=>$node){ if( $node_name == "___pm_boot_strap___"){ - $boot_strap = $elements[$node_name]; + $boot_strap = $elements[$node_name]; $hidden_fields = G::decrypt($boot_strap['__ATTRIBUTES__']['meta'], 'dynafieldsHandler'); //echo $hidden_fields; $hidden_fields_list = explode(',', $hidden_fields); unset($elements[$node_name]); + + ?> + + @@ -112,7 +118,7 @@ - /> + />   From f96cceeef738f1837b1ddf3f9eb02a4d3e88d91a Mon Sep 17 00:00:00 2001 From: Brayan Osmar Pereyra Suxo Date: Tue, 5 Jun 2012 17:57:29 -0400 Subject: [PATCH 2/3] BUG 8933 Review code SOLVED Review code and fields --- workflow/engine/js/dynaformEditor/core/dynaformEditor.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/workflow/engine/js/dynaformEditor/core/dynaformEditor.js b/workflow/engine/js/dynaformEditor/core/dynaformEditor.js index 70afbdf7c..97c9e4606 100755 --- a/workflow/engine/js/dynaformEditor/core/dynaformEditor.js +++ b/workflow/engine/js/dynaformEditor/core/dynaformEditor.js @@ -169,7 +169,7 @@ var dynaformEditor={ if (field.value) { - var res = this.ajax.set_javascript(this.A,field.value, encodeURIComponent(code),meta); + var res = this.ajax.set_javascript(this.A,field.value, encodeURIComponent(code), meta); if (typeof(res["*message"])==="string") { G.alert(res["*message"]); @@ -463,8 +463,7 @@ var dynaformEditor={ if( field.options[j].value == '___pm_boot_strap___' ){ field.remove(j); } - } - + } this.currentJS=field.value; var res=this.ajax.get_javascripts(this.A,field.value); if(field.value == ''){ From 341b3a46f6cf5cf6ce9a75743755975aad23febc Mon Sep 17 00:00:00 2001 From: Brayan Osmar Pereyra Suxo Date: Fri, 8 Jun 2012 15:35:09 -0400 Subject: [PATCH 3/3] BUG 8933 The code Javascrit don't mix with PHP SOLVED The code Javascript don't mix with PHP --- workflow/engine/classes/class.dynaformEditor.php | 1 + workflow/engine/methods/dynaforms/dynaforms_Editor.php | 5 +---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/workflow/engine/classes/class.dynaformEditor.php b/workflow/engine/classes/class.dynaformEditor.php index 735ea0f01..38822802b 100755 --- a/workflow/engine/classes/class.dynaformEditor.php +++ b/workflow/engine/classes/class.dynaformEditor.php @@ -265,6 +265,7 @@ class dynaformEditor extends WebResource var DYNAFORM_URL="'.$Parameters['URL'].'"; leimnud.event.add(window,"load",function(){ loadEditor(); }); '); + $oHeadPublisher->addScriptCode(' var jsMeta;'); G::RenderPage( "publish", 'blank' ); } diff --git a/workflow/engine/methods/dynaforms/dynaforms_Editor.php b/workflow/engine/methods/dynaforms/dynaforms_Editor.php index 8d0b918bf..c5cecb693 100755 --- a/workflow/engine/methods/dynaforms/dynaforms_Editor.php +++ b/workflow/engine/methods/dynaforms/dynaforms_Editor.php @@ -90,7 +90,4 @@ if (($RBAC_Response=$RBAC->userCanAccess("PM_FACTORY"))!=1) return $RBAC_Respons $editor->_setUseTemporalCopy(true); $editor->_render(); -?> - \ No newline at end of file +?> \ No newline at end of file