Merge branch 'release/3.2' of bitbucket.org:colosa/processmaker into feature/HOR-2440

This commit is contained in:
Paula Quispe
2017-02-09 12:50:46 -04:00
41 changed files with 579 additions and 396 deletions

95
Jenkinsfile vendored Normal file
View File

@@ -0,0 +1,95 @@
#!groovy
node {
/**
* Branch should be in gitflow format. If not, then we'll abort.
*/
if(!env.BRANCH_NAME.matches(/(feature|hotfix|bugfix|release)\/.+/) && !env.BRANCH_NAME.matches(/^PR-.*$/)) {
hipchatSend message: "${env.BRANCH_NAME} Build: Does not match gitflow naming. Aborted", room: 'engineering'
error "Job does not follow gitflow naming format."
}
// Parse out our short name and potential jira ticket. Null if not associated. If null, then for now we won't notify
// on jira ticket
def jiraTicket = env.BRANCH_NAME.find(/HOR-\d+/)
def shortname = env.BRANCH_NAME.replace('/', '-').replace('.', '-').toLowerCase()
def dbSuffix = shortname.replace('-', '')
echo "Building for ${env.BRANCH_NAME}"
// Checkout source
checkout scm
try {
stage('Start Notification') {
if(jiraTicket) {
jiraComment issueKey: jiraTicket, body: "Build ${env.BUILD_NUMBER} Starting.\nTicket will be updated once build is completed.\n\n${env.BUILD_URL}"
}
hipchatSend message: "${env.BRANCH_NAME} Build: ${env.BUILD_NUMBER} Starting.\n${env.BUILD_URL}", room: 'engineering'
}
stage('Dependencies') {
echo "Running Composer"
sh 'composer install'
echo "Running rake"
sh 'rake'
}
stage('Generate QA MySQL Databases') {
withCredentials([string(credentialsId: 'qa-rds-hostname', variable: 'rdsHostname'), usernamePassword(credentialsId: 'qa-rds-credentials', passwordVariable: 'rdsPassword', usernameVariable: 'rdsUsername')]) {
echo 'Dropping existing database and recreating.'
sh "mysql -h ${rdsHostname} -u ${rdsUsername} -p${rdsPassword} -e 'drop database if exists qa205${dbSuffix}; create database qa205${dbSuffix}'"
sh "mysql -h ${rdsHostname} -u ${rdsUsername} -p${rdsPassword} -e 'drop database if exists qa300${dbSuffix}; create database qa300${dbSuffix}'"
}
}
stage('Publish to QA-205') {
sshagent(['processmaker-deploy']) {
echo 'Dropping existing files and recreating'
sh "ssh processmaker@build-qa205.processmaker.net 'rm -Rf /home/processmaker/${shortname}'"
sh "scp -r ./ processmaker@build-qa205.processmaker.net:~/${shortname}"
echo 'Creating necessary directories'
sh "ssh processmaker@build-qa205.processmaker.net 'mkdir -p /home/processmaker/${shortname}/workflow/engine/js/labels'"
sh "ssh processmaker@build-qa205.processmaker.net 'mkdir -p /home/processmaker/${shortname}/workflow/public_html/translations'"
}
}
stage('Publish to QA-300') {
sshagent(['processmaker-deploy']) {
echo 'Dropping existing files and recreating'
sh "ssh processmaker@build-qa300.processmaker.net 'rm -Rf /home/processmaker/${shortname}'"
sh "scp -r ./ processmaker@build-qa300.processmaker.net:~/${shortname}"
echo 'Creating necessary directories'
sh "ssh processmaker@build-qa300.processmaker.net 'mkdir -p /home/processmaker/${shortname}/workflow/engine/js/labels'"
sh "ssh processmaker@build-qa300.processmaker.net 'mkdir -p /home/processmaker/${shortname}/workflow/public_html/translations'"
}
}
stage('Success Notification') {
withCredentials([string(credentialsId: 'qa-rds-hostname', variable: 'rdsHostname'), usernamePassword(credentialsId: 'qa-rds-credentials', passwordVariable: 'rdsPassword', usernameVariable: 'rdsUsername')]) {
if(jiraTicket) {
jiraComment issueKey: jiraTicket, body: "" +
"Build ${env.BUILD_NUMBER} Completed.\n" +
"5.6 Build: https://${shortname}.qa205.processmaker.net\n" +
"Database Host: ${rdsHostname}\n" +
"Username: ${rdsUsername}\n" +
"Password: ${rdsPassword}\n" +
"Database: qa205${dbSuffix}\n\n" +
"7.0 Build: https://${shortname}.qa300.processmaker.net\n" +
"Database Host: ${rdsHostname}\n" +
"Username: ${rdsUsername}\n" +
"Password: ${rdsPassword}\n" +
"Database: qa300${dbSuffix}\n\n" +
"${env.BUILD_URL}"
}
hipchatSend room: 'engineering', message: "" +
"${env.BRANCH_NAME} Build: ${env.BUILD_NUMBER} Completed.\n" +
"${env.BUILD_URL}"
}
}
} catch(error) {
if(jiraTicket) {
jiraComment issueKey: jiraTicket, body: "Build ${env.BUILD_NUMBER} Failed: ${error}\n\n${env.BUILD_URL}"
}
hipchatSend message: "${env.BRANCH_NAME} Build: ${env.BUILD_NUMBER} Failed: ${error}\n${env.BUILD_URL}", room: 'engineering'
}
}

View File

