diff --git a/workflow/engine/classes/class.case.php b/workflow/engine/classes/class.case.php index c64c1ab15..99e9e4479 100755 --- a/workflow/engine/classes/class.case.php +++ b/workflow/engine/classes/class.case.php @@ -949,6 +949,10 @@ class Cases public function updateCase($sAppUid, $Fields = array()) { try { + $oApplication = new Application; + if (!$oApplication->exists($sAppUid)) { + return false; + } $aApplicationFields = $Fields['APP_DATA']; $Fields['APP_UID'] = $sAppUid; $Fields['APP_UPDATE_DATE'] = 'now'; @@ -6740,7 +6744,7 @@ class Cases $rows[] = $rs->getRow(); } - if ($PRO_UID != null) { + if ($PRO_UID != null) { //Add supervisor // Users $oCriteria = new Criteria('workflow'); @@ -6760,8 +6764,10 @@ class Cases $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $flagSupervisors = false; - if ($oDataset->next()) { - $rows[] = $oDataset->getRow(); + if ($oDataset->next()) { + if (!in_array($USR_UID,$row)) { + $rows[] = $oDataset->getRow(); + } $flagSupervisors = true; } @@ -6789,10 +6795,13 @@ class Cases $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); if ($oDataset->next()) { - $rows[] = $oDataset->getRow(); + if (!in_array($USR_UID,$row)) { + $rows[] = $oDataset->getRow(); + } } } } + return $rows; } @@ -6898,7 +6907,7 @@ class Cases unset($aFields['APP_STATUS']); unset($aFields['APP_PROC_STATUS']); unset($aFields['APP_PROC_CODE']); - unset($aFields['APP_PIN']); + unset($aFields['APP_PIN']); $this->updateCase($aFields['APP_UID'], $aFields); return true; } diff --git a/workflow/engine/classes/class.pmFunctions.php b/workflow/engine/classes/class.pmFunctions.php index 8bcfea764..3872c26ca 100755 --- a/workflow/engine/classes/class.pmFunctions.php +++ b/workflow/engine/classes/class.pmFunctions.php @@ -2097,7 +2097,7 @@ function PMFAssignUserToGroup ($userId, $groupId) * @label PMF Create User * @link http://wiki.processmaker.com/index.php/ProcessMaker_Functions#PMFCreateUser.28.29 * - * @param string(32) | $userId | User ID | The username for the new user. + * @param string(32) | $userId | User Name | The username for the new user. * @param string(32) | $password | Password of the new user | The password of the new user, which can be up to 32 characters long. * @param string(32) | $firstname | Firstname of the new user | The first name of the user, which can be up to 50 characters long. * @param string(32) | $lastname | Lastname of the new user | The last name of the user, which can be up to 50 characters long. @@ -2881,17 +2881,17 @@ function PMFRemoveMask ($field, $separator = '.', $currency = '') * @return int | $result | Result of send variables | Returns 1 if the variables were sent successfully to the case; otherwise, returns 0 if an error occurred. * */ - + function PMFSaveCurrentData () { global $oPMScript; $result = 0; - + if (isset($_SESSION['APPLICATION']) && isset($oPMScript->aFields)) { G::LoadClass( 'wsBase' ); $ws = new wsBase(); $result = $ws->sendVariables( $_SESSION['APPLICATION'], $oPMScript->aFields ); } - + return $result; } \ No newline at end of file diff --git a/workflow/engine/classes/class.processes.php b/workflow/engine/classes/class.processes.php index 3f0d72746..cfde846d0 100755 --- a/workflow/engine/classes/class.processes.php +++ b/workflow/engine/classes/class.processes.php @@ -3739,9 +3739,25 @@ class Processes } } - // for public files + //For public files $PUBLIC_ROOT_PATH = PATH_DATA . 'sites' . PATH_SEP . SYS_SYS . PATH_SEP . 'public' . PATH_SEP . $data->process['PRO_UID']; + //Get WebEntry file names + $arrayWebEntryFile = array(); + + if (is_dir($PUBLIC_ROOT_PATH)) { + if ($dirh = opendir($PUBLIC_ROOT_PATH)) { + while (($file = readdir($dirh)) !== false) { + if (preg_match("/^(.+)Post\.php$/", $file, $arrayMatch)) { + $arrayWebEntryFile[] = $arrayMatch[1] . ".php"; + $arrayWebEntryFile[] = $arrayMatch[1] . "Post.php"; + } + } + + closedir($dirh); + } + } + //if this process have any mailfile if (is_dir( $PUBLIC_ROOT_PATH )) { //get mail files list from this directory @@ -3749,6 +3765,10 @@ class Processes foreach ($file_list as $filename) { // verify if this filename is a valid file, because it could be . or .. on *nix systems if ($filename != '.' && $filename != '..') { + if (in_array($filename, $arrayWebEntryFile)) { + continue; + } + if (@is_readable( $PUBLIC_ROOT_PATH . PATH_SEP . $filename )) { $sFileName = $PUBLIC_ROOT_PATH . PATH_SEP . $filename; if (file_exists( $sFileName )) { @@ -4094,7 +4114,6 @@ class Processes $fsData = intval( fread( $fp, 9 ) ); //reading the size of $oData $contents = fread( $fp, $fsData ); //reading string $oData - $path = PATH_DYNAFORM . $oData->process['PRO_UID'] . PATH_SEP; if (! is_dir( $path )) { G::verifyPath( $path, true ); @@ -4180,6 +4199,28 @@ class Processes } if (trim( $sIdentifier ) == 'PUBLIC') { + //Get WebEntry file names + $arrayWebEntryFile = array(); + + $fh = fopen($pmFilename, "rb"); + $contents = fread($fh, intval(fread($fh, 9))); //Reading string $oData + + while (!feof($fh)) { + $fsFileName = intval(fread($fh, 9)); //Reading the size of $filename + + if ($fsFileName > 0) { + $sFileName = fread($fh, $fsFileName); //Reading filename string + + if (preg_match("/^(.+)Post\.php$/", $sFileName, $arrayMatch)) { + $arrayWebEntryFile[] = $arrayMatch[1] . ".php"; + $arrayWebEntryFile[] = $arrayMatch[1] . "Post.php"; + } + } + } + + fclose($fh); + + //Public files $sIdentifier = 1; while (! feof( $fp ) && is_numeric( $sIdentifier )) { $sIdentifier = fread( $fp, 9 ); //reading the size of $filename @@ -4192,6 +4233,11 @@ class Processes if ($fsContent > 0) { $fileContent = fread( $fp, $fsContent ); //reading string $XmlContent $newFileName = $pathPublic . $sFileName; + + if (in_array($sFileName, $arrayWebEntryFile)) { + continue; + } + $bytesSaved = @file_put_contents( $newFileName, $fileContent ); if ($bytesSaved != $fsContent) { throw (new Exception( 'Error writing Public file in directory : ' . $pathPublic )); @@ -4204,7 +4250,6 @@ class Processes fclose( $fp ); return true; - } /** diff --git a/workflow/engine/classes/class.wsTools.php b/workflow/engine/classes/class.wsTools.php index afa618856..23ff0a97c 100755 --- a/workflow/engine/classes/class.wsTools.php +++ b/workflow/engine/classes/class.wsTools.php @@ -1610,12 +1610,14 @@ class workspaceTools $workspace->checkMafeRequirements($workspaceName, $lang); + /*----------------------------------********---------------------------------*/ $start = microtime(true); - CLI::logging("> Updating cache view...\n"); - $workspace->upgradeCacheView(true, false, $lang); + CLI::logging("> Updating List tables...\n"); + $workspace->migrateList($workspace->name); $stop = microtime(true); $final = $stop - $start; - CLI::logging("<*> Updating cache view Process took $final seconds.\n"); + CLI::logging("<*> Updating List Process took $final seconds.\n"); + /*----------------------------------********---------------------------------*/ mysql_close($link); } @@ -1881,6 +1883,7 @@ class workspaceTools } $this->initPropel(true); $appCache = new AppCacheView(); + $users = new Users(); G::LoadClass("case"); $case = new Cases(); @@ -1921,12 +1924,28 @@ class workspaceTools $rsCriteria = AppCacheViewPeer::doSelectRS($inbCriteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $criteriaUser = new Criteria(); + $criteriaUser->addSelectColumn( UsersPeer::USR_UID ); + $criteriaUser->addSelectColumn( UsersPeer::USR_FIRSTNAME ); + $criteriaUser->addSelectColumn( UsersPeer::USR_LASTNAME ); + $criteriaUser->addSelectColumn( UsersPeer::USR_USERNAME ); //Insert new data LIST_INBOX while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $isSelfService = ($row['USR_UID'] == '') ? true : false; if($row["DEL_THREAD_STATUS"] == 'OPEN'){ + //Update information about the previous_user $row["DEL_PREVIOUS_USR_UID"] = $row["PREVIOUS_USR_UID"]; + $criteriaUser->add( UsersPeer::USR_UID, $row["PREVIOUS_USR_UID"] ); + $datasetU = UsersPeer::doSelectRS($criteriaUser); + $datasetU->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $datasetU->next(); + $arrayUsers = $datasetU->getRow(); + $row["DEL_PREVIOUS_USR_USERNAME"] = $arrayUsers["USR_USERNAME"]; + $row["DEL_PREVIOUS_USR_FIRSTNAME"]= $arrayUsers["USR_FIRSTNAME"]; + $row["DEL_PREVIOUS_USR_LASTNAME"] = $arrayUsers["USR_LASTNAME"]; + //Update the due date + $row["DEL_DUE_DATE"] = $row["DEL_TASK_DUE_DATE"]; $listInbox = new ListInbox(); $listInbox->remove($row["APP_UID"],$row["DEL_INDEX"]); $listInbox->setDeleted(false); diff --git a/workflow/engine/classes/model/Application.php b/workflow/engine/classes/model/Application.php index 944bf3932..c7b754156 100755 --- a/workflow/engine/classes/model/Application.php +++ b/workflow/engine/classes/model/Application.php @@ -56,6 +56,11 @@ class Application extends BaseApplication */ public function getAppTitle() { + $oApplication = new Application; + if (!$oApplication->exists($this->getAppUid())) { + return false; + } + if ($this->getAppUid() == '') { throw (new Exception( "Error in getAppTitle, the APP_UID can't be blank")); } @@ -311,7 +316,9 @@ class Application extends BaseApplication try { $oApplication = ApplicationPeer::retrieveByPk( $AppUid ); - + if (!$oApplication) { + return false; + } if (is_object($oApplication) && get_class ($oApplication) == 'Application' ) { $aFields = $oApplication->toArray(BasePeer::TYPE_FIELDNAME); $this->fromArray($aFields, BasePeer::TYPE_FIELDNAME); @@ -574,19 +581,19 @@ class Application extends BaseApplication } /*----------------------------------********---------------------------------*/ - public function calculateAppDuration ($cron = 0) - { - try { - if ($cron == 1) { - $arrayCron = unserialize( trim( @file_get_contents( PATH_DATA . "cron" ) ) ); - $arrayCron["processcTimeStart"] = time(); - @file_put_contents( PATH_DATA . "cron", serialize( $arrayCron ) ); - } - - $calendar = new calendar(); - - $c = new Criteria( 'workflow' ); - $c->clearSelectColumns(); + public function calculateAppDuration ($cron = 0) + { + try { + if ($cron == 1) { + $arrayCron = unserialize( trim( @file_get_contents( PATH_DATA . "cron" ) ) ); + $arrayCron["processcTimeStart"] = time(); + @file_put_contents( PATH_DATA . "cron", serialize( $arrayCron ) ); + } + + $calendar = new calendar(); + + $c = new Criteria( 'workflow' ); + $c->clearSelectColumns(); $c->addSelectColumn( ApplicationPeer::APP_UID ); $c->addSelectColumn( ApplicationPeer::APP_NUMBER ); $c->addSelectColumn( ApplicationPeer::APP_STATUS ); @@ -602,80 +609,80 @@ class Application extends BaseApplication $c->addSelectColumn( ProcessPeer::PRO_TIME ); $c->addSelectColumn( ProcessPeer::PRO_TIMEUNIT ); - $c->addJoin( ApplicationPeer::PRO_UID, ProcessPeer::PRO_UID, Criteria::LEFT_JOIN ); - - $rs = ApplicationPeer::doSelectRS( $c ); - $rs->setFetchmode( ResultSet::FETCHMODE_ASSOC ); - $rs->next(); - $row = $rs->getRow(); - $i = 0; - - $now = strtotime( 'now' ); - while (is_array( $row )) { - $appNumber = $row['APP_NUMBER']; - $appStatus = $row['APP_STATUS']; - $appInitUser = $row['APP_INIT_USER']; - $appCurUser = $row['APP_CUR_USER']; - $appCreateDate = $row['APP_CREATE_DATE']; - $appInitDate = $row['APP_INIT_DATE']; - $appFinishDate = $row['APP_FINISH_DATE']; + $c->addJoin( ApplicationPeer::PRO_UID, ProcessPeer::PRO_UID, Criteria::LEFT_JOIN ); + + $rs = ApplicationPeer::doSelectRS( $c ); + $rs->setFetchmode( ResultSet::FETCHMODE_ASSOC ); + $rs->next(); + $row = $rs->getRow(); + $i = 0; + + $now = strtotime( 'now' ); + while (is_array( $row )) { + $appNumber = $row['APP_NUMBER']; + $appStatus = $row['APP_STATUS']; + $appInitUser = $row['APP_INIT_USER']; + $appCurUser = $row['APP_CUR_USER']; + $appCreateDate = $row['APP_CREATE_DATE']; + $appInitDate = $row['APP_INIT_DATE']; + $appFinishDate = $row['APP_FINISH_DATE']; $appUpdateDate = $row['APP_UPDATE_DATE']; $appDuration = $row['APP_DURATION']; $proTime = $row['PRO_TIME']; $proTimeUnit = $row['PRO_TIMEUNIT']; - $proUid = $row['PRO_UID']; - - //get the object, - $oApp = ApplicationPeer::retrieveByPk( $row['APP_UID'] ); - - //getting the calendar - $calendar->getCalendar(null, $proUid); + $proUid = $row['PRO_UID']; + + //get the object, + $oApp = ApplicationPeer::retrieveByPk( $row['APP_UID'] ); + + //getting the calendar + $calendar->getCalendar(null, $proUid); $calData = $calendar->getCalendarData(); /*if(G::toUpper($proTimeUnit) != 'DAYS'){ //if it is not in days must be in mins. $proTime = $proTime / (24 * 60 * 60); //converting to Days }*/ - - $proDueDate = $calendar->dashCalculateDate($row['APP_INIT_DATE'], $proTime, $proTimeUnit, $calData); //date when the process has to finish + + $proDueDate = $calendar->dashCalculateDate($row['APP_INIT_DATE'], $proTime, $proTimeUnit, $calData); //date when the process has to finish if($appFinishDate == null){//When the process didnt finish yet. //Duration - $appDuration = $calendar->dashCalculateDurationWithCalendar($appInitDate, date("Y-m-d H:i:s"), $calData ); - + $appDuration = $calendar->dashCalculateDurationWithCalendar($appInitDate, date("Y-m-d H:i:s"), $calData ); - $appDuration = $appDuration / (24 * 60 * 60); //Saving the proDuration in days. The calculateDurationWithCalendar func returns segs. + + $appDuration = $appDuration / (24 * 60 * 60); //Saving the proDuration in days. The calculateDurationWithCalendar func returns segs. $oApp->setAppDuration( $appDuration ); //Delay Duration - $delayDuration = $calendar->dashCalculateDurationWithCalendar( $proDueDate, date("Y-m-d H:i:s"), $calData );//it returns in mins + $delayDuration = $calendar->dashCalculateDurationWithCalendar( $proDueDate, date("Y-m-d H:i:s"), $calData );//it returns in mins $delayDuration = $delayDuration / (24 * 60 * 60); //Days $oApp->setAppDelayDuration( $delayDuration ); } else { - //Duration - $appDuration = $calendar->dashCalculateDurationWithCalendar($appInitDate, $appFinishDate, $calData ); - $appDuration = $appDuration / (24 * 60 * 60); //Saving the proDuration in days. The calculateDurationWithCalendar func returns mins. + //Duration + $appDuration = $calendar->dashCalculateDurationWithCalendar($appInitDate, $appFinishDate, $calData ); + $appDuration = $appDuration / (24 * 60 * 60); //Saving the proDuration in days. The calculateDurationWithCalendar func returns mins. $oApp->setAppDuration( $appDuration ); - - //Delay Duration - $delayDuration = $calendar->dashCalculateDurationWithCalendar( $proDueDate, $appFinishDate, $calData ); + + //Delay Duration + $delayDuration = $calendar->dashCalculateDurationWithCalendar( $proDueDate, $appFinishDate, $calData ); $delayDuration = $delayDuration / (24 * 60 * 60); //Days $oApp->setAppDelayDuration( $delayDuration ); } - - //and finally save the record - $RES = $oApp->save(); - $rs->next(); - $row = $rs->getRow(); - } - - if ($cron == 1) { - $arrayCron = unserialize( trim( @file_get_contents( PATH_DATA . "cron" ) ) ); - $arrayCron["processcTimeStart"] = time(); - @file_put_contents( PATH_DATA . "cron", serialize( $arrayCron ) ); - } - } catch (Exception $oError) { - error_log( $oError->getMessage() ); - } + + //and finally save the record + $RES = $oApp->save(); + $rs->next(); + $row = $rs->getRow(); + } + + if ($cron == 1) { + $arrayCron = unserialize( trim( @file_get_contents( PATH_DATA . "cron" ) ) ); + $arrayCron["processcTimeStart"] = time(); + @file_put_contents( PATH_DATA . "cron", serialize( $arrayCron ) ); + } + } catch (Exception $oError) { + error_log( $oError->getMessage() ); + } } /*----------------------------------********---------------------------------*/ } diff --git a/workflow/engine/js/processmap/core/processmap.js b/workflow/engine/js/processmap/core/processmap.js index 30ce8b36c..4746bcd6e 100755 --- a/workflow/engine/js/processmap/core/processmap.js +++ b/workflow/engine/js/processmap/core/processmap.js @@ -2661,9 +2661,10 @@ processmap.prototype={ uid:false }; this.data.build.text(index); + text = text.replace(/"/g, '\\"'); var r = new leimnud.module.rpc.xmlhttp({ url:this.options.dataServer, - args:"action=addText&data="+{uid:this.options.uid,label:text,position:{x:pos.x,y:pos.y}}.toJSONString() + args:"action=addText&data="+{uid:this.options.uid,label:encodeURIComponent(text),position:{x:pos.x,y:pos.y}}.toJSONString() }); r.callback=function(rpc,index){ var rs = rpc.xmlhttp.responseText.parseJSON(); diff --git a/workflow/engine/methods/cases/proxyReassignUsersList.php b/workflow/engine/methods/cases/proxyReassignUsersList.php index 5b8a7cbe9..ae662cbd5 100755 --- a/workflow/engine/methods/cases/proxyReassignUsersList.php +++ b/workflow/engine/methods/cases/proxyReassignUsersList.php @@ -52,6 +52,7 @@ function array_sort ($array, $on, $order = SORT_ASC, $query = '') } } } + return $new_array; } // $APP_UIDS = explode(',', $_POST['APP_UID']); diff --git a/workflow/engine/methods/processes/processes_Ajax.php b/workflow/engine/methods/processes/processes_Ajax.php index 17a4ab221..d43672bc3 100755 --- a/workflow/engine/methods/processes/processes_Ajax.php +++ b/workflow/engine/methods/processes/processes_Ajax.php @@ -38,7 +38,7 @@ try { break; } */ //$oJSON = new Services_JSON(); - + G::LoadSystem('inputfilter'); $filter = new InputFilter(); $_GET = $filter->xssFilterHard($_GET); @@ -307,7 +307,7 @@ try { G::auditLog('DeleteLines','Delete all lines in process "'.$resultProcess['PRO_TITLE'].'"'); break; case 'addText': - $sOutput = $oProcessMap->addText($oData->uid, $oData->label, $oData->position->x, $oData->position->y); + $sOutput = $oProcessMap->addText($oData->uid, html_entity_decode(html_entity_decode($oData->label)), $oData->position->x, $oData->position->y); $sOutputAux = G::json_decode($sOutput); $sOutputAux = (array)$sOutputAux; G::auditLog('AddText','Add new text ('.$sOutputAux['uid'].') in process "'.$resultProcess['PRO_TITLE'].'"'); diff --git a/workflow/engine/methods/tracker/tracker_DynaDocs.php b/workflow/engine/methods/tracker/tracker_DynaDocs.php index 5a7ab49c1..1df85a841 100755 --- a/workflow/engine/methods/tracker/tracker_DynaDocs.php +++ b/workflow/engine/methods/tracker/tracker_DynaDocs.php @@ -66,5 +66,44 @@ if ($noShowTitle == 0) { $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'tracker/tracker_DynaDocs', $oProcessMap->getCaseTrackerObjectsCriteria( $_SESSION['PROCESS'] ), array ('VIEW' => G::LoadTranslation( 'ID_VIEW' ) ) ); -G::RenderPage( 'publish' ); +$bpmn = new ProcessMaker\Project\Bpmn(); +$flagIsBpmn = ($bpmn->exists($_SESSION["PROCESS"]))? true : false; +if ($flagIsBpmn) { + $urlTrackerProcessMap = "../designer?prj_uid=" . $_SESSION["PROCESS"] . "&prj_readonly=true&app_uid=" . $_SESSION["APPLICATION"] . "&tracker_designer=1"; + + $_SESSION["TRACKER_JAVASCRIPT"] = " + + "; +} + +G::RenderPage("publish"); diff --git a/workflow/engine/methods/tracker/tracker_History.php b/workflow/engine/methods/tracker/tracker_History.php index f608d532d..6dd885292 100755 --- a/workflow/engine/methods/tracker/tracker_History.php +++ b/workflow/engine/methods/tracker/tracker_History.php @@ -62,5 +62,45 @@ if ($noShowTitle == 0) { $G_PUBLISH->AddContent( 'smarty', 'cases/cases_title', '', '', $aFields ); } $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'tracker/tracker_TransferHistory', Cases::getTransferHistoryCriteria( $_SESSION['APPLICATION'] ), array () ); -G::RenderPage( 'publish' ); +$bpmn = new ProcessMaker\Project\Bpmn(); +$flagIsBpmn = ($bpmn->exists($_SESSION["PROCESS"]))? true : false; + +if ($flagIsBpmn) { + $urlTrackerProcessMap = "../designer?prj_uid=" . $_SESSION["PROCESS"] . "&prj_readonly=true&app_uid=" . $_SESSION["APPLICATION"] . "&tracker_designer=1"; + + $_SESSION["TRACKER_JAVASCRIPT"] = " + + "; +} + +G::RenderPage("publish"); diff --git a/workflow/engine/methods/tracker/tracker_Messages.php b/workflow/engine/methods/tracker/tracker_Messages.php index 9da5bfbd2..587437fbe 100755 --- a/workflow/engine/methods/tracker/tracker_Messages.php +++ b/workflow/engine/methods/tracker/tracker_Messages.php @@ -64,5 +64,45 @@ if ($noShowTitle == 0) { } $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'tracker/tracker_Messages', Cases::getHistoryMessagesTracker( $_SESSION['APPLICATION'] ), array ('VIEW' => G::LoadTranslation( 'ID_VIEW' ) ) ); -G::RenderPage( 'publish' ); +$bpmn = new ProcessMaker\Project\Bpmn(); +$flagIsBpmn = ($bpmn->exists($_SESSION["PROCESS"]))? true : false; + +if ($flagIsBpmn) { + $urlTrackerProcessMap = "../designer?prj_uid=" . $_SESSION["PROCESS"] . "&prj_readonly=true&app_uid=" . $_SESSION["APPLICATION"] . "&tracker_designer=1"; + + $_SESSION["TRACKER_JAVASCRIPT"] = " + + "; +} + +G::RenderPage("publish"); diff --git a/workflow/engine/methods/tracker/tracker_ViewMap.php b/workflow/engine/methods/tracker/tracker_ViewMap.php index 013e3c772..a7a531507 100755 --- a/workflow/engine/methods/tracker/tracker_ViewMap.php +++ b/workflow/engine/methods/tracker/tracker_ViewMap.php @@ -59,7 +59,7 @@ while ($ds->next()) { $row = $ds->getRow(); $bpmnProjects[] = $row['PRJ_UID']; } - + switch (($aCaseTracker['CT_MAP_TYPE'])) { case 'NONE': //Nothing @@ -71,11 +71,48 @@ switch (($aCaseTracker['CT_MAP_TYPE'])) { $aFields = $oCase->loadCase( $_SESSION['APPLICATION'] ); if (in_array($aFields['PRO_UID'], $bpmnProjects)) { //bpmb - $_SESSION["APP_UID"] = $aFields["APP_UID"]; + $_SESSION["APPLICATION"] = $aFields["APP_UID"]; $G_PUBLISH = new Publisher(); $G_PUBLISH->AddContent( 'view', 'tracker/viewMap' ); - G::RenderPage( 'publish' ); + + $urlTrackerProcessMap = "../designer?prj_uid=" . $_SESSION["PROCESS"] . "&prj_readonly=true&app_uid=" . $_SESSION["APPLICATION"] . "&tracker_designer=1"; + + $_SESSION["TRACKER_JAVASCRIPT"] = " + + "; + + G::RenderPage("publish"); //note: url processmap "../designer?prj_uid=$_SESSION['PROCESS']&prj_readonly=true&app_uid=$_SESSION['APP_UID']" + break; } if (isset( $aFields['TITLE'] )) { @@ -246,9 +283,8 @@ switch (($aCaseTracker['CT_MAP_TYPE'])) { }.extend(this); rpcRequest.make(); - + });' ); G::RenderPage( 'publish' ); break; } - diff --git a/workflow/engine/skinEngine/base/layout.html b/workflow/engine/skinEngine/base/layout.html index cf192a18f..13b89edfc 100755 --- a/workflow/engine/skinEngine/base/layout.html +++ b/workflow/engine/skinEngine/base/layout.html @@ -58,10 +58,16 @@ {/if}