From 01a5a8ba421ee9a27972f2e695accf454ba1a266 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Thu, 12 Mar 2015 09:59:19 -0400 Subject: [PATCH] PM-1787 --- workflow/engine/classes/class.pmDynaform.php | 94 +++++++++---------- workflow/engine/js/cases/core/pmDynaform.js | 28 ++---- .../engine/methods/cases/ajaxListener.php | 8 +- .../cases/casesHistoryDynaformPage_Ajax.php | 15 +-- workflow/engine/methods/cases/cases_Step.php | 11 ++- workflow/engine/methods/cases/pmDynaform.php | 2 +- .../ProcessMaker/BusinessModel/WebEntry.php | 2 +- .../templates/cases/cases_DynaformHistory.php | 12 ++- 8 files changed, 80 insertions(+), 92 deletions(-) diff --git a/workflow/engine/classes/class.pmDynaform.php b/workflow/engine/classes/class.pmDynaform.php index 4dc1b2e59..9134dd233 100644 --- a/workflow/engine/classes/class.pmDynaform.php +++ b/workflow/engine/classes/class.pmDynaform.php @@ -11,24 +11,27 @@ class pmDynaform { public static $instance = null; - public $dyn_uid = null; + public $fields = null; public $record = null; - public $app_data = null; public $credentials = null; - public $items = array(); public $data = array(); - public $variables = array(); - public $arrayFieldRequired = array(); - public function __construct($dyn_uid, $app_data = array()) + public function __construct($fields) { - $this->dyn_uid = $dyn_uid; - $this->app_data = $app_data; + $this->fields = $fields; $this->getDynaform(); $this->getCredentials(); - if (isset($app_data["APPLICATION"])) { + if (isset($this->fields["APP_UID"])) { + //current $cases = new \ProcessMaker\BusinessModel\Cases(); - $this->data = $cases->getCaseVariables($app_data["APPLICATION"]); + $this->data = $cases->getCaseVariables($this->fields["APP_UID"]); + } else { + //history + $this->fields["APP_UID"] = null; + if (isset($this->fields["APP_DATA"])) + $this->data = $this->fields["APP_DATA"]; + if (isset($this->data["DYN_CONTENT_HISTORY"])) + $this->record["DYN_CONTENT"] = $this->data["DYN_CONTENT_HISTORY"]; } } @@ -42,7 +45,7 @@ class pmDynaform $a->addSelectColumn(DynaformPeer::DYN_CONTENT); $a->addSelectColumn(DynaformPeer::PRO_UID); $a->addSelectColumn(DynaformPeer::DYN_UID); - $a->add(DynaformPeer::DYN_UID, $this->dyn_uid, Criteria::EQUAL); + $a->add(DynaformPeer::DYN_UID, $this->fields["CURRENT_DYNAFORM"], Criteria::EQUAL); $ds = ProcessPeer::doSelectRS($a); $ds->setFetchmode(ResultSet::FETCHMODE_ASSOC); $ds->next(); @@ -197,40 +200,28 @@ class pmDynaform return $this->record != null && $this->record["DYN_VERSION"] == 2 ? true : false; } - public function printView($pm_run_outside_main_app, $application) + public function printView() { ob_clean(); $json = G::json_decode($this->record["DYN_CONTENT"]); $this->jsonr($json); - - $a = $this->clientToken(); - $clientToken = array( - "accessToken" => $a["access_token"], - "expiresIn" => $a["expires_in"], - "tokenType" => $a["token_type"], - "scope" => $a["scope"], - "refreshToken" => $a["refresh_token"], - "clientId" => $a["client_id"], - "clientSecret" => $a["client_secret"] - ); - $javascrip = "" . "\n" . "\n" . "\n" . - ($this->app_data["PRO_SHOW_MESSAGE"] === 1 ? '' : $title ) . + ($this->fields["PRO_SHOW_MESSAGE"] === 1 ? '' : $title ) . "
\n" . "  \n" . - " \n" . + " \n" . + " " . $this->fields["APP_DATA"]["__DYNAFORM_OPTIONS"]["PREVIOUS_STEP_LABEL"] . "" . " \n" . "  \n" . - " \n" . - " Next Step\n" . + " \n" . + " " . $this->fields["APP_DATA"]["__DYNAFORM_OPTIONS"]["NEXT_STEP_LABEL"] . "" . " \n" . "
"; - $file = file_get_contents(PATH_HOME . 'public_html/lib/pmdynaform/build/pmdynaform.html'); $file = str_replace("{javascript}", $javascrip, $file); echo $file; @@ -308,7 +305,7 @@ class pmDynaform "\n" . "\n" . @@ -329,7 +326,6 @@ class pmDynaform $file = file_get_contents(PATH_HOME . 'public_html/lib/pmdynaform/build/pmdynaform.html'); $file = str_replace("{javascript}", $javascrip, $file); - echo $file; exit(); } diff --git a/workflow/engine/js/cases/core/pmDynaform.js b/workflow/engine/js/cases/core/pmDynaform.js index 64d84fce8..ef89dde48 100644 --- a/workflow/engine/js/cases/core/pmDynaform.js +++ b/workflow/engine/js/cases/core/pmDynaform.js @@ -5,7 +5,7 @@ function ajax_post(action, form, method, callback, asynchronous) { }; } function dynaFormChanged(frm) { - return true; + return false; } $(window).load(function () { if (pm_run_outside_main_app === 'true') { @@ -30,23 +30,10 @@ $(window).load(function () { token: credentials, submitRest: false }); - - var type = document.createElement("input"); - type.type = "hidden"; - type.name = "TYPE"; - type.value = "ASSIGN_TASK"; - var uid = document.createElement("input"); - uid.type = "hidden"; - uid.name = "UID"; - uid.value = dyn_uid; - var position = document.createElement("input"); - position.type = "hidden"; - position.name = "POSITION"; - position.value = "10000"; - var action = document.createElement("input"); - action.type = "hidden"; - action.name = "ACTION"; - action.value = "ASSIGN"; + var dyn_content_history = document.createElement("input"); + dyn_content_history.type = "hidden"; + dyn_content_history.name = "form[DYN_CONTENT_HISTORY]"; + dyn_content_history.value = JSON.stringify(jsondata); var dynaformname = document.createElement("input"); dynaformname.type = "hidden"; dynaformname.name = "__DynaformName__"; @@ -63,10 +50,7 @@ $(window).load(function () { form.action = filePost ? filePost : "cases_SaveData?UID=" + dyn_uid + "&APP_UID=" + app_uid; form.method = "post"; form.enctype = "multipart/form-data"; - form.appendChild(type); - form.appendChild(uid); - form.appendChild(position); - form.appendChild(action); + form.appendChild(dyn_content_history); form.appendChild(dynaformname); form.appendChild(appuid); form.appendChild(arrayRequired); diff --git a/workflow/engine/methods/cases/ajaxListener.php b/workflow/engine/methods/cases/ajaxListener.php index 327c275f8..70667863a 100755 --- a/workflow/engine/methods/cases/ajaxListener.php +++ b/workflow/engine/methods/cases/ajaxListener.php @@ -852,11 +852,11 @@ class Ajax $Fields["APP_DATA"]["__DYNAFORM_OPTIONS"]["NEXT_STEP"] = "#"; $Fields["APP_DATA"]["__DYNAFORM_OPTIONS"]["NEXT_ACTION"] = "return false;"; G::LoadClass('pmDynaform'); - $a = new pmDynaform($_REQUEST['DYN_UID'], $Fields['APP_DATA']); + $FieldsPmDynaform["PRO_UID"] = $_SESSION['PROCESS']; + $FieldsPmDynaform["CURRENT_DYNAFORM"] = $_REQUEST['DYN_UID']; + $a = new pmDynaform($FieldsPmDynaform); if ($a->isResponsive()) { - $a->app_data["PROCESS"] = $_SESSION['PROCESS']; - $a->app_data["SYS_SYS"] = SYS_SYS; - $a->printView((!isset($_SESSION["PM_RUN_OUTSIDE_MAIN_APP"])) ? "true" : "false", $_SESSION['APPLICATION']); + $a->printView(); } else { $G_PUBLISH->AddContent("dynaform", "xmlform", $_SESSION["PROCESS"] . "/" . $_POST["DYN_UID"], "", $Fields["APP_DATA"], "", "", "view"); } diff --git a/workflow/engine/methods/cases/casesHistoryDynaformPage_Ajax.php b/workflow/engine/methods/cases/casesHistoryDynaformPage_Ajax.php index 4b53f2ee6..a70177abc 100644 --- a/workflow/engine/methods/cases/casesHistoryDynaformPage_Ajax.php +++ b/workflow/engine/methods/cases/casesHistoryDynaformPage_Ajax.php @@ -383,11 +383,12 @@ if ($actionAjax == 'dynaformChangeLogViewHistory') { $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP'] = '#'; $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_ACTION'] = 'return false;'; G::LoadClass('pmDynaform'); - $a = new pmDynaform($_GET['DYN_UID'], $Fields['APP_DATA']); + $FieldsPmDynaform = $Fields; + $FieldsPmDynaform["PRO_UID"] = $_SESSION['PROCESS']; + $FieldsPmDynaform["CURRENT_DYNAFORM"] = $_GET['DYN_UID']; + $a = new pmDynaform($FieldsPmDynaform); if ($a->isResponsive()) { - $a->app_data["PROCESS"] = $_SESSION['PROCESS']; - $a->app_data["SYS_SYS"] = SYS_SYS; - $a->printView((!isset($_SESSION["PM_RUN_OUTSIDE_MAIN_APP"])) ? "true" : "false", $_SESSION['APPLICATION']); + $a->printView(); } else { $G_PUBLISH->AddContent('dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_POST['DYN_UID'], '', $Fields['APP_DATA'], '', '', 'view'); } @@ -474,9 +475,11 @@ if ($actionAjax == 'historyDynaformGridPreview') { $_SESSION['CURRENT_DYN_UID'] = $_POST['DYN_UID']; $_SESSION['DYN_UID_PRINT'] = $_POST['DYN_UID']; G::LoadClass('pmDynaform'); - $a = new pmDynaform($_GET['DYN_UID'], $Fields['APP_DATA']); + $FieldsPmDynaform = $Fields; + $FieldsPmDynaform["CURRENT_DYNAFORM"] = $_GET['DYN_UID']; + $a = new pmDynaform($FieldsPmDynaform); if ($a->isResponsive()) { - $a->printView((!isset($_SESSION["PM_RUN_OUTSIDE_MAIN_APP"])) ? "true" : "false", $_SESSION['APPLICATION']); + $a->printView(); } else { $G_PUBLISH->AddContent('dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_POST['DYN_UID'], '', $Fields['APP_DATA'], '', '', 'view'); } diff --git a/workflow/engine/methods/cases/cases_Step.php b/workflow/engine/methods/cases/cases_Step.php index 6ee2a1c8d..ee1204f01 100755 --- a/workflow/engine/methods/cases/cases_Step.php +++ b/workflow/engine/methods/cases/cases_Step.php @@ -269,11 +269,14 @@ try { $_SESSION['CURRENT_DYN_UID'] = $_GET['UID']; G::LoadClass('pmDynaform'); - $a = new pmDynaform($_GET['UID'], $Fields['APP_DATA']); + $FieldsPmDynaform = $Fields; + $FieldsPmDynaform["PM_RUN_OUTSIDE_MAIN_APP"] = (!isset($_SESSION["PM_RUN_OUTSIDE_MAIN_APP"])) ? "true" : "false"; + $FieldsPmDynaform["STEP_MODE"] = $oStep->getStepMode(); + $FieldsPmDynaform["PRO_SHOW_MESSAGE"] = $noShowTitle; + $FieldsPmDynaform["TRIGGER_DEBUG"] = $_SESSION['TRIGGER_DEBUG']['ISSET']; + $a = new pmDynaform($FieldsPmDynaform); if ($a->isResponsive()) { - $a->app_data["PRO_SHOW_MESSAGE"] = $noShowTitle; - $a->app_data["TRIGGER_DEBUG"] = $_SESSION['TRIGGER_DEBUG']['ISSET']; - $a->printEdit((!isset($_SESSION["PM_RUN_OUTSIDE_MAIN_APP"])) ? "true" : "false", $_SESSION['APPLICATION'], $array, $oStep->getStepMode()); + $a->printEdit(); } else { $G_PUBLISH->AddContent('dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_GET['UID'], '', $Fields['APP_DATA'], 'cases_SaveData?UID=' . $_GET['UID'] . '&APP_UID=' . $_SESSION['APPLICATION'], '', (strtolower($oStep->getStepMode()) != 'edit' ? strtolower($oStep->getStepMode()) : '')); } diff --git a/workflow/engine/methods/cases/pmDynaform.php b/workflow/engine/methods/cases/pmDynaform.php index 90a97bf9c..97041fb70 100644 --- a/workflow/engine/methods/cases/pmDynaform.php +++ b/workflow/engine/methods/cases/pmDynaform.php @@ -2,5 +2,5 @@ $DYN_UID = $_GET["dyn_uid"]; G::LoadClass('pmDynaform'); -$a = new pmDynaform($DYN_UID); +$a = new pmDynaform(array("CURRENT_DYNAFORM" => $DYN_UID)); $a->printPmDynaform(); diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/WebEntry.php b/workflow/engine/src/ProcessMaker/BusinessModel/WebEntry.php index 52511af14..8bb5a2dbd 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/WebEntry.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/WebEntry.php @@ -398,7 +398,7 @@ class WebEntry $fileContent .= "G::LoadClass('pmDynaform');\n"; - $fileContent .= "\$a = new pmDynaform('".$arrayWebEntryData["DYN_UID"]."', array());\n"; + $fileContent .= "\$a = new pmDynaform(array('CURRENT_DYNAFORM'=>'" . $arrayWebEntryData["DYN_UID"] . "'));\n"; $fileContent .= "if(\$a->isResponsive()){"; $fileContent .= "\$a->printWebEntry('".$fileName."Post.php');"; $fileContent .= "}else {"; diff --git a/workflow/engine/templates/cases/cases_DynaformHistory.php b/workflow/engine/templates/cases/cases_DynaformHistory.php index 907403cf0..4e2f511c6 100755 --- a/workflow/engine/templates/cases/cases_DynaformHistory.php +++ b/workflow/engine/templates/cases/cases_DynaformHistory.php @@ -132,11 +132,13 @@ while ($oDataset->next()) { } else { $label = $key; } - $tpl->newBlock("FIELDLOG"); - $tpl->assign("fieldName", $label); - $tpl->assign("previous", (isset($historyData[$tableNameA][$key]))? $historyData[$tableNameA][$key] : ""); - $tpl->assign("actual", $value); - $count++; + if (strpos($label, "DYN_CONTENT_HISTORY") === false) { + $tpl->newBlock("FIELDLOG"); + $tpl->assign("fieldName", $label); + $tpl->assign("previous", (isset($historyData[$tableNameA][$key]))? $historyData[$tableNameA][$key] : ""); + $tpl->assign("actual", $value); + $count++; + } } if (is_array($value)) {