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}';