function ajax_reference_sparkline($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(); try { $build = new HudsonBuild($row['job_url'] . '/' . $build_id . '/'); $params['sparkline'] = $build->getStatusIcon(); } catch (Exception $e) { } } 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']); $params['sparkline'] = $job->getStatusIcon(); } catch (Exception $e) { } } break; } }
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> ' . $GLOBALS['Language']->getText('cross_ref_fact_include', 'references') . '</b>'; $crossref_fact->DisplayCrossRefs(); } $this->_display_iframe($row['job_url'] . '/' . $build_id . '/'); } else { echo '<span class="error">' . $GLOBALS['Language']->getText('plugin_hudson', 'error_object_not_found') . '</span>'; } }