diff --git a/workflow/engine/js/dynaformEditor/core/dynaformEditor.js b/workflow/engine/js/dynaformEditor/core/dynaformEditor.js index 40f0de85b..a2033f8d1 100755 --- a/workflow/engine/js/dynaformEditor/core/dynaformEditor.js +++ b/workflow/engine/js/dynaformEditor/core/dynaformEditor.js @@ -264,6 +264,50 @@ var dynaformEditor={ url='dynaforms_Saveas'; popupWindow('Save as', url+'?DYN_UID='+this.dynUid+'&AA='+this.A , 500, 350); }, + importForm:function(){ + panelImportDyna = new leimnud.module.panel(); + panelImportDyna.options={ + limit : true, + size : {w:410,h:160}, + position : {x:0,y:0,center:true}, + title : '', + theme : 'processmaker', + statusBar: false, + control : {drag:false,resize:true,close:false}, + fx : {opacity:true,rolled:false,modal:true} + }; + panelImportDyna.setStyle = {modal: { + backgroundColor: 'white' + }}; + panelImportDyna.make(); + panelImportDyna.addContent('
'); + var oRPC = new leimnud.module.rpc.xmlhttp({ + url : '../dynaforms/fieldsHandlerAjax', + async : false, + method: 'POST', + args : 'request=showImportForm' + '&DYN_UID=' + this.dynUid + }); + oRPC.make(); + document.getElementById('importAjax').style.display = 'none'; + panelImportDyna.addContent(oRPC.xmlhttp.responseText); + }, + import:function(uidDynaSelect){ + document.getElementById('importAjax').style.display = 'block'; + document.getElementById('importForm').style.display = 'none'; + var oRPC = new leimnud.module.rpc.xmlhttp({ + url : '../dynaforms/fieldsHandlerAjax', + async : false, + method: 'POST', + args : 'request=import' + '&DYN_UID=' + this.dynUid + '&FILE=' + uidDynaSelect + }); + oRPC.make(); + resp = oRPC.xmlhttp.responseText; + if (resp == 'success') { + location.reload(true); + } else { + alert("Error: " + resp); + } + }, close:function() { if (!sessionPersits()) { diff --git a/workflow/engine/methods/dynaforms/fieldsHandlerAjax.php b/workflow/engine/methods/dynaforms/fieldsHandlerAjax.php index 01c8002c1..83eed3f72 100755 --- a/workflow/engine/methods/dynaforms/fieldsHandlerAjax.php +++ b/workflow/engine/methods/dynaforms/fieldsHandlerAjax.php @@ -94,6 +94,118 @@ switch ($request) { $o->remove( '___pm_boot_strap___' ); } break; + case 'showImportForm': + require_once 'classes/model/Dynaform.php'; + require_once 'classes/model/Content.php'; + $uidDynafom = $_POST['DYN_UID']; + + $oCriteria = new Criteria( 'workflow' ); + $oCriteria->clearSelectColumns(); + $oCriteria->addSelectColumn( DynaformPeer::DYN_FILENAME ); + $oCriteria->addAsColumn( 'DYNA_NAME', 'C_DYNA.CON_VALUE' ); + $oCriteria->addAsColumn( 'PROC_NAME', 'C_PROC.CON_VALUE' ); + + $oCriteria->addAlias("C_DYNA", "CONTENT"); + $oCriteria->addAlias("C_PROC", "CONTENT"); + + $arrayCondition = array(); + $arrayCondition[] = array(DynaformPeer::DYN_UID, "C_DYNA.CON_ID"); + $oCriteria->addJoinMC($arrayCondition, Criteria::LEFT_JOIN); + + $arrayCondition = array(); + $arrayCondition[] = array(DynaformPeer::PRO_UID, "C_PROC.CON_ID"); + $oCriteria->addJoinMC($arrayCondition, Criteria::LEFT_JOIN); + + $oCriteria->add( 'C_DYNA.CON_LANG', SYS_LANG ); + $oCriteria->add( 'C_DYNA.CON_CATEGORY', 'DYN_TITLE' ); + + $oCriteria->add( 'C_PROC.CON_LANG', SYS_LANG ); + $oCriteria->add( 'C_PROC.CON_CATEGORY', 'PRO_TITLE' ); + + $oCriteria->add( DynaformPeer::DYN_UID, $uidDynafom, Criteria::NOT_EQUAL); + + $oCriteria->addAscendingOrderByColumn ('PROC_NAME'); + $oCriteria->addAscendingOrderByColumn ('DYNA_NAME'); + $oDataset = DynaformPeer::doSelectRS( $oCriteria ); + $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); + $oDataset->next(); + $aRow = $oDataset->getRow(); + + + $select = ''; + $html = '
+ + + + + + + + + + + + +
+ ' . G::LoadTranslation('ID_SELECT_DYNAFORM_IMPORT') . ' +
+ + ' . $select . ' +
+   + +
'; + echo $html; + break; + case 'import': + require_once 'classes/model/Dynaform.php'; + $uidDynafom = $_POST['DYN_UID']; + $oCriteria = new Criteria( 'workflow' ); + $oCriteria->clearSelectColumns(); + $oCriteria->addSelectColumn( DynaformPeer::DYN_FILENAME ); + $oCriteria->add( DynaformPeer::DYN_UID, $uidDynafom, Criteria::EQUAL); + $oDataset = DynaformPeer::doSelectRS( $oCriteria ); + $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); + $oDataset->next(); + $aRow = $oDataset->getRow(); + + $dynaFile = PATH_DYNAFORM . $aRow['DYN_FILENAME'] . '.xml'; + $importFile = PATH_DYNAFORM . $_POST['FILE'] . '.xml'; + + $importFp = fopen ($importFile, "r+"); + $fileText = fread($importFp, filesize($importFile)); + fclose ( $importFp ); + $newFile = str_replace($_POST['FILE'], $aRow['DYN_FILENAME'], $fileText); + + $dynaFileTmp = PATH_DYNAFORM . $aRow['DYN_FILENAME'] . '_tmp0.xml'; + $dynafmFp = fopen ($dynaFileTmp,"w+"); + fwrite ( $dynafmFp, $newFile); + fclose ( $dynafmFp ); + + /* + $dynafmFp = fopen ($dynaFile,"w+"); + fwrite ( $dynafmFp, $newFile); + fclose ( $dynafmFp ); + */ + echo 'success'; + break; default: echo 'no request param.'; } diff --git a/workflow/engine/xmlform/dynaforms/fields_Toolbar.xml b/workflow/engine/xmlform/dynaforms/fields_Toolbar.xml index d8ba50262..311a3affa 100755 --- a/workflow/engine/xmlform/dynaforms/fields_Toolbar.xml +++ b/workflow/engine/xmlform/dynaforms/fields_Toolbar.xml @@ -9,6 +9,9 @@ Save as + + Import +