From 2d915ff264998dea8af49ab023211cd7f227a802 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Mon, 12 Jan 2015 15:58:52 -0400 Subject: [PATCH 1/4] PMDynaform --- workflow/engine/classes/class.pmDynaform.php | 25 ----------- .../js/cases/core/cases_Step_Pmdynaform.js | 42 ++++++++++--------- .../cases/casesHistoryDynaformPage_Ajax.php | 2 - workflow/engine/methods/cases/cases_Step.php | 1 - .../cases/cases_Step_Pmdynaform_View.html | 25 ++++++++++- 5 files changed, 46 insertions(+), 49 deletions(-) diff --git a/workflow/engine/classes/class.pmDynaform.php b/workflow/engine/classes/class.pmDynaform.php index 396899e9e..9b84789c0 100644 --- a/workflow/engine/classes/class.pmDynaform.php +++ b/workflow/engine/classes/class.pmDynaform.php @@ -42,31 +42,6 @@ class pmDynaform return $this->record; } - public function getMergeValues() - { - $dataJSON = G::json_decode($this->record["DYN_CONTENT"]); - $dt = $dataJSON->items[0]->items; - $n = count($dt); - for ($i = 0; $i < $n; $i++) { - $dr = $dt[$i]; - $n2 = count($dr); - for ($j = 0; $j < $n2; $j++) { - if (isset($dr[$j]->name)) { - $valueField = isset($this->app_data[$dr[$j]->name]) ? $this->app_data[$dr[$j]->name] : ""; - $dataJSON->items[0]->items[$i][$j]->defaultValue = $valueField; - } - } - } - $a = G::json_encode($dataJSON); - $a = str_replace("\/", "/", $a); - return $a; - } - - public function mergeValues() - { - $this->record["DYN_CONTENT"] = $this->getMergeValues(); - } - public function isResponsive() { return $this->record != null && $this->record["DYN_VERSION"] == 2 ? true : false; diff --git a/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js b/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js index c00f8e6aa..9d6ab62f8 100644 --- a/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js +++ b/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js @@ -22,18 +22,6 @@ function dynaFormChanged(frm) { return false; } $(window).load(function () { - var data = jsondata; - window.dynaform = new PMDynaform.core.Project({ - data: data, - keys: { - server: location.host, - projectId: prj_uid, - workspace: workspace - }, - token: credentials, - submitRest: false - }); - if (pm_run_outside_main_app === 'true') { if (parent.showCaseNavigatorPanel) { parent.showCaseNavigatorPanel('DRAFT'); @@ -44,38 +32,54 @@ $(window).load(function () { } } - var form = document.getElementsByTagName("form")[0]; + var data = jsondata; + window.project = new PMDynaform.core.Project({ + data: data, + keys: { + server: location.host, + projectId: prj_uid, + workspace: workspace + }, + token: credentials, + submitRest: false + }); + new PMDynaform.core.Proxy({ + url: "http://" + window.project.keys.server + "/" + window.project.keys.apiName + "/" + window.project.keys.apiVersion + "/" + window.project.keys.workspace + "/cases/" + app_uid + "/variables", + method: 'GET', + data: {}, + keys: window.project.token, + successCallback: function (xhr, response) { + if (response[jsondata.name] && window.project.setData2) { + window.project.setData2(response[jsondata.name]); + } + } + }); 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 dynaformname = document.createElement("input"); dynaformname.type = "hidden"; dynaformname.name = "__DynaformName__"; dynaformname.value = __DynaformName__; - var appuid = document.createElement("input"); appuid.type = "hidden"; appuid.name = "APP_UID"; appuid.value = app_uid; - + var form = document.getElementsByTagName("form")[0]; form.action = "cases_SaveData?UID=" + dyn_uid + "&APP_UID=" + app_uid; form.method = "post"; form.appendChild(type); diff --git a/workflow/engine/methods/cases/casesHistoryDynaformPage_Ajax.php b/workflow/engine/methods/cases/casesHistoryDynaformPage_Ajax.php index 010eb4435..d48c7a3d0 100644 --- a/workflow/engine/methods/cases/casesHistoryDynaformPage_Ajax.php +++ b/workflow/engine/methods/cases/casesHistoryDynaformPage_Ajax.php @@ -385,7 +385,6 @@ if ($actionAjax == 'dynaformChangeLogViewHistory') { G::LoadClass('pmDynaform'); $a = new pmDynaform($_GET['DYN_UID'], $Fields['APP_DATA']); if ($a->isResponsive()) { - $a->mergeValues(); $a->printView((!isset($_SESSION["PM_RUN_OUTSIDE_MAIN_APP"])) ? "true" : "false", $_SESSION['APPLICATION']); } else { $G_PUBLISH->AddContent('dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_POST['DYN_UID'], '', $Fields['APP_DATA'], '', '', 'view'); @@ -475,7 +474,6 @@ if ($actionAjax == 'historyDynaformGridPreview') { G::LoadClass('pmDynaform'); $a = new pmDynaform($_GET['DYN_UID'], $Fields['APP_DATA']); if ($a->isResponsive()) { - $a->mergeValues(); $a->printView((!isset($_SESSION["PM_RUN_OUTSIDE_MAIN_APP"])) ? "true" : "false", $_SESSION['APPLICATION']); } 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 c6e6748e3..7c524ea8c 100755 --- a/workflow/engine/methods/cases/cases_Step.php +++ b/workflow/engine/methods/cases/cases_Step.php @@ -264,7 +264,6 @@ try { G::LoadClass('pmDynaform'); $a = new pmDynaform($_GET['UID'], $Fields['APP_DATA']); if ($a->isResponsive()) { - $a->mergeValues(); $a->printEdit((!isset($_SESSION["PM_RUN_OUTSIDE_MAIN_APP"])) ? "true" : "false", $_SESSION['APPLICATION'], $array); } 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/templates/cases/cases_Step_Pmdynaform_View.html b/workflow/engine/templates/cases/cases_Step_Pmdynaform_View.html index 87f9095c0..cc553b6bd 100644 --- a/workflow/engine/templates/cases/cases_Step_Pmdynaform_View.html +++ b/workflow/engine/templates/cases/cases_Step_Pmdynaform_View.html @@ -24,10 +24,31 @@ var dyn_uid = '{DYN_UID}'; var __DynaformName__ = '{DYNAFORMNAME}'; var app_uid = '{APP_UID}'; + var prj_uid = '{PRJ_UID}'; + var workspace = '{WORKSPACE}'; + var credentials = {credentials}; $(window).load(function () { var data = jsondata; - window.dynaform = new PMDynaform.core.Project({ - data: data + window.project = new PMDynaform.core.Project({ + data: data, + keys: { + server: location.host, + projectId: prj_uid, + workspace: workspace + }, + token: credentials, + submitRest: false + }); + new PMDynaform.core.Proxy({ + url: "http://" + window.project.keys.server + "/" + window.project.keys.apiName + "/" + window.project.keys.apiVersion + "/" + window.project.keys.workspace + "/cases/" + app_uid + "/variables", + method: 'GET', + data: {}, + keys: window.project.token, + successCallback: function (xhr, response) { + if (response[jsondata.name] && window.project.setData2) { + window.project.setData2(response[jsondata.name]); + } + } }); $(document).find('form').submit(function (e) { e.preventDefault(); From ff322551f210bf67f22fbd577deba72e4fe38585 Mon Sep 17 00:00:00 2001 From: norahmollo Date: Tue, 13 Jan 2015 16:09:01 -0400 Subject: [PATCH 2/4] PM-1215 En IE no funciona el default flow. DOCTYPE html declarado --- workflow/engine/templates/designer/index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/workflow/engine/templates/designer/index.html b/workflow/engine/templates/designer/index.html index 1bb60caac..ec8d3cc1a 100644 --- a/workflow/engine/templates/designer/index.html +++ b/workflow/engine/templates/designer/index.html @@ -1,3 +1,4 @@ + From 1b67af5a8553ad9c6be0d5c7ca4ecc5e7589d8fa Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Wed, 14 Jan 2015 10:31:38 -0400 Subject: [PATCH 3/4] PM-1165 "Fix Fatal error: Call to a member function getDynVersion()" --- workflow/engine/src/ProcessMaker/BusinessModel/Cases.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php index a042bc107..20d26716a 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php @@ -1439,7 +1439,7 @@ class Cases $fields = $case->loadCase($app_uid); $_POST['form'] = $app_data; - if (!is_null($dyn_uid)) { + if (!is_null($dyn_uid) && $dyn_uid != '') { $oDynaform = \DynaformPeer::retrieveByPK($dyn_uid); if ($oDynaform->getDynVersion() < 2) { From fbf4ad107987c2b6f0220f5e837bbc92fd41a14d Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Tue, 13 Jan 2015 15:17:51 -0400 Subject: [PATCH 4/4] PMDynaform setData --- workflow/engine/classes/class.pmDynaform.php | 15 +++++++++++++++ .../engine/js/cases/core/cases_Step_Pmdynaform.js | 4 +--- .../cases/cases_Step_Pmdynaform_View.html | 4 +--- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/workflow/engine/classes/class.pmDynaform.php b/workflow/engine/classes/class.pmDynaform.php index 9b84789c0..67bdbbe72 100644 --- a/workflow/engine/classes/class.pmDynaform.php +++ b/workflow/engine/classes/class.pmDynaform.php @@ -50,12 +50,27 @@ class pmDynaform public function printView($pm_run_outside_main_app, $application) { ob_clean(); + + $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"] + ); + $file = file_get_contents(PATH_HOME . 'public_html/lib/pmdynaform/build/cases_Step_Pmdynaform_View.html'); $file = str_replace("{JSON_DATA}", $this->record["DYN_CONTENT"], $file); $file = str_replace("{PM_RUN_OUTSIDE_MAIN_APP}", $pm_run_outside_main_app, $file); $file = str_replace("{DYN_UID}", $this->dyn_uid, $file); $file = str_replace("{DYNAFORMNAME}", $this->record["PRO_UID"] . "_" . $this->record["DYN_UID"], $file); $file = str_replace("{APP_UID}", $application, $file); + $file = str_replace("{PRJ_UID}", $this->app_data["PROCESS"], $file); + $file = str_replace("{WORKSPACE}", $this->app_data["SYS_SYS"], $file); + $file = str_replace("{credentials}", json_encode($clientToken), $file); echo $file; exit(); } diff --git a/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js b/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js index 9d6ab62f8..5f4d5846f 100644 --- a/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js +++ b/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js @@ -49,9 +49,7 @@ $(window).load(function () { data: {}, keys: window.project.token, successCallback: function (xhr, response) { - if (response[jsondata.name] && window.project.setData2) { - window.project.setData2(response[jsondata.name]); - } + window.project.setData2(response); } }); diff --git a/workflow/engine/templates/cases/cases_Step_Pmdynaform_View.html b/workflow/engine/templates/cases/cases_Step_Pmdynaform_View.html index cc553b6bd..ed500fe54 100644 --- a/workflow/engine/templates/cases/cases_Step_Pmdynaform_View.html +++ b/workflow/engine/templates/cases/cases_Step_Pmdynaform_View.html @@ -45,9 +45,7 @@ data: {}, keys: window.project.token, successCallback: function (xhr, response) { - if (response[jsondata.name] && window.project.setData2) { - window.project.setData2(response[jsondata.name]); - } + window.project.setData2(response); } }); $(document).find('form').submit(function (e) {