PMDynaform implements mode readonly
This commit is contained in:
27
Rakefile
27
Rakefile
@@ -174,13 +174,11 @@ def buildPmdynaform(homeDir, targetDir, mode)
|
|||||||
|
|
||||||
executeInto(homeDir, [ "default"])
|
executeInto(homeDir, [ "default"])
|
||||||
|
|
||||||
system("cp -r #{homeDir}/build #{pmdynaformDir}")
|
require 'fileutils'
|
||||||
system("cp -r #{homeDir}/libs #{pmdynaformDir}")
|
Dir.mkdir("#{pmdynaformDir}/build")
|
||||||
system("rm #{pmdynaformDir}/build/appBuild.js")
|
FileUtils.cp_r(Dir["#{homeDir}/build/*"],"#{pmdynaformDir}/build")
|
||||||
readyForm = ""
|
Dir.mkdir("#{pmdynaformDir}/libs")
|
||||||
system("echo '#{readyForm}' >> #{pmdynaformDir}/build/appBuild.js ")
|
FileUtils.cp_r(Dir["#{homeDir}/libs/*"],"#{pmdynaformDir}/libs")
|
||||||
system("cp #{Dir.pwd}/workflow/engine/templates/cases/cases_Step_Pmdynaform.html #{pmdynaformDir}/build/cases_Step_Pmdynaform.html")
|
|
||||||
system("cp #{Dir.pwd}/workflow/engine/templates/cases/cases_Step_Pmdynaform_Preview.html #{pmdynaformDir}/build/cases_Step_Pmdynaform_Preview.html")
|
|
||||||
|
|
||||||
template = ""
|
template = ""
|
||||||
config = File.read "#{homeDir}/config/templates.json"
|
config = File.read "#{homeDir}/config/templates.json"
|
||||||
@@ -194,16 +192,12 @@ def buildPmdynaform(homeDir, targetDir, mode)
|
|||||||
template += s
|
template += s
|
||||||
end
|
end
|
||||||
|
|
||||||
target = "#{pmdynaformDir}/build/cases_Step_Pmdynaform.html"
|
htmlTemplates=["cases_Step_Pmdynaform.html","cases_Step_Pmdynaform_Preview.html","cases_Step_Pmdynaform_View.html"]
|
||||||
html = File.read target
|
htmlTemplates.each do |htmlTemplate|
|
||||||
while html['###TEMPLATES##'] do
|
|
||||||
html['###TEMPLATES###'] = template
|
|
||||||
end
|
|
||||||
File.open(target, 'w+') do |file|
|
|
||||||
file.write html
|
|
||||||
end
|
|
||||||
|
|
||||||
target = "#{pmdynaformDir}/build/cases_Step_Pmdynaform_Preview.html"
|
FileUtils.cp("#{Dir.pwd}/workflow/engine/templates/cases/#{htmlTemplate}", "#{pmdynaformDir}/build/#{htmlTemplate}")
|
||||||
|
|
||||||
|
target = "#{pmdynaformDir}/build/#{htmlTemplate}"
|
||||||
html = File.read target
|
html = File.read target
|
||||||
while html['###TEMPLATES##'] do
|
while html['###TEMPLATES##'] do
|
||||||
html['###TEMPLATES###'] = template
|
html['###TEMPLATES###'] = template
|
||||||
@@ -211,6 +205,7 @@ def buildPmdynaform(homeDir, targetDir, mode)
|
|||||||
File.open(target, 'w+') do |file|
|
File.open(target, 'w+') do |file|
|
||||||
file.write html
|
file.write html
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
puts "\nPmDynaform Build Finished!".magenta
|
puts "\nPmDynaform Build Finished!".magenta
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -380,7 +380,56 @@ if ($actionAjax == 'dynaformChangeLogViewHistory') {
|
|||||||
$Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP_LABEL'] = '';
|
$Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP_LABEL'] = '';
|
||||||
$Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP'] = '#';
|
$Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP'] = '#';
|
||||||
$Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_ACTION'] = 'return false;';
|
$Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_ACTION'] = 'return false;';
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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['DYN_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) {
|
||||||
|
//merge data
|
||||||
|
$fields = array("input", "textarea", "select");
|
||||||
|
$fieldsJSON = array("text", "textarea", "select");
|
||||||
|
$dataJSON = G::json_decode($row["DYN_CONTENT"]);
|
||||||
|
$n1 = count($fields);
|
||||||
|
$n2 = count($dataJSON->items[0]->items);
|
||||||
|
for ($i1 = 0; $i1 < $n1; $i1++) {
|
||||||
|
$i3 = 0;
|
||||||
|
for ($i2 = 0; $i2 < $n2; $i2++) {
|
||||||
|
if ($dataJSON->items[0]->items[$i2][0]->type == $fieldsJSON[$i1]) {
|
||||||
|
$key = "field" . $fields[$i1] . $i3;
|
||||||
|
$valueField = isset($Fields['APP_DATA'][$key]) ? $Fields['APP_DATA'][$key] : "";
|
||||||
|
$dataJSON->items[0]->items[$i2][0]->options = array($valueField);
|
||||||
|
$dataJSON->items[0]->items[$i2][0]->type = 'label';
|
||||||
|
$i3 = $i3 + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$row["DYN_CONTENT"] = G::json_encode($dataJSON);
|
||||||
|
//set template
|
||||||
|
ob_clean();
|
||||||
|
$file = file_get_contents(PATH_HOME . 'public_html/lib/pmdynaform/build/cases_Step_Pmdynaform_View.html');
|
||||||
|
$file = str_replace("{JSON_DATA}", $row["DYN_CONTENT"], $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['DYN_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'] . '/' . $_POST['DYN_UID'], '', $Fields['APP_DATA'], '', '', 'view' );
|
$G_PUBLISH->AddContent( 'dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_POST['DYN_UID'], '', $Fields['APP_DATA'], '', '', 'view' );
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<script language="javascript">
|
<script language="javascript">
|
||||||
@@ -463,8 +512,56 @@ if ($actionAjax == 'historyDynaformGridPreview') {
|
|||||||
|
|
||||||
$_SESSION['CURRENT_DYN_UID'] = $_POST['DYN_UID'];
|
$_SESSION['CURRENT_DYN_UID'] = $_POST['DYN_UID'];
|
||||||
$_SESSION['DYN_UID_PRINT'] = $_POST['DYN_UID'];
|
$_SESSION['DYN_UID_PRINT'] = $_POST['DYN_UID'];
|
||||||
$G_PUBLISH->AddContent( 'dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_POST['DYN_UID'], '', $Fields['APP_DATA'], '', '', 'view' );
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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['DYN_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) {
|
||||||
|
//merge data
|
||||||
|
$fields = array("input", "textarea", "select");
|
||||||
|
$fieldsJSON = array("text", "textarea", "select");
|
||||||
|
$dataJSON = G::json_decode($row["DYN_CONTENT"]);
|
||||||
|
$n1 = count($fields);
|
||||||
|
$n2 = count($dataJSON->items[0]->items);
|
||||||
|
for ($i1 = 0; $i1 < $n1; $i1++) {
|
||||||
|
$i3 = 0;
|
||||||
|
for ($i2 = 0; $i2 < $n2; $i2++) {
|
||||||
|
if ($dataJSON->items[0]->items[$i2][0]->type == $fieldsJSON[$i1]) {
|
||||||
|
$key = "field" . $fields[$i1] . $i3;
|
||||||
|
$valueField = isset($Fields['APP_DATA'][$key]) ? $Fields['APP_DATA'][$key] : "";
|
||||||
|
$dataJSON->items[0]->items[$i2][0]->options = array($valueField);
|
||||||
|
$dataJSON->items[0]->items[$i2][0]->type = 'label';
|
||||||
|
$i3 = $i3 + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$row["DYN_CONTENT"] = G::json_encode($dataJSON);
|
||||||
|
//set template
|
||||||
|
ob_clean();
|
||||||
|
$file = file_get_contents(PATH_HOME . 'public_html/lib/pmdynaform/build/cases_Step_Pmdynaform_View.html');
|
||||||
|
$file = str_replace("{JSON_DATA}", $row["DYN_CONTENT"], $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['DYN_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'] . '/' . $_POST['DYN_UID'], '', $Fields['APP_DATA'], '', '', 'view' );
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
<script language="javascript">
|
<script language="javascript">
|
||||||
|
|
||||||
|
|||||||
@@ -274,19 +274,26 @@ try {
|
|||||||
$row = $ds->getRow();
|
$row = $ds->getRow();
|
||||||
$file = "";
|
$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');
|
//merge data
|
||||||
$oTemplatePower = new TemplatePower(PATH_HOME . 'public_html/lib/pmdynaform/build/cases_Step_Pmdynaform.html', T_BYVAR);
|
$fields = array("input", "textarea", "select");
|
||||||
$oTemplatePower->prepare();
|
$fieldsJSON = array("text", "textarea", "select");
|
||||||
$oTemplatePower->assign("JSON_DATA", $row["DYN_CONTENT"]);
|
$dataJSON = G::json_decode($row["DYN_CONTENT"]);
|
||||||
$oTemplatePower->assign("CASE", $array["CASE"]);
|
$n1 = count($fields);
|
||||||
$oTemplatePower->assign("APP_NUMBER", $array["APP_NUMBER"]);
|
$n2 = count($dataJSON->items[0]->items);
|
||||||
$oTemplatePower->assign("TITLE", $array["TITLE"]);
|
for ($i1 = 0; $i1 < $n1; $i1++) {
|
||||||
$oTemplatePower->assign("APP_TITLE", $array["APP_TITLE"]);
|
$i3 = 0;
|
||||||
$oTemplatePower->assign("PM_RUN_OUTSIDE_MAIN_APP", (!isset($_SESSION["PM_RUN_OUTSIDE_MAIN_APP"])) ? "true" : "false");
|
for ($i2 = 0; $i2 < $n2; $i2++) {
|
||||||
$oTemplatePower->assign("DYN_UID", $_GET['UID']);
|
if ($dataJSON->items[0]->items[$i2][0]->type == $fieldsJSON[$i1]) {
|
||||||
$oTemplatePower->assign("DYNAFORMNAME", $row["PRO_UID"] . "_" . $row["DYN_UID"]);
|
$key = "field" . $fields[$i1] . $i3;
|
||||||
$oTemplatePower->assign("APP_UID", $_SESSION['APPLICATION']);
|
$valueField = isset($Fields['APP_DATA'][$key]) ? $Fields['APP_DATA'][$key] : "";
|
||||||
$oTemplatePower->printToScreen();*/
|
$dataJSON->items[0]->items[$i2][0]->defaultValue = $valueField;
|
||||||
|
$i3 = $i3 + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$row["DYN_CONTENT"] = G::json_encode($dataJSON);
|
||||||
|
//set template
|
||||||
|
ob_clean();
|
||||||
$file = file_get_contents(PATH_HOME . 'public_html/lib/pmdynaform/build/cases_Step_Pmdynaform.html');
|
$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("{JSON_DATA}", $row["DYN_CONTENT"], $file);
|
||||||
$file = str_replace("{CASE}", $array["CASE"], $file);
|
$file = str_replace("{CASE}", $array["CASE"], $file);
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||||
<link rel='stylesheet' type='text/css' href='/css/neoclassic-blank.css' />
|
|
||||||
<link rel="stylesheet" href="/lib/pmdynaform/libs/bootstrap-3.1.1/css/bootstrap.min.css">
|
<link rel="stylesheet" href="/lib/pmdynaform/libs/bootstrap-3.1.1/css/bootstrap.min.css">
|
||||||
<link rel="stylesheet" href="/lib/pmdynaform/build/css/PMDynaform.css">
|
<link rel="stylesheet" href="/lib/pmdynaform/build/css/PMDynaform.css">
|
||||||
<script type="text/javascript" src="/lib/pmdynaform/libs/jquery/jquery-1.11.js"></script>
|
<script type="text/javascript" src="/lib/pmdynaform/libs/jquery/jquery-1.11.js"></script>
|
||||||
@@ -33,19 +32,14 @@
|
|||||||
<td width="100%" align="center">{CASE} #: {APP_NUMBER} {TITLE}: {APP_TITLE}</td>
|
<td width="100%" align="center">{CASE} #: {APP_NUMBER} {TITLE}: {APP_TITLE}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<div style="width:100%;padding: 0px 10px 0px 10px">
|
<div style="width:100%;padding: 0px 10px 0px 10px">
|
||||||
<img src="/images/bulletButtonLeft.gif" style="float:left;">
|
<img src="/images/bulletButtonLeft.gif" style="float:left;">
|
||||||
<a id="dyn_backward" href="" style="float:left;">
|
<a id="dyn_backward" href="" style="float:left;">
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
|
||||||
<img src="/images/bulletButton.gif" style="float:right;">
|
<img src="/images/bulletButton.gif" style="float:right;">
|
||||||
<a id="dyn_forward" href="" style="float:right;font-size:12px;line-height:1;margin:0px 5px 1px 0px;">
|
<a id="dyn_forward" href="" style="float:right;font-size:12px;line-height:1;margin:0px 5px 1px 0px;">
|
||||||
Next Step
|
Next Step
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||||
<link rel='stylesheet' type='text/css' href='/css/neoclassic-blank.css' />
|
|
||||||
<link rel="stylesheet" href="/lib/pmdynaform/libs/bootstrap-3.1.1/css/bootstrap.min.css">
|
<link rel="stylesheet" href="/lib/pmdynaform/libs/bootstrap-3.1.1/css/bootstrap.min.css">
|
||||||
<link rel="stylesheet" href="/lib/pmdynaform/build/css/PMDynaform.css">
|
<link rel="stylesheet" href="/lib/pmdynaform/build/css/PMDynaform.css">
|
||||||
<script type="text/javascript" src="/lib/pmdynaform/libs/jquery/jquery-1.11.js"></script>
|
<script type="text/javascript" src="/lib/pmdynaform/libs/jquery/jquery-1.11.js"></script>
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>PMDynaform</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||||
|
<link rel="stylesheet" href="/lib/pmdynaform/libs/bootstrap-3.1.1/css/bootstrap.min.css">
|
||||||
|
<link rel="stylesheet" href="/lib/pmdynaform/build/css/PMDynaform.css">
|
||||||
|
<script type="text/javascript" src="/lib/pmdynaform/libs/jquery/jquery-1.11.js"></script>
|
||||||
|
<script type="text/javascript" src="/lib/pmdynaform/libs/jquery/jquery.inputmask.js"></script>
|
||||||
|
<script type="text/javascript" src="/lib/pmdynaform/libs/bootstrap-3.1.1/js/bootstrap.min.js"></script>
|
||||||
|
<script type="text/javascript" src="/lib/pmdynaform/libs/underscore/underscore-1.6.js"></script>
|
||||||
|
<script type="text/javascript" src="/lib/pmdynaform/libs/backbone/backbone-min.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="container"></div>
|
||||||
|
###TEMPLATES###
|
||||||
|
<script type="text/javascript" src="/lib/pmdynaform/build/js/PMDynaform.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
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}';
|
||||||
|
$(window).load(function () {
|
||||||
|
var data = JSON.parse(jsondata);
|
||||||
|
window.dynaform = new PMDynaform.core.Project({
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
$(document).find('form').submit(function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user