solved the problem of incompatibility between TemplatePower.php and BackBone

This commit is contained in:
Roly Rudy Gutierrez Pinto
2014-07-23 11:23:29 -04:00
parent 89338a7759
commit 2a3e8e79cc
3 changed files with 102 additions and 68 deletions

View File

@@ -1,12 +1,12 @@
function dynaFormChanged (frm) { function dynaFormChanged (frm) {
for (var i1 = 0; i1 <= frm.elements.length - 1; i1++) { 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; 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; return true;
} }
if (frm.elements[i1].tagName.toLowerCase() == "select") { if (frm.elements[i1].tagName.toLowerCase() === "select") {
var selectDefaultValue = frm.elements[i1].value; var selectDefaultValue = frm.elements[i1].value;
for (var i2 = 0; i2 <= frm.elements[i1].options.length - 1; i2++) { for (var i2 = 0; i2 <= frm.elements[i1].options.length - 1; i2++) {
if (frm.elements[i1].options[i2].defaultSelected) { if (frm.elements[i1].options[i2].defaultSelected) {
@@ -14,7 +14,7 @@ function dynaFormChanged (frm) {
break; break;
} }
} }
if (frm.elements[i1].value != selectDefaultValue) { if (frm.elements[i1].value !== selectDefaultValue) {
return true; return true;
} }
} }
@@ -22,6 +22,18 @@ function dynaFormChanged (frm) {
return false; 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 () { window.onload = function () {
var data = JSON.parse(jsondata); var data = JSON.parse(jsondata);
var modelPMDynaform = new PMDynaform.Model.Form(data); var modelPMDynaform = new PMDynaform.Model.Form(data);
@@ -36,41 +48,49 @@ window.onload = function () {
parent.setCurrent(dyn_uid); 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"); var form = document.getElementsByTagName("form")[0];
TYPE.type = "hidden"; validateNameField(form, "input");
TYPE.value = "ASSIGN_TASK"; validateNameField(form, "textarea");
TYPE.name = "TYPE"; validateNameField(form, "select");
var UID = document.createElement("input"); var type = document.createElement("input");
UID.type = "hidden"; type.type = "hidden";
UID.value = "-1"; type.value = "ASSIGN_TASK";
UID.name = "UID"; type.name = "TYPE";
var POSITION = document.createElement("input"); var uid = document.createElement("input");
POSITION.type = "hidden"; uid.type = "hidden";
POSITION.value = "10000"; uid.value = dyn_uid;
POSITION.value = "POSITION"; uid.name = "UID";
var ACTION = document.createElement("input"); var position = document.createElement("input");
ACTION.type = "hidden"; position.type = "hidden";
ACTION.value = "ASSIGN"; position.value = "10000";
ACTION.value = "ACTION"; position.name = "POSITION";
form.appendChild(TYPE); var action = document.createElement("input");
form.appendChild(UID); action.type = "hidden";
form.appendChild(POSITION); action.value = "ASSIGN";
form.appendChild(ACTION); 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);
}
}; };

View File

@@ -258,20 +258,24 @@ try {
$_SESSION['CURRENT_DYN_UID'] = $_GET['UID']; $_SESSION['CURRENT_DYN_UID'] = $_GET['UID'];
/* /*
* Checks the type of Dynaform. * PMDynaform
* DYN_VERSION: 1 is classic Dynaform, 2 is Pmdynaform (responsive form). * DYN_VERSION is 1: classic Dynaform,
* DYN_VERSION is 2: responsive form, Pmdynaform.
*/ */
$a = new Criteria("workflow"); $a = new Criteria("workflow");
$a->addSelectColumn(DynaformPeer::DYN_VERSION); $a->addSelectColumn(DynaformPeer::DYN_VERSION);
$a->addSelectColumn(DynaformPeer::DYN_CONTENT); $a->addSelectColumn(DynaformPeer::DYN_CONTENT);
$a->addSelectColumn(DynaformPeer::PRO_UID);
$a->addSelectColumn(DynaformPeer::DYN_UID);
$a->add(DynaformPeer::DYN_UID, $_GET['UID'], Criteria::EQUAL); $a->add(DynaformPeer::DYN_UID, $_GET['UID'], Criteria::EQUAL);
$ds = ProcessPeer::doSelectRS($a); $ds = ProcessPeer::doSelectRS($a);
$ds->setFetchmode(ResultSet::FETCHMODE_ASSOC); $ds->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$ds->next(); $ds->next();
$row = $ds->getRow(); $row = $ds->getRow();
$file = "";
if (isset($row) && $row["DYN_VERSION"] == 2) { if (isset($row) && $row["DYN_VERSION"] == 2) {
//$oTemplatePower = new TemplatePower(PATH_TPL . 'cases/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'); $oTemplatePower = new TemplatePower(PATH_HOME . 'public_html/lib/pmdynaform/build/cases_Step_Pmdynaform.html', T_BYVAR);
$oTemplatePower->prepare(); $oTemplatePower->prepare();
$oTemplatePower->assign("JSON_DATA", $row["DYN_CONTENT"]); $oTemplatePower->assign("JSON_DATA", $row["DYN_CONTENT"]);
$oTemplatePower->assign("CASE", $array["CASE"]); $oTemplatePower->assign("CASE", $array["CASE"]);
@@ -280,6 +284,21 @@ try {
$oTemplatePower->assign("APP_TITLE", $array["APP_TITLE"]); $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("PM_RUN_OUTSIDE_MAIN_APP", (!isset($_SESSION["PM_RUN_OUTSIDE_MAIN_APP"])) ? "true" : "false");
$oTemplatePower->assign("DYN_UID", $_GET['UID']); $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 { } 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()) : '')); $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(); die();
} }
/* $oHeadPublisher = & headPublisher::getSingleton();
* Checks the type of Dynaform. $oHeadPublisher->addScriptFile( "/jscore/cases/core/cases_Step.js" );
* 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" );
if (!isset($_SESSION["PM_RUN_OUTSIDE_MAIN_APP"])) { if (!isset($_SESSION["PM_RUN_OUTSIDE_MAIN_APP"])) {
$oHeadPublisher->addScriptCode( " $oHeadPublisher->addScriptCode( "
if (typeof parent != 'undefined') { if (typeof parent != 'undefined') {
if (parent.showCaseNavigatorPanel) { if (parent.showCaseNavigatorPanel) {
parent.showCaseNavigatorPanel('$sStatus'); parent.showCaseNavigatorPanel('$sStatus');
} }
if (parent.setCurrent) { if (parent.setCurrent) {
parent.setCurrent('" . $_GET['UID'] . "'); 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();
}' );
}

View File

@@ -23,6 +23,8 @@
var jsondata = '{JSON_DATA}'; var jsondata = '{JSON_DATA}';
var pm_run_outside_main_app = '{PM_RUN_OUTSIDE_MAIN_APP}'; var pm_run_outside_main_app = '{PM_RUN_OUTSIDE_MAIN_APP}';
var dyn_uid = '{DYN_UID}'; var dyn_uid = '{DYN_UID}';
var __DynaformName__ = '{DYNAFORMNAME}';
var app_uid = '{APP_UID}';
</script> </script>
<script type="text/javascript" src="/jscore/cases/core/cases_Step.js"></script> <script type="text/javascript" src="/jscore/cases/core/cases_Step.js"></script>
<script type="text/javascript" src="/jscore/cases/core/cases_Step_Pmdynaform.js"></script> <script type="text/javascript" src="/jscore/cases/core/cases_Step_Pmdynaform.js"></script>