コード例 #1
0
 function deleteJob()
 {
     $request =& HTTPRequest::instance();
     $group_id = $request->get('group_id');
     $job_id = $request->get('job_id');
     $job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
     if (!$job_dao->deleteHudsonJob($job_id)) {
         $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_hudson', 'delete_job_error'));
     } else {
         $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('plugin_hudson', 'job_deleted'));
         $em = EventManager::instance();
         $params = array('job_id' => $job_id);
         $em->processEvent('delete_ci_triggers', $params);
     }
 }
コード例 #2
0
ファイル: hudsonPlugin.class.php プロジェクト: nterray/tuleap
 /**
  * Display CI statistics in CSV format
  *
  * @param Array $params parameters of the event
  *
  * @return void
  */
 public function statistics_collector($params)
 {
     if (!empty($params['formatter'])) {
         $formatter = $params['formatter'];
         $jobDao = new PluginHudsonJobDao(CodendiDataAccess::instance());
         $dar = $jobDao->countJobs($formatter->groupId);
         $count = 0;
         if ($dar && !$dar->isError()) {
             $row = $dar->getRow();
             if ($row) {
                 $count = $row['count'];
             }
         }
         $formatter->clearContent();
         $formatter->addEmptyLine();
         $formatter->addLine(array($GLOBALS['Language']->getText('plugin_hudson', 'title')));
         $formatter->addLine(array($GLOBALS['Language']->getText('plugin_hudson', 'job_count', array(date('Y-m-d'))), $count));
         echo $formatter->getCsvContent();
         $formatter->clearContent();
     }
 }
