This commit is contained in:
Eelco Dolstra 2008-11-12 23:45:11 +00:00
parent 6591118a2b
commit cd06b6c97d
20 changed files with 172 additions and 37 deletions

View file

@ -29,7 +29,7 @@ sub getBuild {
sub index :Path :Args(0) { sub index :Path :Args(0) {
my ( $self, $c ) = @_; my ( $self, $c ) = @_;
$c->stash->{template} = 'index.tt'; $c->stash->{template} = 'index.tt';
$c->stash->{projects} = [$c->model('DB::Projects')->all]; $c->stash->{projects} = [$c->model('DB::Projects')->search({}, {order_by => 'displayname'})];
$c->stash->{scheduled} = [$c->model('DB::Builds')->search( $c->stash->{scheduled} = [$c->model('DB::Builds')->search(
{finished => 0}, {join => 'schedulingInfo'})]; # !!! {finished => 0}, {join => 'schedulingInfo'})]; # !!!
$c->stash->{allBuilds} = [$c->model('DB::Builds')->search( $c->stash->{allBuilds} = [$c->model('DB::Builds')->search(

View file

@ -8,8 +8,8 @@ use base 'DBIx::Class::Schema';
__PACKAGE__->load_classes; __PACKAGE__->load_classes;
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:06:06 # Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:41:19
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ZbJ6NueGI5oUOzciArgKog # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:UDG/z2SeOSq/K7iVpzF0mw
# You can replace this text with custom content, and it will be preserved on regeneration # You can replace this text with custom content, and it will be preserved on regeneration

View file

@ -40,8 +40,8 @@ __PACKAGE__->belongs_to(
); );
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:06:06 # Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:41:19
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:aad+idPUM0h/+J0Hl5SdIg # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:fClAPzHpXV7YT8eHUeU4zw
# You can replace this text with custom content, and it will be preserved on regeneration # You can replace this text with custom content, and it will be preserved on regeneration

View file

@ -21,8 +21,8 @@ __PACKAGE__->set_primary_key("build", "logphase");
__PACKAGE__->belongs_to("build", "HydraFrontend::Schema::Builds", { id => "build" }); __PACKAGE__->belongs_to("build", "HydraFrontend::Schema::Builds", { id => "build" });
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:06:06 # Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:41:19
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:o8osOyKf+9S5A87XexVOeA # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:lW6yq7QOyzpa+zM/J/7VFQ
# You can replace this text with custom content, and it will be preserved on regeneration # You can replace this text with custom content, and it will be preserved on regeneration

View file

@ -33,8 +33,8 @@ __PACKAGE__->set_primary_key("build", "productnr");
__PACKAGE__->belongs_to("build", "HydraFrontend::Schema::Builds", { id => "build" }); __PACKAGE__->belongs_to("build", "HydraFrontend::Schema::Builds", { id => "build" });
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:06:06 # Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:41:19
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:52RNu4OcP3buytGZs+cGZQ # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:2qyh04FF7LrOgo+/Ixap2A
# You can replace this text with custom content, and it will be preserved on regeneration # You can replace this text with custom content, and it will be preserved on regeneration

View file

@ -25,8 +25,8 @@ __PACKAGE__->set_primary_key("id");
__PACKAGE__->belongs_to("id", "HydraFrontend::Schema::Builds", { id => "id" }); __PACKAGE__->belongs_to("id", "HydraFrontend::Schema::Builds", { id => "id" });
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:06:06 # Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:41:19
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+kbG4YYzbVVPWMwWTcQ32Q # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ko+bQKdwDzow15p/aTdgYw
# You can replace this text with custom content, and it will be preserved on regeneration # You can replace this text with custom content, and it will be preserved on regeneration

View file

@ -79,8 +79,8 @@ __PACKAGE__->has_many(
); );
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:06:06 # Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:41:19
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:l4QUKDHPL1mEZSlO9GgGzw # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:9VXVDomeYpjysKc8NxWogw
__PACKAGE__->has_many(dependents => 'HydraFrontend::Schema::Buildinputs', 'dependency'); __PACKAGE__->has_many(dependents => 'HydraFrontend::Schema::Buildinputs', 'dependency');

View file

@ -23,8 +23,8 @@ __PACKAGE__->set_primary_key("id");
__PACKAGE__->belongs_to("id", "HydraFrontend::Schema::Builds", { id => "id" }); __PACKAGE__->belongs_to("id", "HydraFrontend::Schema::Builds", { id => "id" });
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:06:06 # Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:41:19
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:EDzMzfQFnkl0bAmBlh5Omw # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:v2j9A4bXqe96Qy1zz/C+VQ
# You can replace this text with custom content, and it will be preserved on regeneration # You can replace this text with custom content, and it will be preserved on regeneration

View file

@ -35,8 +35,8 @@ __PACKAGE__->set_primary_key("id", "stepnr");
__PACKAGE__->belongs_to("id", "HydraFrontend::Schema::Builds", { id => "id" }); __PACKAGE__->belongs_to("id", "HydraFrontend::Schema::Builds", { id => "id" });
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:06:06 # Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:41:19
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:T25Mdcg1A77BB4gFF3LPZA # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:tCirOuLYfhBxoEkH5HAQlQ
# You can replace this text with custom content, and it will be preserved on regeneration # You can replace this text with custom content, and it will be preserved on regeneration

View file

@ -33,8 +33,8 @@ __PACKAGE__->belongs_to(
); );
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:06:06 # Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:41:19
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Qc9/eVs3wY6m9fztR3Yizg # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:GgHinSVpD7x20xFqfvau0Q
# You can replace this text with custom content, and it will be preserved on regeneration # You can replace this text with custom content, and it will be preserved on regeneration

View file

@ -43,8 +43,8 @@ __PACKAGE__->has_many(
); );
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:06:06 # Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:41:19
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:V2RU7h0eTPBUES0G306AgA # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:F9AunJfDCrzuCOBHjNaurw
# You can replace this text with custom content, and it will be preserved on regeneration # You can replace this text with custom content, and it will be preserved on regeneration

View file

@ -48,8 +48,8 @@ __PACKAGE__->has_many(
); );
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:06:06 # Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:41:19
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:TMnJfLpgUhiMkJKB8I1qqQ # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:oQnTi5ALlqDF0gP9P/hTeg
# You can replace this text with custom content, and it will be preserved on regeneration # You can replace this text with custom content, and it will be preserved on regeneration

View file

@ -10,6 +10,10 @@ __PACKAGE__->table("Projects");
__PACKAGE__->add_columns( __PACKAGE__->add_columns(
"name", "name",
{ data_type => "text", is_nullable => 0, size => undef }, { data_type => "text", is_nullable => 0, size => undef },
"displayname",
{ data_type => "text", is_nullable => 0, size => undef },
"description",
{ data_type => "VARCHAR", is_nullable => 0, size => undef },
); );
__PACKAGE__->set_primary_key("name"); __PACKAGE__->set_primary_key("name");
__PACKAGE__->has_many( __PACKAGE__->has_many(
@ -24,8 +28,8 @@ __PACKAGE__->has_many(
); );
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:06:06 # Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-13 00:41:19
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:UEZU36sQSaNML/YCAtpGkg # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:z7XJulBG7643ilgAj1hDwg
# You can replace this text with custom content, and it will be preserved on regeneration # You can replace this text with custom content, and it will be preserved on regeneration

View file

@ -202,3 +202,90 @@ table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSo
table.tablesorter thead tr th { table.tablesorter thead tr th {
padding-right: 1.5em; padding-right: 1.5em;
} }
/* Navbar */
#leftnavbar {
position: absolute;
left: 0px;
width: 13em;
border-right: 1px solid gray;
}
#content {
position: absolute;
left: 13em;
margin-left: 1em;
margin-right: 1em;
}
h1 {
margin-top: 0em;
}
#leftnavbar ul {
display: block;
padding: 0 0 0 0;
margin: 0 0 0 0;
margin-left: 1em;
margin-right: 1em;
}
#leftnavbar ul a {
color: #005aa0;
}
#leftnavbar li.section {
list-style: none;
margin: 0 0 0 0;
padding: 0 0 0 0;
margin-bottom: 1.5em;
}
#leftnavbar li.section > div.title {
text-align: center;
font-weight: bold;
border-width: 0px;
border-bottom-width: 1px;
border-style: solid;
border-color: #c0c0c0;
padding-bottom: 0.5em;
}
#leftnavbar li.section ul {
padding: 0 0 0 0;
margin-left: 0em;
margin-right: 0em;
}
#leftnavbar li.section ul li {
font-size: 90%;
list-style: none;
background-image: url(/static/images/arrow-right.gif);
background-repeat: no-repeat;
background-position: 0.3em center;
border-width: 0px;
border-bottom-width: 1px;
border-style: solid;
border-color: #c0c0c0;
margin: 0 0 0 0;
padding: 0 0 0 0;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#leftnavbar li.section ul li.active {
background-image: url(/static/images/arrow-right-active.gif);
background-color: #eef2ff;
font-weight: bold;
color: #606060;
}
#leftnavbar li.section ul li > div.title {
margin-left: 1.3em;
}
#footer {
font-size: 80%;
}

