Merge remote branch 'upstream/master'
This commit is contained in:
2
Rakefile
2
Rakefile
@@ -192,7 +192,7 @@ def buildPmdynaform(homeDir, targetDir, mode)
|
||||
template += s
|
||||
end
|
||||
|
||||
htmlTemplates=["cases_Step_Pmdynaform.html","cases_Step_Pmdynaform_Preview.html","cases_Step_Pmdynaform_View.html"]
|
||||
htmlTemplates=["cases_Step_Pmdynaform.html","cases_Step_Pmdynaform_Preview.html","cases_Step_Pmdynaform_View.html","WebEntry_Pmdynaform.html"]
|
||||
htmlTemplates.each do |htmlTemplate|
|
||||
|
||||
FileUtils.cp("#{Dir.pwd}/workflow/engine/templates/cases/#{htmlTemplate}", "#{pmdynaformDir}/build/#{htmlTemplate}")
|
||||
|
||||
@@ -17,67 +17,77 @@ class pmDynaform
|
||||
public $items = array();
|
||||
public $data = array();
|
||||
public $variables = array();
|
||||
public $arrayFieldRequired = array();
|
||||
|
||||
public function __construct($dyn_uid, $app_data)
|
||||
{
|
||||
public function __construct($dyn_uid, $app_data = array())
|
||||
{
|
||||
$this->dyn_uid = $dyn_uid;
|
||||
$this->app_data = $app_data;
|
||||
$this->getDynaform();
|
||||
|
||||
|
||||
//items
|
||||
$dynContent = G::json_decode($this->record["DYN_CONTENT"]);
|
||||
if (isset($dynContent->items)) {
|
||||
$this->items = $dynContent->items[0]->items;
|
||||
}
|
||||
|
||||
//data
|
||||
$cases = new \ProcessMaker\BusinessModel\Cases();
|
||||
$this->data = $cases->getCaseVariables($app_data["APPLICATION"]);
|
||||
|
||||
//variables
|
||||
$this->variables = array();
|
||||
|
||||
$a = new Criteria("workflow");
|
||||
$a->addSelectColumn(ProcessVariablesPeer::VAR_NAME);
|
||||
$a->addSelectColumn(ProcessVariablesPeer::VAR_SQL);
|
||||
$a->addSelectColumn(ProcessVariablesPeer::VAR_ACCEPTED_VALUES);
|
||||
$a->addSelectColumn(ProcessVariablesPeer::VAR_DBCONNECTION);
|
||||
|
||||
$c3 = $a->getNewCriterion(ProcessVariablesPeer::VAR_ACCEPTED_VALUES, "", Criteria::ALT_NOT_EQUAL);
|
||||
$c2 = $a->getNewCriterion(ProcessVariablesPeer::VAR_ACCEPTED_VALUES, "[]", Criteria::ALT_NOT_EQUAL);
|
||||
$c2->addAnd($c3);
|
||||
|
||||
$c4 = $a->getNewCriterion(ProcessVariablesPeer::PRJ_UID, $this->app_data["PROCESS"], Criteria::EQUAL);
|
||||
|
||||
$c1 = $a->getNewCriterion(ProcessVariablesPeer::VAR_SQL, "", Criteria::ALT_NOT_EQUAL);
|
||||
$c1->addOr($c2);
|
||||
$c1->addAnd($c4);
|
||||
|
||||
$a->add($c1);
|
||||
|
||||
$ds = ProcessPeer::doSelectRS($a);
|
||||
$ds->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
while ($ds->next()) {
|
||||
$row = $ds->getRow();
|
||||
//options
|
||||
$rows2 = json_decode($row["VAR_ACCEPTED_VALUES"]);
|
||||
$n = count($rows2);
|
||||
for ($i = 0; $i < $n; $i++) {
|
||||
$rows2[$i] = array($rows2[$i]->keyValue, $rows2[$i]->value);
|
||||
}
|
||||
//query
|
||||
$arrayVariable = array();
|
||||
if ($row["VAR_DBCONNECTION"] !== "none") {
|
||||
$cnn = Propel::getConnection($row["VAR_DBCONNECTION"]);
|
||||
$stmt = $cnn->createStatement();
|
||||
$rs = $stmt->executeQuery(\G::replaceDataField($row["VAR_SQL"], $arrayVariable), \ResultSet::FETCHMODE_NUM);
|
||||
while ($rs->next()) {
|
||||
array_push($rows2, $rs->getRow());
|
||||
$this->items = $dynContent->items[0]->items;
|
||||
for($i=0; $i<count($this->items); $i++){
|
||||
for($j=0; $j<count($this->items[$i]); $j++){
|
||||
if($this->items[$i][$j]->required == 1){
|
||||
array_push($this->arrayFieldRequired, $this->items[$i][$j]->name);
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->variables[$row["VAR_NAME"]] = $rows2;
|
||||
}
|
||||
}
|
||||
if(!empty($app_data)){
|
||||
//data
|
||||
$cases = new \ProcessMaker\BusinessModel\Cases();
|
||||
$this->data = $cases->getCaseVariables($app_data["APPLICATION"]);
|
||||
|
||||
//variables
|
||||
$this->variables = array();
|
||||
|
||||
$a = new Criteria("workflow");
|
||||
$a->addSelectColumn(ProcessVariablesPeer::VAR_NAME);
|
||||
$a->addSelectColumn(ProcessVariablesPeer::VAR_SQL);
|
||||
$a->addSelectColumn(ProcessVariablesPeer::VAR_ACCEPTED_VALUES);
|
||||
$a->addSelectColumn(ProcessVariablesPeer::VAR_DBCONNECTION);
|
||||
|
||||
$c3 = $a->getNewCriterion(ProcessVariablesPeer::VAR_ACCEPTED_VALUES, "", Criteria::ALT_NOT_EQUAL);
|
||||
$c2 = $a->getNewCriterion(ProcessVariablesPeer::VAR_ACCEPTED_VALUES, "[]", Criteria::ALT_NOT_EQUAL);
|
||||
$c2->addAnd($c3);
|
||||
|
||||
$c4 = $a->getNewCriterion(ProcessVariablesPeer::PRJ_UID, $this->app_data["PROCESS"], Criteria::EQUAL);
|
||||
|
||||
$c1 = $a->getNewCriterion(ProcessVariablesPeer::VAR_SQL, "", Criteria::ALT_NOT_EQUAL);
|
||||
$c1->addOr($c2);
|
||||
$c1->addAnd($c4);
|
||||
|
||||
$a->add($c1);
|
||||
|
||||
$ds = ProcessPeer::doSelectRS($a);
|
||||
$ds->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
while ($ds->next()) {
|
||||
$row = $ds->getRow();
|
||||
//options
|
||||
$rows2 = G::json_decode($row["VAR_ACCEPTED_VALUES"]);
|
||||
$n = count($rows2);
|
||||
for ($i = 0; $i < $n; $i++) {
|
||||
$rows2[$i] = array($rows2[$i]->keyValue, $rows2[$i]->value);
|
||||
}
|
||||
//query
|
||||
$arrayVariable = array();
|
||||
if ($row["VAR_DBCONNECTION"] !== "none") {
|
||||
$cnn = Propel::getConnection($row["VAR_DBCONNECTION"]);
|
||||
$stmt = $cnn->createStatement();
|
||||
$rs = $stmt->executeQuery(\G::replaceDataField($row["VAR_SQL"], $arrayVariable), \ResultSet::FETCHMODE_NUM);
|
||||
while ($rs->next()) {
|
||||
array_push($rows2, $rs->getRow());
|
||||
}
|
||||
}
|
||||
$this->variables[$row["VAR_NAME"]] = $rows2;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function getDynaform()
|
||||
@@ -94,7 +104,7 @@ class pmDynaform
|
||||
$ds = ProcessPeer::doSelectRS($a);
|
||||
$ds->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$ds->next();
|
||||
$row = $ds->getRow();
|
||||
$row = $ds->getRow();
|
||||
$this->record = isset($row) ? $row : null;
|
||||
|
||||
return $this->record;
|
||||
@@ -238,7 +248,34 @@ class pmDynaform
|
||||
$file = str_replace("{PRJ_UID}", $this->app_data["PROCESS"], $file);
|
||||
$file = str_replace("{STEP_MODE}", $step_mode, $file);
|
||||
$file = str_replace("{WORKSPACE}", $this->app_data["SYS_SYS"], $file);
|
||||
$file = str_replace("{credentials}", json_encode($clientToken), $file);
|
||||
$file = str_replace("{PORT}", $_SERVER["SERVER_PORT"] , $file);
|
||||
$file = str_replace("{credentials}", G::json_encode($clientToken), $file);
|
||||
echo $file;
|
||||
exit();
|
||||
}
|
||||
|
||||
public function printWebEntry($filename)
|
||||
{
|
||||
ob_clean();
|
||||
$a = $this->clientToken();
|
||||
$clientToken = array(
|
||||
"accessToken" => $a["access_token"],
|
||||
"expiresIn" => $a["expires_in"],
|
||||
"tokenType" => $a["token_type"],
|
||||
"scope" => $a["scope"],
|
||||
"refreshToken" => $a["refresh_token"],
|
||||
"clientId" => $a["client_id"],
|
||||
"clientSecret" => $a["client_secret"]
|
||||
);
|
||||
$file = file_get_contents(PATH_HOME . 'public_html/lib/pmdynaform/build/WebEntry_Pmdynaform.html');
|
||||
$file = str_replace("{JSON_DATA}", $this->record["DYN_CONTENT"], $file);
|
||||
$file = str_replace("{DYN_UID}", $this->dyn_uid, $file);
|
||||
$file = str_replace("{PRJ_UID}",$this->record["PRO_UID"], $file);
|
||||
$file = str_replace("{WORKSPACE}", SYS_SYS, $file);
|
||||
$file = str_replace("{FILEPOST}", $filename, $file);
|
||||
$file = str_replace("{PORT}", $_SERVER["SERVER_PORT"] , $file);
|
||||
$file = str_replace("{credentials}", G::json_encode($clientToken), $file);
|
||||
$file = str_replace("{FIELDSREQUIRED}", G::json_encode($this->arrayFieldRequired), $file);
|
||||
echo $file;
|
||||
exit();
|
||||
}
|
||||
|
||||
@@ -53,6 +53,28 @@ class CaseScheduler extends BaseCaseScheduler
|
||||
throw ($e);
|
||||
}
|
||||
$con->commit();
|
||||
|
||||
//Add Audit Log
|
||||
switch ($aData['SCH_OPTION']) {
|
||||
case '1':
|
||||
$perform = 'Daily';
|
||||
break;
|
||||
case '2':
|
||||
$perform = 'Weekly';
|
||||
break;
|
||||
case '3':
|
||||
$perform = 'Monthly';
|
||||
break;
|
||||
case '4':
|
||||
$perform = 'One time only';
|
||||
break;
|
||||
case '5':
|
||||
$perform = 'Every';
|
||||
break;
|
||||
|
||||
}
|
||||
G::auditLog("CreateCaseScheduler", "Scheduler Name: ".$aData['SCH_NAME'].", Task: ".$aData['TAS_UID'].", Perform this task: ".$perform.", Start Date: ".$aData['SCH_START_DATE'].", End Date: ".$aData['SCH_END_DATE'].", Execution time : ".$aData['SCH_START_TIME']);
|
||||
|
||||
return $result;
|
||||
} catch (Exception $e) {
|
||||
$con->rollback();
|
||||
@@ -70,6 +92,27 @@ class CaseScheduler extends BaseCaseScheduler
|
||||
if ($this->validate()) {
|
||||
$result = $this->save();
|
||||
$con->commit();
|
||||
|
||||
//Add Audit Log
|
||||
switch ($fields['SCH_OPTION']){
|
||||
case '1':
|
||||
$perform = 'Daily';
|
||||
break;
|
||||
case '2':
|
||||
$perform = 'Weekly';
|
||||
break;
|
||||
case '3':
|
||||
$perform = 'Monthly';
|
||||
break;
|
||||
case '4':
|
||||
$perform = 'One time only';
|
||||
break;
|
||||
case '5':
|
||||
$perform = 'Every';
|
||||
break;
|
||||
}
|
||||
G::auditLog("UpdateCaseScheduler", "Scheduler Name: ".$fields['SCH_NAME'].", Task: ".$fields['TAS_UID'].", Perform this task: ".$perform.", Start Date: ".$fields['SCH_START_DATE'].", End Date: ".$fields['SCH_END_DATE'].", Execution time : ".$fields['SCH_START_TIME']);
|
||||
|
||||
return $result;
|
||||
} else {
|
||||
$con->rollback();
|
||||
@@ -87,8 +130,12 @@ class CaseScheduler extends BaseCaseScheduler
|
||||
try {
|
||||
$oCaseScheduler = CaseSchedulerPeer::retrieveByPK( $SchUid );
|
||||
if (! is_null( $oCaseScheduler )) {
|
||||
$fields = $this->Load( $SchUid );
|
||||
$iResult = $oCaseScheduler->delete();
|
||||
$con->commit();
|
||||
//Add Audit Log
|
||||
G::auditLog("DeleteCaseScheduler", "Scheduler Name: ".$fields['SCH_NAME'].", Task: ".$fields['TAS_UID']);
|
||||
|
||||
return $iResult;
|
||||
} else {
|
||||
throw (new Exception( 'This row doesn\'t exist!' ));
|
||||
|
||||
@@ -141,6 +141,9 @@ class DbSource extends BaseDbSource
|
||||
if ($this->validate()) {
|
||||
$result = $this->save();
|
||||
$con->commit();
|
||||
//Add Audit Log
|
||||
G::auditLog("UpdateDatabaseConnection", "Connection Uid: ".$fields['DBS_UID'].", Connection Engine: ".$fields['DBS_TYPE'].", Connection Encode: ".$fields['DBS_ENCODE'].", Connection Server: ".$fields['DBS_SERVER'].", Connection Database: ".$fields['DBS_DATABASE_NAME'].", Connection Port: ".$fields['DBS_PORT']);
|
||||
|
||||
return $result;
|
||||
} else {
|
||||
$con->rollback();
|
||||
@@ -156,6 +159,7 @@ class DbSource extends BaseDbSource
|
||||
{
|
||||
$con = Propel::getConnection(DbSourcePeer::DATABASE_NAME);
|
||||
try {
|
||||
$fields = $this->load($DbsUid, $ProUID);
|
||||
$con->begin();
|
||||
$this->setDbsUid($DbsUid);
|
||||
$this->setProUid($ProUID);
|
||||
@@ -167,6 +171,9 @@ class DbSource extends BaseDbSource
|
||||
}
|
||||
$result = $this->delete();
|
||||
$con->commit();
|
||||
//Add Audit Log
|
||||
G::auditLog("DeleteDatabaseConnection", "Connection Uid: ".$DbsUid.", Connection Engine: ".$fields['DBS_TYPE'].", Connection Database: ".$fields['DBS_DATABASE_NAME']);
|
||||
|
||||
return $result;
|
||||
} catch (exception $e) {
|
||||
$con->rollback();
|
||||
@@ -196,6 +203,9 @@ class DbSource extends BaseDbSource
|
||||
throw ($e);
|
||||
}
|
||||
$con->commit();
|
||||
//Add Audit Log
|
||||
G::auditLog("CreateDatabaseConnection", "Connection Uid: ".$aData['DBS_UID'].", Connection Engine: ".$aData['DBS_TYPE'].", Connection Encode: ".$aData['DBS_ENCODE'].", Connection Server: ".$aData['DBS_SERVER'].", Connection Database: ".$aData['DBS_DATABASE_NAME'].", Connection Port: ".$aData['DBS_PORT']);
|
||||
|
||||
return $this->getDbsUid();
|
||||
} catch (exception $e) {
|
||||
$con->rollback();
|
||||
|
||||
@@ -126,6 +126,34 @@ class InputDocument extends BaseInputDocument
|
||||
}
|
||||
$iResult = $oInputDocument->save();
|
||||
$oConnection->commit();
|
||||
//Add Audit Log
|
||||
switch ($aData['INP_DOC_FORM_NEEDED']){
|
||||
case 'VIRTUAL':
|
||||
$docType = 'Digital';
|
||||
break;
|
||||
case 'REAL':
|
||||
$docType = 'Printed';
|
||||
break;
|
||||
case 'VREAL':
|
||||
$docType = 'Digital/Printed';
|
||||
break;
|
||||
}
|
||||
if(isset($aData['INP_DOC_VERSIONING']) && $aData['INP_DOC_VERSIONING'] == 1){
|
||||
$enableVersion = 'Yes';
|
||||
}else{
|
||||
$enableVersion = 'No';
|
||||
}
|
||||
$description = "Input Document Title: ".$aData['INP_DOC_TITLE'].", Input Document Uid: ".$aData['INP_DOC_UID'].", Document Type: ".$docType;
|
||||
if(!empty($aData['INP_DOC_DESCRIPTION'])){
|
||||
$description .= ", Description: ".$aData['INP_DOC_DESCRIPTION'];
|
||||
}
|
||||
if(!empty($aData['INP_DOC_DESTINATION_PATH'])){
|
||||
$description .= ", Destination Path: ".$aData['INP_DOC_DESTINATION_PATH'];
|
||||
}
|
||||
$inputDocMaxFileSize = $aData['INP_DOC_MAX_FILESIZE']? $aData['INP_DOC_MAX_FILESIZE'].' '.$aData['INP_DOC_MAX_FILESIZE_UNIT'] : "256 MB";
|
||||
$description .= ", Extensions: ".$aData['INP_DOC_TYPE_FILE'].", Maximum Input Document file size: ".$inputDocMaxFileSize;
|
||||
G::auditLog("CreateInputDocument", $description);
|
||||
|
||||
return $aData['INP_DOC_UID'];
|
||||
} else {
|
||||
$sMessage = '';
|
||||
@@ -165,6 +193,34 @@ class InputDocument extends BaseInputDocument
|
||||
}
|
||||
$iResult = $oInputDocument->save();
|
||||
$oConnection->commit();
|
||||
//Add Audit Log
|
||||
switch ($aData['INP_DOC_FORM_NEEDED']){
|
||||
case 'VIRTUAL':
|
||||
$docType = 'Digital';
|
||||
break;
|
||||
case 'REAL':
|
||||
$docType = 'Printed';
|
||||
break;
|
||||
case 'VREAL':
|
||||
$docType = 'Digital/Printed';
|
||||
break;
|
||||
}
|
||||
if(isset($aData['INP_DOC_VERSIONING']) && $aData['INP_DOC_VERSIONING'] == 1){
|
||||
$enableVersion = 'Yes';
|
||||
}else{
|
||||
$enableVersion = 'No';
|
||||
}
|
||||
$description = "Input Document Title: ".$aData['INP_DOC_TITLE'].", Input Document Uid: ".$aData['INP_DOC_UID'].", Document Type: ".$docType;
|
||||
if(!empty($aData['INP_DOC_DESCRIPTION'])){
|
||||
$description .= ", Description: ".$aData['INP_DOC_DESCRIPTION'];
|
||||
}
|
||||
if(!empty($aData['INP_DOC_DESTINATION_PATH'])){
|
||||
$description .= ", Destination Path: ".$aData['INP_DOC_DESTINATION_PATH'];
|
||||
}
|
||||
$inputDocMaxFileSize = $aData['INP_DOC_MAX_FILESIZE']? $aData['INP_DOC_MAX_FILESIZE'].' '.$aData['INP_DOC_MAX_FILESIZE_UNIT'] : "256 MB";
|
||||
$description .= ", Extensions: ".$aData['INP_DOC_TYPE_FILE'].", Maximum Input Document file size: ".$inputDocMaxFileSize;
|
||||
G::auditLog("UpdateInputDocument", $description);
|
||||
|
||||
return $iResult;
|
||||
} else {
|
||||
$sMessage = '';
|
||||
@@ -196,11 +252,18 @@ class InputDocument extends BaseInputDocument
|
||||
try {
|
||||
$oInputDocument = InputDocumentPeer::retrieveByPK( $sInpDocUid );
|
||||
if (! is_null( $oInputDocument )) {
|
||||
$nameInput = $this->getInpDocTitle();
|
||||
$descInput = $this->getInpDocDescription();
|
||||
$oConnection->begin();
|
||||
Content::removeContent( 'INP_DOC_TITLE', '', $oInputDocument->getInpDocUid() );
|
||||
Content::removeContent( 'INP_DOC_DESCRIPTION', '', $oInputDocument->getInpDocUid() );
|
||||
$iResult = $oInputDocument->delete();
|
||||
$oConnection->commit();
|
||||
//Add Audit Log
|
||||
$nameInput = $this->getInpDocTitle();
|
||||
$descInput = $this->getInpDocDescription();
|
||||
G::auditLog("DeleteInputDocument", "Input Document Name: ".$nameInput.", Input Document Uid: ".$sInpDocUid.", Description: ".$descInput);
|
||||
|
||||
return $iResult;
|
||||
} else {
|
||||
throw (new Exception( 'This row doesn\'t exist!' ));
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -155,7 +155,7 @@ class Triggers extends BaseTriggers
|
||||
} else {
|
||||
$this->setTriUid($aData['TRI_UID'] );
|
||||
}
|
||||
|
||||
$triggerUid = $this->getTriUid();
|
||||
$this->setProUid($aData['PRO_UID']);
|
||||
$this->setTriType("SCRIPT");
|
||||
|
||||
@@ -183,6 +183,13 @@ class Triggers extends BaseTriggers
|
||||
}
|
||||
$result=$this->save();
|
||||
$con->commit();
|
||||
//Add Audit Log
|
||||
$description = "Trigger Name: ".$aData['TRI_TITLE'].", Trigger Uid: ".$triggerUid;
|
||||
if (isset ( $aData['TRI_DESCRIPTION'] )) {
|
||||
$description .= ", Description: ".$aData['TRI_DESCRIPTION'];
|
||||
}
|
||||
G::auditLog("CreateTrigger", $description);
|
||||
|
||||
return $result;
|
||||
} else {
|
||||
$con->rollback();
|
||||
@@ -233,10 +240,18 @@ class Triggers extends BaseTriggers
|
||||
$con->begin();
|
||||
$oTri = TriggersPeer::retrieveByPK( $TriUid );
|
||||
if (!is_null($oTri)) {
|
||||
$triggerName = $this->getTriTitle();
|
||||
$triggerDesc = $this->getTriDescription();
|
||||
Content::removeContent( 'TRI_TITLE', '', $this->getTriUid());
|
||||
Content::removeContent( 'TRI_DESCRIPTION', '', $this->getTriUid());
|
||||
$result = $oTri->delete();
|
||||
$con->commit();
|
||||
//Add Audit Log
|
||||
$description = "Trigger Name: ".$triggerName.", Trigger Uid: ".$TriUid;
|
||||
if (isset ( $triggerDesc )) {
|
||||
$description .= ", Description: ".$triggerDesc;
|
||||
}
|
||||
G::auditLog("DeleteTrigger", $description);
|
||||
}
|
||||
return $result;
|
||||
} catch (Exception $e) {
|
||||
|
||||
@@ -49,7 +49,7 @@ $(window).load(function () {
|
||||
submitRest: false
|
||||
});
|
||||
new PMDynaform.core.Proxy({
|
||||
url: "http://" + window.project.keys.server + "/" + window.project.keys.apiName + "/" + window.project.keys.apiVersion + "/" + window.project.keys.workspace + "/cases/" + app_uid + "/variables",
|
||||
url: "http://" + window.project.keys.server + ":"+port +"/" + window.project.keys.apiName + "/" + window.project.keys.apiVersion + "/" + window.project.keys.workspace + "/cases/" + app_uid + "/variables",
|
||||
method: 'GET',
|
||||
data: {},
|
||||
keys: window.project.token,
|
||||
|
||||
86
workflow/engine/js/cases/core/webentry_pmdynaform.js
Normal file
86
workflow/engine/js/cases/core/webentry_pmdynaform.js
Normal file
@@ -0,0 +1,86 @@
|
||||
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).load(function () {
|
||||
if ((navigator.userAgent.indexOf("MSIE") !== -1) || (navigator.userAgent.indexOf("Trident") !== -1)) {
|
||||
document.body.innerHTML = "<div style='margin:15px'>Responsive Dynaforms are not supported in this browser.</div>";
|
||||
return;
|
||||
}
|
||||
var data = jsondata;
|
||||
window.project = new PMDynaform.core.Project({
|
||||
data: data,
|
||||
keys: {
|
||||
server: location.host,
|
||||
projectId: prj_uid,
|
||||
workspace: workspace
|
||||
},
|
||||
token: credentials,
|
||||
submitRest: false
|
||||
});
|
||||
|
||||
var type = document.createElement("input");
|
||||
type.type = "hidden";
|
||||
type.name = "TYPE";
|
||||
type.value = "ASSIGN_TASK";
|
||||
var uid = document.createElement("input");
|
||||
uid.type = "hidden";
|
||||
uid.name = "UID";
|
||||
uid.value = dyn_uid;
|
||||
var position = document.createElement("input");
|
||||
position.type = "hidden";
|
||||
position.name = "POSITION";
|
||||
position.value = "10000";
|
||||
var action = document.createElement("input");
|
||||
action.type = "hidden";
|
||||
action.name = "ACTION";
|
||||
action.value = "ASSIGN";
|
||||
var dynaformname = document.createElement("input");
|
||||
dynaformname.type = "hidden";
|
||||
dynaformname.name = "__DynaformName__";
|
||||
//dynaformname.value = __DynaformName__;
|
||||
var appuid = document.createElement("input");
|
||||
appuid.type = "hidden";
|
||||
appuid.name = "APP_UID";
|
||||
|
||||
var arrayRequired = document.createElement("input");
|
||||
arrayRequired.type = "hidden";
|
||||
arrayRequired.name = "DynaformRequiredFields";
|
||||
arrayRequired.value = fieldsRequired;
|
||||
//appuid.value = app_uid;
|
||||
var form = document.getElementsByTagName("form")[0];
|
||||
form.action = filePost;
|
||||
form.method = "post";
|
||||
form.appendChild(type);
|
||||
form.appendChild(uid);
|
||||
form.appendChild(position);
|
||||
form.appendChild(action);
|
||||
form.appendChild(dynaformname);
|
||||
form.appendChild(appuid);
|
||||
form.appendChild(arrayRequired);
|
||||
|
||||
var dyn_forward = document.getElementById("dyn_forward");
|
||||
dyn_forward.onclick = function () {
|
||||
form.submit();
|
||||
return false;
|
||||
};
|
||||
});
|
||||
@@ -28,8 +28,15 @@ if ($RBAC->userCanAccess( 'PM_SETUP' ) != 1) {
|
||||
die();
|
||||
}
|
||||
|
||||
$eventInstance = new Event();
|
||||
$eventFields = $eventInstance->load($_POST['EVN_UID']);
|
||||
$proUid = $eventFields['PRO_UID'];
|
||||
|
||||
$infoProcess = new Process();
|
||||
$resultProcess = $infoProcess->load($proUid);
|
||||
G::auditLog('Events','Delete event ('.$_POST['EVN_UID'].') in process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
|
||||
$evnUid = $_POST['EVN_UID'];
|
||||
require_once 'classes/model/Event.php';
|
||||
$oEvent = new Event();
|
||||
$oEvent->remove( $evnUid );
|
||||
|
||||
$oEvent->remove( $evnUid );
|
||||
@@ -60,6 +60,10 @@ if ($_POST['form']['EVN_UID'] == '') {
|
||||
$oEvent->update( $_POST['form'] );
|
||||
}
|
||||
|
||||
$infoProcess = new Process();
|
||||
$resultProcess = $infoProcess->load($_POST['form']['PRO_UID']);
|
||||
G::auditLog('Events','Save intermediate message ('.$_POST['form']['EVN_UID'].') in process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
|
||||
function replaceQuotes ($aData)
|
||||
{
|
||||
for ($i = 0; $i < sizeof( $aData ); $i ++) {
|
||||
|
||||
@@ -36,3 +36,11 @@ if ($_POST['form']['TRI_UID'] != '') {
|
||||
|
||||
$oTrigger->update( $_POST['form'] );
|
||||
|
||||
$triggerFields = $oTrigger->load($_POST['form']['TRI_UID']);
|
||||
$proUid = $triggerFields['PRO_UID'];
|
||||
|
||||
$infoProcess = new Process();
|
||||
$resultProcess = $infoProcess->load($proUid);
|
||||
|
||||
G::auditLog('Events','Save event ('.$_POST['form']['TRI_UID'].') in process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
|
||||
|
||||
@@ -42,17 +42,93 @@ try {
|
||||
if (isset($_REQUEST['data'])) {
|
||||
if($_REQUEST['action']=="addText"||$_REQUEST['action']=="updateText") {
|
||||
$oData = Bootstrap::json_decode($_REQUEST['data']);
|
||||
$oDataAux = G::json_decode($_REQUEST['data']);
|
||||
$oDataAux = (array)$oDataAux;
|
||||
} else {
|
||||
$oData = Bootstrap::json_decode(stripslashes($_REQUEST['data']));
|
||||
$oDataAux = G::json_decode(stripslashes($_REQUEST['data']));
|
||||
$oDataAux = (array)$oDataAux;
|
||||
}
|
||||
//$oData = $oJSON->decode( stripslashes( $_REQUEST['data'] ) );
|
||||
$sOutput = '';
|
||||
$sTask = '';
|
||||
|
||||
if(array_key_exists('pro_uid', $oDataAux) || array_key_exists('uid', $oDataAux) || array_key_exists('PRO_UID', $oDataAux) || array_key_exists('UID', $oDataAux)) {
|
||||
if(array_key_exists('pro_uid', $oDataAux) || array_key_exists('PRO_UID', $oDataAux)) {
|
||||
if(array_key_exists('pro_uid', $oDataAux)) {
|
||||
$proUid = $oDataAux['pro_uid'];
|
||||
} else {
|
||||
$proUid = $oDataAux['PRO_UID'];
|
||||
}
|
||||
} else {
|
||||
$proUid = $oDataAux['uid'];
|
||||
$uidAux = $proUid;
|
||||
}
|
||||
|
||||
G::LoadClass('processes');
|
||||
$infoProcess = new Processes();
|
||||
|
||||
if(!$infoProcess->processExists($proUid)) {
|
||||
$oSL = new SwimlanesElements();
|
||||
if($oSL->swimlanesElementsExists($proUid)) {
|
||||
$aFields = $oSL->load($proUid);
|
||||
$proUid = $aFields['PRO_UID'];
|
||||
} else {
|
||||
$k = new Criteria('workflow');
|
||||
$k->clearSelectColumns();
|
||||
$k->addSelectColumn(TaskPeer::PRO_UID);
|
||||
$k->add(TaskPeer::TAS_UID, $uidAux );
|
||||
$rs = TaskPeer::doSelectRS($k);
|
||||
$rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
$proUid = $row['PRO_UID'];
|
||||
}
|
||||
}
|
||||
$resultProcess = $infoProcess->getProcessRow($proUid);
|
||||
} else {
|
||||
if(array_key_exists('PU_UID', $oDataAux)) {
|
||||
$c = new Criteria('workflow');
|
||||
$c->clearSelectColumns();
|
||||
$c->addSelectColumn(ProcessUserPeer::PRO_UID);
|
||||
$c->addSelectColumn(ProcessUserPeer::USR_UID);
|
||||
$c->add(ProcessUserPeer::PU_UID, $oData->PU_UID);
|
||||
$oDataset = AppDelegationPeer::doSelectRS($c);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
$row = $oDataset->getRow();
|
||||
$userSupervisor = $row['USR_UID'];
|
||||
|
||||
G::LoadClass('processes');
|
||||
$infoProcess = new Processes();
|
||||
$resultProcess = $infoProcess->getProcessRow($row['PRO_UID']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(isset($_REQUEST['pro_uid']) && !empty($_REQUEST['pro_uid']) || isset($_REQUEST['PRO_UID']) && !empty($_REQUEST['PRO_UID'])) {
|
||||
if(isset($_REQUEST['pro_uid']) && !empty($_REQUEST['pro_uid'])) {
|
||||
$proUid = $_REQUEST['pro_uid'];
|
||||
} else {
|
||||
$proUid = $_REQUEST['PRO_UID'];
|
||||
}
|
||||
G::LoadClass('processes');
|
||||
$infoProcess = new Processes();
|
||||
$resultProcess = $infoProcess->getProcessRow($proUid);
|
||||
}
|
||||
|
||||
if($proUid != "") {
|
||||
$valuesProcess['PRO_UID'] = $proUid;
|
||||
$valuesProcess['PRO_UPDATE_DATE'] = date("Y-m-d H:m:i");
|
||||
G::LoadClass('processes');
|
||||
$infoProcess = new Processes();
|
||||
$resultProcess = $infoProcess->updateProcessRow($valuesProcess);
|
||||
$resultProcess = $infoProcess->getProcessRow($proUid);
|
||||
}
|
||||
|
||||
//G::LoadClass( 'processMap' );
|
||||
$oProcessMap = new processMap(new DBConnection());
|
||||
|
||||
|
||||
switch ($_REQUEST['action']) {
|
||||
case 'load':
|
||||
$_SESSION['PROCESS'] = $oData->uid;
|
||||
@@ -85,6 +161,7 @@ try {
|
||||
break;
|
||||
case 'process_Export':
|
||||
include (PATH_METHODS . 'processes/processes_Export.php');
|
||||
G::auditLog('ExportProcess','Export Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'process_User':
|
||||
include (PATH_METHODS . 'processes/processes_User.php');
|
||||
@@ -101,9 +178,14 @@ try {
|
||||
break;
|
||||
case 'webEntry_delete':
|
||||
$form = $_REQUEST;
|
||||
unlink(PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP . "public" . PATH_SEP . $form['PRO_UID'] . PATH_SEP . $form['FILENAME']);
|
||||
unlink(PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP . "public" . PATH_SEP . $form['PRO_UID'] . PATH_SEP . str_replace(".php", "Post", $form['FILENAME']) . ".php");
|
||||
if(file_exists(PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP . "public" . PATH_SEP . $form['PRO_UID'] . PATH_SEP . $form['FILENAME'])) {
|
||||
unlink(PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP . "public" . PATH_SEP . $form['PRO_UID'] . PATH_SEP . $form['FILENAME']);
|
||||
}
|
||||
if(file_exists(PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP . "public" . PATH_SEP . $form['PRO_UID'] . PATH_SEP . str_replace(".php", "Post", $form['FILENAME']) . ".php")) {
|
||||
unlink(PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP . "public" . PATH_SEP . $form['PRO_UID'] . PATH_SEP . str_replace(".php", "Post", $form['FILENAME']) . ".php");
|
||||
}
|
||||
$oProcessMap->webEntry($_REQUEST['PRO_UID']);
|
||||
G::auditLog('WebEntry','Delete web entry ('.$form['FILENAME'].') in process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'webEntry_new':
|
||||
$oProcessMap->webEntry_new($oData->PRO_UID);
|
||||
@@ -113,6 +195,7 @@ try {
|
||||
G::LoadClass('processMap');
|
||||
$oProcessMap = new ProcessMap();
|
||||
$oProcessMap->listProcessesUser($oData->PRO_UID);
|
||||
G::auditLog('AssignRole','Assign new supervisor ('.$oData->USR_UID.') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'removeProcessUser':
|
||||
$oProcessMap->removeProcessUser($oData->PU_UID);
|
||||
@@ -122,6 +205,8 @@ try {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
G::auditLog('RemoveUser','Remove supervisor ('.$userSupervisor.') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'supervisorDynaforms':
|
||||
$oProcessMap->supervisorDynaforms($oData->pro_uid);
|
||||
@@ -159,9 +244,11 @@ try {
|
||||
break;
|
||||
case 'addTask':
|
||||
$sOutput = $oProcessMap->addTask($oData->uid, $oData->position->x, $oData->position->y);
|
||||
G::auditLog('AddTask','Add new task in process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'addSubProcess':
|
||||
$sOutput = $oProcessMap->addSubProcess($oData->uid, $oData->position->x, $oData->position->y);
|
||||
G::auditLog('AddSubProcess','Add new sub process in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'taskColor':
|
||||
$oTask->taskColor($oData->pro_uid, $oData->tas_uid);
|
||||
@@ -174,33 +261,48 @@ try {
|
||||
break;
|
||||
case 'saveTaskPosition':
|
||||
$sOutput = $oProcessMap->saveTaskPosition($oData->uid, $oData->position->x, $oData->position->y);
|
||||
$oTask = new Task();
|
||||
$oTask->load($uidAux);
|
||||
G::auditLog('SaveTaskPosition','Change task position ('.$oTask->getTasTitle().') in process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'deleteTask':
|
||||
$sOutput = $oProcessMap->deleteTask($oData->tas_uid);
|
||||
break;
|
||||
case 'addGuide':
|
||||
$sOutput = $oProcessMap->addGuide($oData->uid, $oData->position, $oData->direction);
|
||||
$sOutputAux = G::json_decode($sOutput);
|
||||
$sOutputAux = (array)$sOutputAux;
|
||||
G::auditLog('Add'.ucwords($oDataAux['direction']).'Line','Add '.$oDataAux['direction'].' line ('.$sOutputAux['uid'].') in process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'saveGuidePosition':
|
||||
$sOutput = $oProcessMap->saveGuidePosition($oData->uid, $oData->position, $oData->direction);
|
||||
G::auditLog('SaveGuidePosition','Change '.$oData->direction.' line position in process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'deleteGuide':
|
||||
$sOutput = $oProcessMap->deleteGuide($oData->uid);
|
||||
G::auditLog('DeleteLine','Delete line ('.$oData->uid.') in process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'deleteGuides':
|
||||
$sOutput = $oProcessMap->deleteGuides($oData->pro_uid);
|
||||
G::auditLog('DeleteLines','Delete all lines in process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'addText':
|
||||
$sOutput = $oProcessMap->addText($oData->uid, $oData->label, $oData->position->x, $oData->position->y);
|
||||
$sOutputAux = G::json_decode($sOutput);
|
||||
$sOutputAux = (array)$sOutputAux;
|
||||
G::auditLog('AddText','Add new text ('.$sOutputAux['uid'].') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'updateText':
|
||||
$sOutput = $oProcessMap->updateText($oData->uid, $oData->label);
|
||||
G::auditLog('UpdateText','Edit text ('.$oData->uid.' ) in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'saveTextPosition':
|
||||
$sOutput = $oProcessMap->saveTextPosition($oData->uid, $oData->position->x, $oData->position->y);
|
||||
G::auditLog('SaveTextPosition','Change text position ('.$oData->uid.' ) in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'deleteText':
|
||||
$sOutput = $oProcessMap->deleteText($oData->uid);
|
||||
G::auditLog('DeleteText','Delete text ('.$oData->uid.' ) in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'dynaforms':
|
||||
$oProcessMap->dynaformsList($oData->pro_uid);
|
||||
@@ -326,9 +428,11 @@ try {
|
||||
case 'exploreDirectory':
|
||||
$_SESSION["PFMDirectory"] = $oData->main_directory;
|
||||
$oProcessMap->exploreDirectory($oData->pro_uid, $oData->main_directory, $oData->directory);
|
||||
G::auditLog('ProcessFileManager','Upload template ('.$oData->main_directory.') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'deleteFile':
|
||||
$oProcessMap->deleteFile($oData->pro_uid, $oData->main_directory, $oData->directory, $oData->file);
|
||||
G::auditLog('ProcessFileManager','Delete template ('.$oData->main_directory.': '.$oData->file.') in process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'deleteDirectory':
|
||||
$oProcessMap->deleteDirectory($oData->pro_uid, $oData->main_directory, $oData->directory, $oData->dir_to_delete);
|
||||
@@ -440,9 +544,11 @@ try {
|
||||
switch ($sDir) {
|
||||
case 'mailTemplates':
|
||||
$sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST['pro_uid'] . PATH_SEP . $_REQUEST['filename'];
|
||||
G::auditLog('ProcessFileManager','Edit template ('.$_REQUEST['filename'].') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'public':
|
||||
$sDirectory = PATH_DATA_PUBLIC . $_REQUEST['pro_uid'] . PATH_SEP . $_REQUEST['filename'];
|
||||
G::auditLog('ProcessFileManager','Edit public template ('.$_REQUEST['filename'].') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
default:
|
||||
$sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST['pro_uid'] . PATH_SEP . $_REQUEST['filename'];
|
||||
@@ -530,9 +636,11 @@ try {
|
||||
switch ($sDir) {
|
||||
case 'mailTemplates':
|
||||
$sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST['pro_uid'] . PATH_SEP . $_REQUEST['filename'];
|
||||
G::auditLog('ProcessFileManager','Save template ('.$_REQUEST['filename'].') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'public':
|
||||
$sDirectory = PATH_DATA_PUBLIC . $_REQUEST['pro_uid'] . PATH_SEP . $_REQUEST['filename'];
|
||||
G::auditLog('ProcessFileManager','Save public template ('.$_REQUEST['filename'].') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
default:
|
||||
$sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST['pro_uid'] . PATH_SEP . $_REQUEST['filename'];
|
||||
|
||||
@@ -58,3 +58,7 @@ try {
|
||||
$result->msg = $e->getMessage();
|
||||
}
|
||||
print G::json_encode( $result );
|
||||
|
||||
$infoProcess = new Processes();
|
||||
$resultProcess = $infoProcess->getProcessRow($sProcessUID);
|
||||
G::auditLog('DeletePermissions','Delete Permissions ('.$_GET['OP_UID'].') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
|
||||
@@ -30,7 +30,8 @@
|
||||
//G::LoadThirdParty( 'pear/json', 'class.json' );
|
||||
|
||||
$function = isset( $_POST['function'] ) ? $_POST['function'] : '';
|
||||
|
||||
$infoProcess = new Process();
|
||||
$resultProcessOld = $infoProcess->load($_POST['form']['PRO_UID']);
|
||||
switch ($function) {
|
||||
case 'lookForNameProcess':
|
||||
require_once 'classes/model/Content.php';
|
||||
@@ -91,4 +92,54 @@ switch ($function) {
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
$resultProcessNew = $infoProcess->load($_POST['form']['PRO_UID']);
|
||||
$oldFields = array_diff_assoc($resultProcessOld,$resultProcessNew);
|
||||
$newFields = array_diff_assoc($resultProcessNew,$resultProcessOld);
|
||||
|
||||
if(array_key_exists('PRO_TITLE', $newFields)) {
|
||||
$fields[] = G::LoadTranslation('ID_TITLE');
|
||||
}
|
||||
if(array_key_exists('PRO_DESCRIPTION', $newFields)) {
|
||||
$fields[] = G::LoadTranslation('ID_DESCRIPTION');
|
||||
}
|
||||
if(array_key_exists('PRO_CALENDAR', $newFields)) {
|
||||
$fields[] = G::LoadTranslation('ID_CALENDAR');
|
||||
}
|
||||
if(array_key_exists('PRO_CATEGORY', $newFields)) {
|
||||
$fields[] = "Process Category";
|
||||
}
|
||||
if(array_key_exists('PRO_SUMMARY_DYNAFORM', $newFields)) {
|
||||
$fields[] = "Dynaform to show a case summary";
|
||||
}
|
||||
if(array_key_exists('PRO_DERIVATION_SCREEN_TPL', $newFields)) {
|
||||
$fields[] = "Routing Screen Template";
|
||||
}
|
||||
if(array_key_exists('PRO_DEBUG', $newFields)) {
|
||||
$fields[] = G::LoadTranslation('ID_PRO_DEBUG');
|
||||
}
|
||||
if(array_key_exists('PRO_SHOW_MESSAGE', $newFields)) {
|
||||
$fields[] = "Hide the case number and the case title in the steps";
|
||||
}
|
||||
if(array_key_exists('PRO_SUBPROCESS', $newFields)) {
|
||||
$fields[] = "This a sub process";
|
||||
}
|
||||
if(array_key_exists('PRO_TRI_DELETED', $newFields)) {
|
||||
$fields[] = "Execute a trigger when a case is deleted";
|
||||
}
|
||||
if(array_key_exists('PRO_TRI_CANCELED', $newFields)) {
|
||||
$fields[] = "Execute a trigger when a case is canceled";
|
||||
}
|
||||
if(array_key_exists('PRO_TRI_PAUSED', $newFields)) {
|
||||
$fields[] = "Execute a trigger when a case is paused";
|
||||
}
|
||||
if(array_key_exists('PRO_TRI_REASSIGNED', $newFields)) {
|
||||
$fields[] = "Execute a trigger when a case is reassigned"; G
|
||||
}
|
||||
if(array_key_exists('PRO_TRI_UNPAUSED', $newFields)) {
|
||||
$fields[] = "Execute a trigger when a case is unpaused";
|
||||
}
|
||||
if(array_key_exists('PRO_TYPE_PROCESS', $newFields)) {
|
||||
$fields[] = "Type of process (only owners can edit private processes)";
|
||||
}
|
||||
G::auditLog('EditProcess','Edit fields ('.implode(', ',$fields).') in process "'.$_POST['form']['PRO_TITLE'].'"');
|
||||
@@ -76,3 +76,8 @@ $oOP->save();
|
||||
G::LoadClass( 'processMap' );
|
||||
$oProcessMap = new ProcessMap();
|
||||
$oProcessMap->getObjectsPermissionsCriteria( $sValue['PRO_UID'] );
|
||||
|
||||
$infoProcess = new Processes();
|
||||
$resultProcess = $infoProcess->getProcessRow($sValue['PRO_UID']);
|
||||
$participation = $sValue['OP_PARTICIPATE'] == 1 ? "YES" : "NO";
|
||||
G::auditLog('ProcessPermissions','Add Permission (group or user: '.end(explode( '|', $sValue['GROUP_USER'] )).', permission: '.$sValue['OP_ACTION'].', status case: '.$sValue['OP_CASE_STATUS'].', type: '.$sValue['OP_OBJ_TYPE'].', participation required: '.$participation.') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
|
||||
@@ -38,6 +38,9 @@ try {
|
||||
$http = 'http://';
|
||||
|
||||
$sContent = '';
|
||||
|
||||
$infoProcess = new Process();
|
||||
$resultProcess = $infoProcess->load($sPRO_UID);
|
||||
|
||||
if ($withWS) {
|
||||
//creating sys.info;
|
||||
@@ -73,6 +76,8 @@ try {
|
||||
$template->assign( 'wsUser', $sWS_USER );
|
||||
$template->assign( 'wsPass', Bootstrap::hashPassword($sWS_PASS, '', true) );
|
||||
$template->assign( 'wsRoundRobin', $sWS_ROUNDROBIN );
|
||||
|
||||
G::auditLog('WebEntry','Generate web entry with web services ('.$dynTitle.'.php) in process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
|
||||
if ($sWE_USR == "2") {
|
||||
$template->assign( 'USR_VAR', "\$cInfo = ws_getCaseInfo(\$caseId);\n\t \$USR_UID = \$cInfo->currentUsers->userId;" );
|
||||
@@ -118,8 +123,7 @@ try {
|
||||
$link = $http . $_SERVER['HTTP_HOST'] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/' . $sPRO_UID . '/' . $dynTitle . '.php';
|
||||
print $link;
|
||||
//print "\n<a href='$link' target='_new' > $link </a>";
|
||||
|
||||
|
||||
|
||||
} else {
|
||||
$G_FORM = new Form( $sPRO_UID . '/' . $sDYNAFORM, PATH_DYNAFORM, SYS_LANG, false );
|
||||
$G_FORM->action = $http . $_SERVER['HTTP_HOST'] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/services/cases_StartExternal.php';
|
||||
@@ -159,6 +163,7 @@ try {
|
||||
}
|
||||
|
||||
print_r( '<textarea cols="70" rows="20">' . htmlentities( str_replace( '</body>', '</form></body>', str_replace( '</form>', '', $template->getOutputContent() ) ) ) . '</textarea>' );
|
||||
G::auditLog('WebEntry','Generate web entry with single HTML (dynaform uid: '.$sDYNAFORM.') in process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
}
|
||||
|
||||
} catch (Exception $e) {
|
||||
|
||||
@@ -41,6 +41,9 @@ try {
|
||||
|
||||
G::LoadClass( 'processMap' );
|
||||
$oProcessMap = new ProcessMap();
|
||||
|
||||
$infoProcess = new Processes();
|
||||
$resultProcess = $infoProcess->getProcessRow($_POST['PRO_UID']);
|
||||
|
||||
switch ($_POST['action']) {
|
||||
case 'availableSupervisorDynaforms':
|
||||
@@ -48,18 +51,22 @@ try {
|
||||
break;
|
||||
case 'assignSupervisorDynaform':
|
||||
$oProcessMap->assignSupervisorStep( $_POST['PRO_UID'], 'DYNAFORM', $_POST['DYN_UID'] );
|
||||
G::auditLog('AssignSupervisorDynaform','Assign Supervisor Dynaform ('.$_POST['DYN_UID'].') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'removeSupervisorDynaform':
|
||||
$oProcessMap->removeSupervisorStep( $_POST['STEP_UID'], $_POST['PRO_UID'], 'DYNAFORM', $_POST['DYN_UID'], $_POST['STEP_POSITION'] );
|
||||
G::auditLog('RemoveSupervisorDynaform','Remove Supervisor Dynaform ('.$_POST['DYN_UID'].') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'availableSupervisorInputs':
|
||||
$oProcessMap->availableSupervisorInputs( $_POST['PRO_UID'] );
|
||||
break;
|
||||
case 'assignSupervisorInput':
|
||||
$oProcessMap->assignSupervisorStep( $_POST['PRO_UID'], 'INPUT_DOCUMENT', $_POST['INP_DOC_UID'] );
|
||||
G::auditLog('AssignSupervisorInput','Assign Supervisor Input ('.$_POST['INP_DOC_UID'].') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'removeSupervisorInput':
|
||||
$oProcessMap->removeSupervisorStep( $_POST['STEP_UID'], $_POST['PRO_UID'], 'INPUT_DOCUMENT', $_POST['INP_DOC_UID'], $_POST['STEP_POSITION'] );
|
||||
G::auditLog('RemoveSupervisorInput','Remove Supervisor Input ('.$_POST['INP_DOC_UID'].') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
}
|
||||
} catch (Exception $oException) {
|
||||
|
||||
@@ -25,6 +25,10 @@ try {
|
||||
if (isset( $_POST['form']['action'] )) {
|
||||
$_POST['action'] = $_POST['form']['action'];
|
||||
}
|
||||
|
||||
$infoProcess = new Process();
|
||||
$resultProcess = $infoProcess->load($_POST['PRO_UID']);
|
||||
|
||||
switch ($_POST['action']) {
|
||||
case 'availableCaseTrackerObjects':
|
||||
G::LoadClass( 'processMap' );
|
||||
@@ -37,24 +41,28 @@ try {
|
||||
$cto_UID = $oProcessMap->assignCaseTrackerObject( $_POST['PRO_UID'], $_POST['OBJECT_TYPE'], $_POST['OBJECT_UID'] );
|
||||
$oProcessMap->getCaseTrackerObjectsCriteria( $_POST['PRO_UID'] );
|
||||
echo $cto_UID;
|
||||
G::auditLog('CaseTrackers','Assign Case Tracker Object ('.$cto_UID.' - '.$_POST['OBJECT_TYPE'].') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'removeCaseTrackerObject':
|
||||
G::LoadClass( 'processMap' );
|
||||
$oProcessMap = new ProcessMap();
|
||||
$oProcessMap->removeCaseTrackerObject( $_POST['CTO_UID'], $_POST['PRO_UID'], $_POST['STEP_POSITION'] );
|
||||
$oProcessMap->getCaseTrackerObjectsCriteria( $_POST['PRO_UID'] );
|
||||
G::auditLog('CaseTrackers','Remove Case Tracker Object ('.$_POST['CTO_UID'].') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'upCaseTrackerObject':
|
||||
G::LoadClass( 'processMap' );
|
||||
$oProcessMap = new ProcessMap();
|
||||
$oProcessMap->upCaseTrackerObject( $_POST['CTO_UID'], $_POST['PRO_UID'], $_POST['STEP_POSITION'] );
|
||||
$oProcessMap->getCaseTrackerObjectsCriteria( $_POST['PRO_UID'] );
|
||||
G::auditLog('CaseTrackers','Move Up Case Tracker Object ('.$_POST['CTO_UID'].') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'downCaseTrackerObject':
|
||||
G::LoadClass( 'processMap' );
|
||||
$oProcessMap = new ProcessMap();
|
||||
$oProcessMap->downCaseTrackerObject( $_POST['CTO_UID'], $_POST['PRO_UID'], $_POST['STEP_POSITION'] );
|
||||
$oProcessMap->getCaseTrackerObjectsCriteria( $_POST['PRO_UID'] );
|
||||
G::auditLog('CaseTrackers','Move Down Case Tracker Object ('.$_POST['CTO_UID'].') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
break;
|
||||
case 'editStagesMap':
|
||||
$oTemplatePower = new TemplatePower( PATH_TPL . 'tracker/stages_Map.html' );
|
||||
|
||||
@@ -48,6 +48,10 @@ try {
|
||||
$aFields = $oCaseTrackerObject->load( $value['CTO_UID'] );
|
||||
$aFields['CTO_CONDITION'] = $value['CTO_CONDITION'];
|
||||
$oCaseTrackerObject->update( $aFields );
|
||||
|
||||
$infoProcess = new Process();
|
||||
$resultProcess = $infoProcess->load($value['PRO_UID']);
|
||||
G::auditLog('CaseTrackers','Save Condition Case Tracker Object ('.$value['CTO_UID'].', condition: '.$value['CTO_CONDITION'].') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
} catch (Exception $oException) {
|
||||
die( $oException->getMessage() );
|
||||
}
|
||||
|
||||
@@ -15,3 +15,14 @@ require_once 'classes/model/CaseTracker.php';
|
||||
$oCaseTracker = new CaseTracker();
|
||||
$oCaseTracker->update( $sValue );
|
||||
|
||||
$infoProcess = new Process();
|
||||
$resultProcess = $infoProcess->load($sValue['PRO_UID']);
|
||||
|
||||
if($sValue['CT_DERIVATION_HISTORY'] == 1) {
|
||||
$type[] = "Routing History";
|
||||
}
|
||||
if($sValue['CT_MESSAGE_HISTORY'] == 1) {
|
||||
$type[] = "Messages History";
|
||||
}
|
||||
G::auditLog('CaseTrackers','Save Case Tracker Properties ('.$sValue['CT_MAP_TYPE'].' - '.implode(', ',$type).') in Process "'.$resultProcess['PRO_TITLE'].'"');
|
||||
|
||||
|
||||
@@ -101,15 +101,27 @@ if (isset( $sfunction ) && $sfunction == 'lookforNameTrigger') {
|
||||
}
|
||||
/*----------------------------------********---------------------------------*/
|
||||
}
|
||||
|
||||
$swCreate = true;
|
||||
if ($value['TRI_UID'] != '') {
|
||||
$oTrigger->load( $value['TRI_UID'] );
|
||||
} else {
|
||||
$oTrigger->create( $value );
|
||||
$value['TRI_UID'] = $oTrigger->getTriUid();
|
||||
}
|
||||
//print_r($_POST['form']);die;
|
||||
$swCreate = false;
|
||||
}
|
||||
$oTrigger->update( $value );
|
||||
if($swCreate){
|
||||
//Add Audit Log
|
||||
$fields = $oTrigger->load( $value['TRI_UID'] );
|
||||
$description = "Trigger Name: ".$fields['TRI_TITLE'].", Trigger Uid: ".$value['TRI_UID'];
|
||||
if (isset ( $fields['TRI_DESCRIPTION'] )) {
|
||||
$description .= ", Description: ".$fields['TRI_DESCRIPTION'];
|
||||
}
|
||||
if (isset($value["TRI_WEBBOT"])) {
|
||||
$description .= ", [EDIT CODE]";
|
||||
}
|
||||
G::auditLog("UpdateTrigger", $description);
|
||||
}
|
||||
|
||||
//if (! isset( $_POST['mode'] )) {
|
||||
// $oProcessMap->triggersList( $value['PRO_UID'] );
|
||||
|
||||
@@ -275,6 +275,10 @@ class FilesManager
|
||||
$_FILES['prf_file']['name'] = $_FILES['prf_file']['name'].$extention;
|
||||
}
|
||||
$file = end(explode("/",$path));
|
||||
if(strpos($file,"\\") > 0) {
|
||||
$file = str_replace('\\', '/', $file);
|
||||
$file = end(explode("/",$file));
|
||||
}
|
||||
$path = str_replace($file,'',$path);
|
||||
if ($file == $_FILES['prf_file']['name']) {
|
||||
if ($_FILES['prf_file']['error'] != 1) {
|
||||
|
||||
@@ -395,9 +395,17 @@ class WebEntry
|
||||
$fileContent .= "\$_SESSION[\"PROCESS\"] = \"" . $processUid . "\";\n";
|
||||
$fileContent .= "\$_SESSION[\"CURRENT_DYN_UID\"] = \"" . $dynaFormUid . "\";\n";
|
||||
$fileContent .= "\$G_PUBLISH = new Publisher();\n";
|
||||
|
||||
|
||||
$fileContent .= "G::LoadClass('pmDynaform');\n";
|
||||
$fileContent .= "\$a = new pmDynaform('".$arrayWebEntryData["DYN_UID"]."', array());\n";
|
||||
$fileContent .= "if(\$a->isResponsive()){";
|
||||
$fileContent .= "\$a->printWebEntry('".$fileName."Post.php');";
|
||||
$fileContent .= "}else {";
|
||||
$fileContent .= "\$G_PUBLISH->AddContent(\"dynaform\", \"xmlform\", \"" . $processUid . "/" . $dynaFormUid . "\", \"\", array(), \"" . $fileName . "Post.php\");\n";
|
||||
$fileContent .= "G::RenderPage(\"publish\", \"blank\");";
|
||||
|
||||
$fileContent .= "}";
|
||||
|
||||
file_put_contents($pathDataPublicProcess . PATH_SEP . $fileName . ".php", $fileContent);
|
||||
|
||||
//Creating the second file, the post file who receive the post form.
|
||||
|
||||
53
workflow/engine/templates/cases/WebEntry_Pmdynaform.html
Normal file
53
workflow/engine/templates/cases/WebEntry_Pmdynaform.html
Normal file
@@ -0,0 +1,53 @@
|
||||
<!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/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>
|
||||
<script type="text/javascript" src="/lib/pmdynaform/libs/restclient/restclient.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}';
|
||||
var prj_uid = '{PRJ_UID}';
|
||||
//var step_mode = '{STEP_MODE}';
|
||||
var workspace = '{WORKSPACE}';
|
||||
var credentials = {credentials};
|
||||
var filePost = '{FILEPOST}';
|
||||
var port = '{PORT}';
|
||||
var fieldsRequired = {FIELDSREQUIRED};
|
||||
|
||||
</script>
|
||||
<script type="text/javascript" src="/jscore/cases/core/cases_Step.js"></script>
|
||||
<script type="text/javascript" src="/jscore/cases/core/webentry_pmdynaform.js"></script>
|
||||
<table width="100%" align="center">
|
||||
<tr class="userGroupTitle">
|
||||
<!--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>
|
||||
@@ -27,6 +27,7 @@
|
||||
var prj_uid = '{PRJ_UID}';
|
||||
var step_mode = '{STEP_MODE}';
|
||||
var workspace = '{WORKSPACE}';
|
||||
var port = '{PORT}';
|
||||
var credentials = {credentials};
|
||||
</script>
|
||||
<script type="text/javascript" src="/jscore/cases/core/cases_Step.js"></script>
|
||||
|
||||
Reference in New Issue
Block a user