[evolvis-commits] r15006: Little fix to hudson display↵

mirabilos at evolvis.org mirabilos at evolvis.org
Mon Feb 28 23:34:32 CET 2011


Author: mirabilos
Date: 2011-02-28 23:34:31 +0100 (Mon, 28 Feb 2011)
New Revision: 15006

Modified:
   trunk/gforge_base/evolvisforge-5.1/gforge/common/mvc/Views.class.php
   trunk/gforge_base/evolvisforge-5.1/plugins/coclico/hudson/include/hudsonActions.class.php
   trunk/gforge_base/evolvisforge-5.1/plugins/coclico/hudson/include/hudsonViews.class.php
   trunk/gforge_base/evolvisforge-5.1/plugins/coclico/hudson/www/index.php
Log:
Little fix to hudson display


Modified: trunk/gforge_base/evolvisforge-5.1/gforge/common/mvc/Views.class.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/common/mvc/Views.class.php	2011-02-28 22:34:29 UTC (rev 15005)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/common/mvc/Views.class.php	2011-02-28 22:34:31 UTC (rev 15006)
@@ -38,6 +38,7 @@
   function View(&$controler, $view = null, $params = array()) {
       $this->_controler =& $controler;
       $this->view=$view;
+      $this->html_params = $params;
   }
   
     function getControler() {
@@ -63,4 +64,4 @@
     $this->footer();
   }
 }
-?>
\ No newline at end of file
+?>

Modified: trunk/gforge_base/evolvisforge-5.1/plugins/coclico/hudson/include/hudsonActions.class.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/plugins/coclico/hudson/include/hudsonActions.class.php	2011-02-28 22:34:29 UTC (rev 15005)
+++ trunk/gforge_base/evolvisforge-5.1/plugins/coclico/hudson/include/hudsonActions.class.php	2011-02-28 22:34:31 UTC (rev 15006)
@@ -36,7 +36,6 @@
 	// {{{ Actions
     function addJob() {
    global $feedback; 
-echo "coucou";
         $request =& HTTPRequest::instance();
         $group_id = $request->get('group_id');
         $job_url = $request->get('hudson_job_url');
@@ -58,7 +57,6 @@
         } catch (Exception $e) {
             $feedback .= $e->getMessage();
         }
