From 75277311ac03ac25e68aee4e0afcd949f262c894 Mon Sep 17 00:00:00 2001 From: Rob Vermaas Date: Fri, 25 May 2012 04:14:36 +0200 Subject: [PATCH] Different icons (darker red) for cancelled builds. Fixes #25. --- src/lib/Hydra/Controller/Jobset.pm | 5 +++-- src/root/common.tt | 16 +++++++++------- src/root/static/images/cancelled_128.png | Bin 0 -> 11969 bytes src/root/static/images/cancelled_16.png | Bin 0 -> 753 bytes src/root/static/images/cancelled_32.png | Bin 0 -> 1742 bytes src/root/static/images/cancelled_64.png | Bin 0 -> 4641 bytes 6 files changed, 12 insertions(+), 9 deletions(-) create mode 100644 src/root/static/images/cancelled_128.png create mode 100644 src/root/static/images/cancelled_16.png create mode 100644 src/root/static/images/cancelled_32.png create mode 100644 src/root/static/images/cancelled_64.png diff --git a/src/lib/Hydra/Controller/Jobset.pm b/src/lib/Hydra/Controller/Jobset.pm index fa968ef3..ef633201 100644 --- a/src/lib/Hydra/Controller/Jobset.pm +++ b/src/lib/Hydra/Controller/Jobset.pm @@ -353,7 +353,7 @@ sub getEvals { # Compute what inputs changed between each eval. my $curInputs = [ $cur->jobsetevalinputs->search( - { uri => { '!=' => undef }, revision => { '!=' => undef }, altNr => 0 }, + { -or => [ -and => [ uri => { '!=' => undef }, revision => { '!=' => undef }], dependency => { '!=' => undef }], altNr => 0 }, { order_by => "name" }) ]; my @changedInputs; my %prevInputsHash; @@ -361,7 +361,8 @@ sub getEvals { foreach my $input (@{$curInputs}) { my $p = $prevInputsHash{$input->name}; push @changedInputs, $input - if !defined $p || $input->revision ne $p->revision || $input->type ne $p->type || $input->uri ne $p->uri; + if !defined $p || $input->revision ne $p->revision || $input->type ne $p->type || $input->uri ne $p->uri || + ( defined $input->dependency && defined $p->dependency && $input->dependency->id ne $p->dependency->id); } $prevInputs = $curInputs; diff --git a/src/root/common.tt b/src/root/common.tt index 1c89a7ff..b160b348 100644 --- a/src/root/common.tt +++ b/src/root/common.tt @@ -246,7 +246,7 @@ [%- ELSIF buildstatus == 2 -%] Dependency failed [%- ELSIF buildstatus == 4 -%] - Failed + Cancelled [%- ELSIF buildstatus == 5 -%] Failed [%- ELSIF buildstatus == 6 -%] @@ -416,13 +416,15 @@ [% END %] -[% BLOCK renderShortRev -%] - [%- IF type == "svn" || type == "svn-checkout" || type == "bzr" || type == "bzr-checkout" -%] +[% BLOCK renderShortEval -%] + [%- IF input.type == "svn" || input.type == "svn-checkout" || input.type == "bzr" || input.type == "bzr-checkout" -%] r[%- revision -%] - [%- ELSIF type == "git" -%] - [% revision.substr(0, 7) %] + [%- ELSIF input.type == "git" -%] + [% input.revision.substr(0, 7) %] + [%- ELSIF input.type == "build" || input.type == "sysbuild" -%] + [% input.dependency.id %] [%- ELSE -%] - [%- revision -%] + [%- input.revision -%] [%- END -%] [%- END %] @@ -446,7 +448,7 @@ [%- IF e.changedInputs.size > 0 -%] [%- sep=''; FOREACH input IN e.changedInputs -%] - [%- sep %] [% input.name %] → [% INCLUDE renderShortRev type=input.type revision=input.revision %] + [%- sep %] [% input.name %] → [% INCLUDE renderShortEval input=input %] [%- sep=','; END -%] [%- ELSE -%] - diff --git a/src/root/static/images/cancelled_128.png b/src/root/static/images/cancelled_128.png new file mode 100644 index 0000000000000000000000000000000000000000..1f21130901951445598bca6b93da52a5009eaabe GIT binary patch literal 11969 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 TPc*XB00000NkvXXu0mjf$Sx=U literal 0 HcmV?d00001 diff --git a/src/root/static/images/cancelled_16.png b/src/root/static/images/cancelled_16.png new file mode 100644 index 0000000000000000000000000000000000000000..6b6fca4619ca2cb3537b7fc629e15cfda9e170af GIT binary patch literal 753 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 XstKvim`}@?00000NkvXXu0mjf58mWZ literal 0 HcmV?d00001