### Eclipse Workspace Patch 1.0 #P igeworkspace42 Index: typo3/sysext/version/cm1/index.php =================================================================== --- typo3/sysext/version/cm1/index.php (revision 270) +++ typo3/sysext/version/cm1/index.php (working copy) @@ -88,6 +88,7 @@ require_once(PATH_t3lib.'class.t3lib_diff.php'); require_once(PATH_typo3.'mod/user/ws/class.wslib.php'); +require_once(PATH_typo3.'mod/user/ws/class.wsstagelib.php'); require_once(PATH_t3lib.'class.t3lib_pagetree.php'); require_once(PATH_t3lib.'class.t3lib_tcemain.php'); @@ -1193,6 +1194,8 @@ * @return string HTML code. */ function showStageChangeLog($table,$id,$stageCommands) { + global $LANG; + $rows = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows( 'log_data,tstamp,userid', 'sys_log', @@ -1220,7 +1223,17 @@ $text = 'reset to "Editing"'; break; default: - $text = '[undefined]'; + // Initialize workspace stage object + $wsstagelibObj = t3lib_div::makeInstance('wsstagelib'); + // Check if custom staging is activated in workspace configuration + if($wsstagelibObj->checkCustomStagingForWS($this->workspaceId)) { + $workspaceStageRec = t3lib_BEfunc::getRecord('sys_workspace_stage',$data['stage']-20); + if($workspaceStageRec) { + $text = 'sent the element to "'.$workspaceStageRec['title'].'"'; + } + } else { + $text = $LANG->getLL('stage_undefined'); + } break; } $text = t3lib_BEfunc::dateTime($dat['tstamp']).': "'.$username.'" '.$text; @@ -1583,7 +1596,13 @@ * @return string HTML content, mainly link tags and images. */ function displayWorkspaceOverview_stageCmd($table,&$rec_off) { -#debug($rec_off['t3ver_stage']); + #debug($rec_off['t3ver_stage']); + global $LANG; + $this->workspaceId = (!is_null($wsid) ? $wsid : $GLOBALS['BE_USER']->workspace); + + // Initialize workspace stage object + $wsstagelibObj = t3lib_div::makeInstance('wsstagelib'); + switch((int)$rec_off['t3ver_stage']) { case 0: $sId = 1; @@ -1614,6 +1633,20 @@ $sLabel = 'Undefined'; $sId = 0; $color = ''; + + // Check if custom staging is activated in workspace configuration + if($wsstagelibObj->checkCustomStagingForWS($this->workspaceId)) { + $workspaceStageRec = t3lib_BEfunc::getRecord('sys_workspace_stage',$rec_off['t3ver_stage']-20); + if($workspaceStageRec) { + $sLabel = $workspaceStageRec['title']; + // Next custom stage + $nextStage = $wsstagelibObj->getNextStage($this->workspaceId,$rec_off['t3ver_stage']); + // ID of next stage + $sId = $nextStage['uid']; + $color = '#999999'; + $titleAttrib = $LANG->getLL('label_sendToNextStage'); + } + } break; } #debug($sId); @@ -1621,12 +1654,21 @@ $raiseOk = !$GLOBALS['BE_USER']->workspaceCannotEditOfflineVersion($table,$rec_off); if ($raiseOk && $rec_off['t3ver_stage']!=-1) { - $onClick = 'var commentTxt=window.prompt("Please explain why you reject:",""); + // Check if custom staging is activated in workspace configuration + if($wsstagelibObj->checkCustomStagingForWS($rec_off['t3ver_wsid'])) { + // Reject id for custom stage reject is -21 instead of -1 + $onClick = 'var commentTxt=null;window.location.href="'. + $this->doc->backPath.'mod.php?M=user_txversionM2'. + '&diffOnly=1&pageId='.t3lib_div::GPvar('id').'&items['.$table.':'.$rec_off['uid'].':'.$rec_off['t3ver_stage'].':'.$rec_off['t3ver_wsid'].']=1";'. + ' return false;'; + } else { + $onClick = 'var commentTxt=window.prompt("Please explain why you reject:",""); if (commentTxt!=null) {window.location.href="'.$this->doc->issueCommand( '&cmd['.$table.']['.$rec_off['uid'].'][version][action]=setStage'. '&cmd['.$table.']['.$rec_off['uid'].'][version][stageId]=-1' ).'&cmd['.$table.']['.$rec_off['uid'].'][version][comment]="+escape(commentTxt);}'. ' return false;'; + } // Reject: $actionLinks.= ''. @@ -1642,12 +1684,19 @@ // Raise if ($raiseOk) { - $onClick = 'var commentTxt=window.prompt("'.$label.'",""); + if($wsstagelibObj->checkCustomStagingForWS($rec_off['t3ver_wsid'])) { + $onClick = 'var commentTxt=null;window.location.href="'. + $this->doc->backPath.'mod.php?M=user_txversionM2'. + '&diffOnly=1&pageId='.t3lib_div::GPvar('id').'&items['.$table.':'.$rec_off['uid'].':'.$rec_off['t3ver_stage'].':'.$rec_off['t3ver_wsid'].']=1";'. + ' return false;'; + } else { + $onClick = 'var commentTxt=window.prompt("'.$label.'",""); if (commentTxt!=null) {window.location.href="'.$this->doc->issueCommand( '&cmd['.$table.']['.$rec_off['uid'].'][version][action]=setStage'. '&cmd['.$table.']['.$rec_off['uid'].'][version][stageId]='.$sId ).'&cmd['.$table.']['.$rec_off['uid'].'][version][comment]="+escape(commentTxt);}'. ' return false;'; + } if ($rec_off['t3ver_stage']!=10) { $actionLinks.= ''.