Ejemplo n.º 1
0
 public function addJob()
 {
     $request =& HTTPRequest::instance();
     $group_id = $request->get('group_id');
     $job_url = $request->get('hudson_job_url');
     try {
         $job = new HudsonJob($job_url);
         $use_svn_trigger = $request->get('hudson_use_svn_trigger') === 'on';
         $use_cvs_trigger = $request->get('hudson_use_cvs_trigger') === 'on';
         $token = $request->get('hudson_trigger_token');
         $svn_paths = $this->svn_paths_updater->transformContent($request->get('hudson_svn_paths'));
         $job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
         $jobId = $job_dao->createHudsonJob($group_id, $job_url, $job->getName(), $use_svn_trigger, $use_cvs_trigger, $token, $svn_paths);
         if (!$jobId) {
             $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_hudson', 'add_job_error'));
         } else {
             $em = EventManager::instance();
             $params = array('job_id' => $jobId, 'request' => $request);
             $em->processEvent('save_ci_triggers', $params);
             $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('plugin_hudson', 'job_added'));
             $GLOBALS['Response']->redirect('/plugins/hudson/?group_id=' . intval($group_id));
         }
     } catch (Exception $e) {
         $GLOBALS['Response']->addFeedback('error', $e->getMessage());
     }
 }
Ejemplo n.º 2
0
 function ajax_reference_tooltip($params)
 {
     require_once 'HudsonJob.class.php';
     require_once 'HudsonBuild.class.php';
     require_once 'hudson_Widget_JobLastBuilds.class.php';
     $ref = $params['reference'];
     switch ($ref->getNature()) {
         case 'hudson_build':
             $val = $params['val'];
             $group_id = $params['group_id'];
             $job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
             if (strpos($val, "/") !== false) {
                 $arr = explode("/", $val);
                 $job_name = $arr[0];
                 $build_id = $arr[1];
                 $dar = $job_dao->searchByJobName($job_name, $group_id);
             } else {
                 $build_id = $val;
                 $dar = $job_dao->searchByGroupID($group_id);
                 if ($dar->rowCount() != 1) {
                     $dar = null;
                 }
             }
             if ($dar && $dar->valid()) {
                 $row = $dar->current();
                 $build = new HudsonBuild($row['job_url'] . '/' . $build_id . '/');
                 echo '<strong>' . $GLOBALS['Language']->getText('plugin_hudson', 'build_time') . '</strong> ' . $build->getBuildTime() . '<br />';
                 echo '<strong>' . $GLOBALS['Language']->getText('plugin_hudson', 'status') . '</strong> ' . $build->getResult();
             } else {
                 echo '<span class="error">' . $GLOBALS['Language']->getText('plugin_hudson', 'error_object_not_found') . '</span>';
             }
             break;
         case 'hudson_job':
             $job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
             $job_name = $params['val'];
             $group_id = $params['group_id'];
             $dar = $job_dao->searchByJobName($job_name, $group_id);
             if ($dar->valid()) {
                 $row = $dar->current();
                 try {
                     $job = new HudsonJob($row['job_url']);
                     $job_id = $row['job_id'];
                     $html = '';
                     $html .= '<table>';
                     $html .= ' <tr>';
                     $html .= '  <td colspan="2">';
                     $html .= '   <img src="' . $job->getStatusIcon() . '" width="10" height="10" /> ' . $job->getName() . ':';
                     $html .= '  </td>';
                     $html .= ' </tr>';
                     $html .= ' <tr>';
                     $html .= '  <td>';
                     $html .= '   <ul>';
                     if ($job->hasBuilds()) {
                         $html .= ' <li>' . $GLOBALS['Language']->getText('plugin_hudson', 'last_build') . ' <a href="/plugins/hudson/?action=view_build&group_id=' . $group_id . '&job_id=' . $job_id . '&build_id=' . $job->getLastBuildNumber() . '"># ' . $job->getLastBuildNumber() . '</a></li>';
                         $html .= ' <li>' . $GLOBALS['Language']->getText('plugin_hudson', 'last_build_success') . ' <a href="/plugins/hudson/?action=view_build&group_id=' . $group_id . '&job_id=' . $job_id . '&build_id=' . $job->getLastSuccessfulBuildNumber() . '"># ' . $job->getLastSuccessfulBuildNumber() . '</a></li>';
                         $html .= ' <li>' . $GLOBALS['Language']->getText('plugin_hudson', 'last_build_failure') . ' <a href="/plugins/hudson/?action=view_build&group_id=' . $group_id . '&job_id=' . $job_id . '&build_id=' . $job->getLastFailedBuildNumber() . '"># ' . $job->getLastFailedBuildNumber() . '</a></li>';
                     } else {
                         $html .= ' <li>' . $GLOBALS['Language']->getText('plugin_hudson', 'widget_build_not_found') . '</li>';
                     }
                     $html .= '   </ul>';
                     $html .= '  </td>';
                     $html .= '  <td class="widget_lastbuilds_weather">';
                     $html .= $GLOBALS['Language']->getText('plugin_hudson', 'weather_report') . '<img src="' . $job->getWeatherReportIcon() . '" align="middle" />';
                     $html .= '  </td>';
                     $html .= ' </tr>';
                     $html .= '</table>';
                     echo $html;
                 } catch (Exception $e) {
                 }
             } else {
                 echo '<span class="error">' . $GLOBALS['Language']->getText('plugin_hudson', 'error_object_not_found') . '</span>';
             }
             break;
     }
 }
 function getContent()
 {
     $html = '';
     $user = UserManager::instance()->getCurrentUser();
     $job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
     $dar = $job_dao->searchByUserID($user->getId());
     if ($dar->rowCount() > 0) {
         $monitored_jobs = $this->_getMonitoredJobsByUser();
         if (sizeof($monitored_jobs) > 0) {
             $html .= '<table style="width:100%">';
             $cpt = 1;
             foreach ($monitored_jobs as $monitored_job) {
                 try {
                     $job_dao = new PluginHudsonJobDao(CodendiDataAccess::instance());
                     $dar = $job_dao->searchByJobID($monitored_job);
                     if ($dar->valid()) {
                         $row = $dar->current();
                         $job_url = $row['job_url'];
                         $job_id = $row['job_id'];
                         $group_id = $row['group_id'];
                         $job = new HudsonJob($job_url);
                         $html .= '<tr class="' . util_get_alt_row_color($cpt) . '">';
                         $html .= ' <td>';
                         $html .= ' <img src="' . $job->getStatusIcon() . '" title="' . $job->getStatus() . '" >';
                         $html .= ' </td>';
                         $html .= ' <td style="width:99%">';
                         $html .= '  <a href="/plugins/hudson/?action=view_job&group_id=' . $group_id . '&job_id=' . $job_id . '">' . $job->getName() . '</a><br />';
                         $html .= ' </td>';
                         $html .= '</tr>';
                         $cpt++;
                     }
                 } catch (Exception $e) {
                     // Do not display wrong jobs
                 }
             }
             $html .= '</table>';
         } else {
             $html .= $GLOBALS['Language']->getText('plugin_hudson', 'widget_no_monitoredjob_my');
         }
     } else {
         $html .= $GLOBALS['Language']->getText('plugin_hudson', 'widget_no_job_my');
     }
     return $html;
 }