@@ -72,7 +72,7 @@ public function login($userid, $password)
72
72
73
73
$ sessionId = G::generateUniqueID ();
74
74
$ wsResponse = new WsResponse ('0 ' , $ sessionId );
75
- $ timelife = explode ( ': ' , gmdate ("H:i:s " , ini_get ('session.cookie_lifetime ' )));
75
+ $ timelife = explode ( ': ' , gmdate ("H:i:s " , ini_get ('session.cookie_lifetime ' )));
76
76
$ session = new Session ();
77
77
$ session ->setSesUid ($ sessionId );
78
78
$ session ->setSesStatus ('ACTIVE ' );
@@ -81,7 +81,7 @@ public function login($userid, $password)
81
81
$ session ->setSesInitDate (date ('Y-m-d H:i:s ' ));
82
82
$ session ->setSesDueDate (date (
83
83
'Y-m-d H:i:s ' ,
84
- mktime (date ('H ' ) + $ timelife [0 ], date ('i ' ) + $ timelife [1 ], date ('s ' ) + $ timelife [2 ], date ('m ' ), date ('d ' ), date ('Y ' ))
84
+ mktime (date ('H ' ) + $ timelife [0 ], date ('i ' ) + $ timelife [1 ], date ('s ' ) + $ timelife [2 ], date ('m ' ), date ('d ' ), date ('Y ' ))
85
85
));
86
86
$ session ->setSesEndDate ('' );
87
87
$ session ->Save ();
@@ -106,18 +106,18 @@ public function login($userid, $password)
106
106
public function processList ()
107
107
{
108
108
try {
109
- // getting bpmn projects
110
- $ c = new Criteria ('workflow ' );
111
- $ c ->addSelectColumn (BpmnProjectPeer::PRJ_UID );
112
- $ ds = ProcessPeer::doSelectRS ($ c , Propel::getDbConnection ('workflow_ro ' ) );
113
- $ ds ->setFetchmode (ResultSet::FETCHMODE_ASSOC );
114
- $ bpmnProjects = [];
115
-
116
- while ($ ds ->next ()) {
117
- $ row = $ ds ->getRow ();
118
- $ bpmnProjects [] = $ row ['PRJ_UID ' ];
119
- }
120
-
109
+ // getting bpmn projects
110
+ $ c = new Criteria ('workflow ' );
111
+ $ c ->addSelectColumn (BpmnProjectPeer::PRJ_UID );
112
+ $ ds = ProcessPeer::doSelectRS ($ c , Propel::getDbConnection ('workflow_ro ' ) );
113
+ $ ds ->setFetchmode (ResultSet::FETCHMODE_ASSOC );
114
+ $ bpmnProjects = [];
115
+
116
+ while ($ ds ->next ()) {
117
+ $ row = $ ds ->getRow ();
118
+ $ bpmnProjects [] = $ row ['PRJ_UID ' ];
119
+ }
120
+
121
121
$ result = [];
122
122
$ oCriteria = new Criteria ('workflow ' );
123
123
$ oCriteria ->add (ProcessPeer::PRO_STATUS , 'DISABLED ' , Criteria::NOT_EQUAL );
@@ -130,8 +130,8 @@ public function processList()
130
130
$ arrayProcess = $ oProcess ->load ($ aRow ['PRO_UID ' ]);
131
131
$ result [] = array (
132
132
'guid ' => $ aRow ['PRO_UID ' ],
133
- 'name ' => $ arrayProcess ['PRO_TITLE ' ],
134
- 'project_type ' => in_array ($ aRow ['PRO_UID ' ], $ bpmnProjects ) ? 'bpmn ' : 'classic '
133
+ 'name ' => $ arrayProcess ['PRO_TITLE ' ],
134
+ 'project_type ' => in_array ($ aRow ['PRO_UID ' ], $ bpmnProjects ) ? 'bpmn ' : 'classic '
135
135
);
136
136
$ oDataset ->next ();
137
137
}
@@ -549,14 +549,14 @@ public function userList()
549
549
try {
550
550
$ result = [];
551
551
$ criteria = new Criteria ('workflow ' );
552
- //$criteria->add(UsersPeer::USR_STATUS, 'ACTIVE');
552
+ //$criteria->add(UsersPeer::USR_STATUS, 'ACTIVE');
553
553
$ criteria ->add (UsersPeer::USR_UID , [RBAC ::GUEST_USER_UID ], Criteria::NOT_IN );
554
554
$ dataset = UsersPeer::doSelectRS ($ criteria );
555
555
$ dataset ->setFetchmode (ResultSet::FETCHMODE_ASSOC );
556
556
$ dataset ->next ();
557
557
558
558
while ($ row = $ dataset ->getRow ()) {
559
- $ result [] = ['guid ' => $ row ['USR_UID ' ], 'name ' => $ row ['USR_USERNAME ' ], 'status ' => $ row ['USR_STATUS ' ]];
559
+ $ result [] = ['guid ' => $ row ['USR_UID ' ], 'name ' => $ row ['USR_USERNAME ' ], 'status ' => $ row ['USR_STATUS ' ]];
560
560
$ dataset ->next ();
561
561
}
562
562
@@ -1788,7 +1788,7 @@ public function getVariables($caseId, $variables)
1788
1788
$ resFields = [];
1789
1789
1790
1790
foreach ($ variables as $ key => $ val ) {
1791
- //$a .= $val->name . ', ';
1791
+ //$a .= $val->name . ', ';
1792
1792
1793
1793
if (isset ($ oldFields [$ val ->name ])) {
1794
1794
if (!is_array ($ oldFields [$ val ->name ])) {
@@ -2487,21 +2487,42 @@ public function derivateCase($userId, $caseId, $delIndex, $bExecuteTriggersBefor
2487
2487
//Now fill the array of AppDelegationPeer
2488
2488
$ oCriteria = new Criteria ('workflow ' );
2489
2489
$ oCriteria ->addSelectColumn (AppDelegationPeer::DEL_INDEX );
2490
+ $ oCriteria ->addSelectColumn (AppDelegationPeer::DEL_PREVIOUS );
2490
2491
$ oCriteria ->addSelectColumn (AppDelegationPeer::USR_UID );
2491
2492
$ oCriteria ->addSelectColumn (AppDelegationPeer::TAS_UID );
2492
2493
$ oCriteria ->addSelectColumn (AppDelegationPeer::DEL_THREAD );
2493
2494
$ oCriteria ->addSelectColumn (AppDelegationPeer::DEL_THREAD_STATUS );
2494
2495
$ oCriteria ->addSelectColumn (AppDelegationPeer::DEL_FINISH_DATE );
2495
2496
$ oCriteria ->add (AppDelegationPeer::APP_UID , $ caseId );
2496
- $ oCriteria ->add (AppDelegationPeer::DEL_PREVIOUS , $ delIndex );
2497
2497
$ oCriteria ->addAscendingOrderByColumn (AppDelegationPeer::DEL_INDEX );
2498
2498
$ oDataset = AppDelegationPeer::doSelectRS ($ oCriteria );
2499
2499
$ oDataset ->setFetchmode (ResultSet::FETCHMODE_ASSOC );
2500
2500
2501
2501
$ aCurrentUsers = [];
2502
-
2502
+
2503
+ // all tasks
2504
+ $ allTasks = [];
2503
2505
while ($ oDataset ->next ()) {
2504
2506
$ aAppDel = $ oDataset ->getRow ();
2507
+ $ allTasks [$ aAppDel ['DEL_INDEX ' ]] = $ aAppDel ;
2508
+ }
2509
+
2510
+ function searchNewlyActivatedTasks ($ tasks , $ prev_index ) {
2511
+ $ ret = [];
2512
+ foreach (array_filter ($ tasks , function ($ rw ) use ($ prev_index ) {
2513
+ return $ rw ['DEL_PREVIOUS ' ] == $ prev_index ;
2514
+ }) as $ task ) {
2515
+ if ($ task ['DEL_THREAD_STATUS ' ] == 'CLOSED ' ) {
2516
+ $ ret = array_merge ($ ret , searchNewlyActivatedTasks ($ tasks , $ task ['DEL_INDEX ' ]));
2517
+ } else {
2518
+ $ ret [] = $ tasks [$ task ['DEL_INDEX ' ]];
2519
+ }
2520
+ }
2521
+ return $ ret ;
2522
+ }
2523
+
2524
+ // search the tasks with matching previous_index to be able to get the newly created tasks
2525
+ foreach (searchNewlyActivatedTasks ($ allTasks , $ delIndex ) as $ aAppDel ) {
2505
2526
$ oUser = new Users ();
2506
2527
2507
2528
try {
@@ -2930,7 +2951,7 @@ public function systemInformation()
2930
2951
define ('SKIP_RENDER_SYSTEM_INFORMATION ' , true );
2931
2952
2932
2953
require_once (PATH_METHODS . 'login ' . PATH_SEP . 'dbInfo.php ' );
2933
- $ result = new stdClass ;
2954
+ $ result = new stdClass ;
2934
2955
$ result ->status_code = 0 ;
2935
2956
$ result ->message = G::loadTranslation ('ID_SUCESSFUL ' );
2936
2957
$ result ->timestamp = date ('Y-m-d H:i:s ' );
0 commit comments