diff --git a/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js b/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js index 161ca3adf..fb894c81f 100644 --- a/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js +++ b/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js @@ -1,12 +1,12 @@ function dynaFormChanged (frm) { for (var i1 = 0; i1 <= frm.elements.length - 1; i1++) { - if ((frm.elements[i1].type == "radio" || frm.elements[i1].type == "checkbox") && (frm.elements[i1].checked != frm.elements[i1].defaultChecked)) { + if ((frm.elements[i1].type === "radio" || frm.elements[i1].type === "checkbox") && (frm.elements[i1].checked !== frm.elements[i1].defaultChecked)) { return true; } - if ((frm.elements[i1].type == "textarea" || frm.elements[i1].type == "text" || frm.elements[i1].type == "file") && (frm.elements[i1].value != frm.elements[i1].defaultValue)) { + if ((frm.elements[i1].type === "textarea" || frm.elements[i1].type === "text" || frm.elements[i1].type === "file") && (frm.elements[i1].value !== frm.elements[i1].defaultValue)) { return true; } - if (frm.elements[i1].tagName.toLowerCase() == "select") { + if (frm.elements[i1].tagName.toLowerCase() === "select") { var selectDefaultValue = frm.elements[i1].value; for (var i2 = 0; i2 <= frm.elements[i1].options.length - 1; i2++) { if (frm.elements[i1].options[i2].defaultSelected) { @@ -14,7 +14,7 @@ function dynaFormChanged (frm) { break; } } - if (frm.elements[i1].value != selectDefaultValue) { + if (frm.elements[i1].value !== selectDefaultValue) { return true; } } @@ -22,6 +22,18 @@ function dynaFormChanged (frm) { return false; } +function validateNameField (form, type) { + var i, j = 0, dt, name; + dt = form.getElementsByTagName(type); + for (i = 0; i < dt.length; i++) { + name = dt[i].name; + if (!name) + name = "field" + type + j; + dt[i].name = "form[" + name + "]"; + j++; + } +} + window.onload = function () { var data = JSON.parse(jsondata); var modelPMDynaform = new PMDynaform.Model.Form(data); @@ -36,41 +48,49 @@ window.onload = function () { parent.setCurrent(dyn_uid); } } -// TYPE:ASSIGN_TASK -// UID:-1 -// POSITION:10000 -// ACTION:ASSIGN - var submit = document.getElementsByTagName("button"); - $a = submit; - if (submit.length > 0) { - submit = submit[0]; - var form = document.getElementsByTagName("form")[0]; - $b = form; - var TYPE = document.createElement("input"); - TYPE.type = "hidden"; - TYPE.value = "ASSIGN_TASK"; - TYPE.name = "TYPE"; + var form = document.getElementsByTagName("form")[0]; + validateNameField(form, "input"); + validateNameField(form, "textarea"); + validateNameField(form, "select"); - var UID = document.createElement("input"); - UID.type = "hidden"; - UID.value = "-1"; - UID.name = "UID"; + var type = document.createElement("input"); + type.type = "hidden"; + type.value = "ASSIGN_TASK"; + type.name = "TYPE"; - var POSITION = document.createElement("input"); - POSITION.type = "hidden"; - POSITION.value = "10000"; - POSITION.value = "POSITION"; + var uid = document.createElement("input"); + uid.type = "hidden"; + uid.value = dyn_uid; + uid.name = "UID"; - var ACTION = document.createElement("input"); - ACTION.type = "hidden"; - ACTION.value = "ASSIGN"; - ACTION.value = "ACTION"; + var position = document.createElement("input"); + position.type = "hidden"; + position.value = "10000"; + position.name = "POSITION"; - form.appendChild(TYPE); - form.appendChild(UID); - form.appendChild(POSITION); - form.appendChild(ACTION); + var action = document.createElement("input"); + action.type = "hidden"; + action.value = "ASSIGN"; + action.name = "ACTION"; + + var dynaformname = document.createElement("input"); + dynaformname.type = "hidden"; + dynaformname.value = __DynaformName__; + dynaformname.name = "__DynaformName__"; + + var appuid = document.createElement("input"); + appuid.type = "hidden"; + appuid.value = app_uid; + appuid.name = "APP_UID"; + + form.action = "cases_SaveData?UID=" + dyn_uid + "&APP_UID=" + app_uid; + form.method = "post"; + form.appendChild(type); + form.appendChild(uid); + form.appendChild(position); + form.appendChild(action); + form.appendChild(dynaformname); + form.appendChild(appuid); - } }; \ No newline at end of file diff --git a/workflow/engine/methods/cases/cases_Step.php b/workflow/engine/methods/cases/cases_Step.php index b490bae8e..e733edef5 100755 --- a/workflow/engine/methods/cases/cases_Step.php +++ b/workflow/engine/methods/cases/cases_Step.php @@ -258,20 +258,24 @@ try { $_SESSION['CURRENT_DYN_UID'] = $_GET['UID']; /* - * Checks the type of Dynaform. - * DYN_VERSION: 1 is classic Dynaform, 2 is Pmdynaform (responsive form). + * PMDynaform + * DYN_VERSION is 1: classic Dynaform, + * DYN_VERSION is 2: responsive form, Pmdynaform. */ $a = new Criteria("workflow"); $a->addSelectColumn(DynaformPeer::DYN_VERSION); $a->addSelectColumn(DynaformPeer::DYN_CONTENT); + $a->addSelectColumn(DynaformPeer::PRO_UID); + $a->addSelectColumn(DynaformPeer::DYN_UID); $a->add(DynaformPeer::DYN_UID, $_GET['UID'], Criteria::EQUAL); $ds = ProcessPeer::doSelectRS($a); $ds->setFetchmode(ResultSet::FETCHMODE_ASSOC); $ds->next(); $row = $ds->getRow(); + $file = ""; if (isset($row) && $row["DYN_VERSION"] == 2) { - //$oTemplatePower = new TemplatePower(PATH_TPL . 'cases/cases_Step_Pmdynaform.html'); - $oTemplatePower = new TemplatePower(PATH_HOME . 'public_html/lib/pmdynaform/build/cases_Step_Pmdynaform.html'); + /*$oTemplatePower = new TemplatePower(PATH_TPL . 'cases/cases_Step_Pmdynaform.html'); + $oTemplatePower = new TemplatePower(PATH_HOME . 'public_html/lib/pmdynaform/build/cases_Step_Pmdynaform.html', T_BYVAR); $oTemplatePower->prepare(); $oTemplatePower->assign("JSON_DATA", $row["DYN_CONTENT"]); $oTemplatePower->assign("CASE", $array["CASE"]); @@ -280,6 +284,21 @@ try { $oTemplatePower->assign("APP_TITLE", $array["APP_TITLE"]); $oTemplatePower->assign("PM_RUN_OUTSIDE_MAIN_APP", (!isset($_SESSION["PM_RUN_OUTSIDE_MAIN_APP"])) ? "true" : "false"); $oTemplatePower->assign("DYN_UID", $_GET['UID']); + $oTemplatePower->assign("DYNAFORMNAME", $row["PRO_UID"] . "_" . $row["DYN_UID"]); + $oTemplatePower->assign("APP_UID", $_SESSION['APPLICATION']); + $oTemplatePower->printToScreen();*/ + $file = file_get_contents(PATH_HOME . 'public_html/lib/pmdynaform/build/cases_Step_Pmdynaform.html'); + $file = str_replace("{JSON_DATA}", $row["DYN_CONTENT"], $file); + $file = str_replace("{CASE}", $array["CASE"], $file); + $file = str_replace("{APP_NUMBER}", $array["APP_NUMBER"], $file); + $file = str_replace("{TITLE}", $array["TITLE"], $file); + $file = str_replace("{APP_TITLE}", $array["APP_TITLE"], $file); + $file = str_replace("{PM_RUN_OUTSIDE_MAIN_APP}", (!isset($_SESSION["PM_RUN_OUTSIDE_MAIN_APP"])) ? "true" : "false", $file); + $file = str_replace("{DYN_UID}", $_GET['UID'], $file); + $file = str_replace("{DYNAFORMNAME}", $row["PRO_UID"] . "_" . $row["DYN_UID"], $file); + $file = str_replace("{APP_UID}", $_SESSION['APPLICATION'], $file); + echo $file; + exit(); } 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()) : '')); } @@ -1044,36 +1063,29 @@ try { die(); } -/* - * Checks the type of Dynaform. - * DYN_VERSION: 1 is classic Dynaform, 2 is Pmdynaform (responsive form). - */ -if (isset($row) && $row["DYN_VERSION"] == 2) { - $oTemplatePower->printToScreen(); -} else { - $oHeadPublisher = & headPublisher::getSingleton(); - $oHeadPublisher->addScriptFile( "/jscore/cases/core/cases_Step.js" ); +$oHeadPublisher = & headPublisher::getSingleton(); +$oHeadPublisher->addScriptFile( "/jscore/cases/core/cases_Step.js" ); - if (!isset($_SESSION["PM_RUN_OUTSIDE_MAIN_APP"])) { - $oHeadPublisher->addScriptCode( " - if (typeof parent != 'undefined') { - if (parent.showCaseNavigatorPanel) { - parent.showCaseNavigatorPanel('$sStatus'); - } +if (!isset($_SESSION["PM_RUN_OUTSIDE_MAIN_APP"])) { + $oHeadPublisher->addScriptCode( " + if (typeof parent != 'undefined') { + if (parent.showCaseNavigatorPanel) { + parent.showCaseNavigatorPanel('$sStatus'); + } - if (parent.setCurrent) { - parent.setCurrent('" . $_GET['UID'] . "'); - } - }" ); + if (parent.setCurrent) { + parent.setCurrent('" . $_GET['UID'] . "'); + } + }" ); - } - - G::RenderPage( 'publish', 'blank' ); - - if ($_SESSION['TRIGGER_DEBUG']['ISSET']) { - G::evalJScript( ' - if (typeof showdebug != \'undefined\') { - showdebug(); - }' ); - } } + +G::RenderPage( 'publish', 'blank' ); + +if ($_SESSION['TRIGGER_DEBUG']['ISSET']) { + G::evalJScript( ' + if (typeof showdebug != \'undefined\') { + showdebug(); + }' ); +} + diff --git a/workflow/engine/templates/cases/cases_Step_Pmdynaform.html b/workflow/engine/templates/cases/cases_Step_Pmdynaform.html index 010e8e66b..ba9b86244 100644 --- a/workflow/engine/templates/cases/cases_Step_Pmdynaform.html +++ b/workflow/engine/templates/cases/cases_Step_Pmdynaform.html @@ -23,6 +23,8 @@ var jsondata = '{JSON_DATA}'; var pm_run_outside_main_app = '{PM_RUN_OUTSIDE_MAIN_APP}'; var dyn_uid = '{DYN_UID}'; + var __DynaformName__ = '{DYNAFORMNAME}'; + var app_uid = '{APP_UID}';