[?]
Nov 13, 2008, 2:54 PM
2AUODJBTW2UJ47UB3SREZ7O7UTTJDQ4AGUQMPZAI4F3Y6BUF6LUQCDependencies
- [2]
HCKFTNQ6 - [3]
BVOPAMLS - [4]
ELCI5T2A* Show the latest build for each job. - [5]
M552HLIA* Support variant builds. - [6]
UAPS46BQ - [7]
LQNBKF3D - [8]
UVMFS73T* Some jQuery / CSS hackery. - [9]
7LKUAIGC - [10]
L2E6EVE2* Merged the Build and Job tables. - [11]
J5UVLXOK* Start of a basic Catalyst web interface. - [12]
WYN733ST* Store build duration, handle cached builds. - [13]
7YBYT2LQ - [14]
K5BEBWKM - [15]
X27GNHDV* Basic job info in the database. - [16]
TQKGQ5R3 - [17]
JD27RBKM - [18]
PBFZEQLZ - [*]
N22GPKYT* Put info about logs / build products in the DB.
Change contents
- edit in src/HydraFrontend/lib/HydraFrontend/Controller/Root.pm at line 49
}sub updateProject {my ($c, $project) = @_;my $projectName = $c->request->params->{name};die "Invalid project name: $projectName" unless $projectName =~ /^[[:alpha:]]\w*$/;my $displayName = $c->request->params->{displayname};die "Invalid display name: $displayName" unless $displayName =~ /^\w.*\w$/;$project->name($projectName);$project->displayname($displayName);$project->description($c->request->params->{description});$project->update; - replacement in src/HydraFrontend/lib/HydraFrontend/Controller/Root.pm at line 70
my ( $self, $c, $projectName ) = @_;my ( $self, $c, $projectName, $subcommand ) = @_; - replacement in src/HydraFrontend/lib/HydraFrontend/Controller/Root.pm at line 75
my $isPosted = $c->request->method eq "POST";$subcommand = "" unless defined $subcommand;if ($subcommand eq "edit") {$c->stash->{edit} = 1;} elsif ($subcommand eq "submit" && $isPosted) {$c->model('DB')->schema->txn_do(sub {updateProject($c, $project);});return $c->res->redirect($c->uri_for("/project", $projectName));} elsif ($subcommand eq "delete" && $isPosted) {$c->model('DB')->schema->txn_do(sub {$project->delete;});return $c->res->redirect($c->uri_for("/"));} elsif ($subcommand eq "") {} else {return error($c, "Unknown subcommand $subcommand.");} - edit in src/HydraFrontend/lib/HydraFrontend/Controller/Root.pm at line 123
sub createproject :Local {my ( $self, $c, $subcommand ) = @_; - edit in src/HydraFrontend/lib/HydraFrontend/Controller/Root.pm at line 127
if (defined $subcommand && $subcommand eq "submit") {eval {my $projectName = $c->request->params->{name};$c->model('DB')->schema->txn_do(sub {# Note: $projectName is validated in updateProject,# which will abort the transaction if the name isn't# valid.my $project = $c->model('DB::Projects')->create({name => $projectName, displayname => ""});updateProject($c, $project);});return $c->res->redirect($c->uri_for("/project", $projectName));};if ($@) {return error($c, $@);}}$c->stash->{template} = 'project.tt';$c->stash->{create} = 1;$c->stash->{edit} = 1;} - replacement in src/HydraFrontend/lib/HydraFrontend/Controller/Root.pm at line 151
my ( $self, $c, $project, $jobName ) = @_;my ( $self, $c, $projectName, $jobName ) = @_; - replacement in src/HydraFrontend/lib/HydraFrontend/Controller/Root.pm at line 153
$c->stash->{projectName} = $project;(my $project) = $c->model('DB::Projects')->search({ name => $projectName });return error($c, "Project <tt>$projectName</tt> doesn't exist.") if !defined $project;$c->stash->{curProject} = $project; - replacement in src/HydraFrontend/lib/HydraFrontend/Controller/Root.pm at line 160
{finished => 1, project => $project, attrName => $jobName},{finished => 1, project => $projectName, attrName => $jobName}, - edit in src/HydraFrontend/root/error.tt at line 2
[% USE HTML %] - replacement in src/HydraFrontend/root/error.tt at line 6
<p>I'm very sorry, but an error occurred: <span class="error-msg">[% error %]</span></p><p>I'm very sorry, but an error occurred: <span class="error-msg">[% HTML.escape(error) %]</span></p> - edit in src/HydraFrontend/root/hydra.css at line 39
}td {vertical-align: top; - edit in src/HydraFrontend/root/hydra.css at line 152
white-space: pre; - edit in src/HydraFrontend/root/hydra.css at line 329[3.3522]
/* Editing */input.string {font-family: sans-serif;font-size: 100%;background-color: #fffff0;width: 30em;} - replacement in src/HydraFrontend/root/job.tt at line 3
<h1>All builds for job <tt>[% projectName %]:[% jobName %]</tt></h1><h1>All builds for job <tt>[% curProject.name %]:[% jobName %]</tt></h1> - edit in src/HydraFrontend/root/layout.tt at line 53
[% INCLUDE makeLink uri = c.uri_for('/project' project.name 'edit') title = "Edit" %] - replacement in src/HydraFrontend/root/layout.tt at line 67
[% INCLUDE makeLink uri = c.uri_for('/create-project') title = "Create a project" %][% INCLUDE makeLink uri = c.uri_for('/createproject') title = "Create a project" %] - edit in src/HydraFrontend/root/project.tt at line 2
[% USE HTML %] - replacement in src/HydraFrontend/root/project.tt at line 5
<h1>Project <tt>[% curProject.name %]</tt></h1>[% BLOCK maybeEditString %][% IF edit %]<input type='text' class='string' [% HTML.attributes(name => param, value => value) %] />[% ELSE %][% HTML.escape(value) %][% END %][% END %][% IF edit %]<form action="[% IF create %][% c.uri_for('/createproject/submit') %][% ELSE %][% c.uri_for('/project' curProject.name 'submit') %][% END %]" method="post">[% END %][% IF create %]<h1>New Project</h1>[% ELSE %]<h1>Project <tt>[% curProject.name %]</tt></h1>[% END %] - edit in src/HydraFrontend/root/project.tt at line 26
<h2>General information</h2> - replacement in src/HydraFrontend/root/project.tt at line 28
<p><strong>Description:</strong> [% curProject.description %]</p><table>[% IF edit %]<tr><th>Identifier:</th><td><tt>[% INCLUDE maybeEditString param="name" value=curProject.name %]</tt></td></tr>[% END %]<tr><th>Display name:</th><td>[% INCLUDE maybeEditString param="displayname" value=curProject.displayname %]</td></tr><tr><th>Description:</th><td>[% INCLUDE maybeEditString param="description" value=curProject.description %]</td></tr></table> - edit in src/HydraFrontend/root/project.tt at line 57
[% IF edit %]<tr><th>Identifier:</th><td><tt>[% INCLUDE maybeEditString value=jobset.name %]</tt></td></tr>[% END %] - replacement in src/HydraFrontend/root/project.tt at line 65
<td>[% jobset.description %]</td><td>[% INCLUDE maybeEditString value=jobset.description %]</td> - replacement in src/HydraFrontend/root/project.tt at line 69
<td><tt>[% jobset.nixexprpath %]</tt> in input <tt>[% jobset.nixexprinput %]</tt></td><td><tt>[% INCLUDE maybeEditString value=jobset.nixexprpath %]</tt> in input <tt>[% INCLUDE maybeEditString value=jobset.nixexprinput %]</tt></td> - replacement in src/HydraFrontend/root/project.tt at line 82
<td><tt>[% input.name %]</tt></td><td><tt>[% input.type %]</tt></td><td><tt>[% INCLUDE maybeEditString value=input.name %]</tt></td><td><tt>[% IF edit %]<select><option>svn</option><option>cvs</option><option>uri</option><option>string</option><option>path</option></select>[% ELSE %][% input.type %][% END %]</tt></td> - replacement in src/HydraFrontend/root/project.tt at line 99
<tt>"[% alt.value %]"</tt><tt>[% IF edit %]<input type='text' class='string' value='[% alt.value %]' /><br />[% ELSE %]"[% alt.value %]"[% END %]</tt> - replacement in src/HydraFrontend/root/project.tt at line 108
<tt>[% alt.uri %]</tt><tt>[% INCLUDE maybeEditString value=alt.uri %]</tt> - edit in src/HydraFrontend/root/project.tt at line 124
[% IF !edit %] - edit in src/HydraFrontend/root/project.tt at line 174
[% END %][% IF edit %]<p><input type="submit" value="Apply" /></p></form><form action="[% c.uri_for('/project' curProject.name 'delete') %]" method="post"><p><input type="submit" value="Delete this project" /></p></form>[% END %] - replacement in src/hydra.sql at line 177
type text not null, -- "svn", "cvs", "path", "file", "string"type text not null, -- "svn", "cvs", "path", "uri", "string" - replacement in src/test.sql at line 2
insert into jobSets(project, name, description, nixExprInput, nixExprPath) values('patchelf', 'trunk', 'PatchELF', 'patchelfSrc', 'release.nix');insert into jobSets(project, name, description, nixExprInput, nixExprPath) values('patchelf', 'trunk', 'PatchELF trunk', 'patchelfSrc', 'release.nix');