Merge branch 'master' of bitbucket.org:colosa/processmaker into master-d
This commit is contained in:
@@ -174,7 +174,7 @@ CLI::taskRun("runStructureDirectories");
|
||||
|
||||
CLI::taskName("database-generate-self-service-by-value");
|
||||
CLI::taskDescription(<<<EOT
|
||||
Generate or upgrade the table "self-service by value"
|
||||
Generate or upgrade the table "self-service by value".
|
||||
|
||||
This command populate the table "self-service by value", this for the cases when
|
||||
a task it's defined with "Self Service Value Based Assignment" in "Assignment Rules".
|
||||
@@ -186,6 +186,19 @@ EOT
|
||||
CLI::taskArg("workspace-name", true, true);
|
||||
CLI::taskRun("run_database_generate_self_service_by_value");
|
||||
|
||||
CLI::taskName("check-workspace-disabled-code");
|
||||
CLI::taskDescription(<<<EOT
|
||||
Check disabled code for the specified workspace(s).
|
||||
|
||||
This command is for check disabled code for the specified workspace(s).
|
||||
|
||||
If no workspace is specified, the command will be run in all workspaces. More
|
||||
than one workspace can be specified.
|
||||
EOT
|
||||
);
|
||||
CLI::taskArg("workspace-name", true, true);
|
||||
CLI::taskRun("run_check_workspace_disabled_code");
|
||||
|
||||
/**
|
||||
* Function run_info
|
||||
* access public
|
||||
@@ -522,7 +535,62 @@ function run_database_generate_self_service_by_value($args, $opts)
|
||||
} catch (Exception $e) {
|
||||
echo "Errors generating the table \"self-service by value\" of workspace " . CLI::info($workspace->name) . ": " . CLI::error($e->getMessage()) . "\n";
|
||||
}
|
||||
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
echo "Done!\n";
|
||||
} catch (Exception $e) {
|
||||
echo CLI::error($e->getMessage()) . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
function run_check_workspace_disabled_code($args, $opts)
|
||||
{
|
||||
try {
|
||||
$arrayWorkspace = get_workspaces_from_args($args);
|
||||
|
||||
foreach ($arrayWorkspace as $value) {
|
||||
$workspace = $value;
|
||||
|
||||
echo "> Workspace: " . $workspace->name . "\n";
|
||||
|
||||
try {
|
||||
$arrayFoundDisabledCode = $workspace->getDisabledCode();
|
||||
|
||||
if (count($arrayFoundDisabledCode) > 0) {
|
||||
$strFoundDisabledCode = "";
|
||||
|
||||
foreach ($arrayFoundDisabledCode as $value2) {
|
||||
$arrayProcessData = $value2;
|
||||
|
||||
$strFoundDisabledCode .= ($strFoundDisabledCode != "")? "\n" : "";
|
||||
$strFoundDisabledCode .= " Process: " . $arrayProcessData["processTitle"] . "\n";
|
||||
$strFoundDisabledCode .= " Triggers:\n";
|
||||
|
||||
foreach ($arrayProcessData["triggers"] as $value3) {
|
||||
$arrayTriggerData = $value3;
|
||||
|
||||
$strCodeAndLine = "";
|
||||
|
||||
foreach ($arrayTriggerData["disabledCode"] as $key4 => $value4) {
|
||||
$strCodeAndLine .= (($strCodeAndLine != "")? ", " : "") . $key4 . " (Lines " . implode(", ", $value4) . ")";
|
||||
}
|
||||
|
||||
$strFoundDisabledCode .= " - " . $arrayTriggerData["triggerTitle"] . ": " . $strCodeAndLine . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
echo $strFoundDisabledCode . "\n";
|
||||
} else {
|
||||
echo "The workspace it's OK\n\n";
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
echo "Errors to check disabled code: " . CLI::error($e->getMessage()) . "\n\n";
|
||||
}
|
||||
}
|
||||
|
||||
echo "Done!\n";
|
||||
} catch (Exception $e) {
|
||||
echo CLI::error($e->getMessage()) . "\n";
|
||||
}
|
||||
|
||||
@@ -960,7 +960,7 @@ class Cases
|
||||
//only when that variable is set.. from Save
|
||||
$FieldsBefore = $this->loadCase($sAppUid);
|
||||
$FieldsDifference = $this->arrayRecursiveDiff($FieldsBefore['APP_DATA'], $aApplicationFields);
|
||||
$fieldsOnBoth = array_intersect_assoc($FieldsBefore['APP_DATA'], $aApplicationFields);
|
||||
$fieldsOnBoth = @array_intersect_assoc($FieldsBefore['APP_DATA'], $aApplicationFields);
|
||||
//Add fields that weren't in previous version
|
||||
foreach ($aApplicationFields as $key => $value) {
|
||||
if (!(isset($fieldsOnBoth[$key]))) {
|
||||
@@ -3234,12 +3234,23 @@ class Cases
|
||||
} else {
|
||||
$sStepUid = $sStepUidObj;
|
||||
}
|
||||
|
||||
$delimiter = DBAdapter::getStringDelimiter();
|
||||
|
||||
$c = new Criteria();
|
||||
$c->clearSelectColumns();
|
||||
$c->addSelectColumn(TriggersPeer::TRI_UID);
|
||||
$c->addAsColumn("TRI_TITLE", ContentPeer::CON_VALUE);
|
||||
$c->addSelectColumn(StepTriggerPeer::ST_CONDITION);
|
||||
$c->addSelectColumn(TriggersPeer::TRI_TYPE);
|
||||
$c->addSelectColumn(TriggersPeer::TRI_WEBBOT);
|
||||
|
||||
$arrayCondition = array();
|
||||
$arrayCondition[] = array(TriggersPeer::TRI_UID, ContentPeer::CON_ID, Criteria::EQUAL);
|
||||
$arrayCondition[] = array(ContentPeer::CON_CATEGORY, $delimiter . "TRI_TITLE" . $delimiter, Criteria::EQUAL);
|
||||
$arrayCondition[] = array(ContentPeer::CON_LANG, $delimiter . SYS_LANG . $delimiter, Criteria::EQUAL);
|
||||
$c->addJoinMC($arrayCondition, Criteria::LEFT_JOIN);
|
||||
|
||||
$c->add(StepTriggerPeer::STEP_UID, $sStepUid);
|
||||
$c->add(StepTriggerPeer::TAS_UID, $sTasUid);
|
||||
$c->add(StepTriggerPeer::ST_TYPE, $sTriggerType);
|
||||
@@ -3247,13 +3258,13 @@ class Cases
|
||||
$c->addAscendingOrderByColumn(StepTriggerPeer::ST_POSITION);
|
||||
$rs = TriggersPeer::doSelectRS($c);
|
||||
$rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
while (is_array($row)) {
|
||||
$aTriggers[] = $row;
|
||||
$rs->next();
|
||||
|
||||
while ($rs->next()) {
|
||||
$row = $rs->getRow();
|
||||
|
||||
$aTriggers[] = $row;
|
||||
}
|
||||
|
||||
return $aTriggers;
|
||||
}
|
||||
|
||||
@@ -3270,22 +3281,55 @@ class Cases
|
||||
|
||||
public function executeTriggers($sTasUid, $sStepType, $sStepUidObj, $sTriggerType, $aFields = array())
|
||||
{
|
||||
G::LoadClass("codeScanner");
|
||||
|
||||
$aTriggers = $this->loadTriggers($sTasUid, $sStepType, $sStepUidObj, $sTriggerType);
|
||||
|
||||
if (count($aTriggers) > 0) {
|
||||
global $oPMScript;
|
||||
|
||||
$oPMScript = new PMScript();
|
||||
$oPMScript->setFields($aFields);
|
||||
|
||||
$arraySystemConfiguration = System::getSystemConfiguration(PATH_CONFIG . "env.ini");
|
||||
|
||||
$cs = new CodeScanner((isset($arraySystemConfiguration["enable_blacklist"]) && (int)($arraySystemConfiguration["enable_blacklist"]) == 1)? "DISABLED_CODE" : "");
|
||||
|
||||
$strFoundDisabledCode = "";
|
||||
|
||||
foreach ($aTriggers as $aTrigger) {
|
||||
//Check disabled code
|
||||
$arrayFoundDisabledCode = $cs->checkDisabledCode("SOURCE", $aTrigger["TRI_WEBBOT"]);
|
||||
|
||||
if (count($arrayFoundDisabledCode) > 0) {
|
||||
$strCodeAndLine = "";
|
||||
|
||||
foreach ($arrayFoundDisabledCode["source"] as $key => $value) {
|
||||
$strCodeAndLine .= (($strCodeAndLine != "")? ", " : "") . G::LoadTranslation("ID_DISABLED_CODE_CODE_AND_LINE", array($key, implode(", ", $value)));
|
||||
}
|
||||
|
||||
$strFoundDisabledCode .= "<br />- " . $aTrigger["TRI_TITLE"] . ": " . $strCodeAndLine;
|
||||
continue;
|
||||
}
|
||||
|
||||
//Execute
|
||||
$bExecute = true;
|
||||
|
||||
if ($aTrigger['ST_CONDITION'] !== '') {
|
||||
$oPMScript->setScript($aTrigger['ST_CONDITION']);
|
||||
$bExecute = $oPMScript->evaluate();
|
||||
}
|
||||
|
||||
if ($bExecute) {
|
||||
$oPMScript->setScript($aTrigger['TRI_WEBBOT']);
|
||||
$oPMScript->execute();
|
||||
}
|
||||
}
|
||||
|
||||
if ($strFoundDisabledCode != "") {
|
||||
G::SendTemporalMessage(G::LoadTranslation("ID_DISABLED_CODE_TRIGGER_TO_EXECUTE", array($strFoundDisabledCode)), "", "string");
|
||||
}
|
||||
|
||||
return $oPMScript->aFields;
|
||||
} else {
|
||||
return $aFields;
|
||||
@@ -5087,7 +5131,7 @@ class Cases
|
||||
$RESULT_OBJECTS['CASES_NOTES'] = G::arrayDiff(
|
||||
$MAIN_OBJECTS['VIEW']['CASES_NOTES'], $MAIN_OBJECTS['BLOCK']['CASES_NOTES']
|
||||
);
|
||||
array_push($RESULT_OBJECTS['DYNAFORMS'], -1);
|
||||
array_push($RESULT_OBJECTS["DYNAFORMS"], -1, -2);
|
||||
array_push($RESULT_OBJECTS['INPUT_DOCUMENTS'], -1);
|
||||
array_push($RESULT_OBJECTS['OUTPUT_DOCUMENTS'], -1);
|
||||
array_push($RESULT_OBJECTS['CASES_NOTES'], -1);
|
||||
@@ -5244,10 +5288,16 @@ class Cases
|
||||
$oDataset->next();
|
||||
}
|
||||
|
||||
//inputs
|
||||
//InputDocuments and OutputDocuments
|
||||
$oCriteria = new Criteria('workflow');
|
||||
$oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_UID);
|
||||
$oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_TYPE);
|
||||
|
||||
$arrayCondition = array();
|
||||
$arrayCondition[] = array(AppDelegationPeer::APP_UID, AppDocumentPeer::APP_UID, Criteria::EQUAL);
|
||||
$arrayCondition[] = array(AppDelegationPeer::DEL_INDEX, AppDocumentPeer::DEL_INDEX, Criteria::EQUAL);
|
||||
$oCriteria->addJoinMC($arrayCondition, Criteria::LEFT_JOIN);
|
||||
|
||||
$oCriteria->add(AppDelegationPeer::APP_UID, $APP_UID);
|
||||
$oCriteria->add(AppDelegationPeer::PRO_UID, $PRO_UID);
|
||||
if ($aCase['APP_STATUS'] != 'COMPLETED') {
|
||||
@@ -5261,23 +5311,21 @@ class Cases
|
||||
addOr($oCriteria->
|
||||
getNewCriterion(AppDocumentPeer::APP_DOC_TYPE, 'ATTACHED'))
|
||||
);
|
||||
$aConditions = Array();
|
||||
$aConditions[] = array(AppDelegationPeer::APP_UID, AppDocumentPeer::APP_UID);
|
||||
$aConditions[] = array(AppDelegationPeer::DEL_INDEX, AppDocumentPeer::DEL_INDEX);
|
||||
$oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
|
||||
|
||||
$oDataset = DynaformPeer::doSelectRS($oCriteria);
|
||||
$oDataset = AppDelegationPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
|
||||
while ($oDataset->next()) {
|
||||
$aRow = $oDataset->getRow();
|
||||
|
||||
if ($aRow['APP_DOC_TYPE'] == "ATTACHED") {
|
||||
$aRow['APP_DOC_TYPE'] = "INPUT";
|
||||
}
|
||||
if (!in_array($aRow['APP_DOC_UID'], $RESULT[$aRow['APP_DOC_TYPE']])) {
|
||||
array_push($RESULT[$aRow['APP_DOC_TYPE']], $aRow['APP_DOC_UID']);
|
||||
}
|
||||
$oDataset->next();
|
||||
}
|
||||
|
||||
$RESULT['CASES_NOTES'] = 1;
|
||||
$RESULT['SUMMARY_FORM'] = 1;
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ class PMLicensedFeatures
|
||||
}
|
||||
return self::$instancefeature;
|
||||
}
|
||||
|
||||
/*----------------------------------********---------------------------------*/
|
||||
public function verifyfeature ($featureName)
|
||||
{
|
||||
if (!class_exists("pmLicenseManager")) {
|
||||
@@ -82,5 +82,6 @@ class PMLicensedFeatures
|
||||
$this->featuresDetails[$value[0]]->enabled = $enable;
|
||||
return $enable;
|
||||
}
|
||||
/*----------------------------------********---------------------------------*/
|
||||
}
|
||||
|
||||
|
||||
@@ -4420,6 +4420,103 @@ class Processes
|
||||
throw ($oError);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get disabled code
|
||||
*
|
||||
* @param string $processUid Unique id of Process
|
||||
*
|
||||
* return array Return array with disabled code found, array empty otherwise
|
||||
*/
|
||||
public function getDisabledCode($processUid = "")
|
||||
{
|
||||
try {
|
||||
G::LoadClass("codeScanner");
|
||||
|
||||
$arrayDisabledCode = array();
|
||||
|
||||
//Set variables
|
||||
$cs = new CodeScanner("DISABLED_CODE");
|
||||
|
||||
$delimiter = DBAdapter::getStringDelimiter();
|
||||
|
||||
//Processes
|
||||
$criteria = new Criteria("workflow");
|
||||
|
||||
$criteria->addSelectColumn(ProcessPeer::PRO_UID);
|
||||
$criteria->addAsColumn("PRO_TITLE", ContentPeer::CON_VALUE);
|
||||
|
||||
$arrayCondition = array();
|
||||
$arrayCondition[] = array(ProcessPeer::PRO_UID, ContentPeer::CON_ID, Criteria::EQUAL);
|
||||
$arrayCondition[] = array(ContentPeer::CON_CATEGORY, $delimiter . "PRO_TITLE" . $delimiter, Criteria::EQUAL);
|
||||
$arrayCondition[] = array(ContentPeer::CON_LANG, $delimiter . SYS_LANG . $delimiter, Criteria::EQUAL);
|
||||
$criteria->addJoinMC($arrayCondition, Criteria::LEFT_JOIN);
|
||||
|
||||
if ($processUid != "") {
|
||||
$criteria->add(ProcessPeer::PRO_UID, $processUid, Criteria::EQUAL);
|
||||
}
|
||||
|
||||
$rsCriteria = ProcessPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
|
||||
$processUid = $row["PRO_UID"];
|
||||
$processTitle = $row["PRO_TITLE"];
|
||||
|
||||
//Triggers
|
||||
$criteriaTrigger = new Criteria("workflow");
|
||||
|
||||
$criteriaTrigger->addSelectColumn(TriggersPeer::TRI_UID);
|
||||
$criteriaTrigger->addAsColumn("TRI_TITLE", ContentPeer::CON_VALUE);
|
||||
$criteriaTrigger->addSelectColumn(TriggersPeer::TRI_WEBBOT);
|
||||
|
||||
$arrayCondition = array();
|
||||
$arrayCondition[] = array(TriggersPeer::TRI_UID, ContentPeer::CON_ID, Criteria::EQUAL);
|
||||
$arrayCondition[] = array(ContentPeer::CON_CATEGORY, $delimiter . "TRI_TITLE" . $delimiter, Criteria::EQUAL);
|
||||
$arrayCondition[] = array(ContentPeer::CON_LANG, $delimiter . SYS_LANG . $delimiter, Criteria::EQUAL);
|
||||
$criteriaTrigger->addJoinMC($arrayCondition, Criteria::LEFT_JOIN);
|
||||
|
||||
$criteriaTrigger->add(TriggersPeer::PRO_UID, $processUid, Criteria::EQUAL);
|
||||
|
||||
$rsCriteriaTrigger = TriggersPeer::doSelectRS($criteriaTrigger);
|
||||
$rsCriteriaTrigger->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
while ($rsCriteriaTrigger->next()) {
|
||||
$row = $rsCriteriaTrigger->getRow();
|
||||
|
||||
$triggerUid = $row["TRI_UID"];
|
||||
$triggerTitle = $row["TRI_TITLE"];
|
||||
$triggerWebbot = $row["TRI_WEBBOT"];
|
||||
|
||||
//Check disabled code
|
||||
$arrayFoundDisabledCode = $cs->checkDisabledCode("SOURCE", $triggerWebbot);
|
||||
|
||||
if (count($arrayFoundDisabledCode) > 0) {
|
||||
if (!isset($arrayDisabledCode[$processUid])) {
|
||||
$arrayDisabledCode[$processUid] = array(
|
||||
"processUid" => $processUid,
|
||||
"processTitle" => $processTitle,
|
||||
"triggers" => array()
|
||||
);
|
||||
}
|
||||
|
||||
$arrayDisabledCode[$processUid]["triggers"][] = array(
|
||||
"triggerUid" => $triggerUid,
|
||||
"triggerTitle" => $triggerTitle,
|
||||
"disabledCode" => $arrayFoundDisabledCode["source"],
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Return
|
||||
return $arrayDisabledCode;
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
}
|
||||
//end class processes
|
||||
|
||||
|
||||
@@ -921,7 +921,15 @@ class wsBase
|
||||
G::LoadClass('system');
|
||||
}
|
||||
$licensedFeatures = & PMLicensedFeatures::getSingleton();
|
||||
$aSetup = (!empty($config) && $licensedFeatures->verifyfeature('nKaNTNuT1MzK0RsMEtXTnYzR09ucHF2WGNuS0hRdDBBak42WXJhNVVOOG1INEVoaU1EaTllbjBBeEJNeG9wRVJ6NmxQelhyVTBvdThzPQ==') ) ? $config : System::getEmailConfiguration();
|
||||
/*----------------------------------********---------------------------------*/
|
||||
if (!empty($config) && $licensedFeatures->verifyfeature('nKaNTNuT1MzK0RsMEtXTnYzR09ucHF2WGNuS0hRdDBBak42WXJhNVVOOG1INEVoaU1EaTllbjBBeEJNeG9wRVJ6NmxQelhyVTBvdThzPQ==')) {
|
||||
$aSetup = $config;
|
||||
} else {
|
||||
/*----------------------------------********---------------------------------*/
|
||||
$aSetup = System::getEmailConfiguration();
|
||||
/*----------------------------------********---------------------------------*/
|
||||
}
|
||||
/*----------------------------------********---------------------------------*/
|
||||
|
||||
$oSpool = new spoolRun();
|
||||
|
||||
|
||||
@@ -1497,8 +1497,7 @@ class workspaceTools
|
||||
if ($workspace->workspaceExists()) {
|
||||
|
||||
if ($overwrite) {
|
||||
$overwriteSite = new workspaceTools($dstWorkspace);
|
||||
if ($overwriteSite->dbInfo['DB_NAME'] == $overwriteSite->dbInfo['DB_RBAC_NAME']) {
|
||||
if ($workspace->dbInfo['DB_NAME'] == $workspace->dbInfo['DB_RBAC_NAME']) {
|
||||
$newDatabases = 1;
|
||||
} else {
|
||||
$newDatabases = 3;
|
||||
@@ -1552,7 +1551,7 @@ class workspaceTools
|
||||
foreach ($metadata->databases as $db) {
|
||||
if ($dbName != $newDBNames[$db->name]) {
|
||||
$dbName = $newDBNames[$db->name];
|
||||
|
||||
|
||||
if (mysql_select_db($dbName, $link)) {
|
||||
if(!$overwrite) {
|
||||
throw new Exception("Destination Database already exist (use -o to overwrite)");
|
||||
@@ -1718,11 +1717,13 @@ class workspaceTools
|
||||
$this->initPropel( true );
|
||||
G::LoadClass("enterprise");
|
||||
$licensedFeatures = & PMLicensedFeatures::getSingleton();
|
||||
/*----------------------------------********---------------------------------*/
|
||||
if ($licensedFeatures->verifyfeature('95OY24wcXpEMzIyRmlNSnF0STNFSHJzMG9wYTJKekpLNmY2ZmRCeGtuZk5oUDloaUNhUGVjTDJBPT0=')) {
|
||||
enterpriseClass::setHashPassword($response);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
/*----------------------------------********---------------------------------*/
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1820,4 +1821,26 @@ class workspaceTools
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get disabled code
|
||||
*
|
||||
* return array Return array with disabled code found, array empty otherwise
|
||||
*/
|
||||
public function getDisabledCode()
|
||||
{
|
||||
try {
|
||||
$this->initPropel(true);
|
||||
|
||||
G::LoadClass("processes");
|
||||
|
||||
$process = new Processes();
|
||||
|
||||
//Return
|
||||
return $process->getDisabledCode();
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,10 @@ class AppHistory extends BaseAppHistory
|
||||
$this->setHistoryDate($aData['APP_UPDATE_DATE']);
|
||||
$this->setHistoryData($aData['APP_DATA']);
|
||||
|
||||
if (isset($aData["OBJECT_TYPE"])) {
|
||||
$this->setObjType($aData["OBJECT_TYPE"]);
|
||||
}
|
||||
|
||||
if ($this->validate() ) {
|
||||
$res = $this->save();
|
||||
} else {
|
||||
@@ -78,12 +82,36 @@ class AppHistory extends BaseAppHistory
|
||||
}
|
||||
}
|
||||
|
||||
$appDocument = new AppDocument();
|
||||
|
||||
foreach (array("INPUT_DOCUMENTS", "OUTPUT_DOCUMENTS") as $value) {
|
||||
$key = $value;
|
||||
|
||||
if ($aObjectPermissions[$key]) {
|
||||
foreach ($aObjectPermissions[$key] as $key2 => $value2) {
|
||||
$appDocumentUid = $value2;
|
||||
|
||||
try {
|
||||
$arrayAppDocumentData = $appDocument->load($appDocumentUid);
|
||||
|
||||
$aObjectPermissions[$key][$key2] = $arrayAppDocumentData["DOC_UID"];
|
||||
} catch (Exception $e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$dynaForm = new Dynaform();
|
||||
$inputDocument = new InputDocument();
|
||||
$outputDocument = new OutputDocument();
|
||||
|
||||
$c = new Criteria('workflow');
|
||||
$c->addSelectColumn(AppHistoryPeer::APP_UID);
|
||||
$c->addSelectColumn(AppHistoryPeer::DEL_INDEX);
|
||||
$c->addSelectColumn(AppHistoryPeer::PRO_UID);
|
||||
$c->addSelectColumn(AppHistoryPeer::TAS_UID);
|
||||
$c->addSelectColumn(AppHistoryPeer::DYN_UID);
|
||||
$c->addSelectColumn(AppHistoryPeer::OBJ_TYPE);
|
||||
$c->addSelectColumn(AppHistoryPeer::USR_UID);
|
||||
$c->addSelectColumn(AppHistoryPeer::APP_STATUS);
|
||||
$c->addSelectColumn(AppHistoryPeer::HISTORY_DATE);
|
||||
@@ -94,31 +122,55 @@ class AppHistory extends BaseAppHistory
|
||||
$c->addJoin(AppHistoryPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
|
||||
|
||||
//WHERE
|
||||
$c->add(AppHistoryPeer::DYN_UID, $aObjectPermissions['DYNAFORMS'], Criteria::IN);
|
||||
$c->add(
|
||||
$c->getNewCriterion(AppHistoryPeer::DYN_UID, $aObjectPermissions["DYNAFORMS"], Criteria::IN)->addOr(
|
||||
$c->getNewCriterion(AppHistoryPeer::DYN_UID, $aObjectPermissions["INPUT_DOCUMENTS"], Criteria::IN))->addOr(
|
||||
$c->getNewCriterion(AppHistoryPeer::DYN_UID, $aObjectPermissions["OUTPUT_DOCUMENTS"], Criteria::IN))
|
||||
);
|
||||
|
||||
$c->add(AppHistoryPeer::PRO_UID, $PRO_UID);
|
||||
$c->add(AppHistoryPeer::APP_UID, $APP_UID);
|
||||
if ((isset($DYN_UID))&&($DYN_UID!="")) {
|
||||
$c->add(AppHistoryPeer::DYN_UID, $DYN_UID);
|
||||
}
|
||||
|
||||
//ORDER BY
|
||||
$c->clearOrderByColumns();
|
||||
$c->addDescendingOrderByColumn(AppHistoryPeer::HISTORY_DATE);
|
||||
|
||||
//Execute
|
||||
$oDataset = AppHistoryPeer::doSelectRS($c);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
|
||||
$aDynHistory = array();
|
||||
$aDynHistory[] = array(
|
||||
'DYN_TITLE' => 'char'
|
||||
);
|
||||
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
$o = new Dynaform();
|
||||
$o->setDynUid($aRow['DYN_UID']);
|
||||
$aRow['DYN_TITLE'] = $o->getDynTitle();
|
||||
while ($oDataset->next()) {
|
||||
$aRow = $oDataset->getRow();
|
||||
|
||||
$title = "";
|
||||
|
||||
switch ($aRow["OBJ_TYPE"]) {
|
||||
case "DYNAFORM":
|
||||
$arrayDynaFormData = $dynaForm->Load($aRow["DYN_UID"]);
|
||||
|
||||
$title = $arrayDynaFormData["DYN_TITLE"] . " (" . G::LoadTranslation("ID_DYNAFORM") . ")";
|
||||
break;
|
||||
case "INPUT_DOCUMENT":
|
||||
$arrayInputDocumentData = $inputDocument->load($aRow["DYN_UID"]);
|
||||
|
||||
$title = $arrayInputDocumentData["INP_DOC_TITLE"] . " (" . G::LoadTranslation("ID_INPUT_DOCUMENT") . ")";
|
||||
break;
|
||||
case "OUTPUT_DOCUMENT":
|
||||
$arrayOutputDocumentData = $outputDocument->load($aRow["DYN_UID"]);
|
||||
|
||||
$title = $arrayOutputDocumentData["OUT_DOC_TITLE"] . " (" . G::LoadTranslation("ID_OUTPUT_DOCUMENT") . ")";
|
||||
break;
|
||||
case "ASSIGN_TASK":
|
||||
$title = G::LoadTranslation("ID_ASSIGN_TASK") . " (" . G::LoadTranslation("ID_TRIGGERS") . ")";
|
||||
break;
|
||||
}
|
||||
|
||||
$aRow["DYN_TITLE"] = $title;
|
||||
|
||||
$changedValues=unserialize($aRow['HISTORY_DATA']);
|
||||
$html="<table border='0' cellpadding='0' cellspacing='0'>";
|
||||
$sw_add=false;
|
||||
@@ -166,7 +218,6 @@ class AppHistory extends BaseAppHistory
|
||||
if ($sw_add) {
|
||||
$aDynHistory[] = $aRow;
|
||||
}
|
||||
$oDataset->next();
|
||||
}
|
||||
|
||||
global $_DBArray;
|
||||
@@ -175,7 +226,8 @@ class AppHistory extends BaseAppHistory
|
||||
G::LoadClass('ArrayPeer');
|
||||
$oCriteria = new Criteria('dbarray');
|
||||
$oCriteria->setDBArrayTable('DynaformsHistory');
|
||||
$oCriteria->addDescendingOrderByColumn(AppHistoryPeer::HISTORY_DATE);
|
||||
$oCriteria->addAscendingOrderByColumn(AppHistoryPeer::HISTORY_DATE);
|
||||
|
||||
return $oCriteria;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +283,7 @@ class Groupwf extends BaseGroupwf
|
||||
$c->add( ContentPeer::CON_CATEGORY, 'GRP_TITLE' );
|
||||
$c->add( ContentPeer::CON_ID, $UidGroup );
|
||||
$c->add( ContentPeer::CON_LANG, SYS_LANG );
|
||||
|
||||
|
||||
$dataset = ContentPeer::doSelectRS( $c );
|
||||
$dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
||||
$dataset->next();
|
||||
@@ -343,7 +343,7 @@ class Groupwf extends BaseGroupwf
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function getAllGroup ($start = null, $limit = null, $search = null)
|
||||
public function getAllGroup ($start = null, $limit = null, $search = null, $sortField = null, $sortDir = null)
|
||||
{
|
||||
require_once PATH_RBAC . "model/RbacUsers.php";
|
||||
require_once 'classes/model/TaskUser.php';
|
||||
@@ -355,7 +355,6 @@ class Groupwf extends BaseGroupwf
|
||||
$criteria->addJoin( GroupwfPeer::GRP_UID, ContentPeer::CON_ID, Criteria::LEFT_JOIN );
|
||||
$criteria->add( ContentPeer::CON_CATEGORY, 'GRP_TITLE' );
|
||||
$criteria->add( ContentPeer::CON_LANG, SYS_LANG );
|
||||
$criteria->addAscendingOrderByColumn( ContentPeer::CON_VALUE );
|
||||
|
||||
if ($search) {
|
||||
$criteria->add( ContentPeer::CON_VALUE, '%' . $search . '%', Criteria::LIKE );
|
||||
@@ -371,7 +370,16 @@ class Groupwf extends BaseGroupwf
|
||||
$criteria->addJoin( GroupwfPeer::GRP_UID, ContentPeer::CON_ID, Criteria::LEFT_JOIN );
|
||||
$criteria->add( ContentPeer::CON_CATEGORY, 'GRP_TITLE' );
|
||||
$criteria->add( ContentPeer::CON_LANG, SYS_LANG );
|
||||
$criteria->addAscendingOrderByColumn( ContentPeer::CON_VALUE );
|
||||
|
||||
if (is_null($sortField) || trim($sortField) == "") {
|
||||
$sortField = ContentPeer::CON_VALUE;
|
||||
}
|
||||
|
||||
if (!is_null($sortDir) && trim($sortDir) != "" && strtoupper($sortDir) == "DESC") {
|
||||
$criteria->addDescendingOrderByColumn($sortField);
|
||||
} else {
|
||||
$criteria->addAscendingOrderByColumn($sortField);
|
||||
}
|
||||
|
||||
if ($start != '') {
|
||||
$criteria->setOffset( $start );
|
||||
|
||||
@@ -644,6 +644,14 @@ class Process extends BaseProcess
|
||||
$oCriteria->addJoin( ProcessPeer::PRO_CREATE_USER, UsersPeer::USR_UID, Criteria::LEFT_JOIN );
|
||||
$oCriteria->addJoin( ProcessPeer::PRO_CATEGORY, ProcessCategoryPeer::CATEGORY_UID, Criteria::LEFT_JOIN );
|
||||
|
||||
if ($this->sort == "PRO_CREATE_DATE") {
|
||||
if ($this->dir == "DESC") {
|
||||
$oCriteria->addDescendingOrderByColumn(ProcessPeer::PRO_CREATE_DATE);
|
||||
} else {
|
||||
$oCriteria->addAscendingOrderByColumn(ProcessPeer::PRO_CREATE_DATE);
|
||||
}
|
||||
}
|
||||
|
||||
if ($userLogged != "") {
|
||||
$oCriteria->add(
|
||||
$oCriteria->getNewCriterion(ProcessPeer::PRO_TYPE_PROCESS, "PUBLIC", Criteria::EQUAL)->addOr(
|
||||
@@ -782,10 +790,13 @@ class Process extends BaseProcess
|
||||
if ($limit == '') {
|
||||
$limit = count($aProcesses);
|
||||
}
|
||||
if ($this->dir=='ASC') {
|
||||
usort( $aProcesses, array($this, "ordProcessAsc") );
|
||||
} else {
|
||||
usort( $aProcesses, array($this, "ordProcessDesc") );
|
||||
|
||||
if ($this->sort != "PRO_CREATE_DATE") {
|
||||
if ($this->dir == "ASC") {
|
||||
usort($aProcesses, array($this, "ordProcessAsc"));
|
||||
} else {
|
||||
usort($aProcesses, array($this, "ordProcessDesc"));
|
||||
}
|
||||
}
|
||||
|
||||
return $aProcesses;
|
||||
|
||||
@@ -75,6 +75,8 @@ class AppHistoryMapBuilder
|
||||
|
||||
$tMap->addColumn('DYN_UID', 'DynUid', 'string', CreoleTypes::VARCHAR, true, 32);
|
||||
|
||||
$tMap->addColumn('OBJ_TYPE', 'ObjType', 'string', CreoleTypes::VARCHAR, true, 20);
|
||||
|
||||
$tMap->addColumn('USR_UID', 'UsrUid', 'string', CreoleTypes::VARCHAR, true, 32);
|
||||
|
||||
$tMap->addColumn('APP_STATUS', 'AppStatus', 'string', CreoleTypes::VARCHAR, true, 100);
|
||||
@@ -83,6 +85,8 @@ class AppHistoryMapBuilder
|
||||
|
||||
$tMap->addColumn('HISTORY_DATA', 'HistoryData', 'string', CreoleTypes::LONGVARCHAR, true, null);
|
||||
|
||||
$tMap->addValidator('OBJ_TYPE', 'validValues', 'propel.validator.ValidValuesValidator', 'DYNAFORM|INPUT_DOCUMENT|OUTPUT_DOCUMENT|EXTERNAL|ASSIGN_TASK', 'Please select a valid value for OBJ_TYPE.');
|
||||
|
||||
} // doBuild()
|
||||
|
||||
} // AppHistoryMapBuilder
|
||||
|
||||
@@ -57,6 +57,12 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
|
||||
*/
|
||||
protected $dyn_uid = '';
|
||||
|
||||
/**
|
||||
* The value for the obj_type field.
|
||||
* @var string
|
||||
*/
|
||||
protected $obj_type = 'DYNAFORM';
|
||||
|
||||
/**
|
||||
* The value for the usr_uid field.
|
||||
* @var string
|
||||
@@ -150,6 +156,17 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
|
||||
return $this->dyn_uid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [obj_type] column value.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getObjType()
|
||||
{
|
||||
|
||||
return $this->obj_type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [usr_uid] column value.
|
||||
*
|
||||
@@ -325,6 +342,28 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
|
||||
|
||||
} // setDynUid()
|
||||
|
||||
/**
|
||||
* Set the value of [obj_type] column.
|
||||
*
|
||||
* @param string $v new value
|
||||
* @return void
|
||||
*/
|
||||
public function setObjType($v)
|
||||
{
|
||||
|
||||
// Since the native PHP type for this column is string,
|
||||
// we will cast the input to a string (if it is not).
|
||||
if ($v !== null && !is_string($v)) {
|
||||
$v = (string) $v;
|
||||
}
|
||||
|
||||
if ($this->obj_type !== $v || $v === 'DYNAFORM') {
|
||||
$this->obj_type = $v;
|
||||
$this->modifiedColumns[] = AppHistoryPeer::OBJ_TYPE;
|
||||
}
|
||||
|
||||
} // setObjType()
|
||||
|
||||
/**
|
||||
* Set the value of [usr_uid] column.
|
||||
*
|
||||
@@ -447,20 +486,22 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
|
||||
|
||||
$this->dyn_uid = $rs->getString($startcol + 4);
|
||||
|
||||
$this->usr_uid = $rs->getString($startcol + 5);
|
||||
$this->obj_type = $rs->getString($startcol + 5);
|
||||
|
||||
$this->app_status = $rs->getString($startcol + 6);
|
||||
$this->usr_uid = $rs->getString($startcol + 6);
|
||||
|
||||
$this->history_date = $rs->getTimestamp($startcol + 7, null);
|
||||
$this->app_status = $rs->getString($startcol + 7);
|
||||
|
||||
$this->history_data = $rs->getString($startcol + 8);
|
||||
$this->history_date = $rs->getTimestamp($startcol + 8, null);
|
||||
|
||||
$this->history_data = $rs->getString($startcol + 9);
|
||||
|
||||
$this->resetModified();
|
||||
|
||||
$this->setNew(false);
|
||||
|
||||
// FIXME - using NUM_COLUMNS may be clearer.
|
||||
return $startcol + 9; // 9 = AppHistoryPeer::NUM_COLUMNS - AppHistoryPeer::NUM_LAZY_LOAD_COLUMNS).
|
||||
return $startcol + 10; // 10 = AppHistoryPeer::NUM_COLUMNS - AppHistoryPeer::NUM_LAZY_LOAD_COLUMNS).
|
||||
|
||||
} catch (Exception $e) {
|
||||
throw new PropelException("Error populating AppHistory object", $e);
|
||||
@@ -680,15 +721,18 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
|
||||
return $this->getDynUid();
|
||||
break;
|
||||
case 5:
|
||||
return $this->getUsrUid();
|
||||
return $this->getObjType();
|
||||
break;
|
||||
case 6:
|
||||
return $this->getAppStatus();
|
||||
return $this->getUsrUid();
|
||||
break;
|
||||
case 7:
|
||||
return $this->getHistoryDate();
|
||||
return $this->getAppStatus();
|
||||
break;
|
||||
case 8:
|
||||
return $this->getHistoryDate();
|
||||
break;
|
||||
case 9:
|
||||
return $this->getHistoryData();
|
||||
break;
|
||||
default:
|
||||
@@ -716,10 +760,11 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
|
||||
$keys[2] => $this->getProUid(),
|
||||
$keys[3] => $this->getTasUid(),
|
||||
$keys[4] => $this->getDynUid(),
|
||||
$keys[5] => $this->getUsrUid(),
|
||||
$keys[6] => $this->getAppStatus(),
|
||||
$keys[7] => $this->getHistoryDate(),
|
||||
$keys[8] => $this->getHistoryData(),
|
||||
$keys[5] => $this->getObjType(),
|
||||
$keys[6] => $this->getUsrUid(),
|
||||
$keys[7] => $this->getAppStatus(),
|
||||
$keys[8] => $this->getHistoryDate(),
|
||||
$keys[9] => $this->getHistoryData(),
|
||||
);
|
||||
return $result;
|
||||
}
|
||||
@@ -767,15 +812,18 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
|
||||
$this->setDynUid($value);
|
||||
break;
|
||||
case 5:
|
||||
$this->setUsrUid($value);
|
||||
$this->setObjType($value);
|
||||
break;
|
||||
case 6:
|
||||
$this->setAppStatus($value);
|
||||
$this->setUsrUid($value);
|
||||
break;
|
||||
case 7:
|
||||
$this->setHistoryDate($value);
|
||||
$this->setAppStatus($value);
|
||||
break;
|
||||
case 8:
|
||||
$this->setHistoryDate($value);
|
||||
break;
|
||||
case 9:
|
||||
$this->setHistoryData($value);
|
||||
break;
|
||||
} // switch()
|
||||
@@ -822,19 +870,23 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
|
||||
}
|
||||
|
||||
if (array_key_exists($keys[5], $arr)) {
|
||||
$this->setUsrUid($arr[$keys[5]]);
|
||||
$this->setObjType($arr[$keys[5]]);
|
||||
}
|
||||
|
||||
if (array_key_exists($keys[6], $arr)) {
|
||||
$this->setAppStatus($arr[$keys[6]]);
|
||||
$this->setUsrUid($arr[$keys[6]]);
|
||||
}
|
||||
|
||||
if (array_key_exists($keys[7], $arr)) {
|
||||
$this->setHistoryDate($arr[$keys[7]]);
|
||||
$this->setAppStatus($arr[$keys[7]]);
|
||||
}
|
||||
|
||||
if (array_key_exists($keys[8], $arr)) {
|
||||
$this->setHistoryData($arr[$keys[8]]);
|
||||
$this->setHistoryDate($arr[$keys[8]]);
|
||||
}
|
||||
|
||||
if (array_key_exists($keys[9], $arr)) {
|
||||
$this->setHistoryData($arr[$keys[9]]);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -868,6 +920,10 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
|
||||
$criteria->add(AppHistoryPeer::DYN_UID, $this->dyn_uid);
|
||||
}
|
||||
|
||||
if ($this->isColumnModified(AppHistoryPeer::OBJ_TYPE)) {
|
||||
$criteria->add(AppHistoryPeer::OBJ_TYPE, $this->obj_type);
|
||||
}
|
||||
|
||||
if ($this->isColumnModified(AppHistoryPeer::USR_UID)) {
|
||||
$criteria->add(AppHistoryPeer::USR_UID, $this->usr_uid);
|
||||
}
|
||||
@@ -951,6 +1007,8 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
|
||||
|
||||
$copyObj->setDynUid($this->dyn_uid);
|
||||
|
||||
$copyObj->setObjType($this->obj_type);
|
||||
|
||||
$copyObj->setUsrUid($this->usr_uid);
|
||||
|
||||
$copyObj->setAppStatus($this->app_status);
|
||||
|
||||
@@ -25,7 +25,7 @@ abstract class BaseAppHistoryPeer
|
||||
const CLASS_DEFAULT = 'classes.model.AppHistory';
|
||||
|
||||
/** The total number of columns. */
|
||||
const NUM_COLUMNS = 9;
|
||||
const NUM_COLUMNS = 10;
|
||||
|
||||
/** The number of lazy-loaded columns. */
|
||||
const NUM_LAZY_LOAD_COLUMNS = 0;
|
||||
@@ -46,6 +46,9 @@ abstract class BaseAppHistoryPeer
|
||||
/** the column name for the DYN_UID field */
|
||||
const DYN_UID = 'APP_HISTORY.DYN_UID';
|
||||
|
||||
/** the column name for the OBJ_TYPE field */
|
||||
const OBJ_TYPE = 'APP_HISTORY.OBJ_TYPE';
|
||||
|
||||
/** the column name for the USR_UID field */
|
||||
const USR_UID = 'APP_HISTORY.USR_UID';
|
||||
|
||||
@@ -69,10 +72,10 @@ abstract class BaseAppHistoryPeer
|
||||
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
|
||||
*/
|
||||
private static $fieldNames = array (
|
||||
BasePeer::TYPE_PHPNAME => array ('AppUid', 'DelIndex', 'ProUid', 'TasUid', 'DynUid', 'UsrUid', 'AppStatus', 'HistoryDate', 'HistoryData', ),
|
||||
BasePeer::TYPE_COLNAME => array (AppHistoryPeer::APP_UID, AppHistoryPeer::DEL_INDEX, AppHistoryPeer::PRO_UID, AppHistoryPeer::TAS_UID, AppHistoryPeer::DYN_UID, AppHistoryPeer::USR_UID, AppHistoryPeer::APP_STATUS, AppHistoryPeer::HISTORY_DATE, AppHistoryPeer::HISTORY_DATA, ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('APP_UID', 'DEL_INDEX', 'PRO_UID', 'TAS_UID', 'DYN_UID', 'USR_UID', 'APP_STATUS', 'HISTORY_DATE', 'HISTORY_DATA', ),
|
||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, )
|
||||
BasePeer::TYPE_PHPNAME => array ('AppUid', 'DelIndex', 'ProUid', 'TasUid', 'DynUid', 'ObjType', 'UsrUid', 'AppStatus', 'HistoryDate', 'HistoryData', ),
|
||||
BasePeer::TYPE_COLNAME => array (AppHistoryPeer::APP_UID, AppHistoryPeer::DEL_INDEX, AppHistoryPeer::PRO_UID, AppHistoryPeer::TAS_UID, AppHistoryPeer::DYN_UID, AppHistoryPeer::OBJ_TYPE, AppHistoryPeer::USR_UID, AppHistoryPeer::APP_STATUS, AppHistoryPeer::HISTORY_DATE, AppHistoryPeer::HISTORY_DATA, ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('APP_UID', 'DEL_INDEX', 'PRO_UID', 'TAS_UID', 'DYN_UID', 'OBJ_TYPE', 'USR_UID', 'APP_STATUS', 'HISTORY_DATE', 'HISTORY_DATA', ),
|
||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, )
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -82,10 +85,10 @@ abstract class BaseAppHistoryPeer
|
||||
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
|
||||
*/
|
||||
private static $fieldKeys = array (
|
||||
BasePeer::TYPE_PHPNAME => array ('AppUid' => 0, 'DelIndex' => 1, 'ProUid' => 2, 'TasUid' => 3, 'DynUid' => 4, 'UsrUid' => 5, 'AppStatus' => 6, 'HistoryDate' => 7, 'HistoryData' => 8, ),
|
||||
BasePeer::TYPE_COLNAME => array (AppHistoryPeer::APP_UID => 0, AppHistoryPeer::DEL_INDEX => 1, AppHistoryPeer::PRO_UID => 2, AppHistoryPeer::TAS_UID => 3, AppHistoryPeer::DYN_UID => 4, AppHistoryPeer::USR_UID => 5, AppHistoryPeer::APP_STATUS => 6, AppHistoryPeer::HISTORY_DATE => 7, AppHistoryPeer::HISTORY_DATA => 8, ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('APP_UID' => 0, 'DEL_INDEX' => 1, 'PRO_UID' => 2, 'TAS_UID' => 3, 'DYN_UID' => 4, 'USR_UID' => 5, 'APP_STATUS' => 6, 'HISTORY_DATE' => 7, 'HISTORY_DATA' => 8, ),
|
||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, )
|
||||
BasePeer::TYPE_PHPNAME => array ('AppUid' => 0, 'DelIndex' => 1, 'ProUid' => 2, 'TasUid' => 3, 'DynUid' => 4, 'ObjType' => 5, 'UsrUid' => 6, 'AppStatus' => 7, 'HistoryDate' => 8, 'HistoryData' => 9, ),
|
||||
BasePeer::TYPE_COLNAME => array (AppHistoryPeer::APP_UID => 0, AppHistoryPeer::DEL_INDEX => 1, AppHistoryPeer::PRO_UID => 2, AppHistoryPeer::TAS_UID => 3, AppHistoryPeer::DYN_UID => 4, AppHistoryPeer::OBJ_TYPE => 5, AppHistoryPeer::USR_UID => 6, AppHistoryPeer::APP_STATUS => 7, AppHistoryPeer::HISTORY_DATE => 8, AppHistoryPeer::HISTORY_DATA => 9, ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('APP_UID' => 0, 'DEL_INDEX' => 1, 'PRO_UID' => 2, 'TAS_UID' => 3, 'DYN_UID' => 4, 'OBJ_TYPE' => 5, 'USR_UID' => 6, 'APP_STATUS' => 7, 'HISTORY_DATE' => 8, 'HISTORY_DATA' => 9, ),
|
||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, )
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -196,6 +199,8 @@ abstract class BaseAppHistoryPeer
|
||||
|
||||
$criteria->addSelectColumn(AppHistoryPeer::DYN_UID);
|
||||
|
||||
$criteria->addSelectColumn(AppHistoryPeer::OBJ_TYPE);
|
||||
|
||||
$criteria->addSelectColumn(AppHistoryPeer::USR_UID);
|
||||
|
||||
$criteria->addSelectColumn(AppHistoryPeer::APP_STATUS);
|
||||
@@ -542,6 +547,9 @@ abstract class BaseAppHistoryPeer
|
||||
}
|
||||
} else {
|
||||
|
||||
if ($obj->isNew() || $obj->isColumnModified(AppHistoryPeer::OBJ_TYPE))
|
||||
$columns[AppHistoryPeer::OBJ_TYPE] = $obj->getObjType();
|
||||
|
||||
}
|
||||
|
||||
return BasePeer::doValidate(AppHistoryPeer::DATABASE_NAME, AppHistoryPeer::TABLE_NAME, $columns);
|
||||
|
||||
@@ -2549,10 +2549,14 @@
|
||||
<column name="PRO_UID" type="VARCHAR" size="32" required="true" default=""/>
|
||||
<column name="TAS_UID" type="VARCHAR" size="32" required="true" default=""/>
|
||||
<column name="DYN_UID" type="VARCHAR" size="32" required="true" default=""/>
|
||||
<column name="OBJ_TYPE" type="VARCHAR" size="20" required="true" default="DYNAFORM" />
|
||||
<column name="USR_UID" type="VARCHAR" size="32" required="true" default=""/>
|
||||
<column name="APP_STATUS" type="VARCHAR" size="100" required="true" default=""/>
|
||||
<column name="HISTORY_DATE" type="TIMESTAMP" required="false"/>
|
||||
<column name="HISTORY_DATA" type="LONGVARCHAR" required="true"/>
|
||||
<validator column="OBJ_TYPE">
|
||||
<rule name="validValues" value="DYNAFORM|INPUT_DOCUMENT|OUTPUT_DOCUMENT|EXTERNAL|ASSIGN_TASK" message="Please select a valid value for OBJ_TYPE." />
|
||||
</validator>
|
||||
<index name="indexAppHistory">
|
||||
<index-column name="APP_UID"/>
|
||||
<index-column name="TAS_UID"/>
|
||||
|
||||
@@ -1488,6 +1488,7 @@ class adminProxy extends HttpProxyController
|
||||
|
||||
//Country/city (Timezone)
|
||||
$params["Timezone"] = (defined('TIME_ZONE') && TIME_ZONE != "Unknown") ? TIME_ZONE : date_default_timezone_get();
|
||||
$params["countWorkspace"] = count(System::listWorkspaces());
|
||||
|
||||
$support = PATH_DATA_SITE . G::sanitizeString($licenseManager->info['FIRST_NAME'] . '-' . $licenseManager->info['LAST_NAME'] . '-' . SYS_SYS . '-' . date('YmdHis'), false, false) . '.spm';
|
||||
file_put_contents($support, serialize($params));
|
||||
|
||||
@@ -927,7 +927,25 @@ class Installer extends Controller
|
||||
return $info;
|
||||
}
|
||||
}
|
||||
|
||||
//2nd STRUCTURE
|
||||
$this->initPropel(true);
|
||||
G::LoadClass("configuration");
|
||||
$conf = new Configurations();
|
||||
if (!$conf->exists("ENVIRONMENT_SETTINGS")) {
|
||||
$conf->aConfig = array ("format" => '@userName (@firstName @lastName)',
|
||||
"dateFormat" => 'd/m/Y',
|
||||
"startCaseHideProcessInf" => false,
|
||||
"casesListDateFormat" => 'Y-m-d H:i:s',
|
||||
"casesListRowNumber" => 25,
|
||||
"casesListRefreshTime" => 120 );
|
||||
$conf->saveConfig( 'ENVIRONMENT_SETTINGS', '' );
|
||||
}
|
||||
$conf->setDirectoryStructureVer(2);
|
||||
//$this->installLog( G::LoadTranslation('ID_INDEX_FILE_UPDATED', SYS_LANG, Array($indexFileUpdated, $sysConf['default_lang'],$sysConf['default_skin'])));
|
||||
//CLI::logging(CLI::info("Version Directory Structure is 2 now.\n"));
|
||||
|
||||
|
||||
$this->installLog( G::LoadTranslation('ID_INDEX_FILE_UPDATED', SYS_LANG, Array($indexFileUpdated, $sysConf['default_lang'],$sysConf['default_skin'])));
|
||||
$this->installLog( G::LoadTranslation('ID_INSTALL_SUCESS') );
|
||||
|
||||
|
||||
@@ -2612,6 +2612,7 @@ CREATE TABLE [APP_HISTORY]
|
||||
[PRO_UID] VARCHAR(32) default '' NOT NULL,
|
||||
[TAS_UID] VARCHAR(32) default '' NOT NULL,
|
||||
[DYN_UID] VARCHAR(32) default '' NOT NULL,
|
||||
[OBJ_TYPE] VARCHAR(20) default 'DYNAFORM' NOT NULL,
|
||||
[USR_UID] VARCHAR(32) default '' NOT NULL,
|
||||
[APP_STATUS] VARCHAR(100) default '' NOT NULL,
|
||||
[HISTORY_DATE] CHAR(19) NULL,
|
||||
|
||||
@@ -1206,6 +1206,7 @@ CREATE TABLE `APP_HISTORY`
|
||||
`PRO_UID` VARCHAR(32) default '' NOT NULL,
|
||||
`TAS_UID` VARCHAR(32) default '' NOT NULL,
|
||||
`DYN_UID` VARCHAR(32) default '' NOT NULL,
|
||||
`OBJ_TYPE` VARCHAR(20) default 'DYNAFORM' NOT NULL,
|
||||
`USR_UID` VARCHAR(32) default '' NOT NULL,
|
||||
`APP_STATUS` VARCHAR(100) default '' NOT NULL,
|
||||
`HISTORY_DATE` DATETIME,
|
||||
@@ -2380,3 +2381,4 @@ CREATE TABLE `LIST_UNASSIGNED_GROUP`
|
||||
)ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Unassiged list';
|
||||
# This restores the fkey checks, after having unset them earlier
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
|
||||
@@ -1491,6 +1491,7 @@ CREATE TABLE "APP_HISTORY"
|
||||
"PRO_UID" VARCHAR2(32) default '' NOT NULL,
|
||||
"TAS_UID" VARCHAR2(32) default '' NOT NULL,
|
||||
"DYN_UID" VARCHAR2(32) default '' NOT NULL,
|
||||
"OBJ_TYPE" VARCHAR(20) default 'DYNAFORM' NOT NULL,
|
||||
"USR_UID" VARCHAR2(32) default '' NOT NULL,
|
||||
"APP_STATUS" VARCHAR2(100) default '' NOT NULL,
|
||||
"HISTORY_DATE" DATE,
|
||||
|
||||
@@ -26,9 +26,11 @@ global $G_TMP_MENU;
|
||||
global $RBAC;
|
||||
$partnerFlag = (defined('PARTNER_FLAG')) ? PARTNER_FLAG : false;
|
||||
|
||||
/*----------------------------------********---------------------------------*/
|
||||
$oServerConf = & serverConf::getSingleton();
|
||||
$sAudit = $oServerConf->getAuditLogProperty( 'AL_OPTION', SYS_SYS );
|
||||
$licensedFeatures = & PMLicensedFeatures::getSingleton();
|
||||
/*----------------------------------********---------------------------------*/
|
||||
|
||||
if ($RBAC->userCanAccess('PM_SETUP') == 1 ) {
|
||||
//settings options
|
||||
@@ -99,20 +101,24 @@ if ($RBAC->userCanAccess('PM_SETUP') == 1) {
|
||||
$G_TMP_MENU->AddIdRawOption('LOG_CASE_SCHEDULER', '../cases/cases_Scheduler_Log', G::LoadTranslation('ID_CASE_SCHEDULER'), "icon-logs-list.png",'', 'logs');
|
||||
$G_TMP_MENU->AddIdRawOption("CRON", "../setup/cron", G::LoadTranslation("ID_CRON_ACTIONS"), null, null, "logs");
|
||||
$G_TMP_MENU->AddIdRawOption('EMAILS', '../mails/emailList', ucfirst (strtolower ( G::LoadTranslation('ID_EMAILS'))), '', '', 'logs');
|
||||
/*----------------------------------********---------------------------------*/
|
||||
if (isset($sAudit) && $sAudit != false && $licensedFeatures->verifyfeature('vtSeHNhT0JnSmo1bTluUVlTYUxUbUFSVStEeXVqc1pEUG5EeXc0MGd2Q3ErYz0=')) {
|
||||
$G_TMP_MENU->AddIdRawOption('AUDIT_LOG', '../setup/auditLog', ucfirst (G::LoadTranslation('ID_AUDITLOG_DISPLAY')), '', '', 'logs');
|
||||
}
|
||||
/*----------------------------------********---------------------------------*/
|
||||
}
|
||||
|
||||
if ($RBAC->userCanAccess("PM_SETUP") == 1) {
|
||||
$G_TMP_MENU->AddIdRawOption("PM_REQUIREMENTS", "../setup/systemInfo", G::LoadTranslation("ID_PROCESSMAKER_REQUIREMENTS_CHECK"), "", "", "settings");
|
||||
$G_TMP_MENU->AddIdRawOption("PHP_INFO", "../setup/systemInfo?option=php", G::LoadTranslation("ID_PHP_INFO"), "", "", "settings");
|
||||
//$G_TMP_MENU->AddIdRawOption("PHP_MAINTENANCE", "../admin/maintenance", 'Maintenance', "", "", "settings");
|
||||
/*----------------------------------********---------------------------------*/
|
||||
if ($licensedFeatures->verifyfeature('vtSeHNhT0JnSmo1bTluUVlTYUxUbUFSVStEeXVqc1pEUG5EeXc0MGd2Q3ErYz0=')) {
|
||||
$G_TMP_MENU->AddIdRawOption("AUDIT_LOG", "auditLogConfig", G::LoadTranslation("ID_AUDITLOG_DISPLAY"), "", "", "settings");
|
||||
}
|
||||
/*----------------------------------********---------------------------------*/
|
||||
}
|
||||
|
||||
/*----------------------------------********---------------------------------*/
|
||||
require_once 'classes/class.pmLicenseManager.php';
|
||||
if (!file_exists(PATH_DATA_SITE . "plugin.singleton")) {
|
||||
require_once PATH_CORE . 'methods' . PATH_SEP . 'enterprise' . PATH_SEP . 'enterprise.php';
|
||||
@@ -137,9 +143,11 @@ if ((isset($pmLicenseManagerO->plan)) && ($pmLicenseManagerO->plan != "")) {
|
||||
if ($licenseStatusInfo["message"] != "") {
|
||||
$licStatusMsg = " <font color=\"red\">(" . $licenseStatusInfo["message"] . ")</font>";
|
||||
}
|
||||
|
||||
/*----------------------------------********---------------------------------*/
|
||||
if ($RBAC->userCanAccess("PM_SETUP") == 1) {
|
||||
/*----------------------------------********---------------------------------*/
|
||||
$G_TMP_MENU->AddIdRawOption("PMENTERPRISE", "../enterprise/addonsStore", G::LoadTranslation('ID_MENU_NAME') . $licStatusMsg, "", "", "plugins");
|
||||
/*----------------------------------********---------------------------------*/
|
||||
$G_TMP_MENU->AddIdRawOption("CASES_LIST_SETUP", "../cases/casesListSetup", G::LoadTranslation('ID_CASES_LIST'), "", "", "settings");
|
||||
}
|
||||
|
||||
|
||||
@@ -679,6 +679,8 @@ class Ajax
|
||||
$_REQUEST["TAS_UID"] = $idHistoryArray[2];
|
||||
$_REQUEST["DYN_UID"] = "";
|
||||
|
||||
$result = new stdclass();
|
||||
|
||||
$G_PUBLISH = new Publisher();
|
||||
$G_PUBLISH->AddContent('view', 'cases/cases_DynaformHistory');
|
||||
?>
|
||||
|
||||
@@ -46,7 +46,8 @@ if ($actionAjax == 'historyGridList_JXP') {
|
||||
}
|
||||
|
||||
$newDir = '/tmp/test/directory';
|
||||
$r = G::verifyPath( $newDir );
|
||||
G::verifyPath( $newDir );
|
||||
$r = new stdclass();
|
||||
$r->data = $aProcesses;
|
||||
$r->totalCount = 2;
|
||||
|
||||
|
||||
@@ -80,15 +80,18 @@ try {
|
||||
$_SESSION['TRIGGER_DEBUG']['info'][0]['TRIGGERS_VALUES'] = $triggers;
|
||||
}
|
||||
|
||||
$appFields['DEL_INDEX'] = $_SESSION['INDEX'];
|
||||
$appFields['TAS_UID'] = $_SESSION['TASK'];
|
||||
|
||||
unset($appFields['APP_STATUS']);
|
||||
unset($appFields['APP_PROC_STATUS']);
|
||||
unset($appFields['APP_PROC_CODE']);
|
||||
unset($appFields['APP_PIN']);
|
||||
$oCase->updateCase( $_SESSION['APPLICATION'], $appFields ); //Save data
|
||||
|
||||
$appFields["DEL_INDEX"] = $_SESSION["INDEX"];
|
||||
$appFields["TAS_UID"] = $_SESSION["TASK"];
|
||||
$appFields["USER_UID"] = $_SESSION["USER_LOGGED"];
|
||||
$appFields["CURRENT_DYNAFORM"] = "-2";
|
||||
$appFields["OBJECT_TYPE"] = "ASSIGN_TASK";
|
||||
|
||||
$oCase->updateCase($_SESSION["APPLICATION"], $appFields); //Save data
|
||||
|
||||
//derivate case
|
||||
$oDerivation = new Derivation();
|
||||
@@ -112,6 +115,13 @@ try {
|
||||
unset($appFields['APP_PROC_STATUS']);
|
||||
unset($appFields['APP_PROC_CODE']);
|
||||
unset($appFields['APP_PIN']);
|
||||
|
||||
$appFields["DEL_INDEX"] = $_SESSION["INDEX"];
|
||||
$appFields["TAS_UID"] = $_SESSION["TASK"];
|
||||
$appFields["USER_UID"] = $_SESSION["USER_LOGGED"];
|
||||
$appFields["CURRENT_DYNAFORM"] = "-2";
|
||||
$appFields["OBJECT_TYPE"] = "ASSIGN_TASK";
|
||||
|
||||
$oCase->updateCase( $_SESSION['APPLICATION'], $appFields );
|
||||
|
||||
// Send notifications - Start
|
||||
|
||||
@@ -123,22 +123,29 @@ try {
|
||||
$aAux = explode( '|', $oForm->fields[$oForm->fields[$sField]->pmconnection]->keys );
|
||||
$i = 0;
|
||||
$aValues = array ();
|
||||
foreach ($aData['FIELDS'] as $aField) {
|
||||
if ($aField['FLD_KEY'] == '1') {
|
||||
$aKeys[$aField['FLD_NAME']] = (isset( $aAux[$i] ) ? G::replaceDataField( $aAux[$i], $Fields['APP_DATA'] ) : '');
|
||||
$i ++;
|
||||
}
|
||||
if ($aField['FLD_NAME'] == $oForm->fields[$sField]->pmfield) {
|
||||
$aValues[$aField['FLD_NAME']] = $Fields['APP_DATA'][$sField];
|
||||
} else {
|
||||
$aValues[$aField['FLD_NAME']] = '';
|
||||
}
|
||||
}
|
||||
try {
|
||||
$aRow = $oAdditionalTables->getDataTable( $oForm->fields[$oForm->fields[$sField]->pmconnection]->pmtable, $aKeys );
|
||||
} catch (Exception $oError) {
|
||||
$aRow = false;
|
||||
if($aData == "" || count($aData['FIELDS']) < 1){
|
||||
$message = G::LoadTranslation( 'ID_PMTABLE_NOT_FOUNDED_SAVED_DATA' );
|
||||
G::SendMessageText( $message, "WARNING" );
|
||||
$aRow = false;
|
||||
} else {
|
||||
foreach ($aData['FIELDS'] as $aField) {
|
||||
if ($aField['FLD_KEY'] == '1') {
|
||||
$aKeys[$aField['FLD_NAME']] = (isset( $aAux[$i] ) ? G::replaceDataField( $aAux[$i], $Fields['APP_DATA'] ) : '');
|
||||
$i ++;
|
||||
}
|
||||
if ($aField['FLD_NAME'] == $oForm->fields[$sField]->pmfield) {
|
||||
$aValues[$aField['FLD_NAME']] = $Fields['APP_DATA'][$sField];
|
||||
} else {
|
||||
$aValues[$aField['FLD_NAME']] = '';
|
||||
}
|
||||
}
|
||||
try {
|
||||
$aRow = $oAdditionalTables->getDataTable( $oForm->fields[$oForm->fields[$sField]->pmconnection]->pmtable, $aKeys );
|
||||
} catch (Exception $oError) {
|
||||
$aRow = false;
|
||||
}
|
||||
}
|
||||
|
||||
if ($aRow) {
|
||||
foreach ($aValues as $sKey => $sValue) {
|
||||
if ($sKey != $oForm->fields[$sField]->pmfield) {
|
||||
|
||||
@@ -153,6 +153,10 @@ $arrayData["APP_NUMBER"] = $arrayField["APP_NUMBER"];
|
||||
$arrayData["APP_DATA"] = $arrayField["APP_DATA"];
|
||||
$arrayData["DEL_INDEX"] = $_SESSION["INDEX"];
|
||||
$arrayData["TAS_UID"] = $_SESSION["TASK"];
|
||||
$arrayData["PRO_UID"] = $_SESSION["PROCESS"];
|
||||
$arrayData["USER_UID"] = $_SESSION["USER_LOGGED"];
|
||||
$arrayData["CURRENT_DYNAFORM"] = $inputDocumentUid;
|
||||
$arrayData["OBJECT_TYPE"] = "INPUT_DOCUMENT";
|
||||
|
||||
$case->updateCase($_SESSION["APPLICATION"], $arrayData);
|
||||
|
||||
|
||||
@@ -182,12 +182,16 @@ unset($Fields['APP_STATUS']);
|
||||
unset($Fields['APP_PROC_STATUS']);
|
||||
unset($Fields['APP_PROC_CODE']);
|
||||
unset($Fields['APP_PIN']);
|
||||
|
||||
$Fields["USER_UID"] = $_SESSION["USER_LOGGED"];
|
||||
$Fields["CURRENT_DYNAFORM"] = $_GET["UID"];
|
||||
$Fields["OBJECT_TYPE"] = ($_GET["UID"] == "-1")? "ASSIGN_TASK" : $_GET["TYPE"];
|
||||
|
||||
$oCase->updateCase( $_SESSION['APPLICATION'], $Fields );
|
||||
//Save data - End
|
||||
|
||||
|
||||
//Obtain previous and next step - Start
|
||||
try {
|
||||
try {
|
||||
$oCase = new Cases();
|
||||
$aNextStep = $oCase->getNextStep( $_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['STEP_POSITION'] );
|
||||
$aPreviousStep = $oCase->getPreviousStep( $_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['STEP_POSITION'] );
|
||||
@@ -266,12 +270,12 @@ try {
|
||||
$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':
|
||||
case 'INPUT_DOCUMENT':
|
||||
if ($noShowTitle == 0) {
|
||||
$G_PUBLISH->AddContent( 'smarty', 'cases/cases_title', '', '', $array );
|
||||
}
|
||||
$oInputDocument = new InputDocument();
|
||||
$Fields = $oInputDocument->load( $_GET['UID'] );
|
||||
$Fields = $oInputDocument->load( $_GET['UID'] );
|
||||
if (! $aPreviousStep) {
|
||||
$Fields['__DYNAFORM_OPTIONS']['PREVIOUS_STEP_LABEL'] = '';
|
||||
$Fields['PREVIOUS_STEP_LABEL'] = '';
|
||||
@@ -285,13 +289,13 @@ try {
|
||||
$Fields['NEXT_STEP'] = $aNextStep['PAGE'];
|
||||
$Fields['NEXT_STEP_LABEL'] = G::loadTranslation( "ID_NEXT_STEP" );
|
||||
switch ($_GET['ACTION']) {
|
||||
case 'ATTACH':
|
||||
case 'ATTACH':
|
||||
switch ($Fields['INP_DOC_FORM_NEEDED']) {
|
||||
case 'REAL':
|
||||
$Fields['TYPE_LABEL'] = G::LoadTranslation( 'ID_NEW' );
|
||||
$sXmlForm = 'cases/cases_AttachInputDocument2';
|
||||
break;
|
||||
case 'VIRTUAL':
|
||||
case 'VIRTUAL':
|
||||
$Fields['TYPE_LABEL'] = G::LoadTranslation( 'ID_ATTACH' );
|
||||
$sXmlForm = 'cases/cases_AttachInputDocument1';
|
||||
break;
|
||||
@@ -326,7 +330,7 @@ try {
|
||||
|
||||
$oHeadPublisher = & headPublisher::getSingleton();
|
||||
$titleDocument = "<h3>" . $Fields['INP_DOC_TITLE'] . "<br><small>" . G::LoadTranslation( 'ID_INPUT_DOCUMENT' ) . "</small></h3>";
|
||||
if ($Fields['INP_DOC_DESCRIPTION']) {
|
||||
if ($Fields['INP_DOC_DESCRIPTION']) {
|
||||
$titleDocument .= " " . str_replace( "\n", "", str_replace( "'", "\'", nl2br( html_entity_decode($Fields['INP_DOC_DESCRIPTION'], ENT_COMPAT, "UTF-8") ) ) ) . "";
|
||||
}
|
||||
|
||||
|
||||
@@ -93,6 +93,9 @@ switch ($_POST['action']) {
|
||||
$limit = isset( $_REQUEST['limit'] ) ? $_REQUEST['limit'] : $limit_size;
|
||||
$filter = isset( $_REQUEST['textFilter'] ) ? $_REQUEST['textFilter'] : '';
|
||||
|
||||
$sortField = isset($_REQUEST["sort"])? $_REQUEST["sort"] : "";
|
||||
$sortDir = isset($_REQUEST["dir"])? $_REQUEST["dir"] : "";
|
||||
|
||||
global $RBAC;
|
||||
if ($limit == $start) {
|
||||
$limit = $limit + $limit;
|
||||
@@ -107,7 +110,8 @@ switch ($_POST['action']) {
|
||||
$uxList = adminProxy::getUxTypesList();
|
||||
|
||||
$groups = new Groupwf();
|
||||
$data = $groups->getAllGroup( $start, $limit, $filter );
|
||||
|
||||
$data = $groups->getAllGroup( $start, $limit, $filter, $sortField, $sortDir);
|
||||
$result = $data['rows'];
|
||||
|
||||
$totalRows = 0;
|
||||
|
||||
@@ -39,7 +39,7 @@ try {
|
||||
$usr = mb_strtolower(trim($frm['USR_USERNAME']), 'UTF-8');
|
||||
$pwd = trim($frm['USR_PASSWORD']);
|
||||
}
|
||||
|
||||
/*----------------------------------********---------------------------------*/
|
||||
require_once PATH_CORE . 'methods' . PATH_SEP . 'enterprise' . PATH_SEP . 'enterprise.php';
|
||||
|
||||
if (!file_exists(PATH_DATA_SITE . "plugin.singleton")) {
|
||||
@@ -47,6 +47,7 @@ try {
|
||||
$enterprise->enable();
|
||||
$enterprise->setup();
|
||||
}
|
||||
/*----------------------------------********---------------------------------*/
|
||||
$uid = $RBAC->VerifyLogin($usr , $pwd);
|
||||
$RBAC->cleanSessionFiles(72); //cleaning session files older than 72 hours
|
||||
|
||||
|
||||
@@ -35,6 +35,8 @@ if (isset( $_REQUEST['action'] )) {
|
||||
$start = isset( $_POST['start'] ) ? $_POST['start'] : 0;
|
||||
$limit = isset( $_POST['limit'] ) ? $_POST['limit'] : $limit_size;
|
||||
$filter = isset( $_REQUEST['textFilter'] ) ? $_REQUEST['textFilter'] : '';
|
||||
$dir = isset( $_POST['dir'] ) ? $_POST['dir'] : 'ASC';
|
||||
$sort = isset( $_POST['sort'] ) ? $_POST['sort'] : 'CATEGORY_NAME';
|
||||
|
||||
$oCriteria = new Criteria( 'workflow' );
|
||||
$oCriteria->addSelectColumn( 'COUNT(*) AS CNT' );
|
||||
@@ -55,6 +57,13 @@ if (isset( $_REQUEST['action'] )) {
|
||||
if ($filter != '') {
|
||||
$oCriteria->add( ProcessCategoryPeer::CATEGORY_NAME, '%' . $filter . '%', Criteria::LIKE );
|
||||
}
|
||||
|
||||
if ($dir == "DESC") {
|
||||
$oCriteria->addDescendingOrderByColumn($sort);
|
||||
} else {
|
||||
$oCriteria->addAscendingOrderByColumn($sort);
|
||||
}
|
||||
|
||||
$oCriteria->setLimit( $limit );
|
||||
$oCriteria->setOffset( $start );
|
||||
$oDataset = ProcessCategoryPeer::doSelectRS( $oCriteria );
|
||||
@@ -62,14 +71,16 @@ if (isset( $_REQUEST['action'] )) {
|
||||
|
||||
$proc = new Process();
|
||||
$aProcess = $proc->getAllProcessesByCategory();
|
||||
|
||||
$result = "";
|
||||
$aCat = array ();
|
||||
while ($oDataset->next()) {
|
||||
$aCat[] = $oDataset->getRow();
|
||||
$index = sizeof( $aCat ) - 1;
|
||||
$aCat[$index]['TOTAL_PROCESSES'] = isset( $aProcess[$aCat[$index]['CATEGORY_UID']] ) ? $aProcess[$aCat[$index]['CATEGORY_UID']] : 0;
|
||||
}
|
||||
echo '{categories: ' . G::json_encode( $aCat ) . ', total_categories: ' . $total_categories . '}';
|
||||
$result['data'] = $aCat;
|
||||
$result['totalCount'] = $total_categories;
|
||||
echo G::json_encode( $result );
|
||||
break;
|
||||
case 'updatePageSize':
|
||||
G::LoadClass( 'configuration' );
|
||||
|
||||
@@ -26,6 +26,63 @@ use ProcessMaker\Importer\XmlImporter;
|
||||
|
||||
ini_set("max_execution_time", 0);
|
||||
|
||||
if (isset($_FILES["PROCESS_FILENAME"]) &&
|
||||
pathinfo($_FILES["PROCESS_FILENAME"]["name"], PATHINFO_EXTENSION) == "pm" &&
|
||||
$_FILES["PROCESS_FILENAME"]["error"] == 0
|
||||
) {
|
||||
//Check disabled code
|
||||
$response = array();
|
||||
|
||||
try {
|
||||
$fh = fopen($_FILES["PROCESS_FILENAME"]["tmp_name"], "rb");
|
||||
$content = fread($fh, (int)(fread($fh, 9)));
|
||||
$data = unserialize($content);
|
||||
fclose($fh);
|
||||
|
||||
if (is_object($data) && isset($data->triggers) && is_array($data->triggers) && count($data->triggers) > 0) {
|
||||
G::LoadClass("codeScanner");
|
||||
|
||||
$arraySystemConfiguration = System::getSystemConfiguration(PATH_CONFIG . "env.ini");
|
||||
|
||||
$cs = new CodeScanner((isset($arraySystemConfiguration["enable_blacklist"]) && (int)($arraySystemConfiguration["enable_blacklist"]) == 1)? "DISABLED_CODE" : "");
|
||||
|
||||
$strFoundDisabledCode = "";
|
||||
|
||||
foreach ($data->triggers as $value) {
|
||||
$arrayTriggerData = $value;
|
||||
|
||||
$arrayFoundDisabledCode = $cs->checkDisabledCode("SOURCE", $arrayTriggerData["TRI_WEBBOT"]);
|
||||
|
||||
if (count($arrayFoundDisabledCode) > 0) {
|
||||
$strCodeAndLine = "";
|
||||
|
||||
foreach ($arrayFoundDisabledCode["source"] as $key2 => $value2) {
|
||||
$strCodeAndLine .= (($strCodeAndLine != "")? ", " : "") . G::LoadTranslation("ID_DISABLED_CODE_CODE_AND_LINE", array($key2, implode(", ", $value2)));
|
||||
}
|
||||
|
||||
$strFoundDisabledCode .= (($strFoundDisabledCode != "")? "\n" : "") . "- " . $arrayTriggerData["TRI_TITLE"] . ": " . $strCodeAndLine;
|
||||
}
|
||||
}
|
||||
|
||||
if ($strFoundDisabledCode != "") {
|
||||
$response["status"] = "DISABLED-CODE";
|
||||
$response["success"] = true;
|
||||
$response["message"] = G::LoadTranslation("ID_DISABLED_CODE_PROCESS", array($data->process["PRO_TITLE"], "\n" . $strFoundDisabledCode));
|
||||
|
||||
echo G::json_encode($response);
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
$response["status"] = "ERROR";
|
||||
$response["success"] = true;
|
||||
$response["catchMessage"] = $e->getMessage();
|
||||
|
||||
echo G::json_encode($response);
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_FILES["PROCESS_FILENAME"]) &&
|
||||
pathinfo($_FILES["PROCESS_FILENAME"]["name"], PATHINFO_EXTENSION) == "pmx"
|
||||
) {
|
||||
@@ -286,17 +343,17 @@ if ($action == "uploadFileNewProcessExist") {
|
||||
|
||||
$importer->throwExceptionIfExistsReservedWordsSql($oData);
|
||||
|
||||
//**cheking if the PRO_CREATE_USER exist**//
|
||||
$usrCrtr = $oData->process['PRO_CREATE_USER'];
|
||||
|
||||
$exist = new Users();
|
||||
if($exist->userExists($usrCrtr)){
|
||||
$usrInfo = $exist->getAllInformation($usrCrtr);
|
||||
if ($usrInfo['status'] == 'CLOSED'){
|
||||
$oData->process['PRO_CREATE_USER'] = $_SESSION['USER_LOGGED'];
|
||||
}
|
||||
} else {
|
||||
$oData->process['PRO_CREATE_USER'] = $_SESSION['USER_LOGGED'];
|
||||
//**cheking if the PRO_CREATE_USER exist**//
|
||||
$usrCrtr = $oData->process['PRO_CREATE_USER'];
|
||||
|
||||
$exist = new Users();
|
||||
if($exist->userExists($usrCrtr)){
|
||||
$usrInfo = $exist->getAllInformation($usrCrtr);
|
||||
if ($usrInfo['status'] == 'CLOSED'){
|
||||
$oData->process['PRO_CREATE_USER'] = $_SESSION['USER_LOGGED'];
|
||||
}
|
||||
} else {
|
||||
$oData->process['PRO_CREATE_USER'] = $_SESSION['USER_LOGGED'];
|
||||
}
|
||||
|
||||
$Fields['PRO_FILENAME'] = $filename;
|
||||
|
||||
@@ -43,16 +43,38 @@ if ($handle = opendir( PATH_PLUGINS )) {
|
||||
$oPluginRegistry->disablePlugin( $details->sNamespace );
|
||||
$size = file_put_contents( PATH_DATA_SITE . 'plugin.singleton', $oPluginRegistry->serializeInstance() );
|
||||
G::auditLog("DisablePlugin", "Plugin Name: ".$details->sNamespace);
|
||||
print "size saved : $size <br>";
|
||||
//print "size saved : $size <br>";
|
||||
} else {
|
||||
//print "change to ENABLED";
|
||||
require_once (PATH_PLUGINS . $pluginFile);
|
||||
$details = $oPluginRegistry->getPluginDetails( $pluginFile );
|
||||
$oPluginRegistry->enablePlugin( $details->sNamespace );
|
||||
$oPluginRegistry->setupPlugins(); //get and setup enabled plugins
|
||||
$size = file_put_contents( PATH_DATA_SITE . 'plugin.singleton', $oPluginRegistry->serializeInstance() );
|
||||
G::auditLog("EnablePlugin", "Plugin Name: ".$details->sNamespace);
|
||||
print "size saved : $size <br>";
|
||||
$pluginName = str_replace(".php", "", $pluginFile);
|
||||
|
||||
if (is_file(PATH_PLUGINS . $pluginName . ".php") && is_dir(PATH_PLUGINS . $pluginName)) {
|
||||
//Check disabled code
|
||||
G::LoadClass("codeScanner");
|
||||
|
||||
$arraySystemConfiguration = System::getSystemConfiguration(PATH_CONFIG . "env.ini");
|
||||
|
||||
$cs = new CodeScanner((isset($arraySystemConfiguration["enable_blacklist"]) && (int)($arraySystemConfiguration["enable_blacklist"]) == 1)? "DISABLED_CODE" : "");
|
||||
|
||||
$arrayFoundDisabledCode = array_merge($cs->checkDisabledCode("FILE", PATH_PLUGINS . $pluginName . ".php"), $cs->checkDisabledCode("PATH", PATH_PLUGINS . $pluginName));
|
||||
|
||||
if (count($arrayFoundDisabledCode) > 0) {
|
||||
$response = array();
|
||||
$response["status"] = "DISABLED-CODE";
|
||||
$response["message"] = G::LoadTranslation("ID_DISABLED_CODE_PLUGIN");
|
||||
|
||||
echo G::json_encode($response);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
//print "change to ENABLED";
|
||||
require_once(PATH_PLUGINS . $pluginFile);
|
||||
$details = $oPluginRegistry->getPluginDetails($pluginFile);
|
||||
$oPluginRegistry->enablePlugin($details->sNamespace);
|
||||
$oPluginRegistry->setupPlugins(); //get and setup enabled plugins
|
||||
$size = file_put_contents(PATH_DATA_SITE . "plugin.singleton", $oPluginRegistry->serializeInstance());
|
||||
G::auditLog("EnablePlugin", "Plugin Name: " . $details->sNamespace);
|
||||
//print "size saved : $size <br>";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -162,6 +162,20 @@ try {
|
||||
}
|
||||
$res = $tar->extract( $path );
|
||||
|
||||
//Check disabled code
|
||||
G::LoadClass("codeScanner");
|
||||
|
||||
$arraySystemConfiguration = System::getSystemConfiguration(PATH_CONFIG . "env.ini");
|
||||
|
||||
$cs = new CodeScanner((isset($arraySystemConfiguration["enable_blacklist"]) && (int)($arraySystemConfiguration["enable_blacklist"]) == 1)? "DISABLED_CODE" : "");
|
||||
|
||||
$arrayFoundDisabledCode = array_merge($cs->checkDisabledCode("FILE", $path . $pluginFile), $cs->checkDisabledCode("PATH", $path . $sClassName));
|
||||
|
||||
if (count($arrayFoundDisabledCode) > 0) {
|
||||
throw new Exception(G::LoadTranslation("ID_DISABLED_CODE_PLUGIN"));
|
||||
}
|
||||
|
||||
//Check if is enterprise plugin
|
||||
$sContent = file_get_contents( $path . $pluginFile );
|
||||
$chain = preg_quote( 'extends enterprisePlugin' );
|
||||
if (strpos( $sContent, $chain )) {
|
||||
@@ -237,14 +251,14 @@ try {
|
||||
|
||||
$oPluginRegistry->setupPlugins(); //get and setup enabled plugins
|
||||
$size = file_put_contents( PATH_DATA_SITE . "plugin.singleton", $oPluginRegistry->serializeInstance() );
|
||||
|
||||
|
||||
$response = $oPluginRegistry->verifyTranslation( $details->sNamespace);
|
||||
G::auditLog("InstallPlugin", "Plugin Name: ".$details->sNamespace );
|
||||
|
||||
//if ($response->recordsCountSuccess <= 0) {
|
||||
//throw (new Exception( 'The plugin ' . $details->sNamespace . ' couldn\'t verify any translation item. Verified Records:' . $response->recordsCountSuccess));
|
||||
//}
|
||||
|
||||
|
||||
G::header( "Location: pluginsMain" );
|
||||
die();
|
||||
} catch (Exception $e) {
|
||||
|
||||
@@ -63,13 +63,17 @@ if (isset( $sfunction ) && $sfunction == 'lookforNameTrigger') {
|
||||
}
|
||||
|
||||
}
|
||||
print $flag;
|
||||
//print'krlos';return ;
|
||||
|
||||
echo $flag;
|
||||
} else {
|
||||
G::LoadClass("processMap");
|
||||
G::LoadClass("codeScanner");
|
||||
|
||||
$response = array();
|
||||
|
||||
try {
|
||||
$oTrigger = new Triggers();
|
||||
|
||||
G::LoadClass( 'processMap' );
|
||||
$oProcessMap = new processMap( new DBConnection() );
|
||||
if (isset( $_POST['form'] )) {
|
||||
$value = $_POST['form'];
|
||||
@@ -77,6 +81,25 @@ if (isset( $sfunction ) && $sfunction == 'lookforNameTrigger') {
|
||||
$value = $_POST;
|
||||
}
|
||||
|
||||
if (isset($value["TRI_WEBBOT"])) {
|
||||
//Check disabled code
|
||||
$arraySystemConfiguration = System::getSystemConfiguration(PATH_CONFIG . "env.ini");
|
||||
|
||||
$cs = new CodeScanner((isset($arraySystemConfiguration["enable_blacklist"]) && (int)($arraySystemConfiguration["enable_blacklist"]) == 1)? "DISABLED_CODE" : "");
|
||||
|
||||
$arrayFoundDisabledCode = $cs->checkDisabledCode("SOURCE", $value["TRI_WEBBOT"]);
|
||||
|
||||
if (count($arrayFoundDisabledCode) > 0) {
|
||||
$strCodeAndLine = "";
|
||||
|
||||
foreach ($arrayFoundDisabledCode["source"] as $key => $value) {
|
||||
$strCodeAndLine .= (($strCodeAndLine != "")? ", " : "") . G::LoadTranslation("ID_DISABLED_CODE_CODE_AND_LINE", array($key, implode(", ", $value)));
|
||||
}
|
||||
|
||||
throw new Exception(G::LoadTranslation("ID_DISABLED_CODE_TRIGGER", array($strCodeAndLine)));
|
||||
}
|
||||
}
|
||||
|
||||
if ($value['TRI_UID'] != '') {
|
||||
$oTrigger->load( $value['TRI_UID'] );
|
||||
} else {
|
||||
@@ -86,15 +109,17 @@ if (isset( $sfunction ) && $sfunction == 'lookforNameTrigger') {
|
||||
//print_r($_POST['form']);die;
|
||||
$oTrigger->update( $value );
|
||||
|
||||
if (! isset( $_POST['mode'] )) {
|
||||
$oProcessMap->triggersList( $value['PRO_UID'] );
|
||||
}
|
||||
$result->success = true;
|
||||
$result->msg = G::LoadTranslation( 'ID_TRIGGERS_SAVED' );
|
||||
//if (! isset( $_POST['mode'] )) {
|
||||
// $oProcessMap->triggersList( $value['PRO_UID'] );
|
||||
//}
|
||||
|
||||
$response["success"] = true;
|
||||
$response["msg"] = G::LoadTranslation("ID_TRIGGERS_SAVED");
|
||||
} catch (Exception $e) {
|
||||
$result->success = false;
|
||||
$result->msg = $e->getMessage();
|
||||
$response["success"] = false;
|
||||
$response["msg"] = $e->getMessage();
|
||||
}
|
||||
print G::json_encode( $result );
|
||||
|
||||
echo G::json_encode($response);
|
||||
}
|
||||
|
||||
|
||||
@@ -522,7 +522,6 @@ var openSummaryWindow = function(appUid, delIndex, action)
|
||||
}
|
||||
};
|
||||
|
||||
tabs.push(sumaryInfPanel);
|
||||
if (response.dynUid != '') {
|
||||
if (isMovil.any()) {
|
||||
var src = '../cases/summary?APP_UID=' + appUid + '&DEL_INDEX=' + delIndex + '&DYN_UID=' + response.dynUid;
|
||||
@@ -590,6 +589,8 @@ var openSummaryWindow = function(appUid, delIndex, action)
|
||||
}});
|
||||
}
|
||||
}
|
||||
tabs.push(sumaryInfPanel);
|
||||
|
||||
tabs.push({title: Ext.util.Format.capitalize(_('ID_UPLOADED_DOCUMENTS')), bodyCfg: {
|
||||
tag: 'iframe',
|
||||
id: 'summaryIFrame',
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
<td width="20%">{dynDate}</td>
|
||||
<td width="20%">{dynUser}</td>
|
||||
<td width="20%"><div class="userGroupLink"><a href="javascript:toggleTable('{tablename}');">{dynChanges}</a></div></td>
|
||||
<td width="10%"><div class="userGroupLink"><a href="javascript:showDynaformHistory('{dynUID}', '{tablename}', '{dynDate}', '{dynTitle}');">{viewForm}</a></div></td>
|
||||
<td width="10%"><div class="userGroupLink">{viewForm}</div></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?php
|
||||
<?php
|
||||
/**
|
||||
* cases_DynaformHistory.php
|
||||
*
|
||||
@@ -21,162 +21,157 @@
|
||||
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
|
||||
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
|
||||
*
|
||||
*/
|
||||
|
||||
$tpl = new TemplatePower( PATH_TPL . 'cases/cases_DynaformHistory.html' );
|
||||
|
||||
$tpl->prepare();
|
||||
|
||||
G::LoadClass('case');
|
||||
$oCase = new Cases();
|
||||
$Fields = $oCase->loadCase($_SESSION['APPLICATION']);
|
||||
|
||||
// Load form info
|
||||
if (isset($_REQUEST['DYN_UID']) && $_REQUEST['DYN_UID'] != '') {
|
||||
$form = new Form($_REQUEST['PRO_UID'] . PATH_SEP . $_REQUEST['DYN_UID'], PATH_DYNAFORM, SYS_LANG, false);
|
||||
}
|
||||
|
||||
$historyData=array();
|
||||
$historyDataAux=array();
|
||||
require_once 'classes/model/AppHistory.php';
|
||||
$appHistory = new AppHistory();
|
||||
$c=$appHistory->getDynaformHistory($_REQUEST['PRO_UID'],$_REQUEST['TAS_UID'],$_REQUEST['APP_UID'],$_REQUEST['DYN_UID']);
|
||||
|
||||
$oDataset = ArrayBasePeer::doSelectRs ( $c);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
|
||||
$changeCount=0;
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
$changeCount++;
|
||||
|
||||
$changedValues=unserialize($aRow['HISTORY_DATA']);
|
||||
$tableName="_TCHANGE_".$changeCount;
|
||||
$historyDataAux[$tableName]=$changedValues;
|
||||
$oDataset->next();
|
||||
}
|
||||
|
||||
$historyData=array_reverse($historyDataAux);
|
||||
$changeCount=count($historyData);
|
||||
foreach($historyData as $key => $value){
|
||||
$tableName="_TCHANGE_".$changeCount;
|
||||
$changeCountA=$changeCount+1;
|
||||
$tableNameA="_TCHANGE_".$changeCountA;
|
||||
|
||||
if(isset($historyData[$tableNameA])){
|
||||
//$historyData[$key]=array_merge($historyData[$tableNameA],$value);
|
||||
//Array merge recursive doesn't work. So here is an own procedure
|
||||
$historyData[$key]=$historyData[$tableNameA];
|
||||
foreach($value as $key1 => $value2){
|
||||
if(!is_array($value2)){
|
||||
$historyData[$key][$key1]=$value2;
|
||||
}else{
|
||||
foreach($value2 as $key3 => $value3){
|
||||
if(is_array($value3)){
|
||||
foreach($value3 as $key4 => $value4){
|
||||
$historyData[$key][$key1][$key3][$key4]=$value4;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$changeCount--;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
$oDataset = ArrayBasePeer::doSelectRs ( $c);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
$changeCount=0;
|
||||
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
$changeCount++;
|
||||
|
||||
|
||||
$changedValues=unserialize($aRow['HISTORY_DATA']);
|
||||
|
||||
$tpl->newBlock( "DYNLOG" );
|
||||
$tableName="_TCHANGE_".$changeCount;
|
||||
$changeCountA=$changeCount+1;
|
||||
$tableNameA="_TCHANGE_".$changeCountA;
|
||||
|
||||
$tpl->assign( "dynTitle" , addslashes($aRow['DYN_TITLE']) );
|
||||
$tpl->assign( "dynDate" , $aRow['HISTORY_DATE'] );
|
||||
$tpl->assign( "dynUser" , addslashes($aRow['USR_NAME']) );
|
||||
$tpl->assign( "changes" , G::LoadTranslation("ID_CHANGES") );
|
||||
$tpl->assign( "dynUID" , $aRow['DYN_UID'] );
|
||||
$tpl->assign( "tablename" , $tableName );
|
||||
|
||||
|
||||
$tpl->assign( "viewForm" , G::LoadTranslation("ID_VIEW") );
|
||||
$tpl->assign( "dynaform" , G::LoadTranslation("ID_DYNAFORM") );
|
||||
$tpl->assign( "date" , G::LoadTranslation("ID_DATE") );
|
||||
$tpl->assign( "user" , G::LoadTranslation("ID_USER") );
|
||||
|
||||
$tpl->assign( "fieldNameLabel" , G::LoadTranslation("ID_FIELDS") );
|
||||
$tpl->assign( "previousValuesLabel" , G::LoadTranslation("ID_PREV_VALUES") );
|
||||
$tpl->assign( "currentValuesLabel" , G::LoadTranslation("ID_CURRENT_VALUES") );
|
||||
|
||||
|
||||
|
||||
|
||||
$count=0;
|
||||
foreach($changedValues as $key =>$value){
|
||||
if(($value!=NULL)&&(!is_array($value))){
|
||||
if (isset($form) && isset($form->fields[$key])) {
|
||||
$label = $form->fields[$key]->label . ' (' . $key . ')';
|
||||
}
|
||||
else {
|
||||
$label = $key;
|
||||
}
|
||||
$tpl->newBlock( "FIELDLOG" );
|
||||
$tpl->assign( "fieldName" , $label );
|
||||
$tpl->assign( "previous" , isset($historyData[$tableNameA][$key])?$historyData[$tableNameA][$key]:"" );
|
||||
$tpl->assign( "actual" , $value );
|
||||
$count++;
|
||||
}
|
||||
if(is_array($value)){
|
||||
foreach($value as $key1 =>$value1){
|
||||
if(is_array($value1)){
|
||||
foreach($value1 as $key2 =>$value2) {
|
||||
if (isset($form) && isset($form->fields[$key]->fields[$key2])) {
|
||||
$label = $form->fields[$key]->fields[$key2]->label . ' (' . $key . '[' . $key1 . '][' . $key2 . '])';
|
||||
}
|
||||
else {
|
||||
$label = $key . '[' . $key1 . ']' . '[' . $key2 . ']';
|
||||
}
|
||||
$tpl->newBlock( "FIELDLOG" );
|
||||
$tpl->assign( "fieldName" , $label );
|
||||
$tpl->assign( "previous" , isset($historyData[$tableNameA][$key][$key1][$key2])?$historyData[$tableNameA][$key][$key1][$key2]:"" );
|
||||
$tpl->assign( "actual" , $value2 );
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$tpl->gotoBlock( "DYNLOG" );
|
||||
|
||||
$tpl->assign( "dynChanges" , G::LoadTranslation("ID_FIELDS_CHANGED_NUMBER")." (".$count.")" );
|
||||
$tpl->assign( "count" , $count+1 );
|
||||
|
||||
$oDataset->next();
|
||||
|
||||
}
|
||||
if(!isset($changedValues)){
|
||||
$tpl->newBlock( "NORESULTS" );
|
||||
$tpl->assign( "noResults" , G::LoadTranslation("ID_NO_RECORDS_FOUND"));
|
||||
}
|
||||
|
||||
$_SESSION['HISTORY_DATA']=serialize($historyData);
|
||||
$tpl->gotoBlock( "_ROOT" );
|
||||
|
||||
$tpl->printToScreen();
|
||||
|
||||
?>
|
||||
*/
|
||||
|
||||
$tpl = new TemplatePower(PATH_TPL . "cases" . PATH_SEP . "cases_DynaformHistory.html");
|
||||
|
||||
$tpl->prepare();
|
||||
|
||||
require_once 'classes/model/AppHistory.php';
|
||||
G::LoadClass('case');
|
||||
|
||||
$oCase = new Cases();
|
||||
$Fields = $oCase->loadCase($_SESSION['APPLICATION']);
|
||||
|
||||
// Load form info
|
||||
if (isset($_REQUEST['DYN_UID']) && $_REQUEST['DYN_UID'] != '') {
|
||||
$form = new Form($_REQUEST['PRO_UID'] . PATH_SEP . $_REQUEST['DYN_UID'], PATH_DYNAFORM, SYS_LANG, false);
|
||||
}
|
||||
|
||||
$historyData = array();
|
||||
$historyDataAux = array();
|
||||
|
||||
$appHistory = new AppHistory();
|
||||
$c = $appHistory->getDynaformHistory($_REQUEST['PRO_UID'], $_REQUEST['TAS_UID'], $_REQUEST['APP_UID'], $_REQUEST['DYN_UID']);
|
||||
|
||||
$oDataset = ArrayBasePeer::doSelectRs($c);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$changeCount = 0;
|
||||
|
||||
while ($oDataset->next()) {
|
||||
$aRow = $oDataset->getRow();
|
||||
|
||||
$changeCount++;
|
||||
|
||||
$changedValues = unserialize($aRow['HISTORY_DATA']);
|
||||
$tableName = "_TCHANGE_" . $changeCount;
|
||||
$historyDataAux[$tableName] = $changedValues;
|
||||
}
|
||||
|
||||
$historyData = array_reverse($historyDataAux);
|
||||
$changeCount = count($historyData);
|
||||
|
||||
foreach ($historyData as $key => $value) {
|
||||
$tableName = "_TCHANGE_" . $changeCount;
|
||||
$changeCountA = $changeCount + 1;
|
||||
$tableNameA = "_TCHANGE_" . $changeCountA;
|
||||
|
||||
if (isset($historyData[$tableNameA])) {
|
||||
//$historyData[$key]=array_merge($historyData[$tableNameA],$value);
|
||||
//Array merge recursive doesn't work. So here is an own procedure
|
||||
$historyData[$key] = $historyData[$tableNameA];
|
||||
|
||||
foreach ($value as $key1 => $value2) {
|
||||
if (!is_array($value2)) {
|
||||
$historyData[$key][$key1] = $value2;
|
||||
} else {
|
||||
foreach ($value2 as $key3 => $value3) {
|
||||
if (is_array($value3)) {
|
||||
foreach ($value3 as $key4 => $value4) {
|
||||
$historyData[$key][$key1][$key3][$key4] = $value4;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$changeCount--;
|
||||
}
|
||||
|
||||
$oDataset = ArrayBasePeer::doSelectRs($c);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$changeCount = 0;
|
||||
|
||||
while ($oDataset->next()) {
|
||||
$aRow = $oDataset->getRow();
|
||||
|
||||
$changeCount++;
|
||||
|
||||
$changedValues = unserialize($aRow['HISTORY_DATA']);
|
||||
|
||||
$tpl->newBlock("DYNLOG");
|
||||
$tableName = "_TCHANGE_".$changeCount;
|
||||
$changeCountA = $changeCount + 1;
|
||||
$tableNameA = "_TCHANGE_" . $changeCountA;
|
||||
|
||||
$tpl->assign("dynTitle", addslashes($aRow["DYN_TITLE"]));
|
||||
$tpl->assign("dynDate", $aRow["HISTORY_DATE"]);
|
||||
$tpl->assign("dynUser", addslashes($aRow["USR_NAME"]));
|
||||
$tpl->assign("changes", G::LoadTranslation("ID_CHANGES"));
|
||||
$tpl->assign("dynUID", $aRow["DYN_UID"]);
|
||||
$tpl->assign("tablename", $tableName);
|
||||
|
||||
$tpl->assign("viewForm", ($aRow["OBJ_TYPE"] == "DYNAFORM")? "<a href=\"javascript:;\" onclick=\"showDynaformHistory('" . $aRow["DYN_UID"] . "', '$tableName', '" . $aRow["HISTORY_DATE"] . "', '" . addslashes($aRow["DYN_TITLE"]) . "'); return false;\">" . G::LoadTranslation("ID_VIEW") . "</a>" : "");
|
||||
$tpl->assign("dynaform", G::LoadTranslation("ID_DYNAFORM"));
|
||||
$tpl->assign("date", G::LoadTranslation("ID_DATE"));
|
||||
$tpl->assign("user", G::LoadTranslation("ID_USER"));
|
||||
|
||||
$tpl->assign("fieldNameLabel", G::LoadTranslation("ID_FIELDS"));
|
||||
$tpl->assign("previousValuesLabel", G::LoadTranslation("ID_PREV_VALUES"));
|
||||
$tpl->assign("currentValuesLabel", G::LoadTranslation("ID_CURRENT_VALUES"));
|
||||
|
||||
$count = 0;
|
||||
|
||||
foreach ($changedValues as $key => $value) {
|
||||
if ($value != null && !is_array($value)) {
|
||||
if (isset($form) && isset($form->fields[$key])) {
|
||||
$label = $form->fields[$key]->label . ' (' . $key . ')';
|
||||
} else {
|
||||
$label = $key;
|
||||
}
|
||||
$tpl->newBlock("FIELDLOG");
|
||||
$tpl->assign("fieldName", $label);
|
||||
$tpl->assign("previous", (isset($historyData[$tableNameA][$key]))? $historyData[$tableNameA][$key] : "");
|
||||
$tpl->assign("actual", $value);
|
||||
$count++;
|
||||
}
|
||||
|
||||
if (is_array($value)) {
|
||||
foreach ($value as $key1 => $value1) {
|
||||
if (is_array($value1)) {
|
||||
foreach ($value1 as $key2 => $value2) {
|
||||
if (isset($form) && isset($form->fields[$key]->fields[$key2])) {
|
||||
$label = $form->fields[$key]->fields[$key2]->label . ' (' . $key . '[' . $key1 . '][' . $key2 . '])';
|
||||
} else {
|
||||
$label = $key . '[' . $key1 . ']' . '[' . $key2 . ']';
|
||||
}
|
||||
$tpl->newBlock("FIELDLOG");
|
||||
$tpl->assign("fieldName", $label);
|
||||
$tpl->assign("previous", (isset($historyData[$tableNameA][$key][$key1][$key2]))? $historyData[$tableNameA][$key][$key1][$key2] : "");
|
||||
$tpl->assign("actual", $value2);
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$tpl->gotoBlock("DYNLOG");
|
||||
|
||||
$tpl->assign("dynChanges", G::LoadTranslation("ID_FIELDS_CHANGED_NUMBER") . " (" . $count . ")");
|
||||
$tpl->assign("count", $count + 1);
|
||||
}
|
||||
|
||||
if (!isset($changedValues)) {
|
||||
$tpl->newBlock("NORESULTS");
|
||||
$tpl->assign("noResults", G::LoadTranslation("ID_NO_RECORDS_FOUND"));
|
||||
}
|
||||
|
||||
$_SESSION['HISTORY_DATA'] = serialize($historyData);
|
||||
$tpl->gotoBlock("_ROOT");
|
||||
|
||||
$tpl->printToScreen();
|
||||
|
||||
|
||||
@@ -132,6 +132,10 @@
|
||||
<a href="#" class="mafe-menu-variable"></a>
|
||||
<a href="#" class="btn_create mafe-menu-variable-create"><span></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" class="mafe-menu-eventmessages"></a>
|
||||
<a href="#" class="btn_create mafe-menu-eventmessages-create"><span></span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" class="mafe-menu-dynaform"></a>
|
||||
<a href="#" class="btn_create mafe-menu-dynaform-create"><span></span></a>
|
||||
|
||||
@@ -212,6 +212,7 @@ Ext.onReady(function(){
|
||||
});
|
||||
|
||||
store = new Ext.data.GroupingStore( {
|
||||
remoteSort: true,
|
||||
proxy : new Ext.data.HttpProxy({
|
||||
url: 'groups_Ajax?action=groupsList'
|
||||
}),
|
||||
@@ -243,8 +244,8 @@ Ext.onReady(function(){
|
||||
{id:'GRP_UID', dataIndex: 'USR_UID', hidden:true, hideable:false},
|
||||
{header: _('ID_GROUP_NAME'), dataIndex: 'CON_VALUE', width: 400, align:'left'},
|
||||
{header: _('ID_STATUS'), dataIndex: 'GRP_STATUS', width: 130, align:'center', renderer: render_status},
|
||||
{header: _('ID_USERS'), dataIndex: 'GRP_USERS', width: 100, align:'center'},
|
||||
{header: _('ID_TASKS'), dataIndex: 'GRP_TASKS', width: 100, align:'center'}
|
||||
{header: _("ID_USERS"), dataIndex: "GRP_USERS", sortable: false, width: 100, align:"center"},
|
||||
{header: _("ID_TASKS"), dataIndex: "GRP_TASKS", sortable: false, width: 100, align:"center"}
|
||||
]
|
||||
});
|
||||
|
||||
|
||||
@@ -124,8 +124,12 @@ Ext.onReady(function(){
|
||||
|
||||
_fields.push({name: _idProperty});
|
||||
|
||||
var countFieldsRequired = 0;
|
||||
|
||||
for (i=0;i<tableDef.FIELDS.length; i++) {
|
||||
if (tableDef.FIELDS[i].FLD_KEY==1) {
|
||||
if (tableDef.FIELDS[i].FLD_KEY == 1 && tableDef.FIELDS[i].FLD_AUTO_INCREMENT != 1) {
|
||||
countFieldsRequired = countFieldsRequired + 1;
|
||||
|
||||
blank=false;
|
||||
} else{
|
||||
blank=true;
|
||||
@@ -262,7 +266,7 @@ Ext.onReady(function(){
|
||||
showTooltip: function (msg)
|
||||
{
|
||||
if (flagShowMessageError == 1) {
|
||||
Ext.msgBoxSlider.msgTopCenter("error", _("ID_ERROR"), msg, 3);
|
||||
Ext.msgBoxSlider.msgTopCenter("error", _("ID_ERROR"), _("ID_FIELD_REQUIRED2", countFieldsRequired), 3);
|
||||
flagShowMessageError = 0;
|
||||
}
|
||||
},
|
||||
|
||||
@@ -160,13 +160,14 @@ Ext.onReady(function(){
|
||||
}
|
||||
});
|
||||
|
||||
store = new Ext.data.GroupingStore( {
|
||||
store = new Ext.data.GroupingStore({
|
||||
remoteSort: true,
|
||||
proxy : new Ext.data.HttpProxy({
|
||||
url: 'processCategory_Ajax?action=processCategoryList'
|
||||
}),
|
||||
reader : new Ext.data.JsonReader( {
|
||||
root: 'categories',
|
||||
totalProperty: 'total_categories',
|
||||
reader : new Ext.data.JsonReader({
|
||||
totalProperty: 'totalCount',
|
||||
root: 'data',
|
||||
fields : [
|
||||
{name : 'CATEGORY_UID'},
|
||||
{name : 'CATEGORY_PARENT'},
|
||||
@@ -176,7 +177,6 @@ Ext.onReady(function(){
|
||||
]
|
||||
})
|
||||
});
|
||||
|
||||
cmodel = new Ext.grid.ColumnModel({
|
||||
defaults: {
|
||||
width: 50,
|
||||
@@ -274,7 +274,6 @@ Ext.onReady(function(){
|
||||
);
|
||||
|
||||
infoGrid.addListener('rowcontextmenu',onMessageContextMenu,this);
|
||||
|
||||
infoGrid.store.load();
|
||||
|
||||
viewport = new Ext.Viewport({
|
||||
|
||||
@@ -1166,6 +1166,19 @@ importProcess = function()
|
||||
|
||||
var resp_ = Ext.util.JSON.decode(resp.response.responseText);
|
||||
|
||||
if (resp_.status) {
|
||||
if (resp_.status == "DISABLED-CODE") {
|
||||
Ext.MessageBox.show({
|
||||
title: _("ID_ERROR"),
|
||||
msg: "<div style=\"overflow: auto; width: 500px; height: 150px;\">" + stringReplace("\\x0A", "<br />", resp_.message) + "</div>", //\n 10
|
||||
icon: Ext.MessageBox.ERROR,
|
||||
buttons: Ext.MessageBox.OK
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (resp_.catchMessage == "") {
|
||||
if (resp_.ExistProcessInDatabase == "0") {
|
||||
if (resp_.ExistGroupsInDatabase == "0") {
|
||||
@@ -1207,7 +1220,7 @@ importProcess = function()
|
||||
|
||||
Ext.MessageBox.show({
|
||||
title : '',
|
||||
msg : resp_.catchMessage,
|
||||
msg : resp.catchMessage,
|
||||
buttons : Ext.MessageBox.OK,
|
||||
animEl : 'mb9',
|
||||
fn : function(){},
|
||||
|
||||
@@ -179,7 +179,7 @@ Ext.onReady(function(){
|
||||
});
|
||||
|
||||
if (typeof(__PLUGIN_ERROR__) !== 'undefined') {
|
||||
PMExt.notify(_('ID_PLUGINS'), __PLUGIN_ERROR__);
|
||||
PMExt.notify(_("ID_PLUGINS"), __PLUGIN_ERROR__, "error", 5);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -253,7 +253,15 @@ function activeDeactive(){
|
||||
params : { UIDS : ids },
|
||||
method: 'GET',
|
||||
success: function ( result, request ) {
|
||||
//Ext.MessageBox.alert('Success', 'Data return from the server: '+ result.responseText);
|
||||
var dataResponse = Ext.util.JSON.decode(result.responseText);
|
||||
|
||||
if (dataResponse.status) {
|
||||
if (dataResponse.status == "DISABLED-CODE") {
|
||||
PMExt.notify(_("ID_PLUGINS"), dataResponse.message, "error", 5);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var site = '';
|
||||
if (SYS_SKIN.substring(0,2) == 'ux') {
|
||||
site = PROCESSMAKER_URL + '/main?st=admin&s='+parent._NODE_SELECTED;
|
||||
@@ -319,3 +327,4 @@ capitalize = function(s){
|
||||
s = s.toLowerCase();
|
||||
return s.replace( /(^|\s)([a-z])/g , function(m,p1,p2){ return p1+p2.toUpperCase(); } );
|
||||
};
|
||||
|
||||
|
||||
@@ -86,16 +86,38 @@ window.onbeforeunload=function(){
|
||||
}
|
||||
};
|
||||
|
||||
function triggerSave1(form){
|
||||
ajax_post(form.action, form, 'POST');
|
||||
if(opener) {
|
||||
if(@QSTEP_UID!="" && @QST_TYPE!="" && opener.showTriggers)
|
||||
opener.showTriggers(@QSTEP_UID,@QST_TYPE);
|
||||
if(opener.reloadTriggersShortList)
|
||||
opener.reloadTriggersShortList();
|
||||
}
|
||||
window.close();
|
||||
function triggerSave1(form)
|
||||
{
|
||||
ajax_post(
|
||||
form.action,
|
||||
form,
|
||||
"POST",
|
||||
function (responseText)
|
||||
{
|
||||
var dataResponse = eval("(" + responseText + ")"); //json
|
||||
|
||||
if (dataResponse.success) {
|
||||
if (opener) {
|
||||
if (@QSTEP_UID != "" && @QST_TYPE != "" && opener.showTriggers) {
|
||||
opener.showTriggers(@QSTEP_UID, @QST_TYPE);
|
||||
}
|
||||
|
||||
if (opener.reloadTriggersShortList) {
|
||||
opener.reloadTriggersShortList();
|
||||
}
|
||||
}
|
||||
|
||||
window.close();
|
||||
} else {
|
||||
new leimnud.module.app.alert().make({
|
||||
label: dataResponse.msg
|
||||
});
|
||||
}
|
||||
},
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
]]></JS>
|
||||
]]>
|
||||
</JS>
|
||||
</dynaForm>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user