From 15654c189eb2bfcf8935b3c8fa5b3223f7f716a1 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Fri, 17 Apr 2015 14:03:05 -0400 Subject: [PATCH 1/4] PM-2301 --- workflow/engine/methods/cases/pmDynaform.php | 1 + 1 file changed, 1 insertion(+) diff --git a/workflow/engine/methods/cases/pmDynaform.php b/workflow/engine/methods/cases/pmDynaform.php index 97041fb70..7cbab53dd 100644 --- a/workflow/engine/methods/cases/pmDynaform.php +++ b/workflow/engine/methods/cases/pmDynaform.php @@ -1,6 +1,7 @@ $DYN_UID)); $a->printPmDynaform(); From b9069e8c6f57b80f46efe3a511d1391a06fbedb4 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Fri, 17 Apr 2015 14:08:13 -0400 Subject: [PATCH 2/4] PM-2301-IMPROVEMENT --- .../ProcessMaker/BusinessModel/Variable.php | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php b/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php index fc4d5b237..8e0e25ffd 100755 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php @@ -129,10 +129,13 @@ class Variable $cnn = \Propel::getConnection("workflow"); try { $variable = \ProcessVariablesPeer::retrieveByPK($variableUid); + $dbConnection = \DbSourcePeer::retrieveByPK($variable->getVarDbconnection(), $variable->getPrjUid()); + $oldVariable = array( "VAR_NAME" => $variable->getVarName(), "VAR_FIELD_TYPE" => $variable->getVarFieldType(), "VAR_DBCONNECTION" => $variable->getVarDbconnection(), + "VAR_DBCONNECTION_LABEL" => $dbConnection !== null ? '[' . $dbConnection->getDbsServer() . ':' . $dbConnection->getDbsPort() . '] ' . $dbConnection->getDbsType() . ': ' . $dbConnection->getDbsDatabaseName() : 'PM Database', "VAR_SQL" => $variable->getVarSql(), "VAR_ACCEPTED_VALUES" => $variable->getVarAcceptedValues() ); @@ -170,10 +173,12 @@ class Variable $variable->save(); $cnn->commit(); //update dynaforms + $dbConnection = \DbSourcePeer::retrieveByPK($variable->getVarDbconnection(), $variable->getPrjUid()); $newVariable = array( "VAR_NAME" => $variable->getVarName(), "VAR_FIELD_TYPE" => $variable->getVarFieldType(), "VAR_DBCONNECTION" => $variable->getVarDbconnection(), + "VAR_DBCONNECTION_LABEL" => $dbConnection !== null ? '[' . $dbConnection->getDbsServer() . ':' . $dbConnection->getDbsPort() . '] ' . $dbConnection->getDbsType() . ': ' . $dbConnection->getDbsDatabaseName() : 'PM Database', "VAR_SQL" => $variable->getVarSql(), "VAR_ACCEPTED_VALUES" => $variable->getVarAcceptedValues() ); @@ -265,9 +270,14 @@ class Variable $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_NULL); $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_DEFAULT); $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_ACCEPTED_VALUES); + $criteria->addSelectColumn(\DbSourcePeer::DBS_SERVER); + $criteria->addSelectColumn(\DbSourcePeer::DBS_PORT); + $criteria->addSelectColumn(\DbSourcePeer::DBS_DATABASE_NAME); + $criteria->addSelectColumn(\DbSourcePeer::DBS_TYPE); $criteria->add(\ProcessVariablesPeer::PRJ_UID, $processUid, \Criteria::EQUAL); $criteria->add(\ProcessVariablesPeer::VAR_UID, $variableUid, \Criteria::EQUAL); + $criteria->addJoin(\ProcessVariablesPeer::VAR_DBCONNECTION, \DbSourcePeer::DBS_UID, \Criteria::LEFT_JOIN); $rsCriteria = \ProcessVariablesPeer::doSelectRS($criteria); @@ -283,7 +293,8 @@ class Variable 'var_field_type' => $aRow['VAR_FIELD_TYPE'], 'var_field_size' => (int)$aRow['VAR_FIELD_SIZE'], 'var_label' => $aRow['VAR_LABEL'], - 'var_dbconnection' => $aRow['VAR_DBCONNECTION'], + 'var_dbconnection' => $aRow['VAR_DBCONNECTION'] === 'none' ? 'workflow' : $aRow['VAR_DBCONNECTION'], + 'var_dbconnection_label' => $aRow['DBS_SERVER'] !== null ? '[' . $aRow['DBS_SERVER'] . ':' . $aRow['DBS_PORT'] . '] ' . $aRow['DBS_TYPE'] . ': ' . $aRow['DBS_DATABASE_NAME'] : 'PM Database', 'var_sql' => $aRow['VAR_SQL'], 'var_null' => (int)$aRow['VAR_NULL'], 'var_default' => $aRow['VAR_DEFAULT'], @@ -326,8 +337,13 @@ class Variable $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_NULL); $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_DEFAULT); $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_ACCEPTED_VALUES); + $criteria->addSelectColumn(\DbSourcePeer::DBS_SERVER); + $criteria->addSelectColumn(\DbSourcePeer::DBS_PORT); + $criteria->addSelectColumn(\DbSourcePeer::DBS_DATABASE_NAME); + $criteria->addSelectColumn(\DbSourcePeer::DBS_TYPE); $criteria->add(\ProcessVariablesPeer::PRJ_UID, $processUid, \Criteria::EQUAL); + $criteria->addJoin(\ProcessVariablesPeer::VAR_DBCONNECTION, \DbSourcePeer::DBS_UID, \Criteria::LEFT_JOIN); $rsCriteria = \ProcessVariablesPeer::doSelectRS($criteria); @@ -343,7 +359,8 @@ class Variable 'var_field_type' => $aRow['VAR_FIELD_TYPE'], 'var_field_size' => (int)$aRow['VAR_FIELD_SIZE'], 'var_label' => $aRow['VAR_LABEL'], - 'var_dbconnection' => $aRow['VAR_DBCONNECTION'], + 'var_dbconnection' => $aRow['VAR_DBCONNECTION'] === 'none' ? 'workflow' : $aRow['VAR_DBCONNECTION'], + 'var_dbconnection_label' => $aRow['DBS_SERVER'] !== null ? '[' . $aRow['DBS_SERVER'] . ':' . $aRow['DBS_PORT'] . '] ' . $aRow['DBS_TYPE'] . ': ' . $aRow['DBS_DATABASE_NAME'] : 'PM Database', 'var_sql' => $aRow['VAR_SQL'], 'var_null' => (int)$aRow['VAR_NULL'], 'var_default' => $aRow['VAR_DEFAULT'], @@ -690,4 +707,3 @@ class Variable } } } - From 67bd800e58ed220534236bb62ab8d7c9d469a44d Mon Sep 17 00:00:00 2001 From: Luis Fernando Saisa Lopez Date: Fri, 17 Apr 2015 15:21:09 -0400 Subject: [PATCH 3/4] PM-2291 "DesignerBPMN>CaseTracker: No se visualizan los..." SOLVED > Code Isuue: DesignerBPMN>CaseTracker: No se visualizan los formularios asignados al caseTracker. > Solution: Cuando se tiene dynaforms creados en BPMN al ingresar al case tracker y ver los dynaforms se mostrara con la nueva interfaz en otro caso se mostrara con la antigua interfaz tal como se mostraba anteriormente. Al mostrar el dynaform con la nueva interfaz se tiene un link "Back" que permite volver a la pagina anterior. --- gulliver/system/class.publisher.php | 5 +- workflow/engine/classes/class.pmDynaform.php | 70 ++++++++++++++++++- .../engine/methods/tracker/tracker_Show.php | 24 +++++-- 3 files changed, 90 insertions(+), 9 deletions(-) diff --git a/gulliver/system/class.publisher.php b/gulliver/system/class.publisher.php index 40b7fc20e..e398cba52 100755 --- a/gulliver/system/class.publisher.php +++ b/gulliver/system/class.publisher.php @@ -294,10 +294,10 @@ class Publisher //This dynaform has show/hide field conditions if (isset($_SESSION['CURRENT_DYN_UID']) && $_SESSION['CURRENT_DYN_UID'] != '') { - $ConditionalShowHideRoutines = $oFieldCondition->getConditionScript($_SESSION["CURRENT_DYN_UID"]); //lsl + $ConditionalShowHideRoutines = $oFieldCondition->getConditionScript($_SESSION["CURRENT_DYN_UID"]); } else { if (isset($_SESSION['CONDITION_DYN_UID']) && $_SESSION['CONDITION_DYN_UID'] != '') { - $ConditionalShowHideRoutines = $oFieldCondition->getConditionScript($_SESSION["CONDITION_DYN_UID"]); //lsl + $ConditionalShowHideRoutines = $oFieldCondition->getConditionScript($_SESSION["CONDITION_DYN_UID"]); } } } @@ -649,4 +649,3 @@ class Publisher $G_TABLE = null; } } - diff --git a/workflow/engine/classes/class.pmDynaform.php b/workflow/engine/classes/class.pmDynaform.php index 52d6fa84c..3c89f6d04 100644 --- a/workflow/engine/classes/class.pmDynaform.php +++ b/workflow/engine/classes/class.pmDynaform.php @@ -3,7 +3,7 @@ /** * class.pmDynaform.php * Implementing pmDynaform library in the running case. - * + * * @author Roly Rudy Gutierrez Pinto * @package engine.classes */ @@ -136,7 +136,7 @@ class pmDynaform array_push($json->options, $option); } } catch (Exception $e) { - + } } if (isset($json->options[0])) { @@ -225,6 +225,72 @@ class pmDynaform return $this->record != null && $this->record["DYN_VERSION"] == 2 ? true : false; } + public function printViewWitoutSubmit() + { + ob_clean(); + + $json = G::json_decode($this->record["DYN_CONTENT"]); + + foreach ($json->items[0]->items as $key => $value) { + switch ($json->items[0]->items[$key][0]->type) { + case "submit": + unset($json->items[0]->items[$key]); + break; + } + } + + $this->jsonr($json); + + $javascript = " + + +
+
< " . G::LoadTranslation("ID_BACK") . "
+
+
+ "; + + $file = file_get_contents(PATH_HOME . "public_html" . PATH_SEP . "lib" . PATH_SEP . "pmdynaform" . PATH_SEP . "build" . PATH_SEP . "pmdynaform.html"); + $file = str_replace("{javascript}", $javascript, $file); + + echo $file; + exit(0); + } + public function printView() { ob_clean(); diff --git a/workflow/engine/methods/tracker/tracker_Show.php b/workflow/engine/methods/tracker/tracker_Show.php index 652b24949..a8d4dcb20 100755 --- a/workflow/engine/methods/tracker/tracker_Show.php +++ b/workflow/engine/methods/tracker/tracker_Show.php @@ -54,11 +54,27 @@ switch ($_GET['CTO_TYPE_OBJ']) { $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['PRINT_PREVIEW'] = '#'; $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['PRINT_PREVIEW_ACTION'] = 'tracker_PrintView?CTO_UID_OBJ=' . $_GET['CTO_UID_OBJ'] . '&CTO_TYPE_OBJ=PRINT_PREVIEW'; $_SESSION['CTO_UID_OBJ'] = $_GET['CTO_UID_OBJ']; - $G_PUBLISH = new Publisher(); - $G_PUBLISH->AddContent( 'dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_GET['CTO_UID_OBJ'], '', $Fields['APP_DATA'], '', '', 'view' ); - G::RenderPage( 'publish' ); - break; + $dynaForm = new Dynaform(); + $arrayDynaFormData = $dynaForm->Load($_GET["CTO_UID_OBJ"]); + + if (isset($arrayDynaFormData["DYN_VERSION"]) && $arrayDynaFormData["DYN_VERSION"] == 2) { + G::LoadClass("pmDynaform"); + + $Fields["PRO_UID"] = $_SESSION["PROCESS"]; + $Fields["CURRENT_DYNAFORM"] = $_GET["CTO_UID_OBJ"]; + + $pmDynaForm = new pmDynaform($Fields); + + if ($pmDynaForm->isResponsive()) { + $pmDynaForm->printViewWitoutSubmit(); + } + } else { + $G_PUBLISH = new Publisher(); + $G_PUBLISH->AddContent("dynaform", "xmlform", $_SESSION["PROCESS"] . "/" . $_GET["CTO_UID_OBJ"], "", $Fields["APP_DATA"], "", "", "view"); + G::RenderPage("publish"); + } + break; case 'INPUT_DOCUMENT': G::LoadClass( 'case' ); $oCase = new Cases(); From 8a2818b3621261c2830105151fcc90e4649771b3 Mon Sep 17 00:00:00 2001 From: Luis Fernando Saisa Lopez Date: Fri, 17 Apr 2015 16:22:34 -0400 Subject: [PATCH 4/4] PM-2291 "DesignerBPMN>CaseTracker: No se visualizan los..." SOLVED --- workflow/engine/classes/class.pmDynaform.php | 2 +- workflow/engine/methods/tracker/tracker_Show.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/workflow/engine/classes/class.pmDynaform.php b/workflow/engine/classes/class.pmDynaform.php index 3c89f6d04..cc28f890a 100644 --- a/workflow/engine/classes/class.pmDynaform.php +++ b/workflow/engine/classes/class.pmDynaform.php @@ -225,7 +225,7 @@ class pmDynaform return $this->record != null && $this->record["DYN_VERSION"] == 2 ? true : false; } - public function printViewWitoutSubmit() + public function printViewWithoutSubmit() { ob_clean(); diff --git a/workflow/engine/methods/tracker/tracker_Show.php b/workflow/engine/methods/tracker/tracker_Show.php index a8d4dcb20..5259a7447 100755 --- a/workflow/engine/methods/tracker/tracker_Show.php +++ b/workflow/engine/methods/tracker/tracker_Show.php @@ -67,7 +67,7 @@ switch ($_GET['CTO_TYPE_OBJ']) { $pmDynaForm = new pmDynaform($Fields); if ($pmDynaForm->isResponsive()) { - $pmDynaForm->printViewWitoutSubmit(); + $pmDynaForm->printViewWithoutSubmit(); } } else { $G_PUBLISH = new Publisher();