-echo $feedback;
     }
     function updateJob() {
         $request =& HTTPRequest::instance();

Modified: trunk/gforge_base/evolvisforge-5.1/plugins/coclico/hudson/include/hudsonViews.class.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/plugins/coclico/hudson/include/hudsonViews.class.php	2011-02-28 22:34:29 UTC (rev 15005)
+++ trunk/gforge_base/evolvisforge-5.1/plugins/coclico/hudson/include/hudsonViews.class.php	2011-02-28 22:34:31 UTC (rev 15006)
@@ -20,8 +20,8 @@
 
 require_once('common/mvc/Views.class.php');
 /*require_once('common/include/HTTPRequest.class.php');
-require_once('common/user/UserManager.class.php');
-require_once('common/project/ProjectManager.class.php');*/
+  require_once('common/user/UserManager.class.php');
+  require_once('common/project/ProjectManager.class.php');*/
 //require_once('common/reference/CrossReferenceFactory.class.php');
 
 require_once('HudsonJob.class.php');
@@ -29,402 +29,402 @@
 require_once('PluginHudsonJobDao.class.php');
 
 class hudsonViews extends Views {
-    
-    function hudsonViews(&$controler, $view=null) {
-        $this->View($controler, $view);
-    }
-    
-    function header() {
-        $request =& HTTPRequest::instance();
-       $GLOBALS['HTML']->header(array('title'=>$this->_getTitle(),'group' => $request->get('group_id'), 'toptab' => 'hudson'));
-        echo $this->_getHelp();
-        echo '<h2>'.$this->_getTitle().'</h2>';
-    }
-    function _getTitle() {
-        return _("Continuous Integration");
-    }
-    function _getHelp($section = '', $questionmark = false) {
-        if (trim($section) !== '' && $section{0} !== '#') {
-            $section = '#'.$section;
-        }
-        if ($questionmark) {
-            $help_label = '[?]';
-        } else {
-            $help_label = _("Help");
-        }
-//        return '<b><a href="javascript:help_window(\''.get_server_url().'/documentation/user_guide/html/'.UserManager::instance()->getCurrentUser()->getLocale().'/ContinuousIntegrationWithHudson.html'.$section.'\');">'.$help_label.'</a></b>';
-        return '<b><a href="javascript:help_window(\''.get_server_url().'/documentation/user_guide/html/en_US/ContinuousIntegrationWithHudson.html'.$section.'\');">'.$help_label.'</a></b>';
-    }
-    function footer() {
-        $GLOBALS['HTML']->footer(array());
-    }
-    
-    // {{{ Views
-    function projectOverview() {
-        $request =& HTTPRequest::instance();
-        $group_id = $request->get('group_id');
-        $user = UserManager::instance()->getCurrentUser();
-        
-        $this->_display_jobs_table($group_id);       
-        if ($user->isMember($request->get('group_id'), 'A')) {
-            $this->_display_add_job_form($group_id);
-        }
-        $this->_display_iframe();
-        $this->_hide_iframe();
-    }
-    
-    function job_details() {
-$myfile=fopen('/tmp/jobdetails','a');
-fwrite($myfile,"\n J'ai fait job detail");
-        $request =& HTTPRequest::instance();
-        $group_id = $request->get('group_id');
-        $job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
-        if ($request->exist('job_id')) {
-            $job_id = $request->get('job_id');
-            $dar = $job_dao->searchByJobID($job_id);
-        } elseif ($request->exist('job')) {
-            // used for references (job #MyJob or job #myproject:MyJob)
-            $job_name = $request->get('job');
-            $dar = $job_dao->searchByJobName($job_name, $group_id);
-        }
-        if ($dar->valid()) {
-            $row = $dar->current();
-fwrite($myfile,"appel de Cross REf Factory avec :".$row['name']);
-            $crossref_fact= new CrossReferenceFactory($row['name'], 'hudson_job', $group_id);
-            $crossref_fact->fetchDatas();
-            if ($crossref_fact->getNbReferences() > 0) {
-                echo '<b> '._('References').'</b>';
-                $crossref_fact->DisplayCrossRefs();
-            }
-            $this->_display_iframe($row['job_url']);
-fwrite($myfile,"display iframe de ".$row['job_url']);
-        } else {
-            echo '<span class="error">'._("Error: Hudson object not found.").'</span>';
-        }
-    }
-    
-    function last_build() {
-        $request =& HTTPRequest::instance();
-        $group_id = $request->get('group_id');
-        $job_id = $request->get('job_id');
 
-        $job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
-        $dar = $job_dao->searchByJobID($job_id);
-        if ($dar->valid()) {
-            $row = $dar->current();
-            $this->_display_iframe($row['job_url'].'/lastBuild/');
-        } else {
-            echo '<span class="error">'._("Error: Hudson object not found.").'</span>';
-        }
-    }
-    
-    function build_number() {
-        $request =& HTTPRequest::instance();
-        $group_id = $request->get('group_id');
-        if ($request->exist('build')) {
-            $build_id = $request->get('build');
-        } else {
-            $build_id = $request->get('build_id');
-        }
-        $job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
-        if ($request->exist('job_id')) {
-            $job_id = $request->get('job_id');
-            $dar = $job_dao->searchByJobID($job_id);
-        } elseif ($request->exist('job')) {
-            // used for references (build #MyJob/175 or job #myproject:MyJob/175 where 175 is the build number required)
-            $job_name = $request->get('job');
-            $dar = $job_dao->searchByJobName($job_name, $group_id);
-        } else {
-            // used for references (build #175 where 175 is the build number required)
-            // If no job or project is specified, we check if there is only one job associated to the current project and we assume it is this job.
-            $dar = $job_dao->searchByGroupID($group_id);
-            if ($dar->rowCount() != 1) {
-                $dar = null;
-            }
-        }
-        
-        if ($dar && $dar->valid()) {
-            $row = $dar->current();
-            $crossref_fact= new CrossReferenceFactory($row['name'].'/'.$build_id, 'hudson_build', $group_id);
-            $crossref_fact->fetchDatas();
-            if ($crossref_fact->getNbReferences() > 0) {
-                echo '<b> '._('References').'</b>';
-                $crossref_fact->DisplayCrossRefs();
-            }
-            $this->_display_iframe($row['job_url'].'/'.$build_id.'/');
-        } else {
-            echo '<span class="error">'._("Error: Hudson object not found.").'</span>';
-        }
-    }
-    
-    function last_test_result() {
-        $request =& HTTPRequest::instance();
-        $group_id = $request->get('group_id');
-        $job_id = $request->get('job_id');
-        $user = UserManager::instance()->getCurrentUser();
-        
-        $job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
-        $dar = $job_dao->searchByJobID($job_id);
-        if ($dar->valid()) {
-            $row = $dar->current();
-            $this->_display_iframe($row['job_url'].'/lastBuild/testReport/');
-        } else {
-            echo '<span class="error">'._("Error: Hudson object not found.").'</span>';
-        }
-    }
-    
-    function test_trend() {
-        $request =& HTTPRequest::instance();
-        $group_id = $request->get('group_id');
-        $job_id = $request->get('job_id');
-        $user = UserManager::instance()->getCurrentUser();
-        
-        $job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
-        $dar = $job_dao->searchByJobID($job_id);
-        if ($dar->valid()) {
-            $row = $dar->current();
-            $this->_display_iframe($row['job_url'].'/test/?width=800&height=600&failureOnly=false');
-        } else {
-            echo '<span class="error">'._("Error: Hudson object not found.").'</span>';
-        }
-    }
-    
-    function editJob() {
-        $request =& HTTPRequest::instance();
-        $group_id = $request->get('group_id');
-        $job_id = $request->get('job_id');
-        $user = UserManager::instance()->getCurrentUser();
-        if ($user->isMember($group_id, 'A')) {
-            
-            $project_manager = ProjectManager::instance();
-            $project = $project_manager->getProject($group_id);
-            
-            $job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
-            $dar = $job_dao->searchByJobID($job_id);
-            if ($dar->valid()) {
-                $row = $dar->current();
-                
-                echo '<a href="/plugins/hudson/?group_id='.$group_id.'">'._("Back to jobs list").'</a>';
-                
-                echo '<h3>'._("Edit job").'</h3>';
-                echo ' <form method="post">';
-                echo '  <p>';
-                echo '   <label for="new_hudson_job_url">'._("Job URL:").'</label>';
-                echo '   <input id="new_hudson_job_url" name="new_hudson_job_url" type="text" value="'.$row['job_url'].'" size="64" />';
-                echo '  </p>';
-                echo '  <p>';
-                echo '   <span class="legend">'._("eg: http://myCIserver/hudson/job/myJob").'</span>';
-                echo '  </p>';
-                echo '  <p>';
-                echo '   <label for="new_hudson_job_name">'._("Job name:").'</label>';
-                echo '   <input id="new_hudson_job_name" name="new_hudson_job_name" type="text" value="'.$row['name'].'" size="32" />';
-                echo '  </p>';
-                echo '  <p>';
-                echo '   <span class="legend">'.vsprintf(_("Name (with no space) used to make a reference to this job. Eg: job #%s"),  array($row['name'])).'</span>';
-                echo '  </p>';
-                if ($project->usesService('scmsvn') || $project->usesService('svn')) {
-                    echo '  <p>';
-                    echo '   <label for="new_hudson_use_svn_trigger">'._("Trigger a build after SVN commits:").'</label>';
-                    if ($row['use_svn_trigger'] == 1) {
-                        $checked = ' checked="checked" ';
-                    } else {
-                        $checked = '';
-                    }
-                    echo '   <input id="new_hudson_use_svn_trigger" name="new_hudson_use_svn_trigger" type="checkbox" '.$checked.' />';
-                    echo '  </p>';
-                }
-                if ($project->usesService('scmcvs') || $project->usesService('cvs')) {
-                    echo '  <p>';
-                    echo '   <label for="new_hudson_use_cvs_trigger">'._("Trigger a build after CVS commits:").'</label>';
-                    if ($row['use_cvs_trigger'] == 1) {
-                        $checked = ' checked="checked" ';
-                    } else {
-                        $checked = '';
-                    }
-                    echo '   <input id="new_hudson_use_cvs_trigger" name="new_hudson_use_cvs_trigger" type="checkbox" '.$checked.' />';
-                    echo '  </p>';
-                }
-                if ($project->usesService('scmsvn') || $project->usesService('svn') || $project->usesService('scmcvs') || $project->usesService('cvs')) {
-                    echo '  <p>';
-                    echo '   <label for="new_hudson_trigger_token">'._("with (optional) token:").'</label>';
-                    echo '   <input id="new_hudson_trigger_token" name="new_hudson_trigger_token" type="text" value="'.$row['token'].'" size="32" />';
-                    echo '  </p>';
-                }
-                echo '  <p>';
-                echo '   <input type="hidden" name="group_id" value="'.$group_id.'" />';
-                echo '   <input type="hidden" name="job_id" value="'.$job_id.'" />';
-                echo '   <input type="hidden" name="action" value="update_job" />';
-                echo '   <input type="submit" value="'._("Update job").'" />';
-                echo '  </p>';
-                echo ' </form>';
-                
-            } else {
-                
-            }
-        } else {
-            
-        }
-    }
-    // }}}
-    
-    function _display_jobs_table($group_id) {
-        $request =& HTTPRequest::instance();
-        $group_id = $request->get('group_id');
-        $user = UserManager::instance()->getCurrentUser();
-        $job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
-        $dar = $job_dao->searchByGroupID($group_id);
-        
-        if ($dar && $dar->valid()) {
+	function hudsonViews(&$controler, $view=null) {
+		$request =& HTTPRequest::instance();
+		$this->View($controler, $view, array('title'=>$this->_getTitle(),'group' => $request->get('group_id'), 'toptab' => 'hudson'));
+	}
 
-            $project_manager = ProjectManager::instance();
-            $project = $project_manager->getProject($group_id);
-            
-            echo '<table id="jobs_table">';
-            echo ' <tr class="boxtable">';
-            echo '  <th class="boxtitle"> </th>';
-            echo '  <th class="boxtitle">'._("Job").'</th>';
-            echo '  <th class="boxtitle">'._("Last Success").'</th>';
-            echo '  <th class="boxtitle">'._("Last Failure").'</th>';
-            echo '  <th class="boxtitle">'._("RSS").'</th>';
-            if ($project->usesService('scmsvn') || $project->usesService('svn')) {
-                echo '  <th class="boxtitle">'._("SVN trigger").'</th>';
-            }
-            if ($project->usesService('scmcvs') || $project->usesService('cvs')) {
-                echo '  <th class="boxtitle">'._("CVS trigger").'</th>';
-            }
-            if ($user->isMember($request->get('group_id'), 'A')) {
-                echo '  <th class="boxtitle">'._("Actions").'</th>';
-            }
-            echo ' </tr>';
-            
-            $cpt = 1;
-	    while ($dar->valid()) {
-		    $row = $dar->current();
-		    if ($cpt % 2 == 0) {
-			    $class="boxitemalt bgcolor-white";
-		    } else {
-			    $class="boxitem bgcolor-grey";
-		    }
-		    echo ' <tr class="'. $class .'">';
+	function header() {
+		parent::header();
+		echo $this->_getHelp();
+		echo '<h2>'.$this->_getTitle().'</h2>';
+	}
+	function _getTitle() {
+		return _("Continuous Integration");
+	}
+	function _getHelp($section = '', $questionmark = false) {
+		if (trim($section) !== '' && $section{0} !== '#') {
+			$section = '#'.$section;
+		}
+		if ($questionmark) {
+			$help_label = '[?]';
+		} else {
+			$help_label = _("Help");
+		}
+		//        return '<b><a href="javascript:help_window(\''.get_server_url().'/documentation/user_guide/html/'.UserManager::instance()->getCurrentUser()->getLocale().'/ContinuousIntegrationWithHudson.html'.$section.'\');">'.$help_label.'</a></b>';
+		return '<b><a href="javascript:help_window(\''.get_server_url().'/documentation/user_guide/html/en_US/ContinuousIntegrationWithHudson.html'.$section.'\');">'.$help_label.'</a></b>';
+	}
+	function footer() {
+		parent::footer();
+	}
 
-		    try {
-			    $job = new HudsonJob($row['job_url']);
+	// {{{ Views
+	function projectOverview() {
+		$request =& HTTPRequest::instance();
+		$group_id = $request->get('group_id');
+		$user = UserManager::instance()->getCurrentUser();
 
-			    echo '  <td><img src="'.$job->getStatusIcon().'" alt="'.$job->getStatus().'" title="'.$job->getStatus().'" /></td>';
-			    // function toggle_iframe is in script plugins/hudson/www/hudson_tab.js
-			    echo '  <td class="boxitem"><a href="'.$job->getUrl().'" onclick="toggle_iframe(this); return false;" title="'.vsprintf(_("Show job %s"),  array($row['name'])).'">'.$row['name'].'</a></td>';
-			    if ($job->getLastSuccessfulBuildNumber() != '') {
-				    echo '  <td><a href="'.$job->getLastSuccessfulBuildUrl().'" onclick="toggle_iframe(this); return false;" title="'.sprintf(_("Show build #$1 of job $2"),  array($job->getLastSuccessfulBuildNumber(), $row['name'])).'">'._("build").' #'.$job->getLastSuccessfulBuildNumber().'</a></td>';
-			    } else {
-				    echo '  <td> </td>';
-			    }
-			    if ($job->getLastFailedBuildNumber() != '') {
-				    echo '  <td><a href="'.$job->getLastFailedBuildUrl().'" onclick="toggle_iframe(this); return false;" title="'.sprintf(_("Show build #$1 of job $2"),  array($job->getLastFailedBuildNumber(), $row['name'])).'">'._("build").' #'.$job->getLastFailedBuildNumber().'</a></td>';
-			    } else {
-				    echo '  <td> </td>';
-			    }
-			    echo '  <td align="center"><a href="'.$job->getUrl().'/rssAll" onclick="toggle_iframe(this); return false;"><img src="'.$this->getControler()->getIconsPath().'rss_feed.png" alt="'.vsprintf(_("RSS feed of all builds for %s job"),  array($row['name'])).'" title="'.vsprintf(_("RSS feed of all builds for %s job"),  array($row['name'])).'"></a></td>';
+		$this->_display_jobs_table($group_id);       
+		if ($user->isMember($request->get('group_id'), 'A')) {
+			$this->_display_add_job_form($group_id);
+		}
+		$this->_display_iframe();
+		$this->_hide_iframe();
+	}
 
-			    if ($project->usesService('scmsvn') || $project->usesService('svn')) {
-				    if ($row['use_svn_trigger'] == 1) {
-					    echo '  <td align="center"><img src="'.$this->getControler()->getIconsPath().'server_lightning.png" alt="'._("SVN commit will trigger a build").'" title="'._("SVN commit will trigger a build").'"></td>';
-				    } else {
-					    echo '  <td> </td>';
-				    }
-			    }
-			    if ($project->usesService('scmcvs') || $project->usesService('cvs')) {
-				    if ($row['use_cvs_trigger'] == 1) {
-					    echo '  <td align="center"><img src="'.$this->getControler()->getIconsPath().'server_lightning.png" alt="'._("CVS commit will trigger a build").'" title="'._("CVS commit will trigger a build").'"></td>';
-				    } else {
-					    echo '  <td> </td>';
-				    }
-			    }
+	function job_details() {
+		$myfile=fopen('/tmp/jobdetails','a');
+		fwrite($myfile,"\n J'ai fait job detail");
+		$request =& HTTPRequest::instance();
+		$group_id = $request->get('group_id');
+		$job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
+		if ($request->exist('job_id')) {
+			$job_id = $request->get('job_id');
+			$dar = $job_dao->searchByJobID($job_id);
+		} elseif ($request->exist('job')) {
+			// used for references (job #MyJob or job #myproject:MyJob)
+			$job_name = $request->get('job');
+			$dar = $job_dao->searchByJobName($job_name, $group_id);
+		}
+		if ($dar->valid()) {
+			$row = $dar->current();
+			fwrite($myfile,"appel de Cross REf Factory avec :".$row['name']);
+			$crossref_fact= new CrossReferenceFactory($row['name'], 'hudson_job', $group_id);
+			$crossref_fact->fetchDatas();
+			if ($crossref_fact->getNbReferences() > 0) {
+				echo '<b> '._('References').'</b>';
+				$crossref_fact->DisplayCrossRefs();
+			}
+			$this->_display_iframe($row['job_url']);
+			fwrite($myfile,"display iframe de ".$row['job_url']);
+		} else {
+			echo '<span class="error">'._("Error: Hudson object not found.").'</span>';
+		}
+	}
 
-		    } catch (Exception $e) {
-			    echo '  <td><img src="'.$this->getControler()->getIconsPath().'link_error.png" alt="'.$e->getMessage().'" title="'.$e->getMessage().'" /></td>';
-			    $nb_columns = 4;
-			    if ($project->usesService('scmsvn') || $project->usesService('svn')) { $nb_columns++; }
-			    if ($project->usesService('scmcvs') || $project->usesService('cvs')) { $nb_columns++; }
-			    echo '  <td colspan="'.$nb_columns.'"><span class="error">'.$e->getMessage().'</span></td>';
-		    }
+	function last_build() {
+		$request =& HTTPRequest::instance();
+		$group_id = $request->get('group_id');
+		$job_id = $request->get('job_id');
 
-		    if ($user->isMember($request->get('group_id'), 'A')) {
-			    echo '  <td>';
-			    // edit job
-			    echo '   <span class="job_action">';
-			    echo '    <a href="?action=edit_job&group_id='.$group_id.'&job_id='.$row['job_id'].'"><img src="'.$this->getControler()->getIconsPath().'edit.png" alt="'._("Edit this job").' title="'._("Edit this job").'">';
-			    echo '</a>';
-			    echo '   </span>';
-			    // delete job
-			    echo '   <span class="job_action">';
-			    echo '    <a href="?action=delete_job&group_id='.$group_id.'&job_id='.$row['job_id'].'" onclick="return confirm(';
-			    echo "'" . sprintf(_("Are you sure you want to delete Job $1 from project $2?"),  array($row['name'], $project->getUnixName())) . "'";
-			    echo ');"><img src="'.$this->getControler()->getIconsPath().'cross.png" alt="'._("Delete this job").' title="'._("Delete this job").'">';
-			    echo '</a>';
-			    echo '   </span>';
-			    echo '  </td>';
-		    }
+		$job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
+		$dar = $job_dao->searchByJobID($job_id);
+		if ($dar->valid()) {
+			$row = $dar->current();
+			$this->_display_iframe($row['job_url'].'/lastBuild/');
+		} else {
+			echo '<span class="error">'._("Error: Hudson object not found.").'</span>';
+		}
+	}
 
-		    echo ' </tr>';
+	function build_number() {
+		$request =& HTTPRequest::instance();
+		$group_id = $request->get('group_id');
+		if ($request->exist('build')) {
+			$build_id = $request->get('build');
+		} else {
+			$build_id = $request->get('build_id');
+		}
+		$job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
+		if ($request->exist('job_id')) {
+			$job_id = $request->get('job_id');
+			$dar = $job_dao->searchByJobID($job_id);
+		} elseif ($request->exist('job')) {
+			// used for references (build #MyJob/175 or job #myproject:MyJob/175 where 175 is the build number required)
+			$job_name = $request->get('job');
+			$dar = $job_dao->searchByJobName($job_name, $group_id);
+		} else {
+			// used for references (build #175 where 175 is the build number required)
+			// If no job or project is specified, we check if there is only one job associated to the current project and we assume it is this job.
+			$dar = $job_dao->searchByGroupID($group_id);
+			if ($dar->rowCount() != 1) {
+				$dar = null;
+			}
+		}
 
-		    $dar->next();
-		    $cpt++;
-	    }
-	    echo '</table>';   
-	} else {
-		echo '<p>'._("No Hudson jobs associated with this project. To add a job, select the link just below.").'</p>';
+		if ($dar && $dar->valid()) {
+			$row = $dar->current();
+			$crossref_fact= new CrossReferenceFactory($row['name'].'/'.$build_id, 'hudson_build', $group_id);
+			$crossref_fact->fetchDatas();
+			if ($crossref_fact->getNbReferences() > 0) {
+				echo '<b> '._('References').'</b>';
+				$crossref_fact->DisplayCrossRefs();
+			}
+			$this->_display_iframe($row['job_url'].'/'.$build_id.'/');
+		} else {
+			echo '<span class="error">'._("Error: Hudson object not found.").'</span>';
+		}
 	}
-    }
 
-    function _display_add_job_form($group_id) {
-	    $project_manager = ProjectManager::instance();
-	    $project = $project_manager->getProject($group_id);
+	function last_test_result() {
+		$request =& HTTPRequest::instance();
+		$group_id = $request->get('group_id');
+		$job_id = $request->get('job_id');
+		$user = UserManager::instance()->getCurrentUser();
 
-	    // function toggle_addurlform is in script plugins/hudson/www/hudson_tab.js
-	    echo '<a href="#" onclick="toggle_addurlform(); return false;">' . getIcon("ic/add.png") . ' '._("Add job").'</a>';
-	    echo ' '.$this->_getHelp('HudsonService', true);
-	    echo '<div id="hudson_add_job">';
-	    echo ' <form>';
-	    echo '   <label for="hudson_job_url">'._("Job URL:").'</label>';
-	    echo '   <input id="hudson_job_url" name="hudson_job_url" type="text" size="64" />';
-	    echo '   <input type="hidden" name="group_id" value="'.$group_id.'" />';
-	    echo '   <input type="hidden" name="action" value="add_job" />';
-	    echo '   <br />';
-	    echo '   <span class="legend">'._("eg: http://myCIserver/hudson/job/myJob").'</span>';
-	    echo '   <br />';
-	    //echo '  <p>';
-	    if ($project->usesService('scmsvn') || $project->usesService('svn')) {
-		    echo _("Trigger a build after commits:");
-		    if ($project->usesService('scmsvn') || $project->usesService('svn')) {
-			    echo '   <label for="hudson_use_svn_trigger">'._("SVN").'</label>';
-			    echo '   <input id="hudson_use_svn_trigger" name="hudson_use_svn_trigger" type="checkbox" />';
-		    }
-		    if ($project->usesService('scmsvn') || $project->usesService('svn')) {
-			    echo '   <label for="hudson_use_cvs_trigger">'._("CVS").'</label>';
-			    echo '   <input id="hudson_use_cvs_trigger" name="hudson_use_cvs_trigger" type="checkbox" />';
-		    }
-		    //echo '  </p>';
-		    //echo '  <p>';
-		    echo '   <label for="hudson_trigger_token">'._("with (optional) token:").'</label>';
-		    echo '   <input id="hudson_trigger_token" name="hudson_trigger_token" type="text" size="32" />';
-		    //echo '  </p>';
-		    echo '   <br />';
-	    }
-	    echo '   <input type="submit" value="Add job" />';
-	    echo ' </form>';
-	    echo '</div>';
-	    echo "<script>Element.toggle('hudson_add_job', 'slide');</script>";
-	    }
+		$job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
+		$dar = $job_dao->searchByJobID($job_id);
+		if ($dar->valid()) {
+			$row = $dar->current();
+			$this->_display_iframe($row['job_url'].'/lastBuild/testReport/');
+		} else {
+			echo '<span class="error">'._("Error: Hudson object not found.").'</span>';
+		}
+	}
 
-	    function _display_iframe($url = '') {
-		    echo '<div id="hudson_iframe_div">';
-		    htmlIframe($url, array('id' => 'hudson_iframe', 'class' => 'iframe_service'));
-		    echo '</div>';
-	    }
-	    function _hide_iframe() {
-		    echo "<script>Element.toggle('hudson_iframe_div', 'slide');</script>";
-	    }
-	    }
+	function test_trend() {
+		$request =& HTTPRequest::instance();
+		$group_id = $request->get('group_id');
+		$job_id = $request->get('job_id');
+		$user = UserManager::instance()->getCurrentUser();
 
+		$job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
+		$dar = $job_dao->searchByJobID($job_id);
+		if ($dar->valid()) {
+			$row = $dar->current();
+			$this->_display_iframe($row['job_url'].'/test/?width=800&height=600&failureOnly=false');
+		} else {
+			echo '<span class="error">'._("Error: Hudson object not found.").'</span>';
+		}
+	}
 
-	    ?>
+	function editJob() {
+		$request =& HTTPRequest::instance();
+		$group_id = $request->get('group_id');
+		$job_id = $request->get('job_id');
+		$user = UserManager::instance()->getCurrentUser();
+		if ($user->isMember($group_id, 'A')) {
+
+			$project_manager = ProjectManager::instance();
+			$project = $project_manager->getProject($group_id);
+
+			$job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
+			$dar = $job_dao->searchByJobID($job_id);
+			if ($dar->valid()) {
+				$row = $dar->current();
+
+				echo '<a href="/plugins/hudson/?group_id='.$group_id.'">'._("Back to jobs list").'</a>';
+
+				echo '<h3>'._("Edit job").'</h3>';
+				echo ' <form method="post">';
+				echo '  <p>';
+				echo '   <label for="new_hudson_job_url">'._("Job URL:").'</label>';
+				echo '   <input id="new_hudson_job_url" name="new_hudson_job_url" type="text" value="'.$row['job_url'].'" size="64" />';
+				echo '  </p>';
+				echo '  <p>';
+				echo '   <span class="legend">'._("eg: http://myCIserver/hudson/job/myJob").'</span>';
+				echo '  </p>';
+				echo '  <p>';
+				echo '   <label for="new_hudson_job_name">'._("Job name:").'</label>';
+				echo '   <input id="new_hudson_job_name" name="new_hudson_job_name" type="text" value="'.$row['name'].'" size="32" />';
+				echo '  </p>';
+				echo '  <p>';
+				echo '   <span class="legend">'.vsprintf(_("Name (with no space) used to make a reference to this job. Eg: job #%s"),  array($row['name'])).'</span>';
+				echo '  </p>';
+				if ($project->usesService('scmsvn') || $project->usesService('svn')) {
+					echo '  <p>';
+					echo '   <label for="new_hudson_use_svn_trigger">'._("Trigger a build after SVN commits:").'</label>';
+					if ($row['use_svn_trigger'] == 1) {
+						$checked = ' checked="checked" ';
+					} else {
+						$checked = '';
+					}
+					echo '   <input id="new_hudson_use_svn_trigger" name="new_hudson_use_svn_trigger" type="checkbox" '.$checked.' />';
+					echo '  </p>';
+				}
+				if ($project->usesService('scmcvs') || $project->usesService('cvs')) {
+					echo '  <p>';
+					echo '   <label for="new_hudson_use_cvs_trigger">'._("Trigger a build after CVS commits:").'</label>';
+					if ($row['use_cvs_trigger'] == 1) {
+						$checked = ' checked="checked" ';
+					} else {
+						$checked = '';
+					}
+					echo '   <input id="new_hudson_use_cvs_trigger" name="new_hudson_use_cvs_trigger" type="checkbox" '.$checked.' />';
+					echo '  </p>';
+				}
+				if ($project->usesService('scmsvn') || $project->usesService('svn') || $project->usesService('scmcvs') || $project->usesService('cvs')) {
+					echo '  <p>';
+					echo '   <label for="new_hudson_trigger_token">'._("with (optional) token:").'</label>';
+					echo '   <input id="new_hudson_trigger_token" name="new_hudson_trigger_token" type="text" value="'.$row['token'].'" size="32" />';
+					echo '  </p>';
+				}
+				echo '  <p>';
+				echo '   <input type="hidden" name="group_id" value="'.$group_id.'" />';
+				echo '   <input type="hidden" name="job_id" value="'.$job_id.'" />';
+				echo '   <input type="hidden" name="action" value="update_job" />';
+				echo '   <input type="submit" value="'._("Update job").'" />';
+				echo '  </p>';
+				echo ' </form>';
+
+			} else {
+
+			}
+		} else {
+
+		}
+	}
+	// }}}
+
+	function _display_jobs_table($group_id) {
+		$request =& HTTPRequest::instance();
+		$group_id = $request->get('group_id');
+		$user = UserManager::instance()->getCurrentUser();
+		$job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
+		$dar = $job_dao->searchByGroupID($group_id);
+
+		if ($dar && $dar->valid()) {
+
+			$project_manager = ProjectManager::instance();
+			$project = $project_manager->getProject($group_id);
+
+			echo '<table id="jobs_table">';
+			echo ' <tr class="boxtable">';
+			echo '  <th class="boxtitle"> </th>';
+			echo '  <th class="boxtitle">'._("Job").'</th>';
+			echo '  <th class="boxtitle">'._("Last Success").'</th>';
+			echo '  <th class="boxtitle">'._("Last Failure").'</th>';
+			echo '  <th class="boxtitle">'._("RSS").'</th>';
+			if ($project->usesService('scmsvn') || $project->usesService('svn')) {
+				echo '  <th class="boxtitle">'._("SVN trigger").'</th>';
+			}
+			if ($project->usesService('scmcvs') || $project->usesService('cvs')) {
+				echo '  <th class="boxtitle">'._("CVS trigger").'</th>';
+			}
+			if ($user->isMember($request->get('group_id'), 'A')) {
+				echo '  <th class="boxtitle">'._("Actions").'</th>';
+			}
+			echo ' </tr>';
+
+			$cpt = 1;
+			while ($dar->valid()) {
+				$row = $dar->current();
+				if ($cpt % 2 == 0) {
+					$class="boxitemalt bgcolor-white";
+				} else {
+					$class="boxitem bgcolor-grey";
+				}
+				echo ' <tr class="'. $class .'">';
+
+				try {
+					$job = new HudsonJob($row['job_url']);
+
+					echo '  <td><img src="'.$job->getStatusIcon().'" alt="'.$job->getStatus().'" title="'.$job->getStatus().'" /></td>';
+					// function toggle_iframe is in script plugins/hudson/www/hudson_tab.js
+					echo '  <td class="boxitem"><a href="'.$job->getUrl().'" onclick="toggle_iframe(this); return false;" title="'.vsprintf(_("Show job %s"),  array($row['name'])).'">'.$row['name'].'</a></td>';
+					if ($job->getLastSuccessfulBuildNumber() != '') {
+						echo '  <td><a href="'.$job->getLastSuccessfulBuildUrl().'" onclick="toggle_iframe(this); return false;" title="'.sprintf(_("Show build #$1 of job $2"),  array($job->getLastSuccessfulBuildNumber(), $row['name'])).'">'._("build").' #'.$job->getLastSuccessfulBuildNumber().'</a></td>';
+					} else {
+						echo '  <td> </td>';
+					}
+					if ($job->getLastFailedBuildNumber() != '') {
+						echo '  <td><a href="'.$job->getLastFailedBuildUrl().'" onclick="toggle_iframe(this); return false;" title="'.sprintf(_("Show build #$1 of job $2"),  array($job->getLastFailedBuildNumber(), $row['name'])).'">'._("build").' #'.$job->getLastFailedBuildNumber().'</a></td>';
+					} else {
+						echo '  <td> </td>';
+					}
+					echo '  <td align="center"><a href="'.$job->getUrl().'/rssAll" onclick="toggle_iframe(this); return false;"><img src="'.$this->getControler()->getIconsPath().'rss_feed.png" alt="'.vsprintf(_("RSS feed of all builds for %s job"),  array($row['name'])).'" title="'.vsprintf(_("RSS feed of all builds for %s job"),  array($row['name'])).'"></a></td>';
+
+					if ($project->usesService('scmsvn') || $project->usesService('svn')) {
+						if ($row['use_svn_trigger'] == 1) {
+							echo '  <td align="center"><img src="'.$this->getControler()->getIconsPath().'server_lightning.png" alt="'._("SVN commit will trigger a build").'" title="'._("SVN commit will trigger a build").'"></td>';
+						} else {
+							echo '  <td> </td>';
+						}
+					}
+					if ($project->usesService('scmcvs') || $project->usesService('cvs')) {
+						if ($row['use_cvs_trigger'] == 1) {
+							echo '  <td align="center"><img src="'.$this->getControler()->getIconsPath().'server_lightning.png" alt="'._("CVS commit will trigger a build").'" title="'._("CVS commit will trigger a build").'"></td>';
+						} else {
+							echo '  <td> </td>';
+						}
+					}
+
+				} catch (Exception $e) {
+					echo '  <td><img src="'.$this->getControler()->getIconsPath().'link_error.png" alt="'.$e->getMessage().'" title="'.$e->getMessage().'" /></td>';
+					$nb_columns = 4;
+					if ($project->usesService('scmsvn') || $project->usesService('svn')) { $nb_columns++; }
+					if ($project->usesService('scmcvs') || $project->usesService('cvs')) { $nb_columns++; }
+					echo '  <td colspan="'.$nb_columns.'"><span class="error">'.$e->getMessage().'</span></td>';
+				}
+
+				if ($user->isMember($request->get('group_id'), 'A')) {
+					echo '  <td>';
+					// edit job
+					echo '   <span class="job_action">';
+					echo '    <a href="?action=edit_job&group_id='.$group_id.'&job_id='.$row['job_id'].'"><img src="'.$this->getControler()->getIconsPath().'edit.png" alt="'._("Edit this job").' title="'._("Edit this job").'">';
+					echo '</a>';
+					echo '   </span>';
+					// delete job
+					echo '   <span class="job_action">';
+					echo '    <a href="?action=delete_job&group_id='.$group_id.'&job_id='.$row['job_id'].'" onclick="return confirm(';
+					echo "'" . sprintf(_("Are you sure you want to delete Job $1 from project $2?"),  array($row['name'], $project->getUnixName())) . "'";
+					echo ');"><img src="'.$this->getControler()->getIconsPath().'cross.png" alt="'._("Delete this job").' title="'._("Delete this job").'">';
+					echo '</a>';
+					echo '   </span>';
+					echo '  </td>';
+				}
+
+				echo ' </tr>';
+
+				$dar->next();
+				$cpt++;
+			}
+			echo '</table>';   
+		} else {
+			echo '<p>'._("No Hudson jobs associated with this project. To add a job, select the link just below.").'</p>';
+		}
+	}
+
+	function _display_add_job_form($group_id) {
+		$project_manager = ProjectManager::instance();
+		$project = $project_manager->getProject($group_id);
+
+		// function toggle_addurlform is in script plugins/hudson/www/hudson_tab.js
+		echo '<a href="#" onclick="toggle_addurlform(); return false;">' . getIcon("ic/add.png") . ' '._("Add job").'</a>';
+		echo ' '.$this->_getHelp('HudsonService', true);
+		echo '<div id="hudson_add_job">';
+		echo ' <form>';
+		echo '   <label for="hudson_job_url">'._("Job URL:").'</label>';
+		echo '   <input id="hudson_job_url" name="hudson_job_url" type="text" size="64" />';
+		echo '   <input type="hidden" name="group_id" value="'.$group_id.'" />';
+		echo '   <input type="hidden" name="action" value="add_job" />';
+		echo '   <br />';
+		echo '   <span class="legend">'._("eg: http://myCIserver/hudson/job/myJob").'</span>';
+		echo '   <br />';
+		//echo '  <p>';
+		if ($project->usesService('scmsvn') || $project->usesService('svn')) {
+			echo _("Trigger a build after commits:");
+			if ($project->usesService('scmsvn') || $project->usesService('svn')) {
+				echo '   <label for="hudson_use_svn_trigger">'._("SVN").'</label>';
+				echo '   <input id="hudson_use_svn_trigger" name="hudson_use_svn_trigger" type="checkbox" />';
+			}
+			if ($project->usesService('scmsvn') || $project->usesService('svn')) {
+				echo '   <label for="hudson_use_cvs_trigger">'._("CVS").'</label>';
+				echo '   <input id="hudson_use_cvs_trigger" name="hudson_use_cvs_trigger" type="checkbox" />';
+			}
+			//echo '  </p>';
+			//echo '  <p>';
+			echo '   <label for="hudson_trigger_token">'._("with (optional) token:").'</label>';
+			echo '   <input id="hudson_trigger_token" name="hudson_trigger_token" type="text" size="32" />';
+			//echo '  </p>';
+			echo '   <br />';
+		}
+		echo '   <input type="submit" value="Add job" />';
+		echo ' </form>';
+		echo '</div>';
+		echo "<script>Element.toggle('hudson_add_job', 'slide');</script>";
+	}
+
+	function _display_iframe($url = '') {
+		echo '<div id="hudson_iframe_div">';
+		htmlIframe($url, array('id' => 'hudson_iframe', 'class' => 'iframe_service'));
+		echo '</div>';
+	}
+	function _hide_iframe() {
+		echo "<script>Element.toggle('hudson_iframe_div', 'slide');</script>";
+	}
+}
+
+
+?>

Modified: trunk/gforge_base/evolvisforge-5.1/plugins/coclico/hudson/www/index.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/plugins/coclico/hudson/www/index.php	2011-02-28 22:34:29 UTC (rev 15005)
+++ trunk/gforge_base/evolvisforge-5.1/plugins/coclico/hudson/www/index.php	2011-02-28 22:34:31 UTC (rev 15006)
@@ -20,6 +20,7 @@
 require_once('env.inc.php');
 require_once('pre.php');
 require_once('preplugins.php');
+require_once('plugins_utils.php');
 
 $plugin_manager =& PluginManager::instance();
 $p =& $plugin_manager->getPluginByName('hudson');



More information about the evolvis-commits mailing list