Merged in cochalo/processmaker/CONSOLIDATED (pull request #1749)

CONSOLIDATED CORE
This commit is contained in:
Julio Cesar Laura Avendaño
2015-03-23 21:11:17 -04:00
20 changed files with 4652 additions and 3 deletions

View 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');
}

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