Merge branch 'master' of bitbucket.org:colosa/processmaker into master-d

This commit is contained in:
Freddy Daniel Rojas Valda
2014-11-25 14:19:01 -04:00
50 changed files with 1369 additions and 412 deletions

View File

@@ -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";
}

View File

@@ -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;

View File

@@ -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;
}
/*----------------------------------********---------------------------------*/
}

View File

@@ -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

View File

@@ -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();

View File

@@ -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;
}
}
}

View File

@@ -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;
}
}

View File

@@ -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 );

View File

@@ -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;

View File

@@ -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

View File

@@ -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);

View File

@@ -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);

View File

@@ -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"/>

View File

@@ -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));

View File

@@ -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') );

View File

@@ -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,

View File

@@ -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;

View File

@@ -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,

View File

@@ -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 = "&nbsp;<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");
}

View File

@@ -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');
?>

View File

@@ -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;

View File

@@ -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

View File

@@ -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) {

View File

@@ -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);

View File

@@ -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") ) ) ) . "";
}

View File

@@ -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;

View File

@@ -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

View File

@@ -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' );

View File

@@ -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;

View File

@@ -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>";
}
}
}
}

View File

@@ -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) {

View File

@@ -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);
}

View File

@@ -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',

View File

@@ -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>

View File

@@ -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();

View File

@@ -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>

View File

@@ -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"}
]
});

View File

@@ -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;
}
},

View File

@@ -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({

View File

@@ -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(){},

View File

@@ -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(); } );
};

View File

@@ -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>