Give every page a consistent title

This commit is contained in:
Eelco Dolstra 2013-02-20 15:54:33 +01:00
parent 5c317fa0e9
commit ea9862fdc1
36 changed files with 105 additions and 162 deletions

@ -1,8 +1,6 @@
[% WRAPPER layout.tt title="Admin" %] [% WRAPPER layout.tt title="Machine status" %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
<div class="page-header"><h1>Machine status</h1></div>
<table class="table table-condensed table-striped"> <table class="table table-condensed table-striped">
[% FOREACH m IN machines %] [% FOREACH m IN machines %]
<thead> <thead>

@ -1,11 +1,9 @@
[% WRAPPER layout.tt title="All builds" %] [% WRAPPER layout.tt title="All builds" _
(job ? " for job $project.name:$jobset.name:$job.name" :
jobset ? " for jobset $project.name:$jobset.name" :
project ? " for project $project.name" : "") %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
<div class="page-header"><h1>All builds
[% IF job %]for Job [% project.name %]:[% jobset.name %]:[% job.name %]
[% ELSIF jobset %]for Jobset [% project.name %]:[% jobset.name %]
[% ELSIF project %] for Project <tt>[% project.name %]</tt>[% END %]</h1></div>
<p>Showing builds [% (page - 1) * resultsPerPage + 1 %] - [% (page - 1) * resultsPerPage + builds.size %] out of [% total %] in order of descending timestamp.</p> <p>Showing builds [% (page - 1) * resultsPerPage + 1 %] - [% (page - 1) * resultsPerPage + builds.size %] out of [% total %] in order of descending timestamp.</p>
[% INCLUDE renderPager %] [% INCLUDE renderPager %]

@ -1,4 +1,4 @@
[% WRAPPER layout.tt title="Job $project.name:$jobset.name:$job.name build $id" %] [% WRAPPER layout.tt title="Build $id of job $project.name:$jobset.name:$job.name" %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
[% PROCESS "product-list.tt" %] [% PROCESS "product-list.tt" %]
[% USE HTML %] [% USE HTML %]
@ -96,6 +96,10 @@
[% INCLUDE renderStatus build=build icon=0 %] [% INCLUDE renderStatus build=build icon=0 %]
</td> </td>
</tr> </tr>
<tr>
<th>System:</th>
<td><tt>[% build.system %]</tt></td>
</tr>
[% IF build.releasename %] [% IF build.releasename %]
<tr> <tr>
<th>Release name:</th> <th>Release name:</th>
@ -107,10 +111,6 @@
<td><tt>[% build.nixname %]</tt></td> <td><tt>[% build.nixname %]</tt></td>
</tr> </tr>
[% END %] [% END %]
<tr>
<th>System:</th>
<td><tt>[% build.system %]</tt></td>
</tr>
[% IF build.iscachedbuild %] [% IF build.iscachedbuild %]
<tr> <tr>
<th>Cached from:</th> <th>Cached from:</th>
@ -142,6 +142,7 @@
</table> </table>
[% IF c.user_exists && available %] [% IF c.user_exists && available %]
<br/>
<form class="form-horizontal" action="[% c.uri_for('/build' build.id 'add-to-release') %]" method="post"> <form class="form-horizontal" action="[% c.uri_for('/build' build.id 'add-to-release') %]" method="post">
<div class="control-group"> <div class="control-group">
<label class="control-label">Add to release</label> <label class="control-label">Add to release</label>
@ -276,12 +277,6 @@
<td>[% INCLUDE renderDateTime timestamp = build.timestamp %]</td> <td>[% INCLUDE renderDateTime timestamp = build.timestamp %]</td>
</tr> </tr>
[% IF build.finished && build.buildstatus != 4 %] [% IF build.finished && build.buildstatus != 4 %]
[% IF build.iscachedbuild && cachedBuild %]
<tr>
<th>Cached build:</th>
<td>[% INCLUDE renderFullBuildLink build=cachedBuild %]</td>
</tr>
[% END %]
<tr> <tr>
<th>Build started:</th> <th>Build started:</th>
<td>[% IF build.starttime %][% INCLUDE renderDateTime timestamp = build.starttime %][% ELSE %]<em>(cached build)</em>[% END %]</td> <td>[% IF build.starttime %][% INCLUDE renderDateTime timestamp = build.starttime %][% ELSE %]<em>(cached build)</em>[% END %]</td>

@ -2,8 +2,6 @@
[% PROCESS common.tt %] [% PROCESS common.tt %]
[% USE HTML %] [% USE HTML %]
<div class="page-header"><h1>Channel <tt>[% channelName %]</tt></h1></div>
<p>This page provides a <em>channel</em> for the <a <p>This page provides a <em>channel</em> for the <a
href="http://nixos.org/">Nix package manager</a>. If you have Nix href="http://nixos.org/">Nix package manager</a>. If you have Nix
installed, you can subscribe to this channel by once executing</p> installed, you can subscribe to this channel by once executing</p>
@ -51,18 +49,18 @@ install the package simply by clicking on the packages below.</p>
[% FOREACH pkg IN nixPkgs %] [% FOREACH pkg IN nixPkgs %]
[% build = pkg.build %] [% b = pkg.build %]
[% uri = "${curUri}/pkg/${pkg.name}.nixpkg" %] [% uri = "${curUri}/pkg/${pkg.name}.nixpkg" %]
<tr class="clickable [% IF odd %] odd [% END; odd = !odd %]" onclick="window.location = '[% uri %]'"> <tr class="clickable [% IF odd %] odd [% END; odd = !odd %]" onclick="window.location = '[% uri %]'">
<td><a href="[% c.uri_for('/build' build.id) %]">[% build.id %]</a></td> <td><a href="[% c.uri_for('/build' b.id) %]">[% b.id %]</a></td>
<td><a href="[% uri %]"><tt>[% build.get_column('releasename') || build.nixname %]</tt></a></td> <td><a href="[% uri %]"><tt>[% b.get_column('releasename') || b.nixname %]</tt></a></td>
<td><tt>[% build.system %]</tt></td> <td><tt>[% b.system %]</tt></td>
<td> <td>
[% IF build.homepage %] [% IF b.homepage %]
<a [% HTML.attributes(href => build.homepage) %]>[% HTML.escape(build.description) %]</a> <a [% HTML.attributes(href => b.homepage) %]>[% HTML.escape(b.description) %]</a>
[% ELSE %] [% ELSE %]
[% HTML.escape(build.description) %] [% HTML.escape(b.description) %]
[% END %] [% END %]
[% IF pkg.outName != 'out' %] [[% pkg.outName %]][% END %] [% IF pkg.outName != 'out' %] [[% pkg.outName %]][% END %]
</td> </td>
@ -70,7 +68,6 @@ install the package simply by clicking on the packages below.</p>
[% END %] [% END %]
</tbody> </tbody>
</table> </table>

@ -1,10 +1,8 @@
[% WRAPPER layout.tt title="Clone Build" %] [% WRAPPER layout.tt title="Clone build ${build.id}" %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
[% USE HTML %] [% USE HTML %]
[% edit=1 %] [% edit=1 %]
<div class="page-header"><h1>Clone Build</h1></div>
<p>Cloning allows you to perform a build with modified inputs.</p> <p>Cloning allows you to perform a build with modified inputs.</p>
<form action="[% c.uri_for('/build' build.id 'clone' 'submit') %]" method="post"> <form action="[% c.uri_for('/build' build.id 'clone' 'submit') %]" method="post">

@ -1,17 +1,23 @@
[% WRAPPER layout.tt title="Clone Jobset" %] [% WRAPPER layout.tt title="Clone jobset $jobset.project.name:$jobset.name" %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
[% USE HTML %] [% USE HTML %]
[% edit=1 %] [% edit=1 %]
<form action="[% c.uri_for('/jobset' jobset.project.name jobset.name 'clone' 'submit') %]" method="post"> <form class="form-horizontal" action="[% c.uri_for('/jobset' jobset.project.name jobset.name 'clone' 'submit') %]" method="post">
<h2>Cloning jobset [% jobset.project.name %]:[% jobset.name %]</h2> <fieldset>
<p> <div class="control-group">
Name <tt><input type="text" class="string" name="newjobset" [% HTML.attributes(value => "") %] /></tt> <label class="control-label">New name</label>
</p> <div class="controls">
<p> <input type="text" class="span3" name="newjobset" value=""></input>
<button type="submit">Next</button> </div>
</p> </div>
<div class="form-actions">
<input type="submit" value="Submit" class="btn btn-primary" />
</div>
</fieldset>
</form> </form>

@ -394,28 +394,6 @@ BLOCK renderInputDiff; %]
[% END; [% END;
BLOCK hydraStatus %]
<table class="tablesorter table table-striped table-condensed">
<thead>
<tr><th>Machine</th><th>Job</th><th>Type</th><th>Build</th><th>Step</th><th>What</th><th>Since</th></tr>
</thead>
<tbody>
[% FOREACH step IN steps %]
<tr>
<td><tt>[% IF step.machine; step.machine.match('@(.*)').0; ELSE; 'localhost'; END %]</tt></td>
<td><tt>[% INCLUDE renderFullJobName project = step.build.project.name jobset = step.build.jobset.name job = step.build.job.name %]</tt></td>
<td><tt>[% step.system %]</tt></td>
<td><a href="[% c.uri_for('/build' step.build.id) %]">[% step.build.id %]</a></td>
<td><a href="[% c.uri_for('/build' step.build.id 'nixlog' step.stepnr 'tail-reload') %]">[% step.stepnr %]</a></td>
<td><tt>[% step.drvpath.match('-(.*)').0 %]</tt></td>
<td class='right'>[% INCLUDE renderDuration duration = curTime - step.starttime %] </td>
</tr>
[% END %]
</tbody>
</table>
[% END;
BLOCK renderPager %] BLOCK renderPager %]
<div class="pagination"> <div class="pagination">
<ul> <ul>

@ -1,4 +1,4 @@
[% WRAPPER layout.tt title="Job $project.name:$jobset.name:$job.name build $id" %] [% WRAPPER layout.tt title="Dependencies of build $id" %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
[% USE HTML %] [% USE HTML %]
@ -35,7 +35,7 @@
</li> </li>
[% END %] [% END %]
<h2 id="runtime">Runtime dependency graph</h2> <section><h2 id="runtime">Runtime dependency graph</h2>
[% IF available %] [% IF available %]
<ul class="tree"> <ul class="tree">
[% done={}; FOREACH node IN runtimeGraph; INCLUDE renderNode; END %] [% done={}; FOREACH node IN runtimeGraph; INCLUDE renderNode; END %]
@ -43,9 +43,11 @@
[% ELSE %] [% ELSE %]
<p><em>No longer available.</em></p> <p><em>No longer available.</em></p>
[% END %] [% END %]
</section>
<h2 id="buildtime">Build-time dependency graph</h2> <br />
<section><h2 id="buildtime">Build-time dependency graph</h2>
[% IF drvAvailable %] [% IF drvAvailable %]
<ul class="tree"> <ul class="tree">
[% INCLUDE renderNode node=buildTimeGraph %] [% INCLUDE renderNode node=buildTimeGraph %]
@ -53,6 +55,7 @@
[% ELSE %] [% ELSE %]
<p><em>No longer available.</em></p> <p><em>No longer available.</em></p>
[% END %] [% END %]
</section>
[% END %] [% END %]

@ -1,9 +1,7 @@
[% WRAPPER layout.tt title=(create ? "New release" : "Edit release") %] [% WRAPPER layout.tt title=(create ? "New release" : "Edit release ${release.name}") %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
[% USE HTML %] [% USE HTML %]
<div class="page-header"><h1>[% IF create %]New release[% ELSE %]Release <tt>[% release.name %]</tt>[% END %]</h1></div>
<form class="form-horizontal" action="[% IF create %][% c.uri_for('/project' project.name 'create-release/submit') %][% ELSE %][% c.uri_for('/release' project.name release.name 'submit') %][% END %]" method="post"> <form class="form-horizontal" action="[% IF create %][% c.uri_for('/project' project.name 'create-release/submit') %][% ELSE %][% c.uri_for('/release' project.name release.name 'submit') %][% END %]" method="post">
<fieldset> <fieldset>

@ -1,9 +1,7 @@
[% WRAPPER layout.tt title=(create ? "New view" : "View $project.name:$view.name") %] [% WRAPPER layout.tt title=(create ? "New view" : "View $project.name:$view.name") %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
[% USE HTML %] [% USE HTML %]
<div class="page-header"><h1>[% IF create %]New view[% ELSE %]View <tt>[% project.name %]:[% view.name %]</tt>[% END %]</h1></div>
[% BLOCK renderJob %] [% BLOCK renderJob %]
<tr id="[% id %]" > <tr id="[% id %]" >

@ -1,8 +1,6 @@
[% WRAPPER layout.tt title="Error" %] [% WRAPPER layout.tt title=(httpStatus ? httpStatus : "Error") %]
[% USE HTML %] [% USE HTML %]
<div class="page-header"><h1>[% IF httpStatus %][% httpStatus %][% ELSE %]Error[% END %]</h1></div>
<p>I'm very sorry, but the following error(s) occurred:</p> <p>I'm very sorry, but the following error(s) occurred:</p>
<ul> <ul>

@ -1,8 +1,6 @@
[% WRAPPER layout.tt title="Errors" %] [% WRAPPER layout.tt title="Errors" %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
<div class="page-header"><h1>Errors</h1></div>
<p>This page provides a quick way to see how FUBARed your packages <p>This page provides a quick way to see how FUBARed your packages
are. It shows job expressions that dont evaluate properly and jobs are. It shows job expressions that dont evaluate properly and jobs
that dont build.</p> that dont build.</p>

@ -1,8 +1,6 @@
[% WRAPPER layout.tt title="Jobset $project.name:$jobset.name evaluation $eval.id" %] [% WRAPPER layout.tt title="Evaluation $eval.id of jobset $project.name:$jobset.name " %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
<div class="page-header"><h1>Jobset <tt>[% project.name %]:[% jobset.name %]</tt> evaluation [% eval.id %]</h1></div>
[% IF otherEval %] [% IF otherEval %]
<p>Comparisons are relative to [% INCLUDE renderFullJobsetName <p>Comparisons are relative to [% INCLUDE renderFullJobsetName
project=otherEval.jobset.project.name jobset=otherEval.jobset.name %] evaluation <a href="[% project=otherEval.jobset.project.name jobset=otherEval.jobset.name %] evaluation <a href="[%

@ -1,10 +1,6 @@
[% WRAPPER layout.tt title="Jobset $project.name:$jobset.name Evaluations" %] [% WRAPPER layout.tt title="Evaluations of jobset $project.name:$jobset.name" %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
<div class="page-header"><h1>Evaluations of Jobset <tt>[% INCLUDE renderLink
uri = c.uri_for(c.controller('Project').action_for('view'), [project.name])
title = project.name %]:[% jobset.name %]</tt></h1></div>
<p>Showing evaluations [% (page - 1) * resultsPerPage + 1 %] - [% <p>Showing evaluations [% (page - 1) * resultsPerPage + 1 %] - [%
(page - 1) * resultsPerPage + evals.size %] out of [% total %].</p> (page - 1) * resultsPerPage + evals.size %] out of [% total %].</p>

@ -1,4 +1,4 @@
[% WRAPPER layout.tt title=(edit ? (create ? "New Jobset in Project $project.name" : "Editing Jobset $project.name:$jobset.name") : "Jobset $project.name:$jobset.name") %] [% WRAPPER layout.tt title=(edit ? (create ? "Create jobset in project $project.name" : "Editing jobset $project.name:$jobset.name") : "Jobset $project.name:$jobset.name") %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
[% IF edit %] [% IF edit %]
@ -6,11 +6,6 @@
[% END %] [% END %]
[% IF create %]
<h1>New Jobset in Project <tt>[% project.name %]</tt></h1>
[% END %]
[% BLOCK renderInputAlt %] [% BLOCK renderInputAlt %]
[% IF edit %] [% IF edit %]
<button type="button" class="btn btn-warning" onclick='$(this).parents(".inputalt").remove()'><i class="icon-trash icon-white"></i></button> <button type="button" class="btn btn-warning" onclick='$(this).parents(".inputalt").remove()'><i class="icon-trash icon-white"></i></button>
@ -258,7 +253,9 @@
}); });
</script> </script>
<p><button type="submit" class="btn btn-primary"><i class="icon-ok icon-white"></i> [%IF create %]Create[% ELSE %]Apply changes[% END %]</button></p> <div class="form-actions">
<button type="submit" class="btn btn-primary"><i class="icon-ok icon-white"></i> [%IF create %]Create[% ELSE %]Apply changes[% END %]</button>
</div>
</form> </form>

@ -1,8 +1,9 @@
[% WRAPPER layout.tt title="Job status" %] [% WRAPPER layout.tt title="Job status" _
(job ? " of job $project.name:$jobset.name:$job.name" :
jobset ? " of jobset $project.name:$jobset.name" :
project ? " of project $project.name" : "") %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
<div class="page-header"><h1>Job status[% IF project %] of <tt>[% project.name %][% IF jobset %]:[% jobset.name%][% END %][% IF job %]:[% job.name%][% END %]</tt>[% END %]</h1></div>
<p>Below are the latest builds for each job. It is ordered by the status <p>Below are the latest builds for each job. It is ordered by the status
change time (the timestamp of the last build that had a different change time (the timestamp of the last build that had a different
build result status). That is, it shows the jobs that most recently build result status). That is, it shows the jobs that most recently

@ -4,20 +4,20 @@
[% PROCESS common.tt %] [% PROCESS common.tt %]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <html lang="en">
<head> <head>
<title>Hydra - [% title %]</title> <title>Hydra - [% HTML.escape(title) %]</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/jquery-ui.min.js"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/jquery-ui.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="/static/bootstrap/css/bootstrap.min.css" rel="stylesheet"> <link href="/static/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<link href="/static/bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet"> <link href="/static/bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet" />
<script type="text/javascript" src="/static/bootstrap/js/bootstrap.min.js"></script> <script type="text/javascript" src="/static/bootstrap/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="/static/css/hydra.css" type="text/css" /> <link rel="stylesheet" href="/static/css/hydra.css" type="text/css" />
@ -104,6 +104,14 @@
<div class="container"> <div class="container">
[% IF !hideHeader %]
<div class="page-header">
<h1><small>[% HTML.escape(title) %]</small></h1>
</div>
[% ELSE %]
<br />
[% END %]
[% content %] [% content %]
<footer class="navbar"> <footer class="navbar">

@ -1,8 +1,6 @@
[% WRAPPER layout.tt title="Logfile" %] [% WRAPPER layout.tt title="Log of " _ (step ? " step $step.stepnr of " : "") _ "build ${build.id} of job $build.project.name:$build.jobset.name:$build.job.name" %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
<div class="page-header"><h1>Build log of [% INCLUDE renderFullJobNameOfBuild %] build <a href="[% c.uri_for('/build' build.id) %]">[% build.id %]</a>[%IF step %] step [% step.stepnr %][% END %]</h1></div>
<p> <p>
This is the build log of derivation <tt>[% IF step; step.drvpath; ELSE; build.drvpath; END %]</tt>. This is the build log of derivation <tt>[% IF step; step.drvpath; ELSE; build.drvpath; END %]</tt>.
[% IF step && step.machine %] [% IF step && step.machine %]

@ -1,8 +1,6 @@
[% WRAPPER layout.tt title="Login to Hydra" %] [% WRAPPER layout.tt title="Sign in" %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
<div class="page-header"><h1>Login</h1></div>
[% IF errorMsg %] [% IF errorMsg %]
<p class="btn-warning btn-large">Error: [% errorMsg %]</p> <p class="btn-warning btn-large">Error: [% errorMsg %]</p>
[% END %] [% END %]
@ -32,7 +30,7 @@ You can <a href="[% c.uri_for('/logout') %]">logout</a> here.
</div> </div>
<div class="form-actions"> <div class="form-actions">
<input type="submit" name="login" value="Login" class="btn btn-primary" /> <input type="submit" name="login" value="Sign in" class="btn btn-primary" />
</div> </div>
</form> </form>

@ -1,8 +1,6 @@
[% WRAPPER layout.tt title=(create ? "New machine" : "Editing machine '$machine.hostname'") %] [% WRAPPER layout.tt title=(create ? "New machine" : "Machine $machine.hostname") %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
<div class="page-header"><h1>[% IF create %]New machine[% ELSE %]Machine <tt>[% machine.hostname %]</tt>[% END %]</h1></div>
<form class="form-horizontal" method="post" <form class="form-horizontal" method="post"
action="[% IF create %][% c.uri_for('/admin/create-machine/submit') %][% ELSE %][% c.uri_for('/admin/machine' machine.hostname 'submit') %][% END %]"> action="[% IF create %][% c.uri_for('/admin/create-machine/submit') %][% ELSE %][% c.uri_for('/admin/machine' machine.hostname 'submit') %][% END %]">

@ -1,8 +1,6 @@
[% WRAPPER layout.tt title="Machines" %] [% WRAPPER layout.tt title="Build machines" %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
<div class="page-header"><h1>Build machines</h1></div>
<table class="table table-condensed table-striped"> <table class="table table-condensed table-striped">
<thead> <thead>
<tr> <tr>

@ -2,7 +2,6 @@
[% PROCESS common.tt %] [% PROCESS common.tt %]
[% USE String %] [% USE String %]
<div class="page-header"><h1>News items</h1></div>
[% IF newsItems.size == 0 %] [% IF newsItems.size == 0 %]
<p>No news items</p> <p>No news items</p>

@ -1,4 +1,4 @@
[% WRAPPER layout.tt title="Overview" %] [% WRAPPER layout.tt title="Overview" hideHeader=1 %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
[% IF newItems.size != 0 %] [% IF newItems.size != 0 %]

@ -5,10 +5,6 @@
[% jobset = build.jobset %] [% jobset = build.jobset %]
[% job = build.job %] [% job = build.job %]
<div class="page-header"><h1>[% title %]</h1></div>
<div class="buildlog">
[% contents %] [% contents %]
</div>
[% END %] [% END %]

@ -1,8 +1,8 @@
[% WRAPPER layout.tt title=(edit ? (create ? "New Project" : "Editing Project $project.name") : "Project $project.name") %] [% WRAPPER layout.tt title=(edit ? (create ? "New Project" : "Editing project $project.name") : "Project $project.name") %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
<ul class="nav nav-tabs"> <ul class="nav nav-tabs">
[% IF !edit %] [% IF !edit %]
<li class="active"><a href="#tabs-project" data-toggle="tab">Project</a></li> <li class="active"><a href="#tabs-project" data-toggle="tab">Overview</a></li>
[% END %] [% END %]
<li><a href="#tabs-settings" data-toggle="tab">Settings</a></li> <li><a href="#tabs-settings" data-toggle="tab">Settings</a></li>
[% IF !edit %] [% IF !edit %]
@ -14,8 +14,6 @@
[% IF !edit %] [% IF !edit %]
<div id="tabs-project" class="tab-pane active"> <div id="tabs-project" class="tab-pane active">
<h2>Jobsets</h2>
[% IF project.jobsets.size > 0 %] [% IF project.jobsets.size > 0 %]
<p>This project has the following jobsets:</p> <p>This project has the following jobsets:</p>
@ -94,9 +92,6 @@
<form action="[% IF create %][% c.uri_for('/create-project/submit') %][% ELSE %][% c.uri_for('/project' project.name 'submit') %][% END %]" method="post"> <form action="[% IF create %][% c.uri_for('/create-project/submit') %][% ELSE %][% c.uri_for('/project' project.name 'submit') %][% END %]" method="post">
[% END %] [% END %]
<h2>Information</h2>
<table class="layoutTable"> <table class="layoutTable">
[% IF edit %] [% IF edit %]
<tr> <tr>
@ -140,7 +135,7 @@
[% IF edit %] [% IF edit %]
<p> <div class="form-actions">
<button type="submit" class="btn btn-primary"> <button type="submit" class="btn btn-primary">
<i class="icon-ok icon-white"></i> <i class="icon-ok icon-white"></i>
[%IF create %]Create[% ELSE %]Apply changes[% END %] [%IF create %]Create[% ELSE %]Apply changes[% END %]
@ -156,7 +151,7 @@
}); });
</script> </script>
[% END %] [% END %]
</p> </div>
</form> </form>
@ -167,8 +162,6 @@
[% IF !edit %] [% IF !edit %]
<div id="tabs-views" class="tab-pane"> <div id="tabs-views" class="tab-pane">
<h2>Views</h2>
[% IF views.size > 0 %] [% IF views.size > 0 %]
<p>Project <tt>[% project.name %]</tt> has the following views:</p> <p>Project <tt>[% project.name %]</tt> has the following views:</p>

@ -1,8 +1,6 @@
[% WRAPPER layout.tt title="Queue" %] [% WRAPPER layout.tt title="Queue" %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
<div class="page-header"><h1>Hydra queue</h1></div>
<p><a class="btn" href="[% c.uri_for('/status') %]">Running build steps</a></p> <p><a class="btn" href="[% c.uri_for('/status') %]">Running build steps</a></p>
[% IF flashMsg %] [% IF flashMsg %]

@ -1,13 +1,10 @@
[% WRAPPER layout.tt title="Release $release.name" %] [% WRAPPER layout.tt title="Release $release.name" %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
[% PROCESS "product-list.tt" %] [% PROCESS "product-list.tt" %]
[% USE HTML %] [% USE HTML %]
<div class="page-header"><h1>Release <tt>[% release.name %]</tt>
<a class="btn" href="[% c.uri_for('/release' project.name release.name "edit") %]"><i class="icon-edit"></i></a></h1></div>
<p><em>Released on [% INCLUDE renderDateTime timestamp = <p><em>Released on [% INCLUDE renderDateTime timestamp =
release.timestamp %].</em></p> release.timestamp %].</em> <a class="btn" href="[% c.uri_for('/release' project.name release.name "edit") %]"><i class="icon-edit"></i></a></p>
[% IF !members %] [% IF !members %]

@ -1,9 +1,7 @@
[% WRAPPER layout.tt title="Releases for Project $project.name" %] [% WRAPPER layout.tt title="Releases for project $project.name" %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
[% USE HTML %] [% USE HTML %]
<div class="page-header"><h1>Releases for Project <tt>[% project.name %]</tt></h1></div>
[% IF releases.size == 0 %] [% IF releases.size == 0 %]
<p><em>This project has no releases yet.</em></p> <p><em>This project has no releases yet.</em></p>

@ -1,5 +1,5 @@
body { body {
padding-top: 60px; padding-top: 40px;
} }
.logo { .logo {

@ -1,8 +1,23 @@
[% WRAPPER layout.tt title="Hydra status" %] [% WRAPPER layout.tt title="Active build steps" %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
<div class="page-header"><h1>Hydra status</h1></div> <table class="tablesorter table table-striped table-condensed">
<thead>
[% INCLUDE hydraStatus %] <tr><th>Machine</th><th>Job</th><th>Type</th><th>Build</th><th>Step</th><th>What</th><th>Since</th></tr>
</thead>
<tbody>
[% FOREACH step IN steps %]
<tr>
<td><tt>[% IF step.machine; step.machine.match('@(.*)').0; ELSE; 'localhost'; END %]</tt></td>
<td><tt>[% INCLUDE renderFullJobName project = step.build.project.name jobset = step.build.jobset.name job = step.build.job.name %]</tt></td>
<td><tt>[% step.system %]</tt></td>
<td><a href="[% c.uri_for('/build' step.build.id) %]">[% step.build.id %]</a></td>
<td><a href="[% c.uri_for('/build' step.build.id 'nixlog' step.stepnr 'tail-reload') %]">[% step.stepnr %]</a></td>
<td><tt>[% step.drvpath.match('-(.*)').0 %]</tt></td>
<td class='right'>[% INCLUDE renderDuration duration = curTime - step.starttime %] </td>
</tr>
[% END %]
</tbody>
</table>
[% END %] [% END %]

@ -4,8 +4,6 @@
[% PROCESS common.tt %] [% PROCESS common.tt %]
<div class="page-header"><h1>Hydra timeline of last 24 hours</h1></div>
<script type="text/javascript"> <script type="text/javascript">
Timeline_urlPrefix="http://simile.mit.edu/timeline/api/"; Timeline_urlPrefix="http://simile.mit.edu/timeline/api/";
</script> </script>

@ -124,8 +124,8 @@
[% IF build %] [% IF build %]
[% WRAPPER makeSubMenu title=("Build: " _ build.id) %] [% WRAPPER makeSubMenu title=("Build: " _ build.id) %]
[% INCLUDE makeLink [% INCLUDE makeLink
uri = '#' uri = c.uri_for('/build' build.id)
title = "Related builds" %] title = "Overview" %]
[% IF c.user_exists %] [% IF c.user_exists %]
<li class="divider"></li> <li class="divider"></li>
[% INCLUDE makeLink [% INCLUDE makeLink
@ -177,7 +177,7 @@
class = "" %] class = "" %]
[% INCLUDE maybeLink [% INCLUDE maybeLink
uri = c.uri_for(c.controller('Admin').action_for('clear_queue_non_current')) uri = c.uri_for(c.controller('Admin').action_for('clear_queue_non_current'))
content = "Clear all non-running old builds from queue." content = "Clear all non-running old builds from queue"
confirmmsg = "Are you sure you want to clear the queue?" confirmmsg = "Are you sure you want to clear the queue?"
class = "" class = ""
%] %]

@ -1,4 +1,4 @@
[% WRAPPER layout.tt title=(create ? "New user" : "Editing user '$user.username'") %] [% WRAPPER layout.tt title=(create ? "New user" : "User $user.username") %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
[% BLOCK roleoption %] [% BLOCK roleoption %]
@ -14,8 +14,6 @@
>[% role %]</option> >[% role %]</option>
[% END %] [% END %]
<div class="page-header"><h1>[% IF create %]New user[% ELSE %]User <tt>[% user.username %]</tt>[% END %]</h1></div>
<form class="form-horizontal" action="[% IF create %][% c.uri_for('/admin/create-user/submit') %][% ELSE %][% c.uri_for('/admin/user' user.username 'submit') %][% END %]" method="post"> <form class="form-horizontal" action="[% IF create %][% c.uri_for('/admin/create-user/submit') %][% ELSE %][% c.uri_for('/admin/user' user.username 'submit') %][% END %]" method="post">
<fieldset> <fieldset>

@ -1,8 +1,6 @@
[% WRAPPER layout.tt title="Users" %] [% WRAPPER layout.tt title="Users" %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
<div class="page-header"><h1>Users</h1></div>
<table class="table table-striped table-condensed"> <table class="table table-striped table-condensed">
<thead> <thead>
<tr> <tr>

@ -4,8 +4,6 @@
[% PROCESS "product-list.tt" %] [% PROCESS "product-list.tt" %]
[% USE HTML %] [% USE HTML %]
<div class="page-header"><h1>View <tt>[% view.project.name %]:[% view.name %]</tt> result [% result.id %][% IF result.releasename %] (<tt>[% result.releasename %]</tt>)[% END %]</h1></div>
<p><em>Finished building on [% INCLUDE renderDateTime timestamp = result.timestamp %].</em></p> <p><em>Finished building on [% INCLUDE renderDateTime timestamp = result.timestamp %].</em></p>
[% IF result.status == 1 %] [% IF result.status == 1 %]

@ -1,9 +1,7 @@
[% WRAPPER layout.tt title="View $view.project.name:$view.name" %] [% WRAPPER layout.tt title="View $view.project.name:$view.name" %]
[% PROCESS common.tt %] [% PROCESS common.tt %]
[% USE HTML %] [% USE HTML %]
<div class="page-header"><h1>View <tt>[% view.project.name %]:[% view.name %]</tt></h1></div>
<p> <p>
<a class="btn" href="[% c.uri_for('/view' project.name view.name "edit") %]"><i class="icon-edit"></i> Edit</a> <a class="btn" href="[% c.uri_for('/view' project.name view.name "edit") %]"><i class="icon-edit"></i> Edit</a>
<a class="btn" href="[% c.uri_for('/view' project.name view.name "latest") %]"><i class="icon-share-alt"></i> Latest</a> <a class="btn" href="[% c.uri_for('/view' project.name view.name "latest") %]"><i class="icon-share-alt"></i> Latest</a>