@@ -29,9 +29,9 @@
"require": {
"luracast/restler": "3.0.0-RC5",
"bshaffer/oauth2-server-php": "v1.0",
"colosa/pmUI": "3.1-dev",
"colosa/MichelangeloFE": "3.1-dev",
"colosa/pmdynaform": "3.1-dev",
"colosa/pmUI": "release/3.2-dev",
"colosa/MichelangeloFE": "release/3.2-dev",
"colosa/pmdynaform": "release/3.2-dev",
"google/apiclient": "1.1.6",
"dapphp/securimage": "^3.6",
"psr/log":"1.0.0",

10
composer.lock generated
View File

@@ -52,14 +52,14 @@
},
{
"name": "colosa/MichelangeloFE",
"version": "3.1-dev",
"version": "release/3.2-dev",
"source": {
"type": "git",
"url": "git@bitbucket.org:colosa/michelangelofe.git",
"reference": "7e889f23a7e8397c052a4d9ae6331334b57c9d48"
},
"require": {
"colosa/pmui": "3.1-dev"
"colosa/pmui": "release/3.2-dev"
},
"type": "library",
"description": "ProcessMaker Michelangelo Front End",
@@ -71,7 +71,7 @@
},
{
"name": "colosa/pmDynaform",
"version": "3.1-dev",
"version": "release/3.2-dev",
"source": {
"type": "git",
"url": "git@bitbucket.org:colosa/pmdynaform.git",
@@ -87,7 +87,7 @@
},
{
"name": "colosa/pmUI",
"version": "3.1-dev",
"version": "release/3.2-dev",
"source": {
"type": "git",
"url": "git@bitbucket.org:colosa/pmui.git",
@@ -571,7 +571,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.1-dev"
"dev-master": "release/3.2-dev"
}
},
"autoload": {

View File

@@ -1232,8 +1232,10 @@ class G
case 'txt':
G::sendHeaders( $filename, 'text/html', $download, $downloadFileName );
break;
case 'doc':
case 'pdf':
G::sendHeaders( $filename, 'application/pdf', $download, $downloadFileName );
break;
case 'doc':
case 'pm':
case 'po':
G::sendHeaders( $filename, 'application/octet-stream', $download, $downloadFileName );
@@ -1283,12 +1285,14 @@ class G
{
if ($download) {
if ($downloadFileName == '') {
$aAux = explode( '/', $filename );
$downloadFileName = $aAux[count( $aAux ) - 1];
$aAux = explode('/', $filename);
$downloadFileName = $aAux[count($aAux) - 1];
}
header( 'Content-Disposition: attachment; filename="' . $downloadFileName . '"' );
header('Content-Disposition: attachment; filename="' . $downloadFileName . '"');
} else {
header('Content-Disposition: inline; filename="' . $downloadFileName . '"');
}
header( 'Content-Type: ' . $contentType );
header('Content-Type: ' . $contentType);
//if userAgent (BROWSER) is MSIE we need special headers to avoid MSIE behaivor.
$userAgent = strtolower( $_SERVER['HTTP_USER_AGENT'] );

View File

@@ -171,25 +171,25 @@ class actionsByEmailCoreClass extends PMPlugin
$variables = $variableService->doGetVariables($caseFields['PRO_UID']);
$field = new stdClass();
$field->label = '';
$actionField = str_replace(array('@@','@#','@=','@%','@?','@$'), '', $configuration['ABE_ACTION_FIELD']);
$actionField = str_replace(array('@@', '@#', '@=', '@%', '@?', '@$'), '', $configuration['ABE_ACTION_FIELD']);
G::LoadClass('pmDynaform');
$obj = new pmDynaform($configuration['DYN_UID']);
$configuration['CURRENT_DYNAFORM'] = $configuration['DYN_UID'];
$file = $obj->printPmDynaformAbe($configuration);
$__ABE__ .= $file;
$__ABE__ .= '<strong>' . $field->label . '</strong><br /><br /><table align="left" border="0"><tr>';
$__ABE__ .= '<div style="width: 100%"></div><strong>' . $field->label . '</strong><table align="left" border="0"><tr>';
$index = 1;
$__ABE__.='<br /><td><table align="left" cellpadding="2"><tr>';
$__ABE__ .= '<td><table align="left" cellpadding="2"><tr>';
foreach ($customGrid as $key => $value) {
$__ABE__ .= '<td align="center"><a style="'.$value['abe_custom_format'].'" ';
$__ABE__ .= 'href="' .urldecode(urlencode($link)). '?ACTION='.G::encrypt('processABE', URL_KEY).'&APP_UID=';
$__ABE__ .= '<td align="center"><a style="' . $value['abe_custom_format'] . '" ';
$__ABE__ .= 'href="' . urldecode(urlencode($link)) . '?ACTION=' . G::encrypt('processABE', URL_KEY) . '&APP_UID=';
$__ABE__ .= G::encrypt($data->APP_UID, URL_KEY) . '&DEL_INDEX=' . G::encrypt($data->DEL_INDEX, URL_KEY);
$__ABE__ .= '&FIELD=' . G::encrypt($actionField, URL_KEY) . '&VALUE=' . G::encrypt($value['abe_custom_value'], URL_KEY);
$__ABE__ .= '&ABER=' . G::encrypt($abeRequest['ABE_REQ_UID'], URL_KEY) . '" target="_blank" >' . $value['abe_custom_label'];
$__ABE__ .= '</a></td>' . (($index % 5 == 0) ? '</tr><tr>' : ' ');
$index++;
}
$__ABE__.='</tr></table><br />';
$__ABE__ .= '</tr></table></div>';
break;
case 'LINK':
$__ABE__ .= '<a href="' . $link . 'DataForm?APP_UID=' . G::encrypt($data->APP_UID, URL_KEY) . '&DEL_INDEX=' . G::encrypt($data->DEL_INDEX, URL_KEY) . '&DYN_UID=' . G::encrypt($configuration['DYN_UID'], URL_KEY) . '&ABER=' . G::encrypt($abeRequest['ABE_REQ_UID'], URL_KEY) . '" target="_blank">Please complete this form</a>';

View File

@@ -4528,6 +4528,11 @@ class Cases
/*----------------------------------********---------------------------------*/
$this->getExecuteTriggerProcess($sApplicationUID, 'REASSIGNED');
//Delete record of the table LIST_UNASSIGNED
$unassigned = new ListUnassigned();
$unassigned->remove($sApplicationUID, $iDelegation);
return true;
}

View File

@@ -1,43 +0,0 @@
<?php
class Library
{
public static function getCasesNumRec($userUid)
{
$cnn = Propel::getConnection("workflow");
$stmt = $cnn->createStatement();
//Number of records active
$criteria = new Criteria("workflow");
//SELECT
$criteria->addSelectColumn(CaseConsolidatedCorePeer::CON_STATUS);
//FROM
//WHERE
$criteria->add(CaseConsolidatedCorePeer::CON_STATUS, "ACTIVE");
$activeNumRec = CaseConsolidatedCorePeer::doCount($criteria);
//Number of records
$numRec = 0;
$sql = "SELECT COUNT(APP_CACHE_VIEW.TAS_UID) AS NUMREC
FROM CASE_CONSOLIDATED
LEFT JOIN APP_CACHE_VIEW ON (CASE_CONSOLIDATED.TAS_UID = APP_CACHE_VIEW.TAS_UID)
WHERE APP_CACHE_VIEW.USR_UID = '$userUid' AND
APP_CACHE_VIEW.DEL_THREAD_STATUS = 'OPEN' AND
APP_CACHE_VIEW.APP_STATUS = 'TO_DO'";
$rsSql = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
while ($rsSql->next()) {
$row = $rsSql->getRow();
$numRec = $row["NUMREC"];
}
$numRec = ($activeNumRec > 0)? $numRec : 0;
return $numRec;
}
}

View File

@@ -485,7 +485,8 @@ class PMPlugin
$file = $path . "public_html/" . $extensionPath;
@file_put_contents($file, "", LOCK_EX);
foreach ($item->files as $name) {
@file_put_contents($file, file_get_contents($item->path . "/" . $name), FILE_APPEND | LOCK_EX);
$content = file_get_contents($item->path . "/" . $name) . "\n";
@file_put_contents($file, $content, FILE_APPEND | LOCK_EX);
}
$this->registerDesignerSourcePath($extensionPath);
}

View File

@@ -27,6 +27,7 @@ class pmDynaform
private $context = array();
private $dataSources = null;
private $databaseProviders = null;
private $propertiesToExclude = array();
public function __construct($fields = array())
{
@@ -37,6 +38,7 @@ class pmDynaform
$this->serverConf = &serverConf::getSingleton();
$this->isRTL = ($this->serverConf->isRtl(SYS_LANG)) ? 'true' : 'false';
$this->fields = $fields;
$this->propertiesToExclude = array('dataVariable');
$this->getDynaform();
$this->getDynaforms();
$this->synchronizeSubDynaform();
@@ -196,11 +198,13 @@ class pmDynaform
if (is_string($value) && in_array(substr($value, 0, 2), $prefixs)) {
$triggerValue = substr($value, 2);
if (isset($this->fields["APP_DATA"][$triggerValue])) {
if ($key !== "dataVariable") {
if (!in_array($key, $this->propertiesToExclude)) {
$json->{$key} = $this->fields["APP_DATA"][$triggerValue];
}
} else {
$json->{$key} = "";
if (!in_array($key, $this->propertiesToExclude)) {
$json->{$key} = "";
}
}
}
//set properties from 'formInstance' variable
@@ -1909,6 +1913,12 @@ class pmDynaform
if ($validatorClass !== null) {
$validatorClass->validatePost($post);
}
//Clears the data in the appData for grids
if (array_key_exists($json->id, $this->fields) && $json->type === 'grid' &&
!array_key_exists($json->id, $post)
) {
$post[$json->variable] = array(array());
}
}
};
$json = G::json_decode($this->record["DYN_CONTENT"]);

View File

@@ -527,13 +527,27 @@ function WSLogin ($user, $pass, $endpoint = "")
function WSOpen ($force = false)
{
if (isset( $_SESSION["WS_SESSION_ID"] ) || $force) {
$optionsHeaders = array(
"cache_wsdl" => WSDL_CACHE_NONE,
"soap_version" => SOAP_1_1,
"trace" => 1,
"stream_context" => stream_context_create(
array(
'ssl' => array(
'verify_peer' => 0,
'verify_peer_name' => 0
)
)
)
);
if (! isset( $_SESSION["WS_END_POINT"] )) {
$defaultEndpoint = "http://" . $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . "/sys" . SYS_SYS . "/en/classic/services/wsdl2";
$defaultEndpoint = $_SERVER["REQUEST_SCHEME"] . "://" . $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . "/sys" . SYS_SYS . "/en/classic/services/wsdl2";
}
$endpoint = isset( $_SESSION["WS_END_POINT"] ) ? $_SESSION["WS_END_POINT"] : $defaultEndpoint;
$client = new SoapClient( $endpoint );
$client = new SoapClient( $endpoint, $optionsHeaders);
return $client;
} else {

View File

@@ -2507,6 +2507,7 @@ class Processes
$data->processVariables[$key]['VAR_UID'] = $newGuid;
}
}
$data->uid["PROCESS_VARIABLES"] = $map;
}
} catch (Exception $e) {
@@ -2610,6 +2611,9 @@ class Processes
public function renewAll(&$oData)
{
$oData->uid = array();
if (isset($oData->process["PRO_PARENT"]) && isset($oData->process["PRO_UID"])) {
$oData->uid["PROCESS"] = array($oData->process["PRO_PARENT"] => $oData->process["PRO_UID"]);
}
$this->renewAllTaskGuid($oData);
$this->renewAllDynaformGuid($oData);

View File

@@ -1401,6 +1401,10 @@ class workspaceTools
$arrayRegExpEngineSearch = array("/\)\s*TYPE\s*=\s*(InnoDB)/i", "/\)\s*TYPE\s*=\s*(MyISAM)/i","/SET\s*FOREIGN_KEY_CHECKS\s*=\s*0\s*;/");
$arrayRegExpEngineReplace = array(") ENGINE=\\1 DEFAULT CHARSET=utf8", ") ENGINE=\\1","SET FOREIGN_KEY_CHECKS=0;\nSET unique_checks=0;\nSET AUTOCOMMIT=0;");
//replace DEFINER
$script = preg_replace('/DEFINER=[^*]*/', '', file_get_contents($filename));
file_put_contents($filename, $script);
if (!$flag && !is_null($flagFunction)) {
//Replace TYPE by ENGINE
if( $versionBackupEngine == 1) {

View File

@@ -778,6 +778,10 @@ class AdditionalTables extends BaseAdditionalTables
// quick fix
// map all empty values as NULL for Database
foreach ($caseData as $dKey => $dValue) {
if (is_array($dValue) && count($dValue)) {
$j = key($dValue);
$dValue = (is_array($dValue[$j])) ? $dValue : $dValue[$j];
}
if (!is_array($dValue)) {
foreach ($fieldTypes as $key => $fieldType) {
foreach ($fieldType as $name => $theType) {
@@ -897,6 +901,10 @@ class AdditionalTables extends BaseAdditionalTables
$caseData = unserialize($caseData);
}
foreach ($caseData as $i => $v) {
if (is_array($v) && count($v)) {
$j = key($v);
$v = (is_array($v[$j])) ? $v : $v[$j];
}
foreach ($fieldTypes as $key => $fieldType) {
foreach ($fieldType as $name => $type) {
if ( strtoupper ( $i) == $name) {

View File

@@ -447,6 +447,7 @@ class AppDelegation extends BaseAppDelegation
//Get Task properties
$task = TaskPeer::retrieveByPK( $this->getTasUid() );
$aData = array();
$aData['TAS_UID'] = $this->getTasUid();
//Added to allow User defined Timing Control at Run time from Derivation screen
if (isset( $sNextTasParam['NEXT_TASK']['TAS_TRANSFER_HIDDEN_FLY'] ) && $sNextTasParam['NEXT_TASK']['TAS_TRANSFER_HIDDEN_FLY'] == 'true') {
@@ -476,7 +477,7 @@ class AppDelegation extends BaseAppDelegation
//Calendar - Use the dates class to calculate dates
$calendar = new calendar();
$arrayCalendarData = array();
$arrayCalendarData = $calendar->getCalendarData($aCalendarUID);
if ($calendar->pmCalendarUid == "") {
$calendar->getCalendar(null, $this->getProUid(), $this->getTasUid());
@@ -485,11 +486,11 @@ class AppDelegation extends BaseAppDelegation
}
//Due date
/*$iDueDate = $calendar->calculateDate( $this->getDelDelegateDate(), $aData['TAS_DURATION'], $aData['TAS_TIMEUNIT'] //hours or days, ( we only accept this two types or maybe weeks
);*/
$dueDate = $calendar->dashCalculateDate($this->getDelDelegateDate(), $aData["TAS_DURATION"], $aData["TAS_TIMEUNIT"], $arrayCalendarData);
$initDate = $this->getDelDelegateDate();
$timeZone = \ProcessMaker\Util\DateTime::convertUtcToTimeZone($initDate);
$dueDate = $calendar->dashCalculateDate($timeZone, $aData["TAS_DURATION"], $aData["TAS_TIMEUNIT"], $arrayCalendarData);
//Return
$dueDate = \ProcessMaker\Util\DateTime::convertDataToUtc($dueDate);
return $dueDate;
}

View File

@@ -97,21 +97,21 @@ class ProcessUser extends BaseProcessUser
{
try {
$oCriteria = new Criteria();
$oCriteria->add( ProcessUserPeer::PRO_UID, $proUid );
$oCriteria->add( ProcessUserPeer::PU_TYPE, 'SUPERVISOR' );
$oCriteria->add( ProcessUserPeer::USR_UID, $usrUid );
$dataset = ProcessUserPeer::doSelectRS( $oCriteria );
$dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$oCriteria->add(ProcessUserPeer::PRO_UID, $proUid);
$oCriteria->add(ProcessUserPeer::PU_TYPE, 'SUPERVISOR');
$oCriteria->add(ProcessUserPeer::USR_UID, $usrUid);
$dataset = ProcessUserPeer::doSelectRS($oCriteria);
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
//If the user is in Assigned supervisors list
if($dataset->next()){
if ($dataset->next()) {
return true;
} else {
//If the user is in a group in Assigned supervisors list
$oCriteria = new Criteria();
$oCriteria->add( ProcessUserPeer::PRO_UID, $proUid );
$oCriteria->add( ProcessUserPeer::PU_TYPE, 'GROUP_SUPERVISOR');
$dataset = ProcessUserPeer::doSelectRS( $oCriteria );
$dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$oCriteria->add(ProcessUserPeer::PRO_UID, $proUid);
$oCriteria->add(ProcessUserPeer::PU_TYPE, 'GROUP_SUPERVISOR');
$dataset = ProcessUserPeer::doSelectRS($oCriteria);
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oGroups = new Groups();
$aGroups = $oGroups->getActiveGroupsForAnUser($usrUid);
while ($dataset->next()) {
@@ -119,8 +119,6 @@ class ProcessUser extends BaseProcessUser
$groupUid = $row['USR_UID'];
if (in_array($groupUid, $aGroups)) {
return true;
} else {
return false;
}
}
return false;

View File

@@ -409,6 +409,7 @@ class Task extends BaseTask
$this->setTasPosx("");
$this->setTasPosy("");
$this->setTasColor("");
$this->setTasGroupVariable("");
$this->fromArray($aData,BasePeer::TYPE_FIELDNAME);
if ($this->validate()) {

View File

@@ -82,6 +82,7 @@ $(window).load(function () {
data: data,
delIndex: window.delIndex ? window.delIndex : delIndexDefault,
dynaformUid: dyn_uid,
isRTL: window.isRTL,
onBeforePrintHandler : function () {
var nodeClone = $(".pmdynaform-container").clone();
nodeClone.addClass("printing-form");

View File

@@ -26,32 +26,38 @@ $actionAjax = isset( $_REQUEST['actionAjax'] ) ? $_REQUEST['actionAjax'] : null;
if ($actionAjax == 'historyGridList_JXP') {
G::LoadClass( 'case' );
G::LoadClass( "BasePeer" );
G::LoadClass('case');
G::LoadClass("BasePeer");
global $G_PUBLISH;
$c = Cases::getTransferHistoryCriteria( $_SESSION['APPLICATION'] );
$criteria = Cases::getTransferHistoryCriteria($_SESSION['APPLICATION']);
$rs = GulliverBasePeer::doSelectRs($criteria);
$totalCount = $rs->getRecordCount();
$start = $_REQUEST["start"];
$limit = $_REQUEST["limit"];
$criteria->setLimit($limit);
$criteria->setOffset($start);
$rs = GulliverBasePeer::doSelectRs($criteria);
$rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$result = new stdClass();
$aProcesses = Array ();
$rs = GulliverBasePeer::doSelectRs( $c );
$rs->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$rs->next();
for ($j = 0; $j < $rs->getRecordCount(); $j ++) {
$aProcesses = Array();
while ($rs->next()) {
$result = $rs->getRow();
$result["ID_HISTORY"] = $result["PRO_UID"] . '_' . $result["APP_UID"] . '_' . $result["TAS_UID"];
$aProcesses[] = $result;
$rs->next();
}
$newDir = '/tmp/test/directory';
G::verifyPath( $newDir );
G::verifyPath($newDir);
$r = new stdclass();
$r->data = \ProcessMaker\Util\DateTime::convertUtcToTimeZone($aProcesses);
$r->totalCount = 2;
$r->totalCount = $totalCount;
echo G::json_encode( $r );
echo G::json_encode($r);
}
if ($actionAjax == 'historyGridListChangeLogPanelBody_JXP') {

View File

@@ -93,6 +93,7 @@ if ($actionAjax == 'messageHistoryGridList_JXP') {
}
}
$totalCount = 0;
foreach ($appMessageArray as $index => $value) {
if (($appMessageArray[$index]['APP_MSG_SHOW_MESSAGE'] == 1 && $respMess != 'BLOCK' ) &&
($appMessageArray[$index]['DEL_INDEX'] == 0 || in_array($appMessageArray[$index]['DEL_INDEX'], $delIndex ))) {
@@ -104,12 +105,6 @@ if ($actionAjax == 'messageHistoryGridList_JXP') {
$appMessageArray[$index]['APP_MSG_BODY'] = str_replace('\"','"',$appMessageArray[$index]['APP_MSG_BODY']);
$appMessageArray[$index]['APP_MSG_BODY'] = str_replace('"','\"',$appMessageArray[$index]['APP_MSG_BODY']);
$aProcesses[] = array_merge($appMessageArray[$index], array('MSGS_HISTORY' => $respMess));
}
}
$totalCount = 0;
foreach ($appMessageCountArray as $index => $value) {
if ($appMessageCountArray[$index]['APP_MSG_SHOW_MESSAGE'] == 1) {
$totalCount ++;
}
}
@@ -127,9 +122,11 @@ if ($actionAjax == 'messageHistoryGridList_JXP') {
$r->data[0] = array('APP_MSG_TYPE' => '');
}
$r->data[0]["APP_MSG_TYPE"] = (array_key_exists($r->data[0]["APP_MSG_TYPE"], $arrayToTranslation)) ?
$arrayToTranslation[$r->data[0]["APP_MSG_TYPE"]] :
$r->data[0]["APP_MSG_TYPE"];
foreach ($r->data as $key => $value) {
$r->data[$key]["APP_MSG_TYPE"] = array_key_exists($r->data[$key]["APP_MSG_TYPE"], $arrayToTranslation) ?
$arrayToTranslation[$r->data[$key]["APP_MSG_TYPE"]] :
$r->data[$key]["APP_MSG_TYPE"];
}
}
echo G::json_encode( $r );

View File

@@ -1,111 +1,68 @@
<?php
$action = (isset($_REQUEST["action"])) ? $_REQUEST["action"] : "consolidated";
$arrayTabItem = array();
$oCriteria = new Criteria("workflow");
$oCriteria->addSelectColumn(CaseConsolidatedCorePeer::CON_STATUS);
$oCriteria->add(CaseConsolidatedCorePeer::CON_STATUS, "ACTIVE");
$oCriteria->add(CaseConsolidatedCorePeer::CON_STATUS, 'ACTIVE');
$activeNumRows = CaseConsolidatedCorePeer::doCount($oCriteria);
G::LoadClass ("BasePeer");
G::LoadClass ("configuration");
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(CaseConsolidatedCorePeer::TAS_UID);
$oCriteria->addSelectColumn(TaskPeer::TAS_TITLE);
$oCriteria->addJoin(CaseConsolidatedCorePeer::TAS_UID,TaskPeer::TAS_UID, Criteria::LEFT_JOIN);
$params = array(); //This will be filled with the parameters
$sql = BasePeer::createSelectSql($oCriteria, $params);
$oDataset = CaseConsolidatedCorePeer::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);
$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 {
$config = getAdditionalFields($action, $confCasesList);
$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);
$criteria = new Criteria();
$criteria->addAsColumn('NUMREC', 'COUNT(' . ListInboxPeer::TAS_UID . ')');
$criteria->addSelectColumn(ListInboxPeer::PRO_UID);
$criteria->addSelectColumn(ProcessPeer::PRO_TITLE);
$criteria->addSelectColumn(ListInboxPeer::TAS_UID);
$criteria->addSelectColumn(TaskPeer::TAS_TITLE);
$criteria->addSelectColumn(CaseConsolidatedCorePeer::DYN_UID);
$criteria->addJoin(CaseConsolidatedCorePeer::TAS_UID, ListInboxPeer::TAS_UID, Criteria::LEFT_JOIN);
$criteria->addJoin(ListInboxPeer::PRO_UID, ProcessPeer::PRO_UID, Criteria::LEFT_JOIN);
$criteria->addJoin(ListInboxPeer::TAS_UID, TaskPeer::TAS_UID, Criteria::LEFT_JOIN);
$criteria->add(ListInboxPeer::USR_UID, $usrUid, Criteria::EQUAL);
$criteria->add(ListInboxPeer::APP_STATUS, 'TO_DO', Criteria::EQUAL);
$criteria->addGroupByColumn(ListInboxPeer::TAS_UID);
$rsSql = CaseConsolidatedCorePeer::doSelectRS($criteria);
$rsSql->setFetchmode(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"];
$processUid = $row['PRO_UID'];
$proTitle = $row['PRO_TITLE'];
$taskUid = $row['TAS_UID'];
$taskTitle = $row['TAS_TITLE'];
$dynaformUid = $row['DYN_UID'];
$tabTitle = $taskTitle . " (" . (($activeNumRows > 0)? $row["NUMREC"] : 0) . ")";
$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");
$tabTitle = htmlentities(substr($proTitle, 0, 25) . ((strlen($proTitle) > 25) ? "..." : null) . " / " . $tabTitle, ENT_QUOTES, "UTF-8");
$oProcess = new Process();
$isBpmn = $oProcess->isBpmnProcess($processUid);
if($isBpmn){
$isBpmn = $oProcess->isBpmnProcess($processUid);
if ($isBpmn) {
$arrayTabItem[] = "
{
title: \"<span onmouseover=\\\"toolTipTab('$grdTitle', 1);\\\" onmouseout=\\\"toolTipTab('', 0);\\\">$tabTitle</span>\",
@@ -116,7 +73,7 @@ while ($rsSql->next()) {
}
}
}";
}else{
} else {
$arrayTabItem[] = "
{
title: \"<span onmouseover=\\\"toolTipTab('$grdTitle', 1);\\\" onmouseout=\\\"toolTipTab('', 0);\\\">$tabTitle</span>\",
@@ -188,30 +145,20 @@ if (count($arrayTabItem) > 0) {
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"));
$cProcess = new Criteria("workflow");
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(ProcessPeer::PRO_TITLE);
$del = DBAdapter::getStringDelimiter();
$cProcess->add(ProcessPeer::PRO_STATUS, "ACTIVE");
$oDataset = ProcessPeer::doSelectRS($cProcess);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
@@ -226,21 +173,19 @@ function getProcessArray($action, $userUid)
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);
$cProcess->addSelectColumn(ProcessPeer::PRO_UID);
$cProcess->addSelectColumn(ProcessPeer::PRO_TITLE);
$oDataset = ProcessPeer::doSelectRS($cProcess);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$processes[] = array($aRow["PRO_UID"], $aRow["APP_PRO_TITLE"]);
$processes[] = array($aRow["PRO_UID"], $aRow["PRO_TITLE"]);
$oDataset->next();
}

View File

@@ -54,6 +54,30 @@ if ($actionAjax == "userValues") {
$users = filterUserListArray($users, $query);
//now get users, just for the Search action
switch ($action) {
case 'to_reassign':
$cUsers = $oAppCache->getToReassignListCriteria(null);
$cUsers->addSelectColumn(AppCacheViewPeer::USR_UID);
if (g::MySQLSintaxis()) {
$cUsers->addGroupByColumn(AppCacheViewPeer::USR_UID);
}
if (!is_null($query)) {
$filters = $cUsers->getNewCriterion(UsersPeer::USR_FIRSTNAME, '%' . $query . '%', Criteria::LIKE)->addOr(
$cUsers->getNewCriterion(UsersPeer::USR_LASTNAME, '%' . $query . '%', Criteria::LIKE)->addOr(
$cUsers->getNewCriterion(UsersPeer::USR_USERNAME, '%' . $query . '%', Criteria::LIKE)));
$cUsers->addAnd($filters);
}
$cUsers->setLimit(20);
$cUsers->addAscendingOrderByColumn(AppCacheViewPeer::APP_CURRENT_USER);
$oDataset = AppCacheViewPeer::doSelectRS($cUsers, Propel::getDbConnection('workflow_ro'));
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$users[] = array("USR_UID" => $aRow['USR_UID'], "USR_FULLNAME" => $aRow['APP_CURRENT_USER']);
$oDataset->next();
}
break;
case 'search_simple':
case 'search':
G::LoadClass("configuration");

View File

@@ -548,46 +548,49 @@ switch (($_POST['action']) ? $_POST['action'] : $_REQUEST['action']) {
G::RenderPage( 'publish', 'raw' );
break;
case 'uploadDocumentGrid_Ajax':
G::LoadClass( 'case' );
G::LoadClass( "BasePeer" );
G::LoadClass('case');
G::LoadClass("BasePeer");
global $G_PUBLISH;
$arrayToTranslation = array(
"INPUT" => G::LoadTranslation("ID_INPUT_DB"),
"OUTPUT" => G::LoadTranslation("ID_OUTPUT_DB"),
"INPUT" => G::LoadTranslation("ID_INPUT_DB"),
"OUTPUT" => G::LoadTranslation("ID_OUTPUT_DB"),
"ATTACHED" => G::LoadTranslation("ID_ATTACHED_DB")
);
$oCase = new Cases();
$aProcesses = Array ();
$aProcesses = Array();
$G_PUBLISH = new Publisher();
$c = $oCase->getAllUploadedDocumentsCriteria( $_SESSION['PROCESS'], $_SESSION['APPLICATION'],
$_SESSION['CURRENT_TASK'], $_SESSION['USER_LOGGED'], $_SESSION['INDEX']);
if ($c->getDbName() == 'dbarray') {
$rs = ArrayBasePeer::doSelectRs( $c );
$criteria = $oCase->getAllUploadedDocumentsCriteria($_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['CURRENT_TASK'], $_SESSION['USER_LOGGED'], $_SESSION['INDEX']);
if ($criteria->getDbName() == 'dbarray') {
$rs = ArrayBasePeer::doSelectRs($criteria);
} else {
$rs = GulliverBasePeer::doSelectRs( $c );
$rs = GulliverBasePeer::doSelectRs($criteria);
}
$totalCount = $rs->getRecordCount();
$rs->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$rs->next();
$start = $_REQUEST["start"];
$limit = $_REQUEST["limit"];
$totalCount = 0;
for ($j = 0; $j < $rs->getRecordCount(); $j ++) {
$criteria->setLimit($limit);
$criteria->setOffset($start);
if ($criteria->getDbName() == 'dbarray') {
$rs = ArrayBasePeer::doSelectRs($criteria);
} else {
$rs = GulliverBasePeer::doSelectRs($criteria);
}
$rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
while ($rs->next()) {
$result = $rs->getRow();
$result["TYPE"] = (array_key_exists($result["TYPE"], $arrayToTranslation))? $arrayToTranslation[$result["TYPE"]] : $result["TYPE"];
$result["TYPE"] = (array_key_exists($result["TYPE"], $arrayToTranslation)) ? $arrayToTranslation[$result["TYPE"]] : $result["TYPE"];
$aProcesses[] = $result;
$rs->next();
$totalCount ++;
}
$r = new stdclass();
$r->data = $aProcesses;
$r->totalCount = $totalCount;
echo Bootstrap::json_encode( $r );
echo Bootstrap::json_encode($r);
break;
case 'generateDocumentGrid_Ajax':

View File

@@ -56,12 +56,13 @@ if (isset($_SESSION['ACTION']) && ($_SESSION['ACTION'] == 'jump')) {
$Fields = $oCase->loadCase( $_SESSION['APPLICATION'], $_SESSION['INDEX']);
}
//Check the participated
$participated = $oCase->userParticipatedInCase( $_GET['APP_UID'], $_SESSION['USER_LOGGED'] );
//Check if is Supervisor
$processUser = new ProcessUser();
$userAccess = $processUser->validateUserAccess($Fields['PRO_UID'], $_SESSION['USER_LOGGED']);
if ($RBAC->userCanAccess( 'PM_ALLCASES' ) < 0 && $participated == 0) {
/*if (strtoupper($Fields['APP_STATUS']) != 'COMPLETED') {
$oCase->thisIsTheCurrentUser($_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['USER_LOGGED'], 'SHOW_MESSAGE');
}*/
if ($RBAC->userCanAccess( 'PM_ALLCASES' ) < 0 && !$participated && !$userAccess) {
$aMessage['MESSAGE'] = G::LoadTranslation( 'ID_NO_PERMISSION_NO_PARTICIPATED' );
$G_PUBLISH = new Publisher();
$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'login/showMessage', '', $aMessage );
@@ -77,12 +78,10 @@ if (isset( $aRow['APP_TYPE'] )) {
$Fields['STATUS'] = ucfirst( strtolower( G::LoadTranslation( 'ID_CANCELLED' ) ) );
break;
}
//$Fields['STATUS'] = $aRow['APP_TYPE'];
}
$actions = 'false';
if ($_GET['action'] == 'paused') {
if (isset($_GET['action']) && $_GET['action'] == 'paused') {
$actions = 'true';
}

View File

@@ -1009,7 +1009,7 @@ try {
$aFields['TASK'][$sKey]['NEXT_TASK']['TAS_TRANSFER_HIDDEN_FLY'] = "<input type=hidden name='" . $hiddenName . "[NEXT_TASK][TAS_TRANSFER_HIDDEN_FLY]' id='" . $hiddenName . "[NEXT_TASK][TAS_TRANSFER_HIDDEN_FLY]' value=" . $aValues['NEXT_TASK']['TAS_TRANSFER_FLY'] . ">";
if ($aValues['NEXT_TASK']['TAS_TRANSFER_FLY'] == 'true') {
$aFields['TASK'][$sKey]['NEXT_TASK']['TAS_DURATION'] = '<input type="text" size="5" name="' . $hiddenName . '[NEXT_TASK][TAS_DURATION]" id="' . $hiddenName . '[NEXT_TASK][TAS_DURATION]" value="' . $aValues['NEXT_TASK']['TAS_DURATION'] . '">';
$hoursSelected = $daysSelected = '';
$hoursSelected = $daysSelected = $minSelected = '';
if ($aFields['TASK'][$sKey]['NEXT_TASK']['TAS_TIMEUNIT'] == 'HOURS') {
$hoursSelected = "selected = 'selected'";
} else {

View File

@@ -26,7 +26,7 @@ try {
G::LoadSystem('inputfilter');
$filter = new InputFilter();
$_POST = $filter->xssFilterHard($_POST);
G::LoadInclude( 'ajax' );
if (isset( $_POST['form'] )) {
$_POST = $_POST['form'];
@@ -153,7 +153,6 @@ try {
$oDataset->next();
$aRow = $oDataset->getRow();
$oContent = new Content();
if($locale != "en"){ //Default Lengage 'en'
if($locale != SYS_LANG){ //Current lenguage
//THERE IS NO ANY CASE STARTED FROM THES LANGUAGE

View File

@@ -363,10 +363,9 @@ button.x-btn-text:focus,.x-combo-selected{
/*
Pone en mayúsuclas el texto que se encuentra en el toolbar de arriba
toolbar, set 'text-transform: capitalize;' for capitalize (transforms the first character of each word to uppercase)
*/
.x-panel-tbar .x-toolbar-cell{
text-transform: capitalize;
}
/*TREE*/
@@ -911,7 +910,8 @@ antes funcionaba.
top: 40%;
left: 40%;
font-size: 15px;
color:black filter:progid:DXImageTransform.Microsoft.Alpha(opacity=80);
color:black;
filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=80)";
opacity: .55;
-moz-opacity: .55;
}

View File

@@ -523,10 +523,9 @@ button.x-btn-text:focus,
padding-left: 18px !important;
}
/*
Pone en mayC:suclas el texto que se encuentra en el toolbar de arriba
toolbar, set 'text-transform: capitalize;' for capitalize (transforms the first character of each word to uppercase)
*/
.x-panel-tbar .x-toolbar-cell {
text-transform: capitalize;
}
/*TREE*/
#ext-gen38.x-tree-root-ct .x-tree-node-el {

View File

@@ -388,10 +388,9 @@ button.x-btn-text:focus,.x-combo-selected{
/*
Pone en mayúsuclas el texto que se encuentra en el toolbar de arriba
toolbar, set 'text-transform: capitalize;' for capitalize (transforms the first character of each word to uppercase)
*/
.x-panel-tbar .x-toolbar-cell{
text-transform: capitalize;
}
/*TREE*/
@@ -930,7 +929,8 @@ antes funcionaba.
top: 40%;
left: 40%;
font-size: 15px;
color:black filter:progid:DXImageTransform.Microsoft.Alpha(opacity=80);
color:black;
filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=80)";
opacity: .55;
-moz-opacity: .55;
}

View File

@@ -360,10 +360,9 @@ button.x-btn-text:focus,.x-combo-selected{
/*
Pone en mayúsuclas el texto que se encuentra en el toolbar de arriba
toolbar, set 'text-transform: capitalize;' for capitalize (transforms the first character of each word to uppercase)
*/
.x-panel-tbar .x-toolbar-cell{
text-transform: capitalize;
}
/*TREE*/
@@ -891,7 +890,8 @@ antes funcionaba.
top: 40%;
left: 40%;
font-size: 15px;
color:black filter:progid:DXImageTransform.Microsoft.Alpha(opacity=80);
color:black;
filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=80)";
opacity: .55;
-moz-opacity: .55;
}

View File

@@ -12,6 +12,7 @@ use \CasesPeer;
class Cases
{
private $formatFieldNameInUppercase = true;
private $messageResponse = [];
/**
* Set the format of the fields name (uppercase, lowercase)
@@ -2878,6 +2879,7 @@ class Cases
*
* return json Return an json with the result of the reassigned cases.
*/
public function doPostReassign($data)
{
if (!is_array($data)) {
@@ -2888,112 +2890,125 @@ class Cases
return;
}
}
$dataResponse = $data;
//Verify data
$arrayCasesToReassign = $data['cases'];
$arrayMsg = [];
foreach ($arrayCasesToReassign as $key => $value) {
$appDelegation = \AppDelegationPeer::retrieveByPK($value['APP_UID'], $value['DEL_INDEX']);
if (is_null($appDelegation)) {
$arrayMsg[] = [
'app_uid' => $value['APP_UID'],
'del_index' => $value['DEL_INDEX'],
'result' => 0,
'status' => 'DELEGATION_NOT_EXISTS'
];
}
}
if (!empty($arrayMsg)) {
return ['cases' => $arrayMsg];
}
$task = new \ProcessMaker\BusinessModel\Task();
$supervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor();
$userUid = $data['usr_uid_target'];
foreach ($arrayCasesToReassign as $value) {
$appDelegation = \AppDelegationPeer::retrieveByPK($value['APP_UID'], $value['DEL_INDEX']);
//Verify data
$taskUid = $appDelegation->getTasUid();
$flagBoolean = $task->checkUserOrGroupAssignedTask($taskUid, $userUid);
$flagps = $supervisor->isUserProcessSupervisor($appDelegation->getProUid(), $userUid);
if (!$flagBoolean && !$flagps) {
$arrayMsg[] = [
'app_uid' => $value['APP_UID'],
'del_index' => $value['DEL_INDEX'],
'result' => 0,
'status' => 'USER_NOT_ASSIGNED_TO_TASK'
];
}
}
if (!empty($arrayMsg)) {
return ['cases' => $arrayMsg];
}
G::LoadClass('case');
$oCases = new \Cases();
$appDelegation = new \AppDelegation();
$casesToReassign = $data['cases'];
$result = 0;
if (sizeof($casesToReassign)) {
foreach ($casesToReassign as $key => $val) {
$usrUid = '';
if (array_key_exists('USR_UID', $val)) {
if ($val['USR_UID'] != '') {
$usrUid = $val['USR_UID'];
$oCases = new \Cases();
foreach ($casesToReassign as $key => $val) {
$appDelegation = \AppDelegationPeer::retrieveByPK($val['APP_UID'], $val['DEL_INDEX']);
$existDelegation = $this->validateReassignData($appDelegation, $val, $data, 'DELEGATION_NOT_EXISTS');
if ($existDelegation) {
$existDelegation = $this->validateReassignData($appDelegation, $val, $data, 'USER_NOT_ASSIGNED_TO_TASK');
if ($existDelegation) {
$usrUid = '';
if (array_key_exists('USR_UID', $val)) {
if ($val['USR_UID'] != '') {
$usrUid = $val['USR_UID'];
}
}
if ($usrUid == '') {
$fields = $appDelegation->toArray(\BasePeer::TYPE_FIELDNAME);
$usrUid = $fields['USR_UID'];
}
//Will be not able reassign a case when is paused
$flagPaused = $this->validateReassignData($appDelegation, $val, $data, 'ID_REASSIGNMENT_PAUSED_ERROR');
//Current users of OPEN DEL_INDEX thread
$flagSameUser = $this->validateReassignData($appDelegation, $val, $data, 'REASSIGNMENT_TO_THE_SAME_USER');
//reassign case
if ($flagPaused && $flagSameUser) {
$reassigned = $oCases->reassignCase($val['APP_UID'], $val['DEL_INDEX'], $usrUid, $data['usr_uid_target']);
$result = $reassigned ? 1 : 0;
$this->messageResponse = [
'APP_UID' => $val['APP_UID'],
'DEL_INDEX' => $val['DEL_INDEX'],
'RESULT' => $result,
'STATUS' => 'SUCCESS'
];
}
}
}
$dataResponse['cases'][$key] = $this->messageResponse;
}
unset($dataResponse['usr_uid_target']);
return G::json_encode($dataResponse);
}
if ($usrUid == '') {
$fields = $appDelegation->load($val['APP_UID'], $val['DEL_INDEX']);
$usrUid = $fields['USR_UID'];
}
//Will be not able reassign a case when is paused
$flagReassign = true;
if (\AppDelay::isPaused($val['APP_UID'], $val['DEL_INDEX'])) {
$dataResponse['cases'][$key]['result'] = 0;
$dataResponse['cases'][$key]['status'] = \G::LoadTranslation('ID_REASSIGNMENT_PAUSED_ERROR');
$flagReassign = false;
/**
* @param $appDelegation
* @param $value
* @param $data
* @param string $type
* @return bool
*/
private function validateReassignData($appDelegation, $value, $data, $type = 'DELEGATION_NOT_EXISTS')
{
$return = true;
switch ($type) {
case 'DELEGATION_NOT_EXISTS':
if (is_null($appDelegation)) {
$this->messageResponse = [
'APP_UID' => $value['APP_UID'],
'DEL_INDEX' => $value['DEL_INDEX'],
'RESULT' => 0,
'STATUS' => $type
];
$return = false;
}
break;
case 'USER_NOT_ASSIGNED_TO_TASK':
$task = new \ProcessMaker\BusinessModel\Task();
$supervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor();
$taskUid = $appDelegation->getTasUid();
$flagBoolean = $task->checkUserOrGroupAssignedTask($taskUid, $data['usr_uid_target']);
$flagps = $supervisor->isUserProcessSupervisor($appDelegation->getProUid(), $data['usr_uid_target']);
//Current users of OPEN DEL_INDEX thread
$aCurUser = $appDelegation->getCurrentUsers($val['APP_UID'], $val['DEL_INDEX']);
if (!$flagBoolean && !$flagps) {
$this->messageResponse = [
'APP_UID' => $value['APP_UID'],
'DEL_INDEX' => $value['DEL_INDEX'],
'RESULT' => 0,
'STATUS' => 'USER_NOT_ASSIGNED_TO_TASK'
];
$return = false;
}
break;
case 'ID_REASSIGNMENT_PAUSED_ERROR':
if (\AppDelay::isPaused($value['APP_UID'], $value['DEL_INDEX'])) {
$this->messageResponse = [
'APP_UID' => $value['APP_UID'],
'DEL_INDEX' => $value['DEL_INDEX'],
'RESULT' => 0,
'STATUS' => \G::LoadTranslation('ID_REASSIGNMENT_PAUSED_ERROR')
];
$return = false;
}
break;
case 'REASSIGNMENT_TO_THE_SAME_USER':
$aCurUser = $appDelegation->getCurrentUsers($value['APP_UID'], $value['DEL_INDEX']);
if (!empty($aCurUser)) {
foreach ($aCurUser as $keyAux => $value) {
if ($value === $data['usr_uid_target']) {
$flagReassign = false;
$result = 1;
foreach ($aCurUser as $keyAux => $val) {
if ($val === $data['usr_uid_target']) {
$this->messageResponse = [
'APP_UID' => $value['APP_UID'],
'DEL_INDEX' => $value['DEL_INDEX'],
'RESULT' => 1,
'STATUS' => 'SUCCESS'
];
$return = false;
}
}
} else {
//DEL_INDEX is CLOSED
$dataResponse['cases'][$key]['result'] = 0;
$dataResponse['cases'][$key]['status'] = \G::LoadTranslation('ID_REASSIGNMENT_ERROR');
$flagReassign = false;
$this->messageResponse = [
'APP_UID' => $value['APP_UID'],
'DEL_INDEX' => $value['DEL_INDEX'],
'RESULT' => 0,
'STATUS' => \G::LoadTranslation('ID_REASSIGNMENT_ERROR')
];
$return = false;
}
if ($flagReassign) {
$reassigned = $oCases->reassignCase($val['APP_UID'], $val['DEL_INDEX'], $usrUid, $data['usr_uid_target']);
$result = $reassigned ? 1 : 0;
$dataResponse['cases'][$key]['status'] = 'SUCCESS';
}
$dataResponse['cases'][$key]['result'] = $result;
}
break;
}
unset($dataResponse['usr_uid_target']);
return G::json_encode($dataResponse);
return $return;
}
/**
@@ -3018,11 +3033,11 @@ class Cases
public function checkUserHasPermissionsOrSupervisor($userUid, $applicationUid, $dynaformUid)
{
$arrayApplicationData = $this->getApplicationRecordByPk($applicationUid, [], false);
//Check whether the process supervisor
$supervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor();
$userAccess = $supervisor->isUserProcessSupervisor($arrayApplicationData['PRO_UID'], $userUid);
if (!empty($dynaformUid)) {
$arrayApplicationData = $this->getApplicationRecordByPk($applicationUid, [], false);
//Check whether the process supervisor
$supervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor();
$userAccess = $supervisor->isUserProcessSupervisor($arrayApplicationData['PRO_UID'], $userUid);
//Check if have objects assigned (Supervisor)
$cases = new \Cases();
$resultDynaForm = $cases->getAllDynaformsStepsToRevise($applicationUid);
@@ -3065,7 +3080,7 @@ class Cases
} else {
$arrayResult = $this->getStatusInfo($applicationUid, 0, $userUid);
$flagParticipated = false;
if ($arrayResult) {
if ($arrayResult || $userAccess) {
$flagParticipated = true;
}
return $flagParticipated;

View File

@@ -6,7 +6,6 @@ use \Smarty;
use \Criteria;
use \ReportTablePeer;
use \ResultSet;
use \AppCacheViewPeer;
use \CaseConsolidatedCorePeer;
use \ContentPeer;
@@ -31,15 +30,11 @@ class Consolidated
$criteria = new Criteria();
$criteria->addSelectColumn(CaseConsolidatedCorePeer::DYN_UID);
$criteria->addSelectColumn(\ReportTablePeer::REP_TAB_NAME);
$criteria->addAsColumn('CON_VALUE', \ReportTablePeer::REP_TAB_TITLE);
$criteria->addSelectColumn(\ReportTablePeer::REP_TAB_UID);
$criteria->addSelectColumn(ContentPeer::CON_VALUE);
$criteria->addSelectColumn(CaseConsolidatedCorePeer::CON_STATUS);
$criteria->addJoin( CaseConsolidatedCorePeer::REP_TAB_UID, ReportTablePeer::REP_TAB_UID, Criteria::LEFT_JOIN );
$criteria->addJoin( CaseConsolidatedCorePeer::REP_TAB_UID, ContentPeer::CON_ID, Criteria::LEFT_JOIN );
$criteria->add( ContentPeer::CON_CATEGORY, "REP_TAB_TITLE");
$criteria->add( ContentPeer::CON_LANG, SYS_LANG);
$criteria->add( CaseConsolidatedCorePeer::TAS_UID, $tas_uid, Criteria::EQUAL );
$criteria->add( CaseConsolidatedCorePeer::CON_STATUS, 'ACTIVE', Criteria::EQUAL );
@@ -74,7 +69,6 @@ class Consolidated
*/
public function postDerivate ($app_uid, $app_number, $del_index, $usr_uid, $fieldName='', $fieldValue='')
{
G::LoadClass("library");
G::LoadClass("wsBase");
G::LoadClass("case");
$ws = new \wsBase();
@@ -118,7 +112,7 @@ class Consolidated
$response = array();
$response["casesNumRec"] = \Library::getCasesNumRec($usr_uid);
$response["casesNumRec"] = self::getCasesNumRec($usr_uid);
if (is_array($res)) {
$response ["message"] = "<b>" . G::LoadTranslation("ID_CASE") . " " . $app_number . "</b> " .
@@ -130,6 +124,35 @@ class Consolidated
return $response;
}
/**
* @param $userUid
* @return int
*/
public static function getCasesNumRec($userUid)
{
$criteria = new Criteria("workflow");
$criteria->addSelectColumn(CaseConsolidatedCorePeer::CON_STATUS);
$criteria->add(CaseConsolidatedCorePeer::CON_STATUS, "ACTIVE");
$activeNumRec = CaseConsolidatedCorePeer::doCount($criteria);
$numRec = 0;
$criteria->clearSelectColumns();
$criteria->addAsColumn('NUMREC', 'COUNT(' . \ListInboxPeer::TAS_UID . ')');
$criteria->addJoin(CaseConsolidatedCorePeer::TAS_UID, \ListInboxPeer::TAS_UID, \Criteria::LEFT_JOIN);
$criteria->add(\ListInboxPeer::USR_UID, $userUid, Criteria::EQUAL);
$criteria->add(\ListInboxPeer::APP_STATUS, 'TO_DO', Criteria::EQUAL);
$rsSql = CaseConsolidatedCorePeer::doSelectRS($criteria);
$rsSql->setFetchmode(ResultSet::FETCHMODE_ASSOC);
while ($rsSql->next()) {
$row = $rsSql->getRow();
$numRec = $row["NUMREC"];
}
$numRec = ($activeNumRec > 0) ? $numRec : 0;
return $numRec;
}
/**
* Put Data Generate
@@ -235,11 +258,12 @@ class Consolidated
$response = array();
$searchFields = array();
//
$query = "SELECT REP_TAB_UID
FROM CASE_CONSOLIDATED
WHERE TAS_UID = '" . $tas_uid . "'";
$caseConsolidated = executeQuery($query);
$criteria = new Criteria();
$criteria->addSelectColumn(CaseConsolidatedCorePeer::REP_TAB_UID);
$criteria->add(CaseConsolidatedCorePeer::TAS_UID, $tas_uid, Criteria::EQUAL);
$caseConsolidated = CaseConsolidatedCorePeer::doSelectRS($criteria);
$caseConsolidated->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$tableUid = null;
$tableName = null;
@@ -273,12 +297,11 @@ class Consolidated
$oCriteria->addSelectColumn("*");
$oCriteria->addSelectColumn($tableName . ".APP_UID");
$oCriteria->addJoin($tableName . ".APP_UID", AppCacheViewPeer::APP_UID, Criteria::LEFT_JOIN);
$oCriteria->addJoin($tableName . ".APP_UID", \ListInboxPeer::APP_UID, \Criteria::LEFT_JOIN);
$oCriteria->add(AppCacheViewPeer::DEL_THREAD_STATUS, "OPEN");
$oCriteria->add(AppCacheViewPeer::TAS_UID, $tas_uid);
$oCriteria->add(AppCacheViewPeer::USR_UID, $usr_uid);
$oCriteria->add(AppCacheViewPeer::APP_STATUS, "TO_DO");
$oCriteria->add(\ListInboxPeer::TAS_UID, $tas_uid);
$oCriteria->add(\ListInboxPeer::USR_UID, $usr_uid);
$oCriteria->add(\ListInboxPeer::APP_STATUS, "TO_DO");
if ($search != "") {
$filename = $pro_uid . PATH_SEP . $dyn_uid . ".xml";
@@ -333,10 +356,10 @@ class Consolidated
if ($oTmpCriteria != null) {
$oCriteria->add(
$oCriteria->getNewCriterion(AppCacheViewPeer::APP_NUMBER, $search, Criteria::LIKE)->addOr($oTmpCriteria)
$oCriteria->getNewCriterion(\ListInboxPeer::APP_NUMBER, $search, Criteria::LIKE)->addOr($oTmpCriteria)
);
} else {
$oCriteria->add($oCriteria->getNewCriterion(AppCacheViewPeer::APP_NUMBER, $search, Criteria::LIKE));
$oCriteria->add($oCriteria->getNewCriterion(\ListInboxPeer::APP_NUMBER, $search, Criteria::LIKE));
}
}
@@ -344,7 +367,7 @@ class Consolidated
$filter = new \InputFilter();
if ($sort != "") {
$reportTable = new ReportTables();
$reportTable = new \ReportTables();
$arrayReportTableVar = $reportTable->getTableVars($tableUid);
$tableName = $filter->validateInput($tableName);
$sort = $filter->validateInput($sort);
@@ -352,7 +375,7 @@ class Consolidated
$sort = strtoupper($sort);
eval('$field = ' . $tableName . 'Peer::' . $sort . ';');
} else {
eval('$field = AppCacheViewPeer::' . $sort . ';');
eval('$field = \ListInboxPeer::' . $sort . ';');
}
if ($dir == "ASC") {
@@ -361,7 +384,7 @@ class Consolidated
$oCriteria->addDescendingOrderByColumn($field);
}
} else {
$oCriteria->addDescendingOrderByColumn(AppCacheViewPeer::APP_NUMBER);
$oCriteria->addDescendingOrderByColumn(\ListInboxPeer::APP_NUMBER);
}
//pagination pagination attributes
@@ -369,7 +392,7 @@ class Consolidated
$oCriteria->setOffset($start);
//end of pagination attributes
$oDataset = AppCacheViewPeer::doSelectRS($oCriteria);
$oDataset = \ListInboxPeer::doSelectRS($oCriteria);
//eval('$oDataset = '.$className.'Peer::doSelectRS($oCriteria);');
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
@@ -404,17 +427,15 @@ class Consolidated
$response["data"][] = $val;
}
$query = "SELECT COUNT(APP_CACHE_VIEW.TAS_UID) AS QTY
FROM CASE_CONSOLIDATED
LEFT JOIN CONTENT ON (CASE_CONSOLIDATED.TAS_UID = CONTENT.CON_ID)
LEFT JOIN APP_CACHE_VIEW ON (CASE_CONSOLIDATED.TAS_UID = APP_CACHE_VIEW.TAS_UID)
LEFT JOIN TASK ON (CASE_CONSOLIDATED.TAS_UID = TASK.TAS_UID)
WHERE CONTENT.CON_CATEGORY = 'TAS_TITLE' AND
CONTENT.CON_LANG = 'en' AND
APP_CACHE_VIEW.DEL_THREAD_STATUS = 'OPEN' AND
USR_UID = '" . $usr_uid . "' AND
APP_CACHE_VIEW.TAS_UID = '" . $tas_uid . "'";
$count = executeQuery($query);
$criteria = new Criteria();
$criteria->addAsColumn('QTY', 'COUNT(' . \ListInboxPeer::TAS_UID . ')');
$criteria->addJoin(\CaseConsolidatedCorePeer::TAS_UID, \TaskPeer::TAS_UID, \Criteria::LEFT_JOIN);
$criteria->addJoin(\CaseConsolidatedCorePeer::TAS_UID, \ListInboxPeer::TAS_UID, \Criteria::LEFT_JOIN);
$criteria->add(\ListInboxPeer::USR_UID, $usr_uid, \Criteria::EQUAL);
$criteria->add(\ListInboxPeer::TAS_UID, $tas_uid, \Criteria::EQUAL);
$criteria->add(\ListInboxPeer::APP_STATUS, 'TO_DO', \Criteria::EQUAL);
$count = CaseConsolidatedCorePeer::doSelectRS($criteria);
$count->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$totalCount = 0;
foreach ($count as $item) {
@@ -1115,10 +1136,9 @@ class Consolidated
{
$criteria = new Criteria();
$criteria->add(\CaseConsolidatedCorePeer::CON_STATUS, 'ACTIVE');
$criteria->addJoin(\CaseConsolidatedCorePeer::TAS_UID, \AppCacheViewPeer::TAS_UID, Criteria::LEFT_JOIN);
$criteria->add(\AppCacheViewPeer::USR_UID, $usrUid);
$criteria->add(\AppCacheViewPeer::DEL_THREAD_STATUS, 'OPEN');
$criteria->add(\AppCacheViewPeer::APP_STATUS, 'TO_DO');
$criteria->addJoin(\CaseConsolidatedCorePeer::TAS_UID, \ListInboxPeer::TAS_UID, Criteria::LEFT_JOIN);
$criteria->add(\ListInboxPeer::USR_UID, $usrUid, Criteria::EQUAL);
$criteria->add(\ListInboxPeer::APP_STATUS, 'TO_DO',Criteria::EQUAL);
$total = \CaseConsolidatedCorePeer::doCount($criteria);
return (int)$total;
}

View File

@@ -69,16 +69,18 @@ class Light
$task->setArrayParamException(array("taskUid" => "act_uid", "stepUid" => "step_uid"));
$webEntryEvent = new \ProcessMaker\BusinessModel\WebEntryEvent();
$webEntryEvent->setFormatFieldNameInUppercase(false);
$webEntryEvent->setArrayFieldNameForException(array("processUid" => "prj_uid"));
$arrayWebEntryEvent = array();
$allWebEntryEvents = $webEntryEvent->getAllWebEntryEvents();
foreach ($allWebEntryEvents as $webEntryEvents) {
$arrayWebEntryEvent[] = $webEntryEvents["ACT_UID"];
}
$step = new \ProcessMaker\Services\Api\Project\Activity\Step();
$response = array();
foreach ($processList as $key => $processInfo) {
$tempTreeChildren = array ();
foreach ($processList[$key] as $keyChild => $processInfoChild) {
$webEntryEventStart = $webEntryEvent->getWebEntryEvents($processInfoChild['pro_uid']);
if (empty($webEntryEventStart) && in_array($processInfoChild['pro_uid'], $bpmnProjects)) {
if (!in_array($processInfoChild['uid'], $arrayWebEntryEvent) && in_array($processInfoChild['pro_uid'], $bpmnProjects)) {
$tempTreeChild['text'] = $keyChild; //ellipsis ( $keyChild, 50 );
$tempTreeChild['processId'] = $processInfoChild['pro_uid'];
$tempTreeChild['taskId'] = $processInfoChild['uid'];

View File

@@ -898,6 +898,31 @@ class WebEntryEvent
}
}
/**
* Get all WebEntry-Events
* Return an array with all WebEntry-Events
* @return array
* @throws \Exception
*/
public function getAllWebEntryEvents()
{
try {
$result = array();
$criteria = $this->getWebEntryEventCriteria();
$criteria->addJoin(\WebEntryEventPeer::PRJ_UID, \ProcessPeer::PRO_UID, \Criteria::JOIN);
$criteria->add(\ProcessPeer::PRO_STATUS, 'ACTIVE', \Criteria::EQUAL);
$rsCriteria = \WebEntryEventPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$result[] = $this->getWebEntryEventDataFromRecord($row);
}
return $result;
} catch (\Exception $e) {
throw $e;
}
}
/**
* Get data of a WebEntry-Event
*

View File

@@ -65,6 +65,9 @@ class RoutingScreen extends \Derivation
} else {
$aDataMerged[$key]['NEXT_ROUTING'][] = $post[$i];
}
if (isset($post[$i]['NEXT_TASK'])) {
$aDataMerged[$key]['NEXT_TASK'] = $post[$i]['NEXT_TASK'];
}
}
}
}

View File

@@ -60,7 +60,6 @@ class Cases extends Api
//Check if the user is supervisor process
$case = new \ProcessMaker\BusinessModel\Cases();
$supervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor();
$user = new \ProcessMaker\BusinessModel\User();
$count = 0;
@@ -70,10 +69,10 @@ class Cases extends Api
if (!empty($arrayApplicationData)) {
if (!$user->checkPermission($usrUid, 'PM_REASSIGNCASE')) {
if($user->checkPermission($usrUid, 'PM_REASSIGNCASE_SUPERVISOR')){
if ($user->checkPermission($usrUid, 'PM_REASSIGNCASE_SUPERVISOR')) {
$supervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor();
$flagps = $supervisor->isUserProcessSupervisor($arrayApplicationData['PRO_UID'], $usrUid);
if(!$flagps){
if (!$flagps) {
$count = $count + 1;
}

View File

@@ -30,6 +30,31 @@ class Light extends Api
'delRiskDate'
];
public function __isAllowed()
{
try {
$methodName = $this->restler->apiMethodInfo->methodName;
$arrayArgs = $this->restler->apiMethodInfo->arguments;
switch ($methodName) {
case 'doIfAlreadyRoute':
$applicationUid = $this->parameters[$arrayArgs['app_uid']];
$delIndex = $this->parameters[$arrayArgs['cas_index']];
$userUid = $this->getUserId();
//Check if the user has the case
$appDelegation = new \AppDelegation();
$aCurUser = $appDelegation->getCurrentUsers($applicationUid, $delIndex);
if (!empty($aCurUser) && in_array($userUid, $aCurUser)) {
return true;
}
return false;
break;
}
return false;
} catch (\Exception $e) {
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
}
/**
* Constructor of the class
*
@@ -793,6 +818,8 @@ class Light extends Api
/**
* Get Already Route
*
* @access protected
* @class AccessControl {@className \ProcessMaker\Services\Api\Light}
* @param string $app_uid {@min 1}{@max 32}
* @param int $cas_index
*

View File

@@ -589,12 +589,12 @@ var openSummaryWindow = function(appUid, delIndex, action)
]
});
tabs.push({
title: Ext.util.Format.capitalize(_('ID_MORE_INFORMATION')),
title: _('ID_MORE_INFORMATION'),
layout: 'fit',
items: [panel]
});
} else {
tabs.push({title: Ext.util.Format.capitalize(_('ID_MORE_INFORMATION')), bodyCfg: {
tabs.push({title: _('ID_MORE_INFORMATION'), bodyCfg: {
tag: 'iframe',
id: 'summaryIFrame',
src: '../cases/summary?APP_UID=' + appUid + '&DEL_INDEX=' + delIndex + '&DYN_UID=' + response.dynUid,
@@ -604,7 +604,7 @@ var openSummaryWindow = function(appUid, delIndex, action)
}
}
tabs.push({title: Ext.util.Format.capitalize(_('ID_UPLOADED_DOCUMENTS')), bodyCfg: {
tabs.push({title: _('ID_UPLOADED_DOCUMENTS'), bodyCfg: {
tag: 'iframe',
id: 'summaryIFrame',
src: '../cases/ajaxListener?action=uploadedDocumentsSummary',
@@ -612,7 +612,7 @@ var openSummaryWindow = function(appUid, delIndex, action)
onload: ''
}});
tabs.push({title: Ext.util.Format.capitalize(_('ID_GENERATED_DOCUMENTS')), bodyCfg: {
tabs.push({title: _('ID_GENERATED_DOCUMENTS'), bodyCfg: {
tag: 'iframe',
id: 'summaryIFrame',
src: '../cases/ajaxListener?action=generatedDocumentsSummary',

View File

@@ -241,7 +241,7 @@
return actionTranslate;
};
var pageSize = 15;
processesGrid = new Ext.grid.GridPanel({
region: 'center',
layout: 'fit',
@@ -293,7 +293,7 @@
}
],
bbar: new Ext.PagingToolbar({
pageSize: 15,
pageSize: pageSize,
store: store,
displayInfo: true,
displayMsg: _('ID_DISPLAY_PROCESSES'),
@@ -312,7 +312,7 @@
}
});
processesGrid.store.load({params: {"function":"languagesList"}});
processesGrid.store.load({params: {"function":"languagesList", "start": 0, "limit": pageSize}});
processesGrid.store.on(
'load',

View File

@@ -2050,7 +2050,8 @@ Ext.onReady ( function() {
btnReassign,
"->",
_("ID_USER"),
comboAllUsers,
suggestUser,
resetSuggestButton,
"-",
_("ID_CATEGORY"),
comboCategory,

View File

@@ -373,6 +373,7 @@
}
return actionTranslate;
};
var pageSize = 25;
var processesGrid = new Ext.grid.GridPanel({
region: 'center',
layout: 'fit',
@@ -487,7 +488,7 @@
}
],
bbar: new Ext.PagingToolbar({
pageSize: 10,
pageSize: pageSize,
store: store,
displayInfo: true,
displayMsg: _('ID_DISPLAY_PROCESSES'),
@@ -515,7 +516,7 @@
}
}
});
processesGrid.store.load({params: {"function":"languagesList"}});
processesGrid.store.load({params: {"function": "languagesList", "start": 0, "limit": pageSize}});
processesGrid.store.on(
'load',

View File

@@ -1626,12 +1626,27 @@ importProcessExistGroup = function()
success : function(o, resp) {
var resp_ = Ext.util.JSON.decode(resp.response.responseText);
var sNewProUid = resp_.sNewProUid;
if (typeof(resp_.project_type) != "undefined" && resp_.project_type == "bpmn") {
var goTo = importProcessCallbackFile ? importProcessCallbackFile : "../designer?prj_uid=";
openWindowIfIE(goTo + sNewProUid);
if (resp_.catchMessage === '') {
if (typeof (resp_.project_type) != "undefined" && resp_.project_type == "bpmn") {
var goTo = importProcessCallbackFile ? importProcessCallbackFile : "../designer?prj_uid=";
openWindowIfIE(goTo + sNewProUid);
} else {
window.location.href = "processes_Map?PRO_UID=" + sNewProUid;
}
} else {
window.location.href = "processes_Map?PRO_UID=" + sNewProUid;
Ext.getCmp('objectsToImport').setValue("");
Ext.getCmp('importProcessExistGroupWindow').close();
Ext.getCmp('importProcessExistProcessWindow').close();
Ext.getCmp('importProcessWindow').close();
Ext.MessageBox.show({
title: _('ID_ERROR'),
msg: resp_.catchMessage,
buttons: Ext.MessageBox.OK,
animEl: 'mb9',
fn: function () {},
icon: Ext.MessageBox.ERROR
});
processesGrid.store.reload();
}
},
failure: function(o, resp) {