diff --git a/gulliver/system/class.g.php b/gulliver/system/class.g.php index 7fbff3ce9..7a9601e74 100755 --- a/gulliver/system/class.g.php +++ b/gulliver/system/class.g.php @@ -340,21 +340,22 @@ class G if ($file == $dirName . '/.' || $file == $dirName . '/..') { continue; } + if (is_dir( $file )) { G::rm_dir( $file ); - - if (strtoupper( substr( PHP_OS, 0, 3 ) ) === 'WIN') { - $dirNameWin = str_replace( '/', '\\', $dirName ); - exec( 'DEL /F /S /Q ' . $dirNameWin . '', $res ); - exec( 'RD /S /Q ' . $dirNameWin . '', $res ); - } else { - @rmdir( $file ); - } - } else { @unlink( $file ); } } + + if (strtoupper(substr(PHP_OS, 0, 3)) === "WIN") { + $dirName = str_replace("/", "\\", $dirName); + + exec("DEL /F /S /Q " . $dirName . "", $res); + exec("RD /S /Q " . $dirName . "", $res); + } else { + @rmdir($dirName); + } } else { @unlink( $dirName ); } diff --git a/tests/automated/workflow/engine/classes/classwsBaseTest.php b/tests/automated/workflow/engine/classes/classwsBaseTest.php index c136540ae..427f60f76 100644 --- a/tests/automated/workflow/engine/classes/classwsBaseTest.php +++ b/tests/automated/workflow/engine/classes/classwsBaseTest.php @@ -665,37 +665,6 @@ class classwsBaseTest extends PHPUnit_Framework_TestCase $params = $r->getParameters(); } - /** - * @covers wsBase::importProcessFromLibrary - * @todo Implement testimportProcessFromLibrary(). - */ - public function testimportProcessFromLibrary() - { - $methods = get_class_methods($this->object); - $this->assertTrue( in_array('importProcessFromLibrary', $methods ), 'exists method importProcessFromLibrary' ); - $r = new ReflectionMethod('wsBase', 'importProcessFromLibrary'); - $params = $r->getParameters(); - $this->assertTrue( $params[0]->getName() == 'processId'); - $this->assertTrue( $params[0]->isArray() == false); - $this->assertTrue( $params[0]->isOptional () == false); - $this->assertTrue( $params[1]->getName() == 'version'); - $this->assertTrue( $params[1]->isArray() == false); - $this->assertTrue( $params[1]->isOptional () == true); - $this->assertTrue( $params[1]->getDefaultValue() == ''); - $this->assertTrue( $params[2]->getName() == 'importOption'); - $this->assertTrue( $params[2]->isArray() == false); - $this->assertTrue( $params[2]->isOptional () == true); - $this->assertTrue( $params[2]->getDefaultValue() == ''); - $this->assertTrue( $params[3]->getName() == 'usernameLibrary'); - $this->assertTrue( $params[3]->isArray() == false); - $this->assertTrue( $params[3]->isOptional () == true); - $this->assertTrue( $params[3]->getDefaultValue() == ''); - $this->assertTrue( $params[4]->getName() == 'passwordLibrary'); - $this->assertTrue( $params[4]->isArray() == false); - $this->assertTrue( $params[4]->isOptional () == true); - $this->assertTrue( $params[4]->getDefaultValue() == ''); - } - /** * @covers wsBase::getCaseNotes * @todo Implement testgetCaseNotes(). diff --git a/workflow/engine/classes/class.wsBase.php b/workflow/engine/classes/class.wsBase.php index 8d5d91048..eea3faf7f 100755 --- a/workflow/engine/classes/class.wsBase.php +++ b/workflow/engine/classes/class.wsBase.php @@ -2940,137 +2940,6 @@ class wsBase * @param string passwordLibrary : The password to obtain access to the ProcessMaker library. * @return $eturns will return an object */ - public function importProcessFromLibrary ($processId, $version = '', $importOption = '', $usernameLibrary = '', $passwordLibrary = '') - { - try { - G::LoadClass( 'processes' ); - //$versionReq = $_GET['v']; - //. (isset($_GET['s']) ? '&s=' . $_GET['s'] : '') - $ipaddress = $_SERVER['REMOTE_ADDR']; - $oProcesses = new Processes(); - $oProcesses->ws_open_public(); - $oProcess = $oProcesses->ws_processGetData( $processId ); - - if ($oProcess->status_code != 0) { - throw (new Exception( $oProcess->message )); - } - - $privacy = $oProcess->privacy; - - $strSession = ''; - - if ($privacy != 'FREE') { - global $sessionId; - $antSession = $sessionId; - $oProcesses->ws_open( $usernameLibrary, $passwordLibrary ); - $strSession = "&s=" . $sessionId; - $sessionId = $antSession; - } - - //downloading the file - $localPath = PATH_DOCUMENT . 'input' . PATH_SEP; - G::mk_dir( $localPath ); - $newfilename = G::GenerateUniqueId() . '.pm'; - - $downloadUrl = PML_DOWNLOAD_URL . '?id=' . $processId . $strSession; - - $oProcess = new Processes(); - $oProcess->downloadFile( $downloadUrl, $localPath, $newfilename ); - - //getting the ProUid from the file recently downloaded - $oData = $oProcess->getProcessData( $localPath . $newfilename ); - - if (is_null( $oData )) { - $data['DOWNLOAD_URL'] = $downloadUrl; - $data['LOCAL_PATH'] = $localPath; - $data['NEW_FILENAME'] = $newfilename; - - throw new Exception( G::loadTranslation( 'ID_ERROR_URL_PROCESS_INVALID', SYS_LANG, $data ) ); - } - - $sProUid = $oData->process['PRO_UID']; - $oData->process['PRO_UID_OLD'] = $sProUid; - - //if the process exists, we need to check the $importOption to and re-import if the user wants, - if ($oProcess->processExists( $sProUid )) { - //Update the current Process, overwriting all tasks and steps - if ($importOption == 1) { - $oProcess->updateProcessFromData( $oData, $localPath . $newfilename ); - //delete the xmlform cache - - - if (file_exists( PATH_OUTTRUNK . 'compiled' . PATH_SEP . 'xmlform' . PATH_SEP . $sProUid )) { - $oDirectory = dir( PATH_OUTTRUNK . 'compiled' . PATH_SEP . 'xmlform' . PATH_SEP . $sProUid ); - - while ($sObjectName = $oDirectory->read()) { - if (($sObjectName != '.') && ($sObjectName != '..')) { - $strAux = PATH_OUTTRUNK . 'compiled' . PATH_SEP . 'xmlform' . PATH_SEP; - $strAux = $strAux . $sProUid . PATH_SEP . $sObjectName; - - unlink( $strAux ); - } - } - - $oDirectory->close(); - } - - $sNewProUid = $sProUid; - } - - //Disable current Process and create a new version of the Process - if ($importOption == 2) { - $oProcess->disablePreviousProcesses( $sProUid ); - $sNewProUid = $oProcess->getUnusedProcessGUID(); - $oProcess->setProcessGuid( $oData, $sNewProUid ); - $oProcess->setProcessParent( $oData, $sProUid ); - $oData->process['PRO_TITLE'] = "New - " . $oData->process['PRO_TITLE'] . ' - ' . date( 'M d, H:i' ); - $oProcess->renewAll( $oData ); - $oProcess->createProcessFromData( $oData, $localPath . $newfilename ); - } - - //Create a completely new Process without change the current Process - if ($importOption == 3) { - //krumo ($oData); die; - $sNewProUid = $oProcess->getUnusedProcessGUID(); - $oProcess->setProcessGuid( $oData, $sNewProUid ); - - $strAux = "Copy of - " . $oData->process['PRO_TITLE'] . ' - ' . date( 'M d, H:i' ); - - $oData->process['PRO_TITLE'] = $strAux; - $oProcess->renewAll( $oData ); - $oProcess->createProcessFromData( $oData, $localPath . $newfilename ); - } - - if ($importOption != 1 && $importOption != 2 && $importOption != 3) { - throw new Exception( G::loadTranslation( 'ID_PROCESS_ALREADY_IN_SYSTEM' ) ); - } - } - - //finally, creating the process if the process doesn't exist - if (! $oProcess->processExists( $processId )) { - $oProcess->createProcessFromData( $oData, $localPath . $newfilename ); - } - - //show the info after the imported process - $oProcess = new Processes(); - $oProcess->ws_open_public(); - $processData = $oProcess->ws_processGetData( $processId ); - - $result->status_code = 0; - $result->message = G::loadTranslation( 'ID_COMMAND_EXECUTED_SUCCESSFULLY' ); - $result->timestamp = date( 'Y-m-d H:i:s' ); - $result->processId = $processId; - $result->processTitle = $processData->title; - $result->category = (isset( $processData->category ) ? $processData->category : ''); - $result->version = $processData->version; - - return $result; - } catch (Exception $e) { - $result = new wsResponse( 100, $e->getMessage() ); - - return $result; - } - } public function getCaseNotes ($applicationID, $userUid = '') { diff --git a/workflow/engine/classes/model/Content.php b/workflow/engine/classes/model/Content.php index cffa35f53..3fb8ad624 100755 --- a/workflow/engine/classes/model/Content.php +++ b/workflow/engine/classes/model/Content.php @@ -104,6 +104,29 @@ class Content extends BaseContent return ($defaultLang); } + /* + * Change the value of all records + * @param string $ConCategory + * @param string $ConParent + * @param string $ConId + * @param string $ConValue + * @return void + * + */ + public function updateEqualValue ($ConCategory, $ConParent, $ConId, $ConValue) + { + $con = Propel::getConnection('workflow'); + $c1 = new Criteria('workflow'); + $c1->add(ContentPeer::CON_CATEGORY, $ConCategory); + $c1->add(ContentPeer::CON_PARENT, $ConParent); + $c1->add(ContentPeer::CON_ID, $ConId); + + // update set + $c2 = new Criteria('workflow'); + $c2->add(ContentPeer::CON_VALUE, $ConValue); + BasePeer::doUpdate($c1, $c2, $con); + } + /* * Load the content row and the Save automatically the row for the destination language * @param string $ConCategory @@ -174,25 +197,27 @@ class Content extends BaseContent if (is_null( $con )) { $con = new Content(); + $con->setConCategory( $ConCategory ); + if ($con->getConParent() != $ConParent) { + $con->setConParent( $ConParent ); + } + $con->setConId( $ConId ); + $con->setConLang( $ConLang ); + $con->setConValue( $ConValue ); + if ($con->validate()) { + $res = $con->save(); + return $res; + } else { + $e = new Exception( "Error in addcontent, the row $ConCategory, $ConParent, $ConId, $ConLang is not Valid" ); + throw ($e); + } } else { if ($con->getConParent() == $ConParent && $con->getConCategory() == $ConCategory && $con->getConValue() == $ConValue && $con->getConLang() == $ConLang && $con->getConId() == $ConId) { return true; } } - $con->setConCategory( $ConCategory ); - if ($con->getConParent() != $ConParent) { - $con->setConParent( $ConParent ); - } - $con->setConId( $ConId ); - $con->setConLang( $ConLang ); - $con->setConValue( $ConValue ); - if ($con->validate()) { - $res = $con->save(); - return $res; - } else { - $e = new Exception( "Error in addcontent, the row $ConCategory, $ConParent, $ConId, $ConLang is not Valid" ); - throw ($e); - } + Content::updateEqualValue( $ConCategory, $ConParent, $ConId, $ConValue ); + return true; } catch (Exception $e) { throw ($e); } diff --git a/workflow/engine/classes/model/StepTrigger.php b/workflow/engine/classes/model/StepTrigger.php index cb44b9fd7..389ea4131 100755 --- a/workflow/engine/classes/model/StepTrigger.php +++ b/workflow/engine/classes/model/StepTrigger.php @@ -173,13 +173,16 @@ class StepTrigger extends BaseStepTrigger } } - public function getNextPosition ($sStepUID, $sType) + public function getNextPosition ($sStepUID, $sType, $sTaskId = '') { try { $oCriteria = new Criteria( 'workflow' ); $oCriteria->addSelectColumn( '(COUNT(*) + 1) AS POSITION' ); $oCriteria->add( StepTriggerPeer::STEP_UID, $sStepUID ); $oCriteria->add( StepTriggerPeer::ST_TYPE, $sType ); + if ($sTaskId != '') { + $oCriteria->add( StepTriggerPeer::TAS_UID , $sTaskId ); + } $oDataset = StepTriggerPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); @@ -190,6 +193,44 @@ class StepTrigger extends BaseStepTrigger } } + /** + * + * + * @param type $sStepUID + * @param type $sTaskUID + * @param type $sType + * + * @throws Exception + */ + public function orderPosition ($sStepUID, $sTaskUID, $sType) + { + try { + $oCriteria = new Criteria( 'workflow' ); + $oCriteria->add( StepTriggerPeer::STEP_UID, $sStepUID ); + $oCriteria->add( StepTriggerPeer::TAS_UID, $sTaskUID ); + $oCriteria->add( StepTriggerPeer::ST_TYPE, $sType ); + $oCriteria->addAscendingOrderByColumn(StepTriggerPeer::ST_POSITION); + $oDataset = StepTriggerPeer::doSelectRS( $oCriteria ); + + $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); + $oDataset->next(); + $aRow = $oDataset->getRow(); + if ((int)$aRow['ST_POSITION'] > 1 ) { + $rowNro = 1; + while ($aRow = $oDataset->getRow()) { + $oStep = StepTriggerPeer::retrieveByPK( $aRow['STEP_UID'], $aRow['TAS_UID'], $aRow['TRI_UID'], $aRow['ST_TYPE'] ); + $oStep->setStPosition( $rowNro ); + $oStep->save(); + $oDataset->next(); + $rowNro++; + } + } + + } catch (Exception $oException) { + throw $oException; + } + } + public function reOrder ($sStepUID, $sTaskUID, $sType, $iPosition) { try { @@ -199,6 +240,7 @@ class StepTrigger extends BaseStepTrigger $oCriteria->add( StepTriggerPeer::ST_TYPE, $sType ); $oCriteria->add( StepTriggerPeer::ST_POSITION, $iPosition, '>' ); $oDataset = StepTriggerPeer::doSelectRS( $oCriteria ); + $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { diff --git a/workflow/engine/classes/triggers/class.pmAlfrescoFunctions.php b/workflow/engine/classes/triggers/class.pmAlfrescoFunctions.php index 9317b79e5..fb7b7b948 100755 --- a/workflow/engine/classes/triggers/class.pmAlfrescoFunctions.php +++ b/workflow/engine/classes/triggers/class.pmAlfrescoFunctions.php @@ -219,7 +219,7 @@ function downloadDoc($alfrescoServerUrl, $pathFile, $pathFolder, $user, $pwd, $m $alfresco_url = "$alfrescoServerUrl" . PATH_SEP . "s" . PATH_SEP . "cmis" . PATH_SEP . "p" . PATH_SEP . $mainFolder . PATH_SEP . "$pathFile"; $alfresco_exec = RestClient::get($alfresco_url, $user, $pwd, 'application/atom+xml'); $sXmlArray = $alfresco_exec->getResponse(); - $sXmlArray = eregi_replace("[\n|\r|\n\r]", '', $sXmlArray); + $sXmlArray = preg_replace("[\n|\r|\n\r]", '', $sXmlArray); $xmlObject = simplexml_load_string((string) $sXmlArray); if (!isset($xmlObject->content)) { @@ -231,7 +231,7 @@ function downloadDoc($alfrescoServerUrl, $pathFile, $pathFolder, $user, $pwd, $m $linkContent = (string) $xmlObject->content->attributes()->src; $alfresco_exec = RestClient::get($linkContent, $user, $pwd, 'application/atom+xml'); $sXmlArray = $alfresco_exec->getResponse(); - $content = eregi_replace("[\n|\r|\n\r]", '', $sXmlArray); + $content = preg_replace("[\n|\r|\n\r]", '', $sXmlArray); if ('/' != substr($pathFolder, -1)) { $pathFolder .= '/'; diff --git a/workflow/engine/controllers/installer.php b/workflow/engine/controllers/installer.php index d13495df5..bfb7bfd6b 100755 --- a/workflow/engine/controllers/installer.php +++ b/workflow/engine/controllers/installer.php @@ -35,8 +35,8 @@ class Installer extends Controller public function index ($httpData) { - $partnerFlag = (defined('PARTNER_FLAG')) ? PARTNER_FLAG : false; - if ($partnerFlag){ + + if ((strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') && (file_exists($this->path_shared . 'partner.info'))){ $this->includeExtJS( 'installer/stopInstall'); $this->setView( 'installer/mainStopInstall' ); G::RenderPage( 'publish', 'extJs' ); diff --git a/workflow/engine/methods/appFolder/appFolderAjax.php b/workflow/engine/methods/appFolder/appFolderAjax.php index ea50c3415..905c65166 100755 --- a/workflow/engine/methods/appFolder/appFolderAjax.php +++ b/workflow/engine/methods/appFolder/appFolderAjax.php @@ -986,7 +986,7 @@ function uploadDocument() Ext.getCmp("uploadform").getForm().submit({ //reset: true, reset: false, - waitTitle : "", + waitTitle : " ", success: function(form, action) { datastore.reload(); @@ -1741,7 +1741,7 @@ function newFolder() Ext.getCmp("simpleform").getForm().submit({ //reset: true, reset: false, - waitTitle : "", + waitTitle : " ", success: function(form, action) { statusBarMessage(action.result.message, false, true); try{ diff --git a/workflow/engine/methods/cases/proxyReassignUsersList.php b/workflow/engine/methods/cases/proxyReassignUsersList.php index 640af47ca..66c8ac9c7 100755 --- a/workflow/engine/methods/cases/proxyReassignUsersList.php +++ b/workflow/engine/methods/cases/proxyReassignUsersList.php @@ -58,7 +58,7 @@ function array_sort ($array, $on, $order = SORT_ASC, $query = '') $appUid = isset( $_POST['application'] ) ? $_POST['application'] : ''; -// $processUid = isset($_POST['process']) ? $_POST['process'] : ''; +//$processUid = isset($_POST['process']) ? $_POST['process'] : ''; $TaskUid = isset( $_POST['task'] ) ? $_POST['task'] : ''; $sReassignFromUser = isset( $_POST['currentUser'] ) ? $_POST['currentUser'] : ''; @@ -71,12 +71,82 @@ $aUsersInvolved = Array(); $ConfEnv = $oConf->getFormats(); $rows = $oCases->getUsersToReassign($TaskUid, $sReassignFromUser); - -foreach($rows as $row) { +$flagSupervisors = false; +foreach ($rows as $row) { $sCaseUser = G::getFormatUserList( $ConfEnv['format'], $row ); $aUsersInvolved[] = array ('userUid' => $row['USR_UID'], 'userFullname' => $sCaseUser); + if ($row['USR_UID'] == $_SESSION['USER_LOGGED']) { + $flagSupervisors = true; + } } +if (!$flagSupervisors) { + G::LoadClass('application'); + $application = new Application(); + $appData = $application->Load($appUid); + + $aResp =array(); + $sProcessUID =$appData ['PRO_UID']; + + // Users + $oCriteria = new Criteria('workflow'); + $oCriteria->addSelectColumn(ProcessUserPeer::PU_UID); + $oCriteria->addSelectColumn(ProcessUserPeer::USR_UID); + $oCriteria->addSelectColumn(ProcessUserPeer::PRO_UID); + $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME); + $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME); + $oCriteria->addSelectColumn(UsersPeer::USR_USERNAME); + $oCriteria->addSelectColumn(UsersPeer::USR_EMAIL); + $oCriteria->addJoin(ProcessUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN); + $oCriteria->add(ProcessUserPeer::PU_TYPE, 'SUPERVISOR'); + $oCriteria->add(ProcessUserPeer::PRO_UID, $sProcessUID); + $oCriteria->add(ProcessUserPeer::USR_UID, $_SESSION['USER_LOGGED']); + $oCriteria->addAscendingOrderByColumn(UsersPeer::USR_FIRSTNAME); + $oDataset = ProcessUserPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $flagSupervisors = false; + + if ($oDataset->next()) { + $aRow = $oDataset->getRow(); + $supervisors = G::getFormatUserList( $ConfEnv['format'], $aRow ); + $aUsersInvolved[] = array ('userUid' => $aRow['USR_UID'], 'userFullname' => $supervisors); + $flagSupervisors = true; + } + + if (!$flagSupervisors) { + // Groups + $oCriteria = new Criteria('workflow'); + $oCriteria->addSelectColumn(ProcessUserPeer::PU_UID); + $oCriteria->addSelectColumn(ProcessUserPeer::USR_UID); + $oCriteria->addSelectColumn(ProcessUserPeer::PRO_UID); + + $oCriteria->addSelectColumn(UsersPeer::USR_UID); + $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME); + $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME); + $oCriteria->addSelectColumn(UsersPeer::USR_USERNAME); + $oCriteria->addSelectColumn(UsersPeer::USR_EMAIL); + + $oCriteria->addJoin(ProcessUserPeer::USR_UID, GroupUserPeer::GRP_UID, Criteria::LEFT_JOIN); + $oCriteria->addJoin(GroupUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN); + + $oCriteria->add(ProcessUserPeer::PU_TYPE, 'GROUP_SUPERVISOR'); + $oCriteria->add(ProcessUserPeer::PRO_UID, $sProcessUID); + $oCriteria->add(GroupUserPeer::USR_UID, $_SESSION['USER_LOGGED']); + + $oDataset = ProcessUserPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); + + if ($oDataset->next()) { + $aRow = $oDataset->getRow(); + $supervisors = G::getFormatUserList( $ConfEnv['format'], $aRow ); + $aUsersInvolved[] = array ('userUid' => $aRow['USR_UID'], 'userFullname' => $supervisors); + } + + } +} + + + // $oTmp = new stdClass(); // $oTmp->items = $aUsersInvolved; $result = array (); diff --git a/workflow/engine/methods/services/pmos2.wsdl b/workflow/engine/methods/services/pmos2.wsdl index cf3a11a89..00da67108 100755 --- a/workflow/engine/methods/services/pmos2.wsdl +++ b/workflow/engine/methods/services/pmos2.wsdl @@ -740,30 +740,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - + @@ -1085,12 +1062,6 @@ - - - - - - @@ -1264,10 +1235,6 @@ - - - - @@ -1597,15 +1564,6 @@ - - - - - - - - - diff --git a/workflow/engine/methods/services/soap2.php b/workflow/engine/methods/services/soap2.php index 4891ee915..2f4c827c7 100755 --- a/workflow/engine/methods/services/soap2.php +++ b/workflow/engine/methods/services/soap2.php @@ -1026,20 +1026,6 @@ function systemInformation ($params) return $res; } -function importProcessFromLibrary ($params) -{ - $vsResult = isValidSession( $params->sessionId ); - - if ($vsResult->status_code !== 0) { - return $vsResult; - } - - $ws = new wsBase(); - $res = $ws->importProcessFromLibrary( $params->processId, $params->version, $params->importOption, $params->usernameLibrary, $params->passwordLibrary ); - - return $res; -} - function getCaseNotes ($params) { $vsResult = isValidSession( $params->sessionId ); @@ -1258,7 +1244,6 @@ $server->addFunction("TaskList"); $server->addFunction("TaskCase"); $server->addFunction("ReassignCase"); $server->addFunction("systemInformation"); -$server->addFunction("importProcessFromLibrary"); $server->addFunction("removeUserFromGroup"); $server->addFunction("getCaseNotes"); $server->addFunction("deleteCase"); diff --git a/workflow/engine/methods/steps/steps_Ajax.php b/workflow/engine/methods/steps/steps_Ajax.php index 8c8303ebb..351506293 100755 --- a/workflow/engine/methods/steps/steps_Ajax.php +++ b/workflow/engine/methods/steps/steps_Ajax.php @@ -63,6 +63,10 @@ try { $oProcessMap = new ProcessMap(); global $G_PUBLISH; $G_PUBLISH = new Publisher(); + + $oStepTrigger = new StepTrigger(); + $oStepTrigger->orderPosition( $aData['sStep'], $_SESSION['TASK'], $aData['sType']); + if ($aData['sType'] == 'BEFORE') { $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'steps/triggersBefore_List', $oProcessMap->getStepTriggersCriteria( $aData['sStep'], $_SESSION['TASK'], $aData['sType'] ), array ('STEP' => $aData['sStep']) ); } else { @@ -114,12 +118,16 @@ try { } break; case 'assignTrigger': - $aFields = array ('STEP_UID' => $aData['STEP_UID'],'TAS_UID' => $_SESSION['TASK'],'TRI_UID' => $aData['TRI_UID'],'ST_TYPE' => $aData['ST_TYPE'] + $aFields = array ( + 'STEP_UID' => $aData['STEP_UID'], + 'TAS_UID' => $_SESSION['TASK'], + 'TRI_UID' => $aData['TRI_UID'], + 'ST_TYPE' => $aData['ST_TYPE'] ); $oStepTrigger = new StepTrigger(); $oStepTrigger->create( $aFields ); $aFields['ST_CONDITION'] = $aData['ST_CONDITION']; - $aFields['ST_POSITION'] = ($oStepTrigger->getNextPosition( $aData['STEP_UID'], $aData['ST_TYPE'] ) - 1); + $aFields['ST_POSITION'] = ($oStepTrigger->getNextPosition( $aData['STEP_UID'], $aData['ST_TYPE'], $_SESSION['TASK'] ) - 1 ); $oStepTrigger->update( $aFields ); break; case 'editTriggerCondition': diff --git a/workflow/engine/templates/admin/pmLogo.js b/workflow/engine/templates/admin/pmLogo.js index 307d7facd..cebd09910 100644 --- a/workflow/engine/templates/admin/pmLogo.js +++ b/workflow/engine/templates/admin/pmLogo.js @@ -254,7 +254,7 @@ Ext.onReady(function() { panelRightTop.getForm().submit({ url : '../adminProxy/uploadImage', waitMsg : _('ID_LOADING'), - waitTitle : "", + waitTitle : " ", success : function(form, o) { obj = Ext.util.JSON.decode(o.response.responseText); if (obj.failed == '0' && obj.uploaded != '0') { diff --git a/workflow/engine/templates/admin/system.js b/workflow/engine/templates/admin/system.js index e45aaea9a..b260e8901 100644 --- a/workflow/engine/templates/admin/system.js +++ b/workflow/engine/templates/admin/system.js @@ -230,7 +230,7 @@ function saveSettings() Ext.getCmp('frm').getForm().submit( { url : '../adminProxy/saveSystemConf', waitMsg : _('ID_SAVING_PROCESS'), - waitTitle : "", + waitTitle : " ", timeout : 36000, success : function(obj, resp) { //nothing to do diff --git a/workflow/engine/templates/authSources/authSourcesEdit.js b/workflow/engine/templates/authSources/authSourcesEdit.js index b1276f29b..2e85ce94d 100644 --- a/workflow/engine/templates/authSources/authSourcesEdit.js +++ b/workflow/engine/templates/authSources/authSourcesEdit.js @@ -297,7 +297,7 @@ Ext.onReady(function(){ } function saveAuthSources(){ formAuthSourceE.getForm().submit({ - waitTitle : "", + waitTitle : " ", url: '../adminProxy/saveAuthSources', params: { // action : 'tryit', diff --git a/workflow/engine/templates/authSources/authSourcesListNew.js b/workflow/engine/templates/authSources/authSourcesListNew.js index 31a093c0c..2501319ea 100755 --- a/workflow/engine/templates/authSources/authSourcesListNew.js +++ b/workflow/engine/templates/authSources/authSourcesListNew.js @@ -94,7 +94,7 @@ var cboxAuthSourse = new Ext.form.ComboBox({ window.location = 'authSources_New?AUTH_SOURCE_PROVIDER='+formAuthSourceOptoins.getForm().findField('AUTH_SOURCE_PROVIDER').getValue(); return false;*/ formAuthSourceOptoins.getForm().submit({ - waitTitle : "", + waitTitle : " ", url: '../adminProxy/testingOption', params: { action : 'test', diff --git a/workflow/engine/templates/authSources/authSourceskindof.js b/workflow/engine/templates/authSources/authSourceskindof.js index cf044c625..c26745472 100644 --- a/workflow/engine/templates/authSources/authSourceskindof.js +++ b/workflow/engine/templates/authSources/authSourceskindof.js @@ -317,7 +317,7 @@ Ext.onReady(function(){ } function TestSite(){ formAuthSource.getForm().submit({ - waitTitle : "", + waitTitle : " ", url: '../adminProxy/saveAuthSources', params: { // action : 'tryit', diff --git a/workflow/engine/templates/cases/open.js b/workflow/engine/templates/cases/open.js index 0a7071494..e33fc6f4e 100755 --- a/workflow/engine/templates/cases/open.js +++ b/workflow/engine/templates/cases/open.js @@ -1122,7 +1122,7 @@ Ext.onReady(function(){ unpauseDate = unpauseDate.format('Y-m-d'); Ext.getCmp('unpauseFrm').getForm().submit({ - waitTitle : "", + waitTitle : " ", url:'ajaxListener', method : 'post', params : { diff --git a/workflow/engine/templates/groups/groupsList.js b/workflow/engine/templates/groups/groupsList.js index 9d8347899..2e5b6512c 100755 --- a/workflow/engine/templates/groups/groupsList.js +++ b/workflow/engine/templates/groups/groupsList.js @@ -411,7 +411,7 @@ DuplicateGroupName = function(){ //Save New Group SaveNewGroup = function(){ newForm.getForm().submit({ - waitTitle : "", + waitTitle : " ", success: function(f,a){ CloseWindow(); //Hide popup widow newForm.getForm().reset(); //Set empty form to next use @@ -469,7 +469,7 @@ SaveEditGroupAction = function(){ //Save Edit Group SaveEditGroup = function(){ editForm.getForm().submit({ - waitTitle : "", + waitTitle : " ", success: function(f,a){ CloseWindow(); //Hide popup widow DoSearch(); //Reload store grid diff --git a/workflow/engine/templates/main/sysLogin.js b/workflow/engine/templates/main/sysLogin.js index c21e9f64e..a75d7c389 100644 --- a/workflow/engine/templates/main/sysLogin.js +++ b/workflow/engine/templates/main/sysLogin.js @@ -296,7 +296,7 @@ Login.submit = function() Login.form.getForm().submit({ method: 'POST', - waitTitle: '', + waitTitle: " ", //waitMsg: 'Verifying User...', success: function(form, action) { diff --git a/workflow/engine/templates/outputdocs/htmlEditor.js b/workflow/engine/templates/outputdocs/htmlEditor.js index e5b45b369..82c6473b6 100755 --- a/workflow/engine/templates/outputdocs/htmlEditor.js +++ b/workflow/engine/templates/outputdocs/htmlEditor.js @@ -141,7 +141,7 @@ Ext.onReady(function(){ uploader.getForm().submit({ url: 'outputdocs_Ajax?action=setTemplateFile', waitMsg: _('ID_UPLOADING_FILE'), - waitTitle : "", + waitTitle : " ", success: function (o, resp) { w.close(); diff --git a/workflow/engine/templates/pmTables/data.js b/workflow/engine/templates/pmTables/data.js index e59d35b85..c3d179d78 100755 --- a/workflow/engine/templates/pmTables/data.js +++ b/workflow/engine/templates/pmTables/data.js @@ -536,7 +536,7 @@ ImportPMTableCSV = function(){ uploader.getForm().submit({ url : '../pmTablesProxy/importCSV', waitMsg : _('ID_UPLOADING_FILE'), - waitTitle : "", + waitTitle : " ", success : function(o, resp){ w.close(); infoGrid.store.reload(); diff --git a/workflow/engine/templates/pmTables/list.js b/workflow/engine/templates/pmTables/list.js index 8b519cd48..5c8753886 100755 --- a/workflow/engine/templates/pmTables/list.js +++ b/workflow/engine/templates/pmTables/list.js @@ -545,7 +545,7 @@ ImportPMTable = function(){ uploader.getForm().submit({ url: 'pmTablesProxy/import', waitMsg: _('ID_UPLOADING_FILE'), - waitTitle : "", + waitTitle : " ", success: function(o, resp){ var result = Ext.util.JSON.decode(resp.response.responseText); diff --git a/workflow/engine/templates/processCategory/processCategoryList.js b/workflow/engine/templates/processCategory/processCategoryList.js index cfe0619ad..e89a19125 100755 --- a/workflow/engine/templates/processCategory/processCategoryList.js +++ b/workflow/engine/templates/processCategory/processCategoryList.js @@ -331,7 +331,7 @@ SaveNewCategory = function(){ if (resp){ viewport.getEl().mask(_('ID_PROCESSING')); newForm.getForm().submit({ - waitTitle : "", + waitTitle : " ", success: function(f,a){ viewport.getEl().unmask(); CloseWindow(); //Hide popup widow @@ -381,7 +381,7 @@ UpdateCategory = function(){ if (resp){ viewport.getEl().mask(_('ID_PROCESSING')); editForm.getForm().submit({ - waitTitle : "", + waitTitle : " ", success: function(f,a){ viewport.getEl().unmask(); CloseWindow(); //Hide popup widow diff --git a/workflow/engine/templates/processes/main.js b/workflow/engine/templates/processes/main.js index 29304b8cc..de6584167 100755 --- a/workflow/engine/templates/processes/main.js +++ b/workflow/engine/templates/processes/main.js @@ -503,7 +503,7 @@ function saveProcess() Ext.getCmp('newProcessForm').getForm().submit( { url : '../processProxy/saveProcess', waitMsg : _('ID_SAVING_PROCESS'), - waitTitle : "", + waitTitle : " ", timeout : 36000, success : function(obj, resp) { location.href = 'processes_Map?PRO_UID='+resp.result.PRO_UID; @@ -791,7 +791,7 @@ importProcessExistGroup = function() uploader.getForm().submit({ url : 'processes_Import_Ajax', waitMsg : _('ID_UPLOADING_PROCESS_FILE'), - waitTitle : "", + waitTitle : " ", success : function(o, resp) { var resp_ = Ext.util.JSON.decode(resp.response.responseText); var sNewProUid = resp_.sNewProUid; @@ -920,7 +920,7 @@ importProcessExistProcess = function() uploader.getForm().submit({ url : 'processes_Import_Ajax', waitMsg : _('ID_UPLOADING_PROCESS_FILE'), - waitTitle : "", + waitTitle : " ", success: function(o, resp) { var resp_ = Ext.util.JSON.decode(resp.response.responseText); var sNewProUid = resp_.sNewProUid; @@ -1025,7 +1025,7 @@ importProcess = function() uploader.getForm().submit({ url : 'processes_Import_Ajax', waitMsg : _('ID_UPLOADING_PROCESS_FILE'), - waitTitle : "", + waitTitle : " ", success : function(o, resp) { var resp_ = Ext.util.JSON.decode(resp.response.responseText); diff --git a/workflow/engine/templates/roles/rolesList.js b/workflow/engine/templates/roles/rolesList.js index c6d79272b..b70a09b51 100755 --- a/workflow/engine/templates/roles/rolesList.js +++ b/workflow/engine/templates/roles/rolesList.js @@ -440,7 +440,7 @@ SaveNewRole = function(){ if (resp.success){ viewport.getEl().mask(_('ID_PROCESSING')); newForm.getForm().submit({ - waitTitle : "", + waitTitle : " ", success: function(f,a){ viewport.getEl().unmask(); CloseWindow(); //Hide popup widow @@ -494,7 +494,7 @@ UpdateRole = function(){ if (resp.success){ viewport.getEl().mask(_('ID_PROCESSING')); editForm.getForm().submit({ - waitTitle : "", + waitTitle : " ", success: function(f,a){ viewport.getEl().unmask(); CloseWindow(); //Hide popup widow diff --git a/workflow/engine/templates/setup/clearCompiled.js b/workflow/engine/templates/setup/clearCompiled.js index 099184761..ed26cb66d 100644 --- a/workflow/engine/templates/setup/clearCompiled.js +++ b/workflow/engine/templates/setup/clearCompiled.js @@ -76,7 +76,7 @@ function clearCache () { Ext.getCmp('frmCache').getForm().submit({ url : 'clearCompiledAjax', waitMsg : _('ID_SAVING_PROCESS'), - waitTitle : "", + waitTitle : " ", timeout : 36000, success : function(obj, resp) { message = ''; diff --git a/workflow/engine/templates/setup/environmentSettings.js b/workflow/engine/templates/setup/environmentSettings.js index c39200663..cd45a7533 100755 --- a/workflow/engine/templates/setup/environmentSettings.js +++ b/workflow/engine/templates/setup/environmentSettings.js @@ -275,7 +275,7 @@ Ext.onReady(function() { formSettings.getForm().submit({ url : 'environmentSettingsAjax?request=save&r=' + Math.random(), waitMsg : _('ID_SAVING_ENVIRONMENT_SETTINGS')+'...', - waitTitle : "", + waitTitle : " ", timeout : 36000, success : function(res, req) { PMExt.notify(_('ID_PM_ENV_SETTINGS_TITLE'), req.result.msg); diff --git a/workflow/engine/templates/setup/loginSettings.js b/workflow/engine/templates/setup/loginSettings.js index d2bdefe5f..f0093b107 100755 --- a/workflow/engine/templates/setup/loginSettings.js +++ b/workflow/engine/templates/setup/loginSettings.js @@ -103,7 +103,7 @@ function saveSettings() Ext.getCmp('frm').getForm().submit( { url : 'loginSettingsAjax?request=saveSettings', waitMsg : _('ID_SAVING_PROCESS'), - waitTitle : "", + waitTitle : " ", timeout : 36000, success : function(obj, resp) { //nothing to do diff --git a/workflow/engine/templates/setup/newSite.js b/workflow/engine/templates/setup/newSite.js index d24e8f998..11a683b42 100755 --- a/workflow/engine/templates/setup/newSite.js +++ b/workflow/engine/templates/setup/newSite.js @@ -151,7 +151,7 @@ Ext.onReady(function(){ action : 'test' }, waitMsg : _('ID_NEW_SITE_TESTING'), - waitTitle : "", + waitTitle : " ", timeout : 3600, success: function(f,a){ nwTitle =formNewSite.getForm().findField('NW_TITLE').getValue(); diff --git a/workflow/engine/templates/setup/processHeartBeatConfig.js b/workflow/engine/templates/setup/processHeartBeatConfig.js index 337faaf07..26927ced5 100644 --- a/workflow/engine/templates/setup/processHeartBeatConfig.js +++ b/workflow/engine/templates/setup/processHeartBeatConfig.js @@ -67,7 +67,7 @@ function saveOption() Ext.getCmp('frmHeart').getForm().submit( { url : 'processHeartBeatAjax?action=saveOption', waitMsg : _('ID_SAVING_PROCESS'), - waitTitle : "", + waitTitle : " ", timeout : 36000, success : function(obj, resp) { //nothing to do diff --git a/workflow/engine/templates/setup/skinList.js b/workflow/engine/templates/setup/skinList.js index 12088e870..168c655d2 100755 --- a/workflow/engine/templates/setup/skinList.js +++ b/workflow/engine/templates/setup/skinList.js @@ -523,7 +523,7 @@ newSkin = function(){ Ext.getCmp("newform").getForm().submit({ //reset: true, reset: false, - waitTitle : "", + waitTitle : " ", success: function(form, action) { store.reload(); @@ -648,7 +648,7 @@ importSkin = function(){ Ext.getCmp("uploadform").getForm().submit({ //reset: true, reset: false, - waitTitle : "", + waitTitle : " ", success: function(form, action) { store.reload(); diff --git a/workflow/engine/templates/tools/main.js b/workflow/engine/templates/tools/main.js index f6ce4bd28..7ad6228d4 100755 --- a/workflow/engine/templates/tools/main.js +++ b/workflow/engine/templates/tools/main.js @@ -309,7 +309,7 @@ function saveNew() Ext.getCmp('formNew').getForm().submit( { url : 'ajaxListener?action=save&id'+id+'&label='+label, waitMsg : _('ID_SAVING'), - waitTitle : "", + waitTitle : " ", timeout : 36000, success : function(obj, resp) { Ext.getCmp('grid').store.reload(); diff --git a/workflow/engine/templates/users/users.js b/workflow/engine/templates/users/users.js index 2423d4496..2c3eb9048 100755 --- a/workflow/engine/templates/users/users.js +++ b/workflow/engine/templates/users/users.js @@ -1051,7 +1051,7 @@ function userFrmEditSubmit() USR_CITY : global.IS_UID }, waitMsg : _("ID_SAVING"), - waitTitle : "", + waitTitle : " ", timeout : 36000, success : function (obj, resp) { if (!infoMode) { diff --git a/workflow/engine/templates/users/usersGroups.js b/workflow/engine/templates/users/usersGroups.js index 6fcba2380..7500c6b2f 100755 --- a/workflow/engine/templates/users/usersGroups.js +++ b/workflow/engine/templates/users/usersGroups.js @@ -586,7 +586,7 @@ RefreshGroups = function(){ SaveChangesAuthForm = function(){ viewport.getEl().mask(_('ID_PROCESSING')); authForm.getForm().submit({ - waitTitle : "", + waitTitle : " ", success: function(f,a){ LoadAuthForm(); viewport.getEl().unmask(); diff --git a/workflow/engine/test/unit/ws/basicMethodsTest.php b/workflow/engine/test/unit/ws/basicMethodsTest.php index 9d07a9326..5a73946ef 100755 --- a/workflow/engine/test/unit/ws/basicMethodsTest.php +++ b/workflow/engine/test/unit/ws/basicMethodsTest.php @@ -103,7 +103,6 @@ $t->is( $methods[18] , 'taskCaseResponse taskCase(taskCaseRequest $parameters)' , 'taskCase'); $t->is( $methods[19] , 'systemInformationResponse systemInformation(systemInformationRequest $parameters)', 'systemInformation'); $t->is( $methods[20] , 'triggerListResponse triggerList(triggerListRequest $parameters)' , 'triggerList'); - $t->is( $methods[21] , 'importProcessFromLibraryResponse importProcessFromLibrary(importProcessFromLibraryRequest $parameters)' , 'importProcessFromLibraryRequest'); $t->diag('--------------- defined WSDL types --------------------' ); @@ -159,8 +158,6 @@ $type47 = "struct triggerListRequest {\n string sessionId;\n}"; $type48 = "struct triggerListStruct {\n string guid;\n string name;\n string processId;\n}"; $type49 = "struct triggerListResponse {\n triggerListStruct triggers;\n}"; - $type50 = "struct importProcessFromLibraryRequest {\n string sessionId;\n string processId;\n string version;\n string importOption;\n string usernameLibrary;\n string passwordLibrary;\n}"; - $type51 = "struct importProcessFromLibraryResponse {\n integer status_code;\n string message;\n string processId;\n string processTitle;\n string category;\n string version;\n}"; $t->is( $types[0 ] , $type0 , 'login ' ); $t->is( $types[1 ] , $type1 , 'loginResponse ' ); @@ -256,17 +253,6 @@ if ( $foundProcess ) { $t->is( $foundProcess, true, 'Sequential Process is present in this Workspace'); } - else { - $res = ws_importProcessFromLibrary ( PROCESS_UID_LIBRARY , '' ); - if ( $res->status_code == 0 ) { - $t->is( $res->status_code, 0, 'Process imported from Library successfully'); - $t->diag( ' processTitle ' . $res->processTitle ); - $t->diag( ' category ' . $res->category ); - $t->diag( ' version ' . $res->version ); - } - else - throw ( new Exception ( $res->message . ". Process '". PROCESS_UID ."' ") ); - } //checking the groupList $groups = ws_groupList() ; @@ -504,9 +490,3 @@ $res = ws_getCaseInfo ($caseId, $delIndex); $t->is( $res->status_code , 0 , 'ws_getCaseInfo status_code = 0'); $t->is( $res->caseStatus , 'COMPLETED' , 'ws_getCaseInfo caseStatus = ' . $res->caseStatus ); - - - - - - diff --git a/workflow/engine/test/unit/ws/bugRelease09Test.php b/workflow/engine/test/unit/ws/bugRelease09Test.php index eaa1ebaf1..03fff991f 100755 --- a/workflow/engine/test/unit/ws/bugRelease09Test.php +++ b/workflow/engine/test/unit/ws/bugRelease09Test.php @@ -46,17 +46,6 @@ if ( $foundProcess ) { $t->is( $foundProcess, true, 'Process for' .$uidName[1]. 'is present in this Workspace'); } - else { - $res = ws_importProcessFromLibrary ( $process_uid_library , '' , 3, PML_USER_ID, PML_USER_PASS ); - if ( $res->status_code == 0 ) { - $t->is( $res->status_code, 0, 'Process imported from Library successfully'); - $t->diag( ' processTitle ' . $res->processTitle ); - $t->diag( ' category ' . $res->category ); - $t->diag( ' version ' . $res->version ); - } - else - throw ( new Exception ( $res->message . ". Process '". $uid_Process ."' ") ); - } } //creating an user, if this user exists just skip this lines @@ -343,4 +332,3 @@ $t->is( $foundUser2, true, 'user2 is present in Group employees'); $t->is( $foundUser3, true, 'user3 is present in Group finance'); - \ No newline at end of file diff --git a/workflow/engine/test/unit/ws/wsClient.php b/workflow/engine/test/unit/ws/wsClient.php index e4ed68247..9247e5131 100755 --- a/workflow/engine/test/unit/ws/wsClient.php +++ b/workflow/engine/test/unit/ws/wsClient.php @@ -616,24 +616,6 @@ function ws_systemInformation() { return $result; } -function ws_importProcessFromLibrary($processId, $version = '', $importOption = '', $usernameLibrary = '', $passwordLibrary = '') { - global $sessionId; - global $client; - - $params = array ( - 'sessionId' => $sessionId, - 'processId' => $processId, - 'version' => $version, - 'importOption' => $importOption, - 'usernameLibrary' => $usernameLibrary, - 'passwordLibrary' => $passwordLibrary - ); - $result = $client->__SoapCall('importProcessFromLibrary', array ( - $params - )); - return $result; -} - function ws_InputDocumentList($caseId) { global $sessionId; global $client;