diff --git a/workflow/engine/classes/class.dynaformEditor.php b/workflow/engine/classes/class.dynaformEditor.php index 27eeb24c6..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' ); } @@ -664,8 +665,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 +683,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..97c9e4606 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"]); @@ -462,7 +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 == ''){ 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->_setUseTemporalCopy(true); $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 @@ - /> + />