View file

@ -2,7 +2,10 @@
[% USE date %] [% USE date %]
<h1>Queue</h1> <h1>Hydra Overview</h1>
<h2>Queue</h2>
[% IF scheduled.size == 0 %] [% IF scheduled.size == 0 %]
@ -32,7 +35,7 @@
[% END %] [% END %]
<h1>Job status</h1> <h2>Job status</h2>
<p>Below are the latest builds for each job.</p> <p>Below are the latest builds for each job.</p>
@ -48,7 +51,7 @@
</table> </table>
<h1>All builds</h1> <h2>All builds</h2>
<p>Number of builds: [% allBuilds.size %]</p> <p>Number of builds: [% allBuilds.size %]</p>
@ -64,7 +67,7 @@
</table> </table>
<h1>Projects</h1> <h2>Projects</h2>
<ul> <ul>
[% FOREACH project IN projects -%] [% FOREACH project IN projects -%]

View file

@ -21,14 +21,49 @@
</head> </head>
<body> <body>
<div class="content"> <div id="container">
[% content %]
<div id="leftnavbar">
<ul>
<li class="section">
<div class="title">Hydra</div>
<ul>
<li><div class="title"><a href="/">Overview</a></div></li>
<li><div class="title"><a href="/queue">Queue</a></div></li>
<li><div class="title"><a href="/latest">Latest builds</a></div></li>
</ul>
</li>
</ul>
<ul>
<li class="section">
<div class="title">Projects</div>
<ul>
[% FOREACH project IN projects %]
<li><div class="title"><a href="[% c.uri_for('/project' project.name) %]">[% project.displayname %]</a></div></li>
[% END %]
</ul>
</li>
</ul>
<ul>
<li class="section">
<div class="title">Admin</div>
<ul>
<li><div class="title"><a href="/">Users</a></div></li>
<li><div class="title"><a href="/">Release definitions</a></div></li>
</ul>
</li>
</ul>
</div> </div>
<div class="footer"> <div id="content">
[% content %]
<div id="footer">
<hr /> <hr />
Generated at [% date.format %]. Generated at [% date.format %].
</div> </div>
</div>
</div>
</body> </body>
</html> </html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 B