コード例 #3
0
 function _display_jobs_table($group_id, $services)
 {
     $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" class="table table-bordered table-striped">';
         echo ' <thead><tr>';
         echo '  <th>' . $GLOBALS['Language']->getText('plugin_hudson', 'header_table_job') . '</th>';
         echo '  <th>' . $GLOBALS['Language']->getText('plugin_hudson', 'header_table_lastsuccess') . '</th>';
         echo '  <th>' . $GLOBALS['Language']->getText('plugin_hudson', 'header_table_lastfailure') . '</th>';
         echo '  <th>' . $GLOBALS['Language']->getText('plugin_hudson', 'header_table_rss') . '</th>';
         if ($project->usesSVN()) {
             echo '  <th>' . $GLOBALS['Language']->getText('plugin_hudson', 'header_table_svn_trigger') . '</th>';
         }
         if ($project->usesCVS()) {
             echo '  <th>' . $GLOBALS['Language']->getText('plugin_hudson', 'header_table_cvs_trigger') . '</th>';
         }
         if (!empty($services)) {
             foreach ($services as $service) {
                 echo '  <th>' . $service['title'] . '</th>';
             }
         }
         if ($user->isMember($request->get('group_id'), 'A')) {
             echo '  <th>' . $GLOBALS['Language']->getText('plugin_hudson', 'header_table_actions') . '</th>';
         }
         echo ' </tr></thead>';
         echo '<tbody>';
         $cpt = 1;
         while ($dar->valid()) {
             $row = $dar->current();
             $job_id = $row['job_id'];
             echo ' <tr>';
             try {
                 $job = new HudsonJob($row['job_url']);
                 // function toggle_iframe is in script plugins/hudson/www/hudson_tab.js
                 echo '<td>';
                 echo '<img src="' . $job->getStatusIcon() . '" alt="' . $job->getStatus() . '" title="' . $job->getStatus() . '" /> ';
                 echo '<a href="' . $job->getUrl() . '" onclick="toggle_iframe(this); return false;" title="' . $GLOBALS['Language']->getText('plugin_hudson', 'show_job', array($row['name'])) . '">' . $row['name'] . '</a>';
                 echo '</td>';
                 if ($job->getLastSuccessfulBuildNumber() != '') {
                     echo '  <td><a href="' . $job->getLastSuccessfulBuildUrl() . '" onclick="toggle_iframe(this); return false;" title="' . $GLOBALS['Language']->getText('plugin_hudson', 'show_build', array($job->getLastSuccessfulBuildNumber(), $row['name'])) . '">' . $GLOBALS['Language']->getText('plugin_hudson', 'build') . ' #' . $job->getLastSuccessfulBuildNumber() . '</a></td>';
                 } else {
                     echo '  <td>&nbsp;</td>';
                 }
                 if ($job->getLastFailedBuildNumber() != '') {
                     echo '  <td><a href="' . $job->getLastFailedBuildUrl() . '" onclick="toggle_iframe(this); return false;" title="' . $GLOBALS['Language']->getText('plugin_hudson', 'show_build', array($job->getLastFailedBuildNumber(), $row['name'])) . '">' . $GLOBALS['Language']->getText('plugin_hudson', 'build') . ' #' . $job->getLastFailedBuildNumber() . '</a></td>';
                 } else {
                     echo '  <td>&nbsp;</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="' . $GLOBALS['Language']->getText('plugin_hudson', 'rss_feed', array($row['name'])) . '" title="' . $GLOBALS['Language']->getText('plugin_hudson', 'rss_feed', array($row['name'])) . '"></a></td>';
                 if ($project->usesSVN()) {
                     if ($row['use_svn_trigger'] == 1) {
                         echo '  <td align="center"><img src="' . $this->getControler()->getIconsPath() . 'server_lightning.png" alt="' . $GLOBALS['Language']->getText('plugin_hudson', 'alt_svn_trigger') . '" title="' . $GLOBALS['Language']->getText('plugin_hudson', 'alt_svn_trigger') . '"></td>';
                     } else {
                         echo '  <td>&nbsp;</td>';
                     }
                 }
                 if ($project->usesCVS()) {
                     if ($row['use_cvs_trigger'] == 1) {
                         echo '  <td align="center"><img src="' . $this->getControler()->getIconsPath() . 'server_lightning.png" alt="' . $GLOBALS['Language']->getText('plugin_hudson', 'alt_cvs_trigger') . '" title="' . $GLOBALS['Language']->getText('plugin_hudson', 'alt_cvs_trigger') . '"></td>';
                     } else {
                         echo '  <td>&nbsp;</td>';
                     }
                 }
                 if (!empty($services)) {
                     foreach ($services as $service) {
                         if (isset($service['used'][$job_id]) && $service['used'][$job_id] == true) {
                             echo '  <td align="center"><img src="' . $this->getControler()->getIconsPath() . 'server_lightning.png" alt="' . $service['title'] . '" title="' . $service['title'] . '"></td>';
                         } else {
                             echo '  <td>&nbsp;</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->usesSVN()) {
                     $nb_columns++;
                 }
                 if ($project->usesCVS()) {
                     $nb_columns++;
                 }
                 foreach ($services as $service) {
                     $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=' . $job_id . '">' . $GLOBALS['HTML']->getimage('ic/edit.png', array('alt' => $GLOBALS['Language']->getText('plugin_hudson', 'edit_job'), 'title' => $GLOBALS['Language']->getText('plugin_hudson', 'edit_job'))) . '</a>';
                 echo '   </span>';
                 // delete job
                 echo '   <span class="job_action">';
                 echo '    <a href="?action=delete_job&group_id=' . $group_id . '&job_id=' . $job_id . '" onclick="return confirm(';
                 echo "'" . $GLOBALS['Language']->getText('plugin_hudson', 'delete_job_confirmation', array($row['name'], $project->getUnixName())) . "'";
                 echo ');">' . $GLOBALS['HTML']->getimage('ic/cross.png', array('alt' => $GLOBALS['Language']->getText('plugin_hudson', 'delete_job'), 'title' => $GLOBALS['Language']->getText('plugin_hudson', 'delete_job'))) . '</a>';
                 echo '   </span>';
                 echo '  </td>';
             }
             echo ' </tr>';
             $dar->next();
             $cpt++;
         }
         echo '</table>';
     } else {
         echo '<p>' . $GLOBALS['Language']->getText('plugin_hudson', 'no_jobs_linked') . '</p>';
     }
 }
コード例 #4
0
 function _getMonitoredJobsByUser()
 {
     $user = UserManager::instance()->getCurrentUser();
     $job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
     $dar = $job_dao->searchByUserID($user->getId());
     $monitored_jobs = array();
     while ($dar->valid()) {
         $row = $dar->current();
         if (!in_array($row['job_id'], $this->_not_monitored_jobs)) {
             $monitored_jobs[] = $row['job_id'];
         }
         $dar->next();
     }
     return $monitored_jobs;
 }