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

View file

@ -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>

View file

@ -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 %]

View file

@ -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>

View file

@ -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>

View file

@ -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">

View file

@ -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>

View file

@ -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>

View file

@ -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 %]

View file

@ -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>

View file

@ -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 %]" >

View file

@ -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>

View file

@ -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>

View file

@ -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="[%

View file

@ -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>

View file

@ -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>

View file

@ -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

View file

@ -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">

View file

@ -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 %]

View file

@ -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>

View file

@ -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 %]">

View file

@ -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>

View file

@ -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>

View file

@ -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 %]

View file

@ -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 %]

View file

@ -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>

View file

@ -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 %]

View file

@ -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 %]

View file

@ -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>

View file

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

View file

@ -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 %]

View file

@ -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>

View file

@ -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 = ""
%] %]

View file

@ -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>

View file

@ -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>

View file

@ -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 %]

View file

@ -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>