Merge remote-tracking branch 'upstream/develop' into bugfix/HOR-2887

This commit is contained in:
Roly Rudy Gutierrez Pinto
2017-05-24 09:04:40 -04:00
521 changed files with 63136 additions and 17249 deletions

View File

@@ -70,6 +70,7 @@ class Applications
APP_DELEGATION.DEL_DELAYED,
APP_DELEGATION.DEL_DELAY_DURATION,
TASK.TAS_TITLE AS APP_TAS_TITLE,
TASK.TAS_TYPE AS APP_TAS_TYPE,
USERS.USR_LASTNAME,
USERS.USR_FIRSTNAME,
USERS.USR_USERNAME,

View File

@@ -1462,7 +1462,7 @@ class Derivation
$appFields['PRO_UID'],
$currentDelegation['APP_UID'],
$nextDel['TAS_UID'],
(isset( $nextDel['USR_UID'] ) ? $nextDel['USR_UID'] : ''),
$this->verifyCurrentUserInTask($nextDel, $aSP),
$currentDelegation['DEL_INDEX'],
$nextDel['DEL_PRIORITY'],
$delType,
@@ -1645,6 +1645,22 @@ class Derivation
return $iNewDelIndex;
}
/**
* This function returns the current user Checking cases where USR_ID exists or checking a subprocess (SYNCHRONOUS)
* @param $nextDel
* @param null $aSP
* @return string
*/
function verifyCurrentUserInTask($nextDel, $aSP = null)
{
if (isset($aSP) && $aSP["SP_SYNCHRONOUS"] == "1") {
$currentUser = "";
} else {
$currentUser = isset($nextDel['USR_UID']) ? $nextDel['USR_UID'] : "";
}
return $currentUser;
}
/**
* This function create, update and closed a new record related to appThread
*

View File

@@ -1346,7 +1346,7 @@ class pmDynaform
"var pm_run_outside_main_app = null;\n" .
"var dyn_uid = '" . $this->fields["CURRENT_DYNAFORM"] . "';\n" .
"var __DynaformName__ = null;\n" .
"var app_uid = null;\n" .
"var app_uid = '" . G::decrypt($record['APP_UID'], URL_KEY) . "';\n" .
"var prj_uid = '" . $this->record["PRO_UID"] . "';\n" .
"var step_mode = null;\n" .
"var workspace = '" . SYS_SYS . "';\n" .

View File

@@ -6838,8 +6838,8 @@ msgstr "Last Name"
# TRANSLATION
# LABEL/ID_REASSIGNMENT_SUCCESS
#: LABEL/ID_REASSIGNMENT_SUCCESS
msgid "The case #{APP_NUMBER} was reassigned to user {USER} successfully!"
msgstr "The case #{APP_NUMBER} was reassigned to user {USER} successfully!"
msgid "Case #{APP_NUMBER} was reassigned to user {USER}."
msgstr "Case #{APP_NUMBER} was reassigned to user {USER}."
# TRANSLATION
# LABEL/ID_REASSIGN_CONFIRM
@@ -27686,8 +27686,8 @@ msgstr "To cancel a case, no parallel threads must be active. Only cases with on
# TRANSLATION
# LABEL/ID_REASSIGNMENT_ERROR
#: LABEL/ID_REASSIGNMENT_ERROR
msgid "The case was already derivated to other person. Try to open again the case to reassign."
msgstr "The case was already derivated to other person. Try to open again the case to reassign."
msgid "The case has already been routed or assigned to another person. Try to open the case again to reassign it."
msgstr "The case has already been routed or assigned to another person. Try to open the case again to reassign it."
# TRANSLATION
# LABEL/ID_REASSIGNMENT_PAUSED_ERROR

View File

@@ -3725,7 +3725,7 @@ SELECT 'LABEL','ID_FIRSTNAME','en','First Name','2014-01-15'
UNION ALL
SELECT 'LABEL','ID_LASTNAME','en','Last Name','2014-01-15'
UNION ALL
SELECT 'LABEL','ID_REASSIGNMENT_SUCCESS','en','The case #{APP_NUMBER} was reassigned to user {USER} successfully!','2014-01-15'
SELECT 'LABEL','ID_REASSIGNMENT_SUCCESS','en','Case #{APP_NUMBER} was reassigned to user {USER}.','2014-01-15'
UNION ALL
SELECT 'LABEL','ID_REASSIGN_CONFIRM','en','Are you sure to reassign the current case?','2014-01-15'
UNION ALL
@@ -10751,7 +10751,7 @@ SELECT 'LABEL','ID_SCRIPT_TASK_ACTIVITY_ALREADY_REGISTERED','en','The Script-Tas
UNION ALL
SELECT 'LABEL','ID_CASE_CANCELLED_PARALLEL','en','To cancel a case, no parallel threads must be active. Only cases with one active thread can be canceled.','2016-08-11'
UNION ALL
SELECT 'LABEL','ID_REASSIGNMENT_ERROR','en','The case was already derivated to other person. Try to open again the case to reassign.','2016-08-12'
SELECT 'LABEL','ID_REASSIGNMENT_ERROR','en','The case has already been routed or assigned to another person. Try to open the case again to reassign it.','2016-08-12'
UNION ALL
SELECT 'LABEL','ID_REASSIGNMENT_PAUSED_ERROR','en','The case is paused and can''t be reasigned.','2016-08-12'
UNION ALL

View File

@@ -2600,7 +2600,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_CONFIRM_CANCEL_CASE','en','Are you sure you want to cancel this case?','2014-01-15') ,
( 'LABEL','ID_FIRSTNAME','en','First Name','2014-01-15') ,
( 'LABEL','ID_LASTNAME','en','Last Name','2014-01-15') ,
( 'LABEL','ID_REASSIGNMENT_SUCCESS','en','The case #{APP_NUMBER} was reassigned to user {USER} successfully!','2014-01-15') ,
( 'LABEL','ID_REASSIGNMENT_SUCCESS','en','Case #{APP_NUMBER} was reassigned to user {USER}.','2014-01-15') ,
( 'LABEL','ID_REASSIGN_CONFIRM','en','Are you sure to reassign the current case?','2014-01-15') ,
( 'LABEL','ID_CASE_PAUSED_SUCCESSFULLY','en','The Case {APP_NUMBER} was paused successfully and it will be unpaused on date {UNPAUSE_DATE}','2014-01-15') ,
( 'LABEL','ID_VACATION','en','Vacation','2014-01-15') ,
@@ -6159,7 +6159,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_MAFE_ab3cc3868af33a9eb61a93bd0adec2a0','en','Collapse all','2016-08-12') ,
( 'LABEL','ID_SCRIPT_TASK_ACTIVITY_ALREADY_REGISTERED','en','The Script-Task with {0}: "{1}" already registered','2016-08-01') ,
( 'LABEL','ID_CASE_CANCELLED_PARALLEL','en','To cancel a case, no parallel threads must be active. Only cases with one active thread can be canceled.','2016-08-11') ,
( 'LABEL','ID_REASSIGNMENT_ERROR','en','The case was already derivated to other person. Try to open again the case to reassign.','2016-08-12') ,
( 'LABEL','ID_REASSIGNMENT_ERROR','en','The case has already been routed or assigned to another person. Try to open the case again to reassign it.','2016-08-12') ,
( 'LABEL','ID_REASSIGNMENT_PAUSED_ERROR','en','The case is paused and can''t be reasigned.','2016-08-12') ,
( 'LABEL','ID_THE_DEFAULT_CONFIGURATION','en','The default configuration was not defined','2016-11-16'),
( 'LABEL','ID_MAFE_1de162d73f017a9243ce0c939064a014','en','Enable gallery','2016-08-12') ,

View File

@@ -72,71 +72,42 @@ function getProcessList ()
}
$processListTree = array ();
if (1) {
foreach ($processList as $key => $processInfo) {
$tempTree['text'] = $key;
$tempTree['id'] = G::encryptOld($key);
$tempTree['cls'] = 'folder';
$tempTree['draggable'] = true;
$tempTree['optionType'] = "category";
//$tempTree['allowDrop']=false;
$tempTree['singleClickExpand'] = true;
if ($key != "No Category") {
$tempTree['expanded'] = true;
} else {
//$tempTree ['expanded'] = false;
$tempTree['expanded'] = true;
}
$tempTreeChildren = array ();
foreach ($processList[$key] as $keyChild => $processInfoChild) {
//print_r($processInfo);
$tempTreeChild['text'] = htmlentities($keyChild, ENT_QUOTES, 'UTF-8'); //ellipsis ( $keyChild, 50 );
//$tempTree['text']=$key;
$tempTreeChild['id'] = G::encryptOld($keyChild);
$tempTreeChild['draggable'] = true;
$tempTreeChild['leaf'] = true;
$tempTreeChild['icon'] = '/images/icon.trigger.png';
$tempTreeChild['allowChildren'] = false;
$tempTreeChild['optionType'] = "startProcess";
$tempTreeChild['pro_uid'] = $processInfoChild['pro_uid'];
$tempTreeChild['tas_uid'] = $processInfoChild['uid'];
$processInfoChild['myInbox'] = 0;
$processInfoChild['totalInbox'] = 0;
if (isset( $proData[$processInfoChild['pro_uid']] )) {
$tempTreeChild['otherAttributes'] = array_merge( $processInfoChild, $proData[$processInfoChild['pro_uid']], $calendar->getCalendarFor( $_SESSION['USER_LOGGED'], $processInfoChild['pro_uid'], $processInfoChild['uid'] ) );
$tempTreeChild['otherAttributes']['PRO_TAS_TITLE'] = str_replace( ")", "", str_replace( "(", "", trim( str_replace( $tempTreeChild['otherAttributes']['PRO_TITLE'], "", $tempTreeChild['otherAttributes']["value"] ) ) ) );
$tempTreeChild['qtip'] = $tempTreeChild['otherAttributes']['PRO_DESCRIPTION'];
//$tempTree['cls']='file';
$tempTreeChildren[] = $tempTreeChild;
}
}
$tempTree['children'] = $tempTreeChildren;
$processListTree[] = $tempTree;
foreach ($processList as $key => $processInfo) {
$tempTree['text'] = $key;
$tempTree['id'] = G::encryptOld($key);
$tempTree['cls'] = 'folder';
$tempTree['draggable'] = true;
$tempTree['optionType'] = "category";
$tempTree['singleClickExpand'] = true;
if ($key != "No Category") {
$tempTree['expanded'] = true;
} else {
$tempTree['expanded'] = true;
}
} else {
foreach ($processList[$node] as $key => $processInfo) {
//print_r($processInfo);
$tempTree['text'] = $key; //ellipsis ( $key, 50 );
//$tempTree['text']=$key;
$tempTree['id'] = $key;
$tempTree['draggable'] = true;
$tempTree['leaf'] = true;
$tempTree['icon'] = '/images/icon.trigger.png';
$tempTree['allowChildren'] = false;
$tempTree['optionType'] = "startProcess";
$tempTree['pro_uid'] = $processInfo['pro_uid'];
$tempTree['tas_uid'] = $processInfo['uid'];
$processInfo['myInbox'] = 0;
$processInfo['totalInbox'] = 0;
$tempTree['otherAttributes'] = array_merge( $processInfo, $proData[$processInfo['pro_uid']], $calendar->getCalendarFor( $processInfo['uid'], $processInfo['uid'], $processInfo['uid'] ) );
$tempTree['otherAttributes']['PRO_TAS_TITLE'] = str_replace( ")", "", str_replace( "(", "", trim( str_replace( $tempTree['otherAttributes']['PRO_TITLE'], "", $tempTree['otherAttributes']["value"] ) ) ) );
$tempTree['qtip'] = $tempTree['otherAttributes']['PRO_DESCRIPTION'];
//$tempTree['cls']='file';
$processListTree[] = $tempTree;
$tempTreeChildren = array();
foreach ($processList[$key] as $keyChild => $processInfoChild) {
$tempTreeChild['text'] = $keyChild;
$tempTreeChild['id'] = G::encryptOld($keyChild);
$tempTreeChild['draggable'] = true;
$tempTreeChild['leaf'] = true;
$tempTreeChild['icon'] = '/images/icon.trigger.png';
$tempTreeChild['allowChildren'] = false;
$tempTreeChild['optionType'] = "startProcess";
$tempTreeChild['pro_uid'] = $processInfoChild['pro_uid'];
$tempTreeChild['tas_uid'] = $processInfoChild['uid'];
$processInfoChild['myInbox'] = 0;
$processInfoChild['totalInbox'] = 0;
if (isset($proData[$processInfoChild['pro_uid']])) {
$tempTreeChild['otherAttributes'] = array_merge($processInfoChild, $proData[$processInfoChild['pro_uid']], $calendar->getCalendarFor($_SESSION['USER_LOGGED'], $processInfoChild['pro_uid'], $processInfoChild['uid']));
$tempTreeChild['otherAttributes']['PRO_TAS_TITLE'] = str_replace(")", "", str_replace("(", "", trim(str_replace($tempTreeChild['otherAttributes']['PRO_TITLE'], "", $tempTreeChild['otherAttributes']["value"]))));
$tempTreeChild['qtip'] = $tempTreeChild['otherAttributes']['PRO_DESCRIPTION'];
$tempTreeChildren[] = $tempTreeChild;
}
}
$tempTree['children'] = $tempTreeChildren;
$processListTree[] = $tempTree;
}
$processList = $processListTree;
} else {
$processList['success'] = 'failure';

View File

@@ -1,98 +1,118 @@
<?php
$request = isset( $_POST['request'] ) ? $_POST['request'] : '';
$request = isset($_POST['request']) ? $_POST['request'] : '';
switch ($request) {
case 'getRows':
$fieldname = $_POST['fieldname'];
G::LoadClass( 'case' );
G::LoadClass('case');
$oApp = new Cases();
$aFields = $oApp->loadCase( $_SESSION['APPLICATION'] );
$aVars = Array ();
for ($i = 0; $i < count( $_SESSION['TRIGGER_DEBUG']['DATA'] ); $i ++) {
$aFields = $oApp->loadCase($_SESSION['APPLICATION']);
$aVars = Array();
$count = count($_SESSION['TRIGGER_DEBUG']['DATA']);
for ($i = 0; $i < $count; $i++) {
$aVars[$_SESSION['TRIGGER_DEBUG']['DATA'][$i]['key']] = $_SESSION['TRIGGER_DEBUG']['DATA'][$i]['value'];
}
$aVars = array_merge( $aFields['APP_DATA'], $aVars );
$aVars = array_merge($aFields['APP_DATA'], $aVars);
$field = $aVars[$fieldname];
$response = new StdClass();
$response->headers = Array ();
$response->columns = Array ();
$response->rows = Array ();
$response->headers = Array();
$response->columns = Array();
$response->rows = Array();
$sw = true;
$j = 0;
if (is_array( $field )) {
if (is_array($field)) {
foreach ($field as $row) {
if ($sw) {
foreach ($row as $key => $value) {
$response->headers[] = Array ('name' => $key);
$response->columns[] = Array ('header' => $key,'width' => 100,'dataIndex' => $key);
$response->headers[] = Array('name' => $key);
$response->columns[] = Array('header' => $key, 'width' => 100, 'dataIndex' => $key);
}
$sw = false;
}
$tmp = Array ();
$tmp = Array();
foreach ($row as $key => $value) {
$tmp[] = $value;
}
$response->rows[$j ++] = $tmp;
$response->rows[$j++] = $tmp;
}
} else {
if (is_object( $field )) {
$response->headers = Array (Array ('name' => 'name'
),Array ('name' => 'value'
)
if (is_object($field)) {
$response->headers = Array(
Array('name' => 'name'),
Array('name' => 'value')
);
$response->columns = Array (Array ('header' => 'Property','width' => 100,'dataIndex' => 'name'
),Array ('header' => 'Value','width' => 100,'dataIndex' => 'value'
)
$response->columns = Array(
Array(
'header' => 'Property',
'width' => 100,
'dataIndex' => 'name'
),
Array(
'header' => 'Value',
'width' => 100,
'dataIndex' => 'value'
)
);
foreach ($field as $key => $value) {
$response->rows[] = Array ($key,$value);
$response->rows[] = Array($key, $value);
}
}
}
echo G::json_encode( $response );
echo G::json_encode($response);
break;
default:
G::LoadClass( 'case' );
G::LoadClass('case');
$oApp = new Cases();
$aFields = $oApp->loadCase( $_SESSION['APPLICATION'] );
$aFields = $oApp->loadCase($_SESSION['APPLICATION']);
$aVars = Array ();
for ($i = 0; $i < count( $_SESSION['TRIGGER_DEBUG']['DATA'] ); $i ++) {
$aVars = Array();
$count = count($_SESSION['TRIGGER_DEBUG']['DATA']);
for ($i = 0; $i < $count; $i++) {
$aVars[$_SESSION['TRIGGER_DEBUG']['DATA'][$i]['key']] = $_SESSION['TRIGGER_DEBUG']['DATA'][$i]['value'];
}
$aVars = array_merge( $aFields['APP_DATA'], $aVars );
$aVars = array_merge($aFields['APP_DATA'], $aVars);
if (isset( $_POST['filter'] ) && $_POST['filter'] == 'dyn') {
$sysVars = array_keys( G::getSystemConstants() );
$varNames = array_keys( $aVars );
$systemConstants = G::getSystemConstants();
//Add missing items
$systemConstants['PIN'] = $aVars['PIN'];
$systemConstants['APP_NUMBER'] = $aVars['APP_NUMBER'];
//when a case with dynaform is started there are no changed variables, this event is validated
if (isset($aVars['__VAR_CHANGED__'])) {
$systemConstants['__VAR_CHANGED__'] = $aVars['__VAR_CHANGED__'];
}
if (isset($_POST['filter']) && $_POST['filter'] == 'dyn') {
$sysVars = array_keys($systemConstants);
$varNames = array_keys($aVars);
foreach ($varNames as $var) {
if (in_array( $var, $sysVars )) {
unset( $aVars[$var] );
if (in_array($var, $sysVars)) {
unset($aVars[$var]);
}
}
}
if (isset( $_POST['filter'] ) && $_POST['filter'] == 'sys') {
$aVars = G::getSystemConstants();
if (isset($_POST['filter']) && $_POST['filter'] == 'sys') {
$aVars = $systemConstants;
}
ksort( $aVars );
ksort($aVars);
$return_object = new StdClass();
$return_object->totalCount = 1;
foreach ($aVars as $i => $var) {
if (is_array( $var ) || is_object( $var )) {
$aVars[$i] = print_r( $var, true );
if (is_array($var) || is_object($var)) {
$aVars[$i] = print_r($var, true);
}
}
$return_object->data[0] = $aVars;
echo G::json_encode( $return_object );
echo G::json_encode($return_object);
break;
}

View File

@@ -636,6 +636,7 @@ class MessageType
$criteriaMessageTypeVariable = $variable->getMessageTypeVariableCriteria();
$criteriaMessageTypeVariable->add(\MessageTypeVariablePeer::MSGT_UID, $row["MSGT_UID"], \Criteria::EQUAL);
$criteriaMessageTypeVariable->addAscendingOrderByColumn(\MessageTypeVariablePeer::MSGTV_NAME);
$rsCriteriaMessageTypeVariable = \MessageTypeVariablePeer::doSelectRS($criteriaMessageTypeVariable);
$rsCriteriaMessageTypeVariable->setFetchmode(\ResultSet::FETCHMODE_ASSOC);

View File

@@ -1756,9 +1756,9 @@ class TimerEvent
} while ($flagNextRecord);
if (!$flagRecord) {
$common->frontEndShow("TEXT", "Not exists any record to continue a case, on date \"$datetime (UTC +00:00)\"");
$common->frontEndShow("TEXT", "No existing records to continue a case, on date \"$datetime (UTC +00:00)\"");
$this->log("NO-RECORDS", "Not exists any record to continue a case");
$this->log("NO-RECORDS", "No existing records to continue a case");
$aInfo = array(
'ip' => \G::getIpAddress()
,'action' => $action
@@ -1767,7 +1767,7 @@ class TimerEvent
);
$this->syslog(
200
,'Not exists any record to continue a case'
,'No existing records to continue a case'
,'NO-RECORDS'
,$aInfo
);

View File

@@ -587,13 +587,16 @@ Ext.onReady ( function() {
}
//Render Full Name
full_name = function(v, x, s) {
full_name = function (v, x, s) {
var resp;
if (s.data.USR_UID && s.data.USR_USERNAME) {
return _FNF(s.data.USR_USERNAME, s.data.USR_FIRSTNAME, s.data.USR_LASTNAME);
}
else {
return '[' + _('ID_UNASSIGNED').toUpperCase() + ']';
resp = _FNF(s.data.USR_USERNAME, s.data.USR_FIRSTNAME, s.data.USR_LASTNAME);
} else if (s && s.json && s.json["APP_TAS_TYPE"] === "SUBPROCESS") {
resp = '';
} else {
resp = '[' + _('ID_UNASSIGNED').toUpperCase() + ']';
}
return resp;
};
previous_full_name = function(v, x, s) {

View File

@@ -820,7 +820,6 @@ function newProcess(params)
xtype:'textfield',
width: 260,
maxLength: 100,
maskRe: /^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\...*)(\..+)?$)[^\x00-\x1f\\?*\";|/]+$/i,
allowBlank: false,
vtype: "textWithoutTags",
autoCreate: {tag: 'input', type: 'text', size: '100', autocomplete: 'off', maxlength: '100'},
@@ -837,16 +836,7 @@ function newProcess(params)
xtype:'textarea',
width: 260
},
ProcessCategories/*,
{
id: 'editor',
xtype: 'radiogroup',
fieldLabel: _('ID_OPEN_WITH'),
items: [
{boxLabel: _('ID_CLASSIC_EDITOR'), name: 'editor', inputValue: 'classic', checked: true},
{boxLabel: _('ID_BPMN_EDITOR'), name: 'editor', inputValue: 'bpmn'}
]
}*/
ProcessCategories
],
buttons : [{
text : _('ID_CREATE'),