Runing Cases: add Pmdynaform

This commit is contained in:
Roly Rudy Gutierrez Pinto
2014-07-17 15:51:06 -04:00
parent 8252d1a138
commit c4d7d6c3a4
3 changed files with 441 additions and 23 deletions

View File

@@ -0,0 +1,39 @@
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;
}
window.onload = 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});
if (pm_run_outside_main_app === 'true') {
if (parent.showCaseNavigatorPanel) {
parent.showCaseNavigatorPanel('DRAFT');
}
if (parent.setCurrent) {
parent.setCurrent(dyn_uid);
}
}
};

View File

@@ -257,7 +257,32 @@ try {
$oDbConnections->loadAdditionalConnections();
$_SESSION['CURRENT_DYN_UID'] = $_GET['UID'];
$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() ) : '') );
/*
* Checks the type of Dynaform.
* DYN_VERSION: 1 is classic Dynaform, 2 is Pmdynaform (responsive form).
*/
$a = new Criteria("workflow");
$a->addSelectColumn(DynaformPeer::DYN_VERSION);
$a->addSelectColumn(DynaformPeer::DYN_CONTENT);
$a->add(DynaformPeer::DYN_UID, $_GET['UID'], Criteria::EQUAL);
$ds = ProcessPeer::doSelectRS($a);
$ds->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$ds->next();
$row = $ds->getRow();
if (isset($row) && $row["DYN_VERSION"] == 2) {
$oTemplatePower = new TemplatePower(PATH_TPL . 'cases/cases_Step_Pmdynaform.html');
$oTemplatePower->prepare();
$oTemplatePower->assign("JSON_DATA", $row["DYN_CONTENT"]);
$oTemplatePower->assign("CASE", $array["CASE"]);
$oTemplatePower->assign("APP_NUMBER", $array["APP_NUMBER"]);
$oTemplatePower->assign("TITLE", $array["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("DYN_UID", $_GET['UID']);
} 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()) : ''));
}
break;
case 'INPUT_DOCUMENT':
if ($noShowTitle == 0) {
@@ -1018,29 +1043,36 @@ try {
die();
}
$oHeadPublisher = & headPublisher::getSingleton();
$oHeadPublisher->addScriptFile( "/jscore/cases/core/cases_Step.js" );
/*
* 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" );
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();
}' );
}

File diff suppressed because it is too large Load Diff