PMDynaform implements mode readonly
This commit is contained in:
45
Rakefile
45
Rakefile
@@ -173,14 +173,12 @@ def buildPmdynaform(homeDir, targetDir, mode)
|
||||
pmdynaformDir = targetDir + "/pmdynaform"
|
||||
|
||||
executeInto(homeDir, [ "default"])
|
||||
|
||||
system("cp -r #{homeDir}/build #{pmdynaformDir}")
|
||||
system("cp -r #{homeDir}/libs #{pmdynaformDir}")
|
||||
system("rm #{pmdynaformDir}/build/appBuild.js")
|
||||
readyForm = ""
|
||||
system("echo '#{readyForm}' >> #{pmdynaformDir}/build/appBuild.js ")
|
||||
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")
|
||||
|
||||
require 'fileutils'
|
||||
Dir.mkdir("#{pmdynaformDir}/build")
|
||||
FileUtils.cp_r(Dir["#{homeDir}/build/*"],"#{pmdynaformDir}/build")
|
||||
Dir.mkdir("#{pmdynaformDir}/libs")
|
||||
FileUtils.cp_r(Dir["#{homeDir}/libs/*"],"#{pmdynaformDir}/libs")
|
||||
|
||||
template = ""
|
||||
config = File.read "#{homeDir}/config/templates.json"
|
||||
@@ -188,28 +186,25 @@ def buildPmdynaform(homeDir, targetDir, mode)
|
||||
json.each do |key|
|
||||
s = ""
|
||||
key["files"].each do |source|
|
||||
s += File.read "#{homeDir}/#{source}"
|
||||
s += File.read "#{homeDir}/#{source}"
|
||||
s += "\n"
|
||||
end
|
||||
template += s
|
||||
end
|
||||
|
||||
target = "#{pmdynaformDir}/build/cases_Step_Pmdynaform.html"
|
||||
html = File.read target
|
||||
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"
|
||||
html = File.read target
|
||||
while html['###TEMPLATES##'] do
|
||||
html['###TEMPLATES###'] = template
|
||||
end
|
||||
File.open(target, 'w+') do |file|
|
||||
file.write html
|
||||
htmlTemplates=["cases_Step_Pmdynaform.html","cases_Step_Pmdynaform_Preview.html","cases_Step_Pmdynaform_View.html"]
|
||||
htmlTemplates.each do |htmlTemplate|
|
||||
|
||||
FileUtils.cp("#{Dir.pwd}/workflow/engine/templates/cases/#{htmlTemplate}", "#{pmdynaformDir}/build/#{htmlTemplate}")
|
||||
|
||||
target = "#{pmdynaformDir}/build/#{htmlTemplate}"
|
||||
html = File.read target
|
||||
while html['###TEMPLATES##'] do
|
||||
html['###TEMPLATES###'] = template
|
||||
end
|
||||
File.open(target, 'w+') do |file|
|
||||
file.write html
|
||||
end
|
||||
end
|
||||
|
||||
puts "\nPmDynaform Build Finished!".magenta
|
||||
|
||||
@@ -380,7 +380,56 @@ if ($actionAjax == 'dynaformChangeLogViewHistory') {
|
||||
$Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP_LABEL'] = '';
|
||||
$Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP'] = '#';
|
||||
$Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_ACTION'] = 'return false;';
|
||||
$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">
|
||||
@@ -463,8 +512,56 @@ if ($actionAjax == 'historyDynaformGridPreview') {
|
||||
|
||||
$_SESSION['CURRENT_DYN_UID'] = $_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">
|
||||
|
||||
|
||||
@@ -274,19 +274,26 @@ try {
|
||||
$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', T_BYVAR);
|
||||
$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']);
|
||||
$oTemplatePower->assign("DYNAFORMNAME", $row["PRO_UID"] . "_" . $row["DYN_UID"]);
|
||||
$oTemplatePower->assign("APP_UID", $_SESSION['APPLICATION']);
|
||||
$oTemplatePower->printToScreen();*/
|
||||
//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]->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 = str_replace("{JSON_DATA}", $row["DYN_CONTENT"], $file);
|
||||
$file = str_replace("{CASE}", $array["CASE"], $file);
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
<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' 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/build/css/PMDynaform.css">
|
||||
<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>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div style="width:100%;padding: 0px 10px 0px 10px">
|
||||
<img src="/images/bulletButtonLeft.gif" style="float:left;">
|
||||
<a id="dyn_backward" href="" style="float:left;">
|
||||
</a>
|
||||
|
||||
|
||||
<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;">
|
||||
Next Step
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
<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' 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/build/css/PMDynaform.css">
|
||||
<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