Merged in cochalo/processmaker/CONSOLIDATED (pull request #1749)
CONSOLIDATED CORE
This commit is contained in:
277
workflow/engine/methods/cases/caseConsolidated.php
Normal file
277
workflow/engine/methods/cases/caseConsolidated.php
Normal file
@@ -0,0 +1,277 @@
|
||||
<?php
|
||||
G::LoadClass("pmFunctions");
|
||||
G::LoadClass("reportTables");
|
||||
|
||||
$sTasUid = $_REQUEST['tas_uid'];
|
||||
$sDynUid = $_REQUEST['dyn_uid'];
|
||||
$sStatus = $_REQUEST['status'];
|
||||
$sProUid = $_REQUEST['pro_uid'];
|
||||
$sRepTabUid = $_REQUEST['rep_uid'];
|
||||
$tableName = $_REQUEST['table_name'];
|
||||
$title = $_REQUEST['title'];
|
||||
$swOverwrite = $_REQUEST['overwrite'];
|
||||
$isBPMN = $_REQUEST['isBPMN'];
|
||||
|
||||
if ($sStatus == "1" && $sDynUid != "") {
|
||||
switch ($swOverwrite) {
|
||||
case 1:
|
||||
//Delete report table
|
||||
$criteria = new Criteria();
|
||||
|
||||
$criteria->addSelectColumn(ReportTablePeer::REP_TAB_UID);
|
||||
$criteria->add(ReportTablePeer::REP_TAB_NAME, $tableName);
|
||||
|
||||
$rsCriteria = ReportTablePeer::doSelectRS($criteria);
|
||||
|
||||
$rptUid = null;
|
||||
|
||||
if ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
|
||||
$rptUid = $row[0];
|
||||
}
|
||||
|
||||
$rpts = new ReportTables();
|
||||
|
||||
if ($rptUid != null) {
|
||||
$rpts->deleteReportTable($rptUid);
|
||||
}
|
||||
|
||||
$sRepTabUid = "";
|
||||
break;
|
||||
case 2:
|
||||
//Delete table
|
||||
$rpts = new ReportTables();
|
||||
$rpts->dropTable($tableName, "wf");
|
||||
|
||||
$sRepTabUid = "";
|
||||
break;
|
||||
}
|
||||
|
||||
$criteria = new Criteria();
|
||||
$criteria->addSelectColumn(ReportTablePeer::REP_TAB_UID);
|
||||
//$criteria->add(ReportTablePeer::PRO_UID, $sProUid);
|
||||
$criteria->add(ReportTablePeer::REP_TAB_NAME, $tableName);
|
||||
|
||||
$result = ReportTablePeer::doSelectRS($criteria);
|
||||
$result->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
if ($result->next()) {
|
||||
$dataRes = $result->getRow();
|
||||
|
||||
if ($dataRes["REP_TAB_UID"] != $sRepTabUid) {
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
//check if table $tableName exists
|
||||
$con = Propel::getConnection("workflow");
|
||||
$stmt = $con->createStatement();
|
||||
|
||||
$sql="SHOW TABLES";
|
||||
$rs1 = $stmt->executeQuery($sql, ResultSet::FETCHMODE_NUM);
|
||||
$rs1->next();
|
||||
while ( is_array($row = $rs1->getRow() )) {
|
||||
if ( $row[0] == $tableName ) {
|
||||
return 2;
|
||||
}
|
||||
$rs1->next();
|
||||
}
|
||||
}
|
||||
|
||||
if ($isBPMN) {
|
||||
$_POST['form']['PRO_UID'] = $sProUid;
|
||||
$_POST['form']['REP_TAB_UID'] = $sRepTabUid;
|
||||
$_POST['form']['REP_TAB_NAME'] = $tableName;
|
||||
$_POST['form']['REP_TAB_TYPE'] = "NORMAL";
|
||||
$_POST['form']['REP_TAB_GRID'] = '';
|
||||
$_POST['form']['REP_TAB_CONNECTION'] = 'wf';
|
||||
$_POST['form']['REP_TAB_CREATE_DATE'] = date("Y-m-d H:i:s");
|
||||
$_POST['form']['REP_TAB_STATUS'] = 'ACTIVE';
|
||||
$_POST['form']['REP_TAB_TITLE'] = $title;
|
||||
} else {
|
||||
$_POST['form']['PRO_UID'] = $sProUid;
|
||||
$_POST['form']['REP_TAB_UID'] = $sRepTabUid;
|
||||
$_POST['form']['REP_TAB_NAME'] = $tableName;
|
||||
$_POST['form']['REP_TAB_TYPE'] = "GRID";
|
||||
$_POST['form']['REP_TAB_GRID'] = $sProUid . "-" . $sDynUid;
|
||||
$_POST['form']['REP_TAB_CONNECTION'] = 'wf';
|
||||
$_POST['form']['REP_TAB_CREATE_DATE'] = date("Y-m-d H:i:s");
|
||||
$_POST['form']['REP_TAB_STATUS'] = 'ACTIVE';
|
||||
$_POST['form']['REP_TAB_TITLE'] = $title;
|
||||
}
|
||||
|
||||
$_POST['form']['FIELDS'] = array();
|
||||
|
||||
G::LoadClass("reportTables");
|
||||
|
||||
$oReportTable = new ReportTable();
|
||||
//if (!isset($_POST['form']['REP_TAB_CONNECTION'])) {
|
||||
// $_POST['form']['REP_TAB_CONNECTION'] = 'report';
|
||||
//}
|
||||
if ($_POST['form']['REP_TAB_UID'] != "") {
|
||||
$aReportTable = $oReportTable->load($_POST['form']['REP_TAB_UID']);
|
||||
$sOldTableName = $aReportTable['REP_TAB_NAME'];
|
||||
$sOldConnection = $aReportTable['REP_TAB_CONNECTION'];
|
||||
} else {
|
||||
$sOldTableName = $_POST['form']['REP_TAB_NAME'];
|
||||
$sOldConnection = $_POST['form']['REP_TAB_CONNECTION'];
|
||||
$_POST['form']['REP_TAB_TYPE'] = 'NORMAL';
|
||||
$oReportTable->create($_POST['form']);
|
||||
$_POST['form']['REP_TAB_UID'] = $oReportTable->getRepTabUid();
|
||||
}
|
||||
|
||||
$_POST['form']['REP_TAB_TYPE'] = 'NORMAL';
|
||||
$oReportTable->update($_POST['form']);
|
||||
|
||||
$oReportVar = new ReportVar();
|
||||
$oReportTables = new ReportTables();
|
||||
$oReportTables->deleteAllReportVars($_POST['form']['REP_TAB_UID']);
|
||||
|
||||
$aFields = array();
|
||||
|
||||
if ($isBPMN) {
|
||||
G::LoadClass("pmDynaform");
|
||||
|
||||
$pmDyna = new pmDynaform(array());
|
||||
$pmDyna->fields["CURRENT_DYNAFORM"] = $sDynUid;
|
||||
$dataDyna = $pmDyna->getDynaform();
|
||||
$json = G::json_decode($dataDyna["DYN_CONTENT"]);
|
||||
$data = $pmDyna->jsonr($json);
|
||||
G::pr($data); die;
|
||||
} else {
|
||||
$aAux = explode('-', $_POST['form']['REP_TAB_GRID']);
|
||||
global $G_FORM;
|
||||
|
||||
require_once "classes/class.formBatchRouting.php";
|
||||
|
||||
$G_FORM = new FormBatchRouting($_POST["form"]["PRO_UID"] . PATH_SEP . $aAux[1], PATH_DYNAFORM, SYS_LANG, false);
|
||||
$aAux = $G_FORM->getVars(false);
|
||||
|
||||
foreach ($aAux as $aField) {
|
||||
$_POST['form']['FIELDS'][] = $aField['sName'] . '-' . $aField['sType'];
|
||||
}
|
||||
}
|
||||
|
||||
$aFieldsClases = array();
|
||||
$i = 1;
|
||||
$aFieldsClases[$i]['FLD_NAME'] = 'APP_UID';
|
||||
$aFieldsClases[$i]['FLD_NULL'] = 'off';
|
||||
$aFieldsClases[$i]['FLD_KEY'] = 'on';
|
||||
$aFieldsClases[$i]['FLD_AUTO_INCREMENT'] = 'off';
|
||||
$aFieldsClases[$i]['FLD_DESCRIPTION'] = '';
|
||||
$aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ;
|
||||
$aFieldsClases[$i]['FLD_SIZE'] = 32;
|
||||
$i++;
|
||||
$aFieldsClases[$i]['FLD_NAME'] = 'APP_NUMBER';
|
||||
$aFieldsClases[$i]['FLD_NULL'] = 'off';
|
||||
$aFieldsClases[$i]['FLD_KEY'] = 'on';
|
||||
$aFieldsClases[$i]['FLD_AUTO_INCREMENT'] = 'off';
|
||||
$aFieldsClases[$i]['FLD_DESCRIPTION'] = '';
|
||||
$aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ;
|
||||
$aFieldsClases[$i]['FLD_SIZE'] = 255;
|
||||
|
||||
foreach ($_POST['form']['FIELDS'] as $sField) {
|
||||
$aField = explode('-', $sField);
|
||||
$i++;
|
||||
$aFieldsClases[$i]['FLD_NAME'] = $aField[0];
|
||||
$aFieldsClases[$i]['FLD_NULL'] = 'off';
|
||||
$aFieldsClases[$i]['FLD_KEY'] = 'off';
|
||||
$aFieldsClases[$i]['FLD_AUTO_INCREMENT'] = 'off';
|
||||
$aFieldsClases[$i]['FLD_DESCRIPTION'] = '';
|
||||
|
||||
switch ($aField[1]) {
|
||||
case 'currency':
|
||||
case 'percentage':
|
||||
$sType = 'number';
|
||||
$aFieldsClases[$i]['FLD_TYPE'] = 'FLOAT' ;
|
||||
$aFieldsClases[$i]['FLD_SIZE'] = 255;
|
||||
break;
|
||||
case 'text':
|
||||
case 'password':
|
||||
case 'dropdown':
|
||||
case 'yesno':
|
||||
case 'checkbox':
|
||||
case 'radiogroup':
|
||||
case 'hidden':
|
||||
case "link":
|
||||
$sType = 'char';
|
||||
$aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ;
|
||||
$aFieldsClases[$i]['FLD_SIZE'] = 255;
|
||||
break;
|
||||
case 'textarea':
|
||||
$sType = 'text';
|
||||
$aFieldsClases[$i]['FLD_TYPE'] = 'TEXT' ;
|
||||
$aFieldsClases[$i]['FLD_SIZE'] = '';
|
||||
break;
|
||||
case 'date':
|
||||
$sType = 'date';
|
||||
$aFieldsClases[$i]['FLD_TYPE'] = 'DATE' ;
|
||||
$aFieldsClases[$i]['FLD_SIZE'] = '';
|
||||
break;
|
||||
default:
|
||||
$sType = 'char';
|
||||
$aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ;
|
||||
$aFieldsClases[$i]['FLD_SIZE'] = 255;
|
||||
break;
|
||||
}
|
||||
|
||||
$oReportVar->create(array('REP_TAB_UID' => $_POST['form']['REP_TAB_UID'],
|
||||
'PRO_UID' => $_POST['form']['PRO_UID'],
|
||||
'REP_VAR_NAME' => $aField[0],
|
||||
'REP_VAR_TYPE' => $sType));
|
||||
$aFields[] = array('sFieldName' => $aField[0], 'sType' => $sType);
|
||||
}
|
||||
|
||||
$_POST['form']['REP_TAB_TYPE'] = "NORMAL";
|
||||
$oReportTables->dropTable($sOldTableName, $sOldConnection);
|
||||
$oReportTables->createTable($_POST['form']['REP_TAB_NAME'], $_POST['form']['REP_TAB_CONNECTION'], $_POST['form']['REP_TAB_TYPE'], $aFields);
|
||||
$oReportTables->populateTable($_POST['form']['REP_TAB_NAME'], $_POST['form']['REP_TAB_CONNECTION'], $_POST['form']['REP_TAB_TYPE'], $aFields, $_POST['form']['PRO_UID'], '');
|
||||
|
||||
$sRepTabUid = $_POST['form']['REP_TAB_UID'];
|
||||
|
||||
//clases
|
||||
} else {
|
||||
$oReportTables = new ReportTables();
|
||||
if ($sRepTabUid != "") {
|
||||
$oReportTables->deleteReportTable($sRepTabUid);
|
||||
}
|
||||
$sRepTabUid = "";
|
||||
}
|
||||
|
||||
require_once ("classes/model/CaseConsolidatedPeer.php");
|
||||
require_once ("classes/model/CaseConsolidated.php");
|
||||
|
||||
$oCaseConsolidated = CaseConsolidatedPeer::retrieveByPK($sTasUid);
|
||||
|
||||
if (!(is_object($oCaseConsolidated)) || get_class($oCaseConsolidated) != 'CaseConsolidated') {
|
||||
$oCaseConsolidated = new CaseConsolidated();
|
||||
$oCaseConsolidated->setTasUid($sTasUid);
|
||||
}
|
||||
|
||||
if ($sStatus == '1') {
|
||||
$oCaseConsolidated->setConStatus('ACTIVE');
|
||||
} else {
|
||||
$oCaseConsolidated->setConStatus('INACTIVE');
|
||||
}
|
||||
|
||||
$oCaseConsolidated->setDynUid($sDynUid);
|
||||
$oCaseConsolidated->setRepTabUid($sRepTabUid);
|
||||
$oCaseConsolidated->save();
|
||||
|
||||
$sClassName = $tableName;//'__' . $sTasUid;
|
||||
|
||||
if ($sStatus == '1') {
|
||||
//$oAdditionalTables->createPropelClasses($sTableName, $sClassName, $aFields, $sAddTabUid)
|
||||
//require_once 'classes/model/AdditionalTables.php';
|
||||
//$oAdditionalTables = new AdditionalTables();
|
||||
$oAdditionalTables = new AdditionalTables();//AdditionalTablesConsolidated
|
||||
|
||||
$oAdditionalTables->createPropelClasses($tableName, $sClassName, $aFieldsClases, $sTasUid);
|
||||
} else {
|
||||
$sPath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP;
|
||||
@unlink($sPath . $sClassName . '.php');
|
||||
@unlink($sPath . $sClassName . 'Peer.php');
|
||||
@unlink($sPath . PATH_SEP . 'map' . PATH_SEP . $sClassName . 'MapBuilder.php');
|
||||
@unlink($sPath . PATH_SEP . 'om' . PATH_SEP . 'Base' . $sClassName . '.php');
|
||||
@unlink($sPath . PATH_SEP . 'om' . PATH_SEP . 'Base' . $sClassName . 'Peer.php');
|
||||
}
|
||||
335
workflow/engine/methods/cases/casesConsolidatedListExtJs.php
Normal file
335
workflow/engine/methods/cases/casesConsolidatedListExtJs.php
Normal file
@@ -0,0 +1,335 @@
|
||||
<?php
|
||||
|
||||
$action = (isset($_REQUEST["action"])) ? $_REQUEST["action"] : "consolidated";
|
||||
|
||||
$oCriteria = new Criteria("workflow");
|
||||
$oCriteria->addSelectColumn(CaseConsolidatedPeer::CON_STATUS);
|
||||
$oCriteria->add(CaseConsolidatedPeer::CON_STATUS, "ACTIVE");
|
||||
$activeNumRows = CaseConsolidatedPeer::doCount($oCriteria);
|
||||
|
||||
G::LoadClass ("BasePeer");
|
||||
G::LoadClass ("configuration");
|
||||
G::loadClass("pmFunctions");
|
||||
|
||||
$headPublisher = &headPublisher::getSingleton();
|
||||
|
||||
//cambiar esto por PROPEL //CASE_CONSOLIDATED TASK
|
||||
$usrUid = $_SESSION["USER_LOGGED"];
|
||||
|
||||
$oCriteria = new Criteria("workflow");
|
||||
$oCriteria->addSelectColumn("*");
|
||||
$oCriteria->addSelectColumn(CaseConsolidatedPeer::TAS_UID);
|
||||
$oCriteria->addJoin(CaseConsolidatedPeer::TAS_UID,ContentPeer::CON_ID, Criteria::LEFT_JOIN);
|
||||
$oCriteria->addJoin(CaseConsolidatedPeer::TAS_UID,TaskPeer::TAS_UID, Criteria::LEFT_JOIN);
|
||||
$oCriteria->addAnd(ContentPeer::CON_CATEGORY, "TAS_TITLE");
|
||||
$oCriteria->addAnd(ContentPeer::CON_LANG, "en");
|
||||
|
||||
$params = array(); //This will be filled with the parameters
|
||||
$sql = BasePeer::createSelectSql($oCriteria, $params);
|
||||
|
||||
$oDataset = CaseConsolidatedPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
//$oDataset->next();
|
||||
while ($oDataset->next()) {
|
||||
$aRow = $oDataset->getRow();
|
||||
//$aTaskConsolidated [] = $aRow;
|
||||
}
|
||||
|
||||
$query = "SELECT *
|
||||
FROM CASE_CONSOLIDATED LEFT JOIN CONTENT ON
|
||||
(CASE_CONSOLIDATED.TAS_UID = CONTENT.CON_ID) LEFT JOIN TASK ON (CASE_CONSOLIDATED.TAS_UID = TASK.TAS_UID)
|
||||
WHERE CONTENT.CON_CATEGORY='TAS_TITLE' AND CONTENT.CON_LANG='en'";
|
||||
$aTaskConsolidated = executeQuery($query);
|
||||
|
||||
$conf = new Configurations();
|
||||
|
||||
try {
|
||||
$confCasesList = $conf->getConfiguration("casesList", $action);
|
||||
$generalConfCasesList = $conf->getConfiguration("ENVIRONMENT_SETTINGS", "");
|
||||
} catch (Exception $e) {
|
||||
$confCasesList = array();
|
||||
$generalConfCasesList = array();
|
||||
}
|
||||
|
||||
$config = getAdditionalFields($action, $confCasesList);
|
||||
|
||||
if (isset($generalConfCasesList["casesListRowNumber"]) && !empty($generalConfCasesList["casesListRowNumber"])) {
|
||||
$pageSize = intval($generalConfCasesList["casesListRowNumber"]);
|
||||
} else {
|
||||
$pageSize = intval($config["rowsperpage"]);
|
||||
}
|
||||
|
||||
$arrayTabItem = array();
|
||||
$aAllData = array();
|
||||
//$aQTY = array();
|
||||
$i = 0;
|
||||
|
||||
//SQL
|
||||
$cnn = Propel::getConnection("workflow");
|
||||
$stmt = $cnn->createStatement();
|
||||
|
||||
//foreach ($aTaskConsolidated as $value)
|
||||
//{
|
||||
$i++;
|
||||
|
||||
$sql = "SELECT COUNT(APP_CACHE_VIEW.TAS_UID) AS NUMREC,
|
||||
APP_CACHE_VIEW.PRO_UID,
|
||||
(SELECT CON.CON_VALUE
|
||||
FROM CONTENT AS CON
|
||||
WHERE CON.CON_ID = APP_CACHE_VIEW.PRO_UID AND CON.CON_CATEGORY = 'PRO_TITLE' AND CON.CON_LANG = '" . SYS_LANG . "'
|
||||
) AS PROCESS_TITLE,
|
||||
APP_CACHE_VIEW.TAS_UID,
|
||||
CONTASK.CON_VALUE AS TASK_TITLE,
|
||||
CASE_CONSOLIDATED.DYN_UID
|
||||
FROM CASE_CONSOLIDATED
|
||||
LEFT JOIN CONTENT AS CONTASK ON (CASE_CONSOLIDATED.TAS_UID = CONTASK.CON_ID AND CONTASK.CON_CATEGORY = 'TAS_TITLE' AND CONTASK.CON_LANG = '" . SYS_LANG . "')
|
||||
LEFT JOIN APP_CACHE_VIEW ON (CASE_CONSOLIDATED.TAS_UID = APP_CACHE_VIEW.TAS_UID)
|
||||
WHERE APP_CACHE_VIEW.USR_UID = '$usrUid' AND
|
||||
APP_CACHE_VIEW.DEL_THREAD_STATUS = 'OPEN' AND
|
||||
APP_CACHE_VIEW.APP_STATUS = 'TO_DO'
|
||||
GROUP BY APP_CACHE_VIEW.TAS_UID";
|
||||
|
||||
$rsSql = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
while ($rsSql->next()) {
|
||||
$row = $rsSql->getRow();
|
||||
|
||||
$processUid = $row["PRO_UID"];
|
||||
$proTitle = $row["PROCESS_TITLE"];
|
||||
$taskUid = $row["TAS_UID"];
|
||||
$taskTitle = $row["TASK_TITLE"];
|
||||
$dynaformUid = $row["DYN_UID"];
|
||||
|
||||
$tabTitle = $taskTitle . " (" . (($activeNumRows > 0)? $row["NUMREC"] : 0) . ")";
|
||||
|
||||
$grdTitle = htmlentities($proTitle . " / " . $tabTitle, ENT_QUOTES, "UTF-8");
|
||||
$tabTitle = htmlentities(substr($proTitle, 0, 25) . ((strlen($proTitle) > 25)? "..." : null) . " / " . $tabTitle, ENT_QUOTES, "UTF-8");
|
||||
|
||||
$arrayTabItem[] = "
|
||||
{
|
||||
title: \"<span onmouseover=\\\"toolTipTab('$grdTitle', 1);\\\" onmouseout=\\\"toolTipTab('', 0);\\\">$tabTitle</span>\",
|
||||
listeners: {
|
||||
activate: function ()
|
||||
{
|
||||
generateGrid(\"$processUid\", \"$taskUid\", \"$dynaformUid\");
|
||||
}
|
||||
}
|
||||
}";
|
||||
}
|
||||
|
||||
if (count($arrayTabItem) > 0) {
|
||||
$urlProxy = '/api/1.0/' . SYS_SYS . '/consolidated/';
|
||||
$clientId = 'x-pm-local-client';
|
||||
$client = getClientCredentials($clientId);
|
||||
$authCode = getAuthorizationCode($client);
|
||||
$debug = false; //System::isDebugMode();
|
||||
|
||||
$loader = Maveriks\Util\ClassLoader::getInstance();
|
||||
$loader->add(PATH_TRUNK . 'vendor/bshaffer/oauth2-server-php/src/', "OAuth2");
|
||||
|
||||
$request = array(
|
||||
'grant_type' => 'authorization_code',
|
||||
'code' => $authCode
|
||||
);
|
||||
$server = array(
|
||||
'REQUEST_METHOD' => 'POST'
|
||||
);
|
||||
$headers = array(
|
||||
"PHP_AUTH_USER" => $client['CLIENT_ID'],
|
||||
"PHP_AUTH_PW" => $client['CLIENT_SECRET'],
|
||||
"Content-Type" => "multipart/form-data;",
|
||||
"Authorization" => "Basic " . base64_encode($client['CLIENT_ID'] . ":" . $client['CLIENT_SECRET'])
|
||||
);
|
||||
|
||||
$request = new \OAuth2\Request(array(), $request, array(), array(), array(), $server, null, $headers);
|
||||
$oauthServer = new \ProcessMaker\Services\OAuth2\Server();
|
||||
$response = $oauthServer->postToken($request, true);
|
||||
|
||||
$clientToken = $response->getParameters();
|
||||
$clientToken["client_id"] = $client['CLIENT_ID'];
|
||||
$clientToken["client_secret"] = $client['CLIENT_SECRET'];
|
||||
|
||||
|
||||
$items = "[" . implode(",", $arrayTabItem) ."]";
|
||||
|
||||
$userUid = (isset($_SESSION["USER_LOGGED"]) && $_SESSION["USER_LOGGED"] != "")? $_SESSION["USER_LOGGED"] : null;
|
||||
$processes = getProcessArray($action, $userUid);
|
||||
|
||||
$headPublisher->assign("pageSize", $pageSize); //Sending the page size
|
||||
$headPublisher->assign("action", $action); //Sending the fields to get from proxy
|
||||
$headPublisher->assign("Items", $items);
|
||||
$headPublisher->assign("processValues", $processes); //Sending the columns to display in grid
|
||||
$headPublisher->assign("varSkin", SYS_SKIN); //Sending the current Skin
|
||||
$headPublisher->assign("FORMATS", $conf->getFormats());
|
||||
$headPublisher->assign("urlProxy", $urlProxy);
|
||||
$headPublisher->assign('credentials', $clientToken );
|
||||
|
||||
$headPublisher->addExtJsScript("app/main", true);
|
||||
$headPublisher->addExtJsScript("cases/casesListConsolidated", false); //Adding a JavaScript file .js
|
||||
$headPublisher->addContent("cases/casesListConsolidated"); //Adding a HTML file .html
|
||||
|
||||
G::RenderPage("publish", "extJs");
|
||||
} else {
|
||||
echo "<span style=\"font: 0.75em normal arial, verdana, helvetica, sans-serif;\">" . G::LoadTranslation("ID_NO_RECORDS_FOUND") . "</span>";
|
||||
}
|
||||
|
||||
|
||||
|
||||
function getProcessArray($action, $userUid)
|
||||
{
|
||||
$processes = array();
|
||||
$processes[] = array("", G::LoadTranslation("ID_ALL_PROCESS"));
|
||||
|
||||
switch ($action) {
|
||||
case "simple_search":
|
||||
case "search":
|
||||
//In search action, the query to obtain all process is too slow, so we need to query directly to
|
||||
//process and content tables, and for that reason we need the current language in AppCacheView.
|
||||
G::loadClass("configuration");
|
||||
$oConf = new Configurations;
|
||||
$oConf->loadConfig($x, "APP_CACHE_VIEW_ENGINE", "", "", "", "");
|
||||
$appCacheViewEngine = $oConf->aConfig;
|
||||
$lang = isset($appCacheViewEngine["LANG"])? $appCacheViewEngine["LANG"] : "en";
|
||||
|
||||
$cProcess = new Criteria("workflow");
|
||||
$cProcess->clearSelectColumns();
|
||||
$cProcess->addSelectColumn(ProcessPeer::PRO_UID);
|
||||
$cProcess->addSelectColumn(ContentPeer::CON_VALUE);
|
||||
|
||||
$del = DBAdapter::getStringDelimiter();
|
||||
|
||||
$conds = array();
|
||||
$conds[] = array(ProcessPeer::PRO_UID, ContentPeer::CON_ID);
|
||||
$conds[] = array(ContentPeer::CON_CATEGORY, $del . "PRO_TITLE" . $del);
|
||||
$conds[] = array(ContentPeer::CON_LANG, $del . $lang . $del);
|
||||
$cProcess->addJoinMC($conds, Criteria::LEFT_JOIN);
|
||||
$cProcess->add(ProcessPeer::PRO_STATUS, "ACTIVE");
|
||||
$oDataset = ProcessPeer::doSelectRS($cProcess);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$oDataset->next();
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
$processes[] = array($aRow["PRO_UID"], $aRow["CON_VALUE"]);
|
||||
$oDataset->next();
|
||||
}
|
||||
|
||||
return ($processes);
|
||||
break;
|
||||
case "consolidated":
|
||||
default:
|
||||
$oAppCache = new AppCacheView();
|
||||
$cProcess = $oAppCache->getToDoListCriteria($userUid); //fast enough
|
||||
break;
|
||||
}
|
||||
|
||||
$cProcess->clearSelectColumns();
|
||||
$cProcess->setDistinct();
|
||||
$cProcess->addSelectColumn(AppCacheViewPeer::PRO_UID);
|
||||
$cProcess->addSelectColumn(AppCacheViewPeer::APP_PRO_TITLE);
|
||||
$oDataset = AppCacheViewPeer::doSelectRS($cProcess);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
$processes[] = array($aRow["PRO_UID"], $aRow["APP_PRO_TITLE"]);
|
||||
$oDataset->next();
|
||||
}
|
||||
|
||||
return ($processes);
|
||||
}
|
||||
|
||||
function getConsolidated()
|
||||
{
|
||||
$caseColumns = array ();
|
||||
$caseColumns[] = array("header" =>"#", "dataIndex" => "APP_NUMBER", "width" => 45, "align" => "center");
|
||||
$caseColumns[] = array("header" =>"Case", "dataIndex" => "APP_TITLE", "width" => 150);
|
||||
$caseColumns[] = array("header" =>"UserUid", "dataIndex" => "USR_UID", "width" => 50, "hidden" => true, "hideable" => false);
|
||||
$caseColumns[] = array("header" =>"PreUsrUid", "dataIndex" => "PREVIOUS_USR_UID", "width" => 50, "hidden" => true, "hideable" => false);
|
||||
$caseColumns[] = array("header" =>"Task", "dataIndex" => "APP_TAS_TITLE", "width" => 120);
|
||||
$caseColumns[] = array("header" =>"Process", "dataIndex" => "APP_PRO_TITLE", "width" => 120);
|
||||
$caseColumns[] = array("header" =>"Sent by", "dataIndex" => "APP_DEL_PREVIOUS_USER", "width" => 90);
|
||||
$caseColumns[] = array("header" =>"Due Date", "dataIndex" => "DEL_TASK_DUE_DATE", "width" => 110);
|
||||
$caseColumns[] = array("header" =>"Last Modify", "dataIndex" => "APP_UPDATE_DATE", "width" => 110);
|
||||
$caseColumns[] = array("header" =>"Priority", "dataIndex" => "DEL_PRIORITY", "width" => 50);
|
||||
|
||||
$caseReaderFields = array();
|
||||
$caseReaderFields[] = array("name" => "APP_UID");
|
||||
$caseReaderFields[] = array("name" => "USR_UID");
|
||||
$caseReaderFields[] = array("name" => "PREVIOUS_USR_UID");
|
||||
$caseReaderFields[] = array("name" => "DEL_INDEX");
|
||||
$caseReaderFields[] = array("name" => "APP_NUMBER");
|
||||
$caseReaderFields[] = array("name" => "APP_TITLE");
|
||||
$caseReaderFields[] = array("name" => "APP_PRO_TITLE");
|
||||
$caseReaderFields[] = array("name" => "APP_TAS_TITLE");
|
||||
$caseReaderFields[] = array("name" => "APP_DEL_PREVIOUS_USER");
|
||||
$caseReaderFields[] = array("name" => "DEL_TASK_DUE_DATE");
|
||||
$caseReaderFields[] = array("name" => "APP_UPDATE_DATE");
|
||||
$caseReaderFields[] = array("name" => "DEL_PRIORITY");
|
||||
$caseReaderFields[] = array("name" => "APP_FINISH_DATE");
|
||||
$caseReaderFields[] = array("name" => "APP_CURRENT_USER");
|
||||
$caseReaderFields[] = array("name" => "APP_STATUS");
|
||||
|
||||
return (array("caseColumns" => $caseColumns, "caseReaderFields" => $caseReaderFields, "rowsperpage" => 20, "dateformat" => "M d, Y"));
|
||||
}
|
||||
|
||||
function getAdditionalFields($action, $confCasesList)
|
||||
{
|
||||
$caseColumns = array();
|
||||
$caseReaderFields = array();
|
||||
|
||||
if (!empty($confCasesList) && !empty($confCasesList["second"]["data"])) {
|
||||
foreach ($confCasesList["second"]["data"] as $fieldData) {
|
||||
if ($fieldData["fieldType"] != "key") {
|
||||
$label = $fieldData["label"];
|
||||
$caseColumns[] = array("header" => $label, "dataIndex" => $fieldData["name"], "width" => $fieldData["width"], "align" => $fieldData["align"]);
|
||||
$caseReaderFields[] = array("name" => $fieldData["name"]);
|
||||
}
|
||||
}
|
||||
return (array("caseColumns" => $caseColumns, "caseReaderFields" => $caseReaderFields, "rowsperpage" => $confCasesList["rowsperpage"], "dateformat" => $confCasesList["dateformat"]));
|
||||
} else {
|
||||
switch ($action) {
|
||||
case "consolidated":
|
||||
default:
|
||||
$action = "consolidated";
|
||||
$config = getConsolidated();
|
||||
break;
|
||||
}
|
||||
return ($config);
|
||||
}
|
||||
}
|
||||
|
||||
function getClientCredentials($clientId)
|
||||
{
|
||||
$oauthQuery = new ProcessMaker\Services\OAuth2\PmPdo(getDsn());
|
||||
return $oauthQuery->getClientDetails($clientId);
|
||||
}
|
||||
|
||||
function getDsn()
|
||||
{
|
||||
list($host, $port) = strpos(DB_HOST, ':') !== false ? explode(':', DB_HOST) : array(DB_HOST, '');
|
||||
$port = empty($port) ? '' : ";port=$port";
|
||||
$dsn = DB_ADAPTER.':host='.$host.';dbname='.DB_NAME.$port;
|
||||
|
||||
return array('dsn' => $dsn, 'username' => DB_USER, 'password' => DB_PASS);
|
||||
}
|
||||
|
||||
|
||||
function getAuthorizationCode($client)
|
||||
{
|
||||
\ProcessMaker\Services\OAuth2\Server::setDatabaseSource(getDsn());
|
||||
\ProcessMaker\Services\OAuth2\Server::setPmClientId($client['CLIENT_ID']);
|
||||
|
||||
$oauthServer = new \ProcessMaker\Services\OAuth2\Server();
|
||||
$userId = $_SESSION['USER_LOGGED'];
|
||||
$authorize = true;
|
||||
$_GET = array_merge($_GET, array(
|
||||
'response_type' => 'code',
|
||||
'client_id' => $client['CLIENT_ID'],
|
||||
'scope' => implode(' ', $oauthServer->getScope())
|
||||
));
|
||||
|
||||
$response = $oauthServer->postAuthorize($authorize, $userId, true);
|
||||
$code = substr($response->getHttpHeader('Location'), strpos($response->getHttpHeader('Location'), 'code=')+5, 40);
|
||||
|
||||
return $code;
|
||||
}
|
||||
Reference in New Issue
Block a user