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 3d9231563..cb703e3ff 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 */ @@ -154,7 +154,7 @@ class pmDynaform array_push($json->options, $option); } } catch (Exception $e) { - + } } if (isset($json->options[0])) { @@ -253,6 +253,72 @@ class pmDynaform return $this->record != null && $this->record["DYN_VERSION"] == 2 ? true : false; } + public function printViewWithoutSubmit() + { + 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/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(); diff --git a/workflow/engine/methods/tracker/tracker_Show.php b/workflow/engine/methods/tracker/tracker_Show.php index 652b24949..5259a7447 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->printViewWithoutSubmit(); + } + } 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(); 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 } } } -