View file

@ -149,7 +149,9 @@ create trigger cascadeBuildDeletion
create table Projects ( create table Projects (
name text primary key not null name text primary key not null, -- project id, lowercase (e.g. "patchelf")
displayName text not null, -- display name (e.g. "PatchELF")
description text
); );

View file

@ -1,4 +1,4 @@
insert into projects(name) values('patchelf'); insert into projects(name, displayName, description) values('patchelf', 'PatchELF', 'A tool for modifying ELF binaries');
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', 'patchelfSrc', 'release.nix');
insert into jobSetInputs(project, jobset, name, type) values('patchelf', 'trunk', 'patchelfSrc', 'path'); insert into jobSetInputs(project, jobset, name, type) values('patchelf', 'trunk', 'patchelfSrc', 'path');
insert into jobSetInputAlts(project, jobset, input, altnr, uri) values('patchelf', 'trunk', 'patchelfSrc', 0, '/home/eelco/Dev/patchelf-wc'); insert into jobSetInputAlts(project, jobset, input, altnr, uri) values('patchelf', 'trunk', 'patchelfSrc', 0, '/home/eelco/Dev/patchelf-wc');
@ -10,6 +10,10 @@ insert into jobSetInputs(project, jobset, name, type) values('patchelf', 'trunk'
insert into jobSetInputAlts(project, jobset, input, altnr, value) values('patchelf', 'trunk', 'system', 0, 'i686-linux'); insert into jobSetInputAlts(project, jobset, input, altnr, value) values('patchelf', 'trunk', 'system', 0, 'i686-linux');
insert into jobSetInputAlts(project, jobset, input, altnr, value) values('patchelf', 'trunk', 'system', 1, 'x86_64-linux'); insert into jobSetInputAlts(project, jobset, input, altnr, value) values('patchelf', 'trunk', 'system', 1, 'x86_64-linux');
insert into projects(name, displayName, description) values('nix', 'Nix', 'The Nix package manager');
insert into projects(name, displayName, description) values('nixpkgs', 'Nixpkgs', 'The Nix Packages collection');
--insert into projects(name) values('nixpkgs'); --insert into projects(name) values('nixpkgs');
--insert into jobSets(project, name) values('nixpkgs', 'trunk'); --insert into jobSets(project, name) values('nixpkgs', 'trunk');
--insert into jobSets(project, name) values('nixpkgs', 'stdenv-branch'); --insert into jobSets(project, name) values('nixpkgs', 'stdenv-branch');