In the dashboard and on the job page, indicate whether the job appears in the latest jobset eval. That way, the user gets some indication if a job has accidentally disappeared (e.g. due to an evaluation error).
JPTXSWBOYRZMQDAYCJZBXVABO6GFQQ3CFSLX4FPXKLIWURPEWKMAC
O757ISIS3BDTQOGYCHQXY5V2OCGX3UFL75WUSF33AZI43AE3H75QC
KSBB33RE2PK5SFN7ZMOTZJQHZB4JYIIUUKWDSD3LSZ5GD465AJHQC
OZDDUMVPLAIDDD4H43JOP75WYF6XOXL737GEUIHVDTKQAGFHYTBAC
J5UVLXOK6EDIL5I7VKWH4V2QDS4DPD7FHRK6XBWSXFRQS4JKXFZQC
ZH6B56XRZON7AGKUPGKABU2SWOIQSYBTXVOMR66X6P6MG25Y4WZAC
XKXMU5PVXDNCWV6JDO2VWHB4HRAXI3H4ADRSTBJ227WIJBLHRFJAC
WGUKOIQZOQ64I6OJHGR4RSRI2HPH4RXADNSPFBWRETKO7OWCET4QC
ODNCGFQ5FPKFI624BVMLW7PJ2EFJOR3TY66OCZM42UNNTWBCF2TQC
# Check whether the given job is a member of the most recent jobset
# evaluation.
sub jobExists {
my ($self, $c, $job) = @_;
my $latestEval = $job->jobset->jobsetevals->search(
{ hasnewbuilds => 1},
{ rows => 1, order_by => ["id desc"] })->single;
return 0 if !defined $latestEval; # can't happen
return scalar($latestEval->builds->search({ job => $job->name })) != 0;
}
<td>[% INCLUDE renderFullJobName project=j.job.get_column('project') jobset=j.job.get_column('jobset') job=j.job.name %]</td>
<td><span class="[% IF !jobExists(j.job) %]disabled-job[% END %]">[% INCLUDE renderFullJobName project=j.job.get_column('project') jobset=j.job.get_column('jobset') job=j.job.name %]</span></td>