diff --git a/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js b/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js index fb894c81f..f662f4815 100644 --- a/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js +++ b/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js @@ -34,10 +34,12 @@ function validateNameField (form, type) { } } -window.onload = function () { +$(window).load(function () { var data = JSON.parse(jsondata); - var modelPMDynaform = new PMDynaform.Model.Form(data); - var viewPMDynaform = new PMDynaform.View.Form({tagName: "div", renderTo: $(".container"), model: modelPMDynaform}); + + window.dynaform = new PMDynaform.core.Project({ + data: data + }); if (pm_run_outside_main_app === 'true') { if (parent.showCaseNavigatorPanel) { @@ -56,33 +58,33 @@ window.onload = function () { var type = document.createElement("input"); type.type = "hidden"; - type.value = "ASSIGN_TASK"; type.name = "TYPE"; + type.value = "ASSIGN_TASK"; var uid = document.createElement("input"); uid.type = "hidden"; - uid.value = dyn_uid; uid.name = "UID"; + uid.value = dyn_uid; var position = document.createElement("input"); position.type = "hidden"; - position.value = "10000"; position.name = "POSITION"; + position.value = "10000"; var action = document.createElement("input"); action.type = "hidden"; - action.value = "ASSIGN"; action.name = "ACTION"; + action.value = "ASSIGN"; var dynaformname = document.createElement("input"); dynaformname.type = "hidden"; - dynaformname.value = __DynaformName__; dynaformname.name = "__DynaformName__"; + dynaformname.value = __DynaformName__; var appuid = document.createElement("input"); appuid.type = "hidden"; - appuid.value = app_uid; appuid.name = "APP_UID"; + appuid.value = app_uid; form.action = "cases_SaveData?UID=" + dyn_uid + "&APP_UID=" + app_uid; form.method = "post"; @@ -92,5 +94,7 @@ window.onload = function () { form.appendChild(action); form.appendChild(dynaformname); form.appendChild(appuid); - -}; \ No newline at end of file + + var dyn_forward = document.getElementById("dyn_forward"); + dyn_forward.href = "cases_Step?TYPE=" + type.value + "&UID=" + dyn_uid + "&POSITION=" + position.value + "&ACTION=" + action.value + ""; +}); \ No newline at end of file diff --git a/workflow/engine/methods/cases/cases_SaveData.php b/workflow/engine/methods/cases/cases_SaveData.php index 263084f96..4f71d7caf 100644 --- a/workflow/engine/methods/cases/cases_SaveData.php +++ b/workflow/engine/methods/cases/cases_SaveData.php @@ -40,6 +40,23 @@ try { if ($_GET['APP_UID'] !== $_SESSION['APPLICATION']) { throw new Exception( G::LoadTranslation( 'ID_INVALID_APPLICATION_ID_MSG', array ('{1}',G::LoadTranslation( 'ID_REOPEN' ) ) ) ); } + + /* + * PMDynaform + * DYN_VERSION is 1: classic Dynaform, + * DYN_VERSION is 2: responsive form, Pmdynaform. + */ + $a = new Criteria("workflow"); + $a->addSelectColumn(DynaformPeer::DYN_VERSION); + $a->add(DynaformPeer::DYN_UID, $_GET['UID'], Criteria::EQUAL); + $a = ProcessPeer::doSelectRS($a); + $a->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $a->next(); + $row = $a->getRow(); + $swpmdynaform = isset($row) && $row["DYN_VERSION"] == 2; + if ($swpmdynaform) { + $pmdynaform = $_POST["form"]; + } $oForm = new Form( $_SESSION["PROCESS"] . "/" . $_GET["UID"], PATH_DYNAFORM ); $oForm->validatePost(); @@ -166,6 +183,10 @@ try { $aData['USER_UID'] = $_SESSION['USER_LOGGED']; //$aData['APP_STATUS'] = $Fields['APP_STATUS']; $aData['PRO_UID'] = $_SESSION['PROCESS']; + + if ($swpmdynaform) { + $aData['APP_DATA'] = array_merge($aData['APP_DATA'], $pmdynaform); + } $oCase->updateCase( $_SESSION['APPLICATION'], $aData ); diff --git a/workflow/engine/templates/cases/cases_Step_Pmdynaform.html b/workflow/engine/templates/cases/cases_Step_Pmdynaform.html index ba9b86244..91ceb8184 100644 --- a/workflow/engine/templates/cases/cases_Step_Pmdynaform.html +++ b/workflow/engine/templates/cases/cases_Step_Pmdynaform.html @@ -33,7 +33,19 @@