diff --git a/resources/assets/js/home/Home.vue b/resources/assets/js/home/Home.vue
index bb472cae5..9dc059851 100755
--- a/resources/assets/js/home/Home.vue
+++ b/resources/assets/js/home/Home.vue
@@ -192,6 +192,9 @@ export default {
if ( e.data === "redirect=todo" || e.message === "redirect=todo"){
that.OnClickSidebarItem(that.getItemMenuByValue("page","inbox"));
}
+ if ( e.data === "redirect=MyCases" || e.message === "redirect=MyCases"){
+ that.OnClickSidebarItem(that.getItemMenuByValue("page","MyCases"));
+ }
if ( e.data === "update=debugger" || e.message === "update=debugger"){
if(that.$refs["component"].updateView){
that.$refs["component"].updateView();
@@ -616,6 +619,9 @@ export default {
*/
getItemMenuByValue(key, value) {
let obj = _.find(this.menu, function(o) {
+ if(o[key] == value){
+ return true;
+ }
if(o.component){
return o.props.item[key] == value;
}
@@ -624,6 +630,9 @@ export default {
if(obj.component){
return obj.props;
}
+ if(obj.page){
+ return {item : obj};
+ }
return obj;
},
/**
diff --git a/workflow/engine/classes/PmDynaform.php b/workflow/engine/classes/PmDynaform.php
index 70b174382..3ced3698b 100644
--- a/workflow/engine/classes/PmDynaform.php
+++ b/workflow/engine/classes/PmDynaform.php
@@ -2642,18 +2642,18 @@ class PmDynaform
/**
* Get html navigation bar for steps to revise.
* @param string $appUid
- * @param string $dynUid
+ * @param string $uid
* @param int $delIndex
* @return string
*/
- public static function navigationBarForStepsToRevise(string $appUid, string $dynUid, int $delIndex): string
+ public static function navigationBarForStepsToRevise(string $appUid, string $uid, int $delIndex): string
{
$navbar = '';
$cases = new Cases();
$steps = $cases->getAllUrlStepsToRevise($appUid, $delIndex);
$n = count($steps);
foreach ($steps as $key => $step) {
- if ($step['uid'] === $dynUid) {
+ if ($step['uid'] === $uid) {
$previousLabel = '';
$previousUrl = '';
$nextLabel = '';
@@ -2666,6 +2666,14 @@ class PmDynaform
$nextLabel = G::LoadTranslation('ID_NEXT');
$nextUrl = $steps[$key + 1]['url'];
}
+ if (empty($nextUrl)) {
+ $nextLabel = G::LoadTranslation('ID_FINISH');
+ $nextUrl = 'javascript:if(window.parent && window.parent.parent){window.parent.parent.postMessage("redirect=MyCases","*");}';
+ }
+ //this condition modify the next Url for submit action
+ if ($step['type'] === 'DYNAFORM') {
+ $nextUrl = 'javascript:document.querySelector(".pmdynaform-container .pmdynaform-form").submit();';
+ }
$navbar = "
" .
"

" .
"
" .
diff --git a/workflow/engine/methods/cases/cases_SaveDataSupervisor.php b/workflow/engine/methods/cases/cases_SaveDataSupervisor.php
index e12d94aa1..845d3fcce 100644
--- a/workflow/engine/methods/cases/cases_SaveDataSupervisor.php
+++ b/workflow/engine/methods/cases/cases_SaveDataSupervisor.php
@@ -1,29 +1,7 @@
.
- *
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- */
-//validate the data post
use ProcessMaker\Plugins\PluginRegistry;
+use ProcessMaker\BusinessModel\Cases as BusinessModelCases;
$dynaForm = DynaformPeer::retrieveByPK($_GET["UID"]);
@@ -210,6 +188,21 @@ if (isset( $_FILES["form"]["name"] ) && count( $_FILES["form"]["name"] ) > 0) {
//Define the STEP_POSITION
$ex = isset($_GET['ex']) ? $_GET['ex'] : 0;
//go to the next step
-$aNextStep = $oCase->getNextSupervisorStep( $_SESSION['PROCESS'], $_SESSION['STEP_POSITION'] );
-G::header( 'Location: cases_StepToRevise?type=DYNAFORM&ex=' . $ex . '&PRO_UID=' . $_SESSION['PROCESS'] . '&DYN_UID=' . $aNextStep['UID'] . '&APP_UID=' . $_SESSION['APPLICATION'] . '&position=' . $aNextStep['POSITION'] . '&DEL_INDEX=' . $_SESSION['INDEX'] );
+$nextSteps = $oCase->getNextSupervisorStep($_SESSION['PROCESS'], $_SESSION['STEP_POSITION']);
+$url = '';
+$steps = (new BusinessModelCases())->getAllUrlStepsToRevise($_SESSION['APPLICATION'], $_SESSION['INDEX']);
+$n = count($steps);
+foreach ($steps as $key => $step) {
+ if ($step['uid'] === $nextSteps['UID'] && $key + 1 < $n) {
+ $nextUrl = $steps[$key + 1]['url'];
+ $url = $nextUrl;
+ break;
+ }
+}
+if (empty($url)) {
+ die('');
+}
+G::header('Location:' . $url);
die();
\ No newline at end of file
diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php
index 117f79adc..3285b312c 100755
--- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php
+++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php
@@ -4483,36 +4483,34 @@ class Cases
{
$result = [];
$dynaformStep = $this->getStepsToRevise($appUid, 'DYNAFORM');
- $i = 0;
- foreach ($dynaformStep as $step) {
- $url = "cases_StepToRevise?"
- . "type=DYNAFORM&"
- . "ex={$i}&"
- . "PRO_UID={$step["PRO_UID"]}&"
- . "DYN_UID={$step['STEP_UID_OBJ']}&"
- . "APP_UID={$appUid}&"
- . "position={$step['STEP_POSITION']}&"
- . "DEL_INDEX={$delIndex}";
- $result[] = [
- 'uid' => $step['STEP_UID_OBJ'],
- 'url' => $url
- ];
- $i++;
- }
-
$inputDocumentStep = $this->getStepsToRevise($appUid, 'INPUT_DOCUMENT');
+ $objects = array_merge($dynaformStep, $inputDocumentStep);
+ usort($objects, function ($a, $b) {
+ return $a['STEP_POSITION'] > $b['STEP_POSITION'];
+ });
$i = 0;
- foreach ($inputDocumentStep as $step) {
- $url = "cases_StepToReviseInputs?"
- . "type=INPUT_DOCUMENT&"
+ $endPoint = '';
+ $uidName = '';
+ foreach ($objects as $step) {
+ if ($step['STEP_TYPE_OBJ'] === 'DYNAFORM') {
+ $endPoint = 'cases_StepToRevise';
+ $uidName = 'DYN_UID';
+ }
+ if ($step['STEP_TYPE_OBJ'] === 'INPUT_DOCUMENT') {
+ $endPoint = 'cases_StepToReviseInputs';
+ $uidName = 'INP_DOC_UID';
+ }
+ $url = "{$endPoint}?"
+ . "type={$step['STEP_TYPE_OBJ']}&"
. "ex={$i}&"
. "PRO_UID={$step["PRO_UID"]}&"
- . "INP_DOC_UID={$step['STEP_UID_OBJ']}&"
+ . "{$uidName}={$step['STEP_UID_OBJ']}&"
. "APP_UID={$appUid}&"
. "position={$step['STEP_POSITION']}&"
. "DEL_INDEX={$delIndex}";
$result[] = [
'uid' => $step['STEP_UID_OBJ'],
+ 'type' => $step['STEP_TYPE_OBJ'],
'url' => $url
];
$i++;
diff --git a/workflow/engine/templates/cases/open.js b/workflow/engine/templates/cases/open.js
index e34d7f25b..43ef8bb17 100644
--- a/workflow/engine/templates/cases/open.js
+++ b/workflow/engine/templates/cases/open.js
@@ -531,7 +531,8 @@ Ext.onReady(function(){
},
iconCls: 'ICON_STEPS',
toggleHandler: togglePreview,
- disabled: true
+ disabled: true,
+ hidden: true
}, {
id: 'informationMenu',
text: _('ID_INFORMATION'),