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()); } }
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; }