diff --git a/workflow/engine/classes/class.pmDynaform.php b/workflow/engine/classes/class.pmDynaform.php index 61ebf680c..9f6cf0dc3 100644 --- a/workflow/engine/classes/class.pmDynaform.php +++ b/workflow/engine/classes/class.pmDynaform.php @@ -101,7 +101,7 @@ class pmDynaform ); } //query & options - if ($key === "type" && ($value === "text" || $value === "textarea" || $value === "dropdown" || $value === "suggets")) { + if ($key === "type" && ($value === "text" || $value === "textarea" || $value === "dropdown" || $value === "suggest")) { if (!isset($json->dbConnection)) $json->dbConnection = "none"; if (!isset($json->sql)) @@ -135,14 +135,14 @@ class pmDynaform //data if ($column->type === "text" || $column->type === "textarea" || $column->type === "dropdown") { array_push($cells, array( - "value" => $row[$column->name], - "label" => $row[$column->name . "_label"] + "value" => isset($row[$column->name]) ? $row[$column->name] : "", + "label" => isset($row[$column->name . "_label"]) ? $row[$column->name . "_label"] : "" )); } if ($column->type === "suggest") { array_push($cells, array( - "value" => $row[$column->name . "_label"], - "label" => $row[$column->name] + "value" => isset($row[$column->name . "_label"]) ? $row[$column->name . "_label"] : "", + "label" => isset($row[$column->name]) ? $row[$column->name] : "" )); } } diff --git a/workflow/engine/js/cases/core/pmDynaform.js b/workflow/engine/js/cases/core/pmDynaform.js index 62030d439..befaa4abd 100644 --- a/workflow/engine/js/cases/core/pmDynaform.js +++ b/workflow/engine/js/cases/core/pmDynaform.js @@ -1,25 +1,11 @@ +function ajax_post(action, form, method, callback, asynchronous) { + document.getElementById("dyn_forward").onclick(); + window.onload = function () { + method(); + }; +} 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)) { - 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)) { - return true; - } - 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) { - selectDefaultValue = frm.elements[i1].options[i2].value; - break; - } - } - if (frm.elements[i1].value !== selectDefaultValue) { - return true; - } - } - } - return false; + return true; } $(window).load(function () { if (pm_run_outside_main_app === 'true') { @@ -28,6 +14,7 @@ $(window).load(function () { } if (parent.setCurrent) { parent.setCurrent(dyn_uid); + } } var data = jsondata; diff --git a/workflow/engine/templates/cases/open.js b/workflow/engine/templates/cases/open.js index 8e640d494..bcd38d4f4 100755 --- a/workflow/engine/templates/cases/open.js +++ b/workflow/engine/templates/cases/open.js @@ -249,7 +249,7 @@ Ext.onReady(function(){ if (iframeDynaForm.getElementsByTagName("form")) { dynaformChange = iframeDynaForm.getElementsByTagName("form").item(0); - if (typeof(window.frames["openCaseFrame"].dynaFormChanged) == "function") { + if (typeof(window.frames["openCaseFrame"].dynaFormChanged) == "function" && dynaformChange) { swDynaformChange = (window.frames["openCaseFrame"].dynaFormChanged(dynaformChange))? 1 : 0; } }