Bootstrapify the Hydra forms (except the project and jobset edit pages)
[?]
Apr 17, 2012, 2:53 PM
JARRBLZDQ2JZWY7IUVPTOT7WJMBPMLFLF2MGLVGOYROAAISYGLSACDependencies
- [2]
5DSDXORDhydra: missing plain.tt - [3]
PALLP4UYis not in hydra-server's scope - [4]
FFEH62DEMachine status page now looks much better and more consistent with rest of Hydra - [5]
Z2E5PAYYMove Hide/Unhide links for project to toplevel menu. - [6]
ZLQL62FKOnly show "Running build steps" if there are running build steps - [7]
HQGXL4MXAdd validation for project and jobset names - [8]
GAIBDEZZ* Store the name of the machine that performed a build step in the - [9]
2AIIYGI5* Show job status and all builds for a project. - [10]
RU7AQO7U* Role-based access control. Only admins can create projects. Only - [11]
3HZY24CX* Make jobsets viewable under - [12]
2BUX775I* More release -> view. - [13]
SMTMFEKEhydra: add missing templates - [14]
AS2OXLRM* Editing releases. - [15]
DEMSSSB2* Controller for jobs which inherits all actions in ListBuilds. So - [16]
P5X4P6VK* Renaming "release sets" to "views" (not finished yet). Having - [17]
MMDLWWZ2automatic reload of tail log when build is running - [18]
6KJXJB7Nqualify ordery_by clauses when necessary, remove unnecessary order_by's, reported by Ludo, resulted in errors in sqlite - [19]
MWU6FF4K - [20]
WRIU3S5E* UI for cloning builds (not functional yet). - [21]
67NFGL7Dadd links in admin page to clear queue (all non-running builds, and all non-running old (non-current) builds) - [22]
FPK5LF53* Put the project-related actions in a separate controller. Put the - [23]
E3X3C5LKReplace ugly link with nice small buttons - [24]
LQ5QEDVV - [25]
UWVMQIAC* Refactoring. - [26]
U4TD3AIQAdd support for viewing jobset evaluations - [27]
GEL2WHSUMove channel link to top menu of Project and Jobset. - [28]
TP3PFR5K - [29]
LZO3C2KI* Hack around those SQLite timeouts: just retry the transaction. - [30]
SU566LI3* Sort releases. - [31]
6FRLEP4Pfirst try for timeline of last 24 hours in hydra - [32]
DL5J5FCOFix evaluate link. - [33]
3E6IP3R3* Add the name of the jobset to ReleaseSetJobs, otherwise we can't - [34]
TVGN5QT5add link to status page on queue page - [35]
YTSIRIMK* Separate job status and all builds pages. - [36]
MHX5I2GCremove delete jobset button until we actually have implemented the action properly - [37]
Z6MDQIGO* A quick (non-Web 2.0) interface to manually add builds to a release. - [38]
Q4VDOA76Replace last 5 builds on jobset page with last 5 evaluations. Moved hide/unhide and evaluate options to jobset topmenu. - [39]
TSJHDJVIFix hide/unhide links. - [40]
6JGCGK5X - [41]
BHZXGT2H* Channels: provide an index page that lists all the packages in the - [42]
ZI535LI6* hydra: 'new' UI for project/jobset/job/build - [43]
D5ZR3ZY6hydra: missing property - [44]
RBNQKATL* Adding persistant releases. A release is a named set of builds. - [45]
GRVVUPQH* hydra: wider timeline - [46]
ZWCTAZGLadded newsitems, added some admin options to clear various caches. - [47]
EFWN7JBV* Added a status page that shows all the currently executing build steps. - [48]
WT7BGOXOMove 'clone build' to top menu - [49]
D5QIOJGP* Move everything up one directory. - [50]
5IK6NYKF - [51]
CLJQCY2X* Store info about all the build actions and allow them to be - [52]
PP4LPADGhydra: buildmachine disabled by default, add some default constraints - [53]
RGRBQI2Fshow all related jobset/job links in navbar for the tail/-reload logs - [54]
TMP2FRIW - [55]
QL55ECJ6- adapted ui for hydra, more in line with nixos.org website - [56]
FGQPXZIXhydra: make nr of build to keep configurable per jobset - [57]
SZYDW2DGhydra: added some user admin - [58]
DE2DNCOIAllow comparing an evaluation with an arbitrary other evaluation - [59]
75XUS62Y* Added a page to quickly see all failed builds and failed evaluations - [60]
KWXA2SFUReinstate the edit/clone links on the jobset page. - [61]
2AUODJBT - [62]
ODNCGFQ5* Improved the navigation bar: don't include all projects (since that - [63]
NDL67SQT* XHTML validity. - [64]
J5UVLXOK* Start of a basic Catalyst web interface. - [65]
JFZNAYJX* Showing releases. - [66]
G5YSUSNZIn build tables, hide the project, jobset and/or job name if they're constant - [67]
YNKTJGRS* hydra: correct header in jobstatus page of jobset - [68]
IGNQFFV7* Put the release sets in the navbar. - [69]
TQKGQ5R3 - [70]
QT4FO2HPrefactored admin controller, using chains, to avoid using requireadmin on each endpoint - [71]
QU5I5GCL - [72]
GNIEG2GC* Disambiguate jobs by jobset name. I.e. jobs with the same name in - [73]
L7NUCXKSShow new and removed jobs - [74]
SMCOU72Fhydra: add some admin for adding/enabling/etc build machines - [75]
W6DC6K4I* Happy Javascript hacking. - [76]
H5REHM3M - [77]
GPHLV42M* Allow the description of a release member to be edited, and to - [78]
RSEGBU6CHydra/20: Jobset clone feature - [79]
QTFVCDIFadded hide feature for project/jobset - [80]
KXGOUX7P* Creating releases. - [81]
E6IC7YIK* Release sets: need to include the jobset name to disambiguate - [82]
RJICSUYG* Align the apply/delete buttons. - [83]
2JQ7WEFM - [84]
G6HJY2V4 - [85]
ZNFDFJHG* Provide a redirect to the latest successful release in a release set - [86]
6F4UNDTC* Provide access to the raw, non-pretty-printed logfiles. - [87]
OEPUOUNBUsing twitter bootstrap for more consistent looks for Hydra - [88]
OW6XV2YS* Allow a view result to be saved as a release. - [89]
KVPYKWZ7* Allow `-' in project/jobset names. - [90]
BD3GRK4B* Get rid of "positive failures" and separate log phases. - [91]
FHF6IZJQ* Basic release management: releases are now dynamically computed as - [*]
SGNXIOI4Hydra/32: Add option to force evaluation of a certain jobset via web interface (for admins only) - [*]
IK53RV4V - [*]
7YBYT2LQ
Change contents
- edit in src/lib/Hydra/Controller/Admin.pm at line 17
- edit in src/lib/Hydra/Controller/Admin.pm at line 36
- edit in src/lib/Hydra/Controller/Admin.pm at line 47
- edit in src/lib/Hydra/Controller/Admin.pm at line 54
- replacement in src/lib/Hydra/Controller/Admin.pm at line 69
}} - edit in src/lib/Hydra/Controller/Admin.pm at line 95
sub create_user : Chained('admin') PathPart('create-user') Args(0) {my ($self, $c) = @_;requireAdmin($c);error($c, "Not implemented yet!"); # FIXME} - edit in src/lib/Hydra/Controller/Admin.pm at line 116
- edit in src/lib/Hydra/Controller/Admin.pm at line 125
- edit in src/lib/Hydra/Controller/Admin.pm at line 133
- replacement in src/lib/Hydra/Controller/Admin.pm at line 139
updateUser($c, $c->stash->{user}) ;if (($c->request->params->{submit} || "") eq "delete") {$c->stash->{user}->delete;} else {updateUser($c, $c->stash->{user});} - edit in src/lib/Hydra/Controller/Admin.pm at line 145
- edit in src/lib/Hydra/Controller/Admin.pm at line 148
- edit in src/lib/Hydra/Controller/Admin.pm at line 167
- edit in src/lib/Hydra/Controller/Admin.pm at line 195
- replacement in src/lib/Hydra/Controller/Admin.pm at line 205
}} - edit in src/lib/Hydra/Controller/Admin.pm at line 219
- edit in src/lib/Hydra/Controller/Admin.pm at line 227
- replacement in src/lib/Hydra/Controller/Admin.pm at line 233
updateMachine($c, $c->stash->{machine}) ;if (($c->request->params->{submit} || "") eq "delete") {$c->stash->{machine}->delete;} else {updateMachine($c, $c->stash->{machine});} - edit in src/lib/Hydra/Controller/Admin.pm at line 239
- edit in src/lib/Hydra/Controller/Admin.pm at line 241
- edit in src/lib/Hydra/Controller/Admin.pm at line 245
- replacement in src/lib/Hydra/Controller/Admin.pm at line 247
my ($c, $machine) = @_;my ($c, $machine) = @_; - edit in src/lib/Hydra/Controller/Admin.pm at line 278
- edit in src/lib/Hydra/Controller/Admin.pm at line 309
sub machine_delete : Chained('machine') PathPart('delete') Args(0) {my ($self, $c) = @_;requirePost($c); - edit in src/lib/Hydra/Controller/Admin.pm at line 310[8.5077]→[8.5077:5157](∅→∅),[8.5157]→[8.363:371](∅→∅),[8.371]→[8.5169:5239](∅→∅),[8.5169]→[8.5169:5239](∅→∅)
txn_do($c->model('DB')->schema, sub {$c->stash->{machine}->delete;});saveNixMachines($c);$c->res->redirect("/admin/machines");} - edit in src/lib/Hydra/Controller/Admin.pm at line 316
- edit in src/lib/Hydra/Controller/Admin.pm at line 324
- edit in src/lib/Hydra/Controller/Admin.pm at line 332
- edit in src/lib/Hydra/Controller/Admin.pm at line 340
- edit in src/lib/Hydra/Controller/Admin.pm at line 349
- edit in src/lib/Hydra/Controller/Admin.pm at line 368
- edit in src/lib/Hydra/Controller/Admin.pm at line 377
- edit in src/lib/Hydra/Controller/Admin.pm at line 395
- edit in src/lib/Hydra/Controller/Admin.pm at line 408
- edit in src/lib/Hydra/Controller/Admin.pm at line 426
- edit in src/lib/Hydra/Controller/Project.pm at line 48
if (($c->request->params->{submit} || "") eq "delete") {$c->stash->{project}->delete;$c->res->redirect($c->uri_for("/"));} - edit in src/lib/Hydra/Controller/Project.pm at line 72
- edit in src/lib/Hydra/Controller/Project.pm at line 81[8.1415]→[8.1415:1472](∅→∅),[8.1472]→[8.2554:2631](∅→∅),[8.2554]→[8.2554:2631](∅→∅),[8.2631]→[8.884:935](∅→∅),[8.935]→[8.4747:4768](∅→∅),[8.4768]→[8.2761:2766](∅→∅),[8.2761]→[8.2761:2766](∅→∅),[8.2766]→[8.258:300](∅→∅),[8.300]→[8.936:974](∅→∅),[8.2808]→[8.936:974](∅→∅)
});$c->res->redirect($c->uri_for("/"));}sub delete : Chained('project') PathPart Args(0) {my ($self, $c) = @_;requireProjectOwner($c, $c->stash->{project});requirePost($c);txn_do($c->model('DB')->schema, sub {$c->stash->{project}->delete; - edit in src/lib/Hydra/Controller/Project.pm at line 167
my $projectName = trim $c->request->params->{name};error($c, "Invalid project name: ‘$projectName’") if $projectName !~ /^$projectNameRE$/; - edit in src/lib/Hydra/Controller/Project.pm at line 168
my $displayName = trim $c->request->params->{displayname};error($c, "Invalid display name: $displayName") if $displayName eq ""; - edit in src/lib/Hydra/Controller/Project.pm at line 175
my $projectName = trim $c->request->params->{name};error($c, "Invalid project name: ‘$projectName’") if $projectName !~ /^$projectNameRE$/;my $displayName = trim $c->request->params->{displayname};error($c, "Invalid display name: $displayName") if $displayName eq ""; - edit in src/lib/Hydra/Controller/Release.pm at line 55
$c->stash->{members} = [$c->stash->{release}->releasemembers->search({},{order_by => ["description"]})]; - edit in src/lib/Hydra/Controller/View.pm at line 119
if (($c->request->params->{submit} || "") eq "delete") {$c->stash->{view}->delete;$c->res->redirect($c->uri_for($c->controller('Project')->action_for('view'),[$c->stash->{project}->name]));} - edit in src/lib/Hydra/Controller/View.pm at line 128[8.1769]→[8.4195:4203](∅→∅),[8.4195]→[8.4195:4203](∅→∅),[8.4203]→[8.1770:1989](∅→∅),[8.1989]→[8.1253:1374](∅→∅)
}sub delete : Chained('view') PathPart('delete') Args(0) {my ($self, $c) = @_;requireProjectOwner($c, $c->stash->{project});txn_do($c->model('DB')->schema, sub {$c->stash->{view}->delete;});$c->res->redirect($c->uri_for($c->controller('Project')->action_for('view'),[$c->stash->{project}->name])); - replacement in src/root/admin.tt at line 4
<h2>Machine status</h2><div class="page-header"><h1>Machine status</h1></div> - replacement in src/root/all.tt at line 1
[% WRAPPER layout.tt title="All Builds" %][% WRAPPER layout.tt title="All builds" %] - replacement in src/root/all.tt at line 4
<h1>All Builds<div class="page-header"><h1>All builds - replacement in src/root/all.tt at line 7
[% ELSIF project %] for Project <tt>[% project.name %]</tt>[% END %]</h1>[% ELSIF project %] for Project <tt>[% project.name %]</tt>[% END %]</h1></div> - replacement in src/root/build.tt at line 143
<form action="[% c.uri_for('/build' build.id 'add-to-release') %]" method="post"><p>Add to release: <input type="text" class="string" name="name" /><button type="submit"><img src="/static/images/success.gif" />Apply</button></p><form class="form-horizontal" action="[% c.uri_for('/build' build.id 'add-to-release') %]" method="post"><div class="control-group"><label class="control-label">Add to release</label><div class="controls"><input type="text" class="input" name="name"></input><button type="submit" class="btn btn-success">Apply</button></div></div> - replacement in src/root/channel-contents.tt at line 5
<h1>Channel <tt>[% channelName %]</tt></h1><div class="page-header"><h1>Channel <tt>[% channelName %]</tt></h1></div> - replacement in src/root/clone-build.tt at line 6
<h1>Clone Build</h1><div class="page-header"><h1>Clone Build</h1></div> - replacement in src/root/common.tt at line 192
[% IF uri %]<a [% HTML.attributes(href => uri) %][% IF confirmmsg %]onclick="javascript:return confirm('[% confirmmsg %]')"[% END %]>[% content %]</a>[% ELSE; content; END -%][% IF uri %]<a [% HTML.attributes(href => uri, class => class) %][% IF confirmmsg %]onclick="javascript:return confirm('[% confirmmsg %]')"[% END %]>[% content %]</a>[% ELSE; content; END -%] - replacement in src/root/common.tt at line 201
<select [% HTML.attributes(id => param, name => param) %]>[% FOREACH name IN options.keys.sort %]<option [% HTML.attributes(value => name) %] [% IF name == curValue; "selected='selected'"; END %]>[% options.$name %]</option>[% END %]</select>[% IF radiobuttons %]<div class="controls">[% FOREACH name IN options.keys.sort %]<label class="radio inline"><input type="radio" [% HTML.attributes(id => param, name => param, value => name) %][% IF name == curValue; "checked='1'"; END %]>[% options.$name %]</input></label>[% END %]</div>[% ELSE %]<select [% HTML.attributes(id => param, name => param) %]>[% FOREACH name IN options.keys.sort %]<option [% HTML.attributes(value => name) %] [% IF name == curValue; "selected='selected'"; END %]>[% options.$name %]</option>[% END %]</select>[% END %] - replacement in src/root/edit-release.tt at line 1
[% WRAPPER layout.tt title=(create ? "New Release" : "Edit Release") %][% WRAPPER layout.tt title=(create ? "New release" : "Edit release") %] - replacement in src/root/edit-release.tt at line 5
<h1>[% IF create %]New Release[% ELSE %]Release <tt>[% release.name %]</tt>[% END %]</h1><div class="page-header"><h1>[% IF create %]New release[% ELSE %]Release <tt>[% release.name %]</tt>[% END %]</h1></div> - replacement in src/root/edit-release.tt at line 7
<form 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"> - replacement in src/root/edit-release.tt at line 9
<table class="layoutTable"><tr><th>Identifier:</th><td><input type="text" class="string" name="name" [% HTML.attributes(value => release.name) %] /></td></tr><tr><th>Description:</th><td><input type="text" class="string" name="description" [% HTML.attributes(value => release.description) %] /></td></tr></table><h3>Release Members</h3><fieldset><div class="control-group"><label class="control-label">Identifier</label><div class="controls"><input type="text" class="span3" name="name" [% HTML.attributes(value => release.name) %]></input></div></div><div class="control-group"><label class="control-label">Description</label><div class="controls"><input type="text" class="span3" name="description" [% HTML.attributes(value => release.description) %]></input></div></div><h3>Release members</h3> - edit in src/root/edit-release.tt at line 29
[% FOREACH m IN release.releasemembers %]<div class="releaseMember"> - replacement in src/root/edit-release.tt at line 30[8.641]→[8.641:821](∅→∅),[8.588]→[8.1239:1240](∅→∅),[8.821]→[8.1239:1240](∅→∅),[8.1239]→[8.1239:1240](∅→∅),[8.1240]→[8.822:1068](∅→∅)
<h4>Build [% m.build.id %] <button type="button" onclick='$(this).parents(".releaseMember").remove()'><img src="/static/images/failure.gif" alt="Delete input" /></button></h4><table class="layoutTable"><tr><th>Label:</th><td><input type="text" class="string longString" name="member-[% m.build.id %]-description" [% HTML.attributes(value => m.description) %] /></td></tr></table>[% FOREACH m IN members %] - edit in src/root/edit-release.tt at line 32
<div class="releaseMember control-group"><label class="control-label">Build [% m.build.id %] Label</label><div class="controls"><input type="text" class="span3" name="member-[% m.build.id %]-description" [% HTML.attributes(value => m.description) %]></input><button class="btn btn-warning" type="button" onclick='$(this).parents(".releaseMember").remove()'><i class="icon-trash icon-white"></i></button></div> - replacement in src/root/edit-release.tt at line 39
- edit in src/root/edit-release.tt at line 41[8.660]→[8.1786:1787](∅→∅),[8.1093]→[8.1786:1787](∅→∅),[8.1786]→[8.1786:1787](∅→∅),[8.1787]→[8.1094:1103](∅→∅)
<hr /> - replacement in src/root/edit-release.tt at line 42
<p><button type="submit"><img alt="Apply" src="/static/images/success.gif" />[%IF create %]Create[% ELSE %]Apply changes[% END %]</button><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> - replacement in src/root/edit-release.tt at line 48
<button id="delete-release" type="submit" name="action" value="delete"><img alt="Delete" src="/static/images/failure.gif" />Delete this release</button><script type="text/javascript">$("#delete-release").click(function() {return confirm("Are you sure you want to delete this release?");});</script><button id="delete-release" type="submit" class="btn btn-danger" name="action" value="delete"><i class="icon-trash icon-white"></i>Delete this release</button><script type="text/javascript">$("#delete-release").click(function() {return confirm("Are you sure you want to delete this release?");});</script> - replacement in src/root/edit-release.tt at line 58
</p></div></fieldset> - replacement in src/root/edit-view.tt at line 1
[% WRAPPER layout.tt title=(create ? "New View" : "View ‘$project.name:$view.name’") %][% WRAPPER layout.tt title=(create ? "New view" : "View ‘$project.name:$view.name’") %] - replacement in src/root/edit-view.tt at line 5
<h1>[% IF create %]New View[% ELSE %]View <tt>[% project.name %]:[% view.name %]</tt>[% END %]</h1><div class="page-header"><h1>[% IF create %]New view[% ELSE %]View <tt>[% project.name %]:[% view.name %]</tt>[% END %]</h1></div> - replacement in src/root/edit-view.tt at line 11
<button type="button" onclick='$(this).parents("tr").remove()'><img src="/static/images/failure.gif" alt="Delete job" /><button type="button" class="btn btn-warning" onclick='$(this).parents("tr").remove()'><i class="icon-trash icon-white"></i> - edit in src/root/edit-view.tt at line 22
- edit in src/root/edit-view.tt at line 23
<form action="[% IF create %][% c.uri_for('/project' project.name 'create-view/submit') %][% ELSE %][% c.uri_for('/view' project.name view.name 'submit') %][% END %]" method="post"> - replacement in src/root/edit-view.tt at line 24[8.2209]→[8.2209:2275](∅→∅),[8.2275]→[8.10180:10286](∅→∅),[8.10286]→[8.2387:2434](∅→∅),[8.2387]→[8.2387:2434](∅→∅),[8.2434]→[8.10287:10407](∅→∅),[8.10407]→[8.2560:2570](∅→∅),[8.2560]→[8.2560:2570](∅→∅),[8.2570]→[8.848:859](∅→∅)
<table class="layoutTable"><tr><th>Identifier:</th><td><input type="text" class="string" name="name" [% HTML.attributes(value => view.name) %] /></td></tr><tr><th>Description:</th><td><input type="text" class="string" name="description" [% HTML.attributes(value => view.description) %] /></td></tr></table><form class="form-horizontal" action="[% IF create %][% c.uri_for('/project' project.name 'create-view/submit') %][% ELSE %][% c.uri_for('/view' project.name view.name 'submit') %][% END %]" method="post"> - edit in src/root/edit-view.tt at line 26
<fieldset><div class="control-group"><label class="control-label">Identifier</label><div class="controls"><input type="text" class="span3" name="name" [% HTML.attributes(value => view.name) %]></input></div></div><div class="control-group"><label class="control-label">Description</label><div class="controls"><input type="text" class="span3" name="description" [% HTML.attributes(value => view.description) %]></input></div></div> - replacement in src/root/edit-view.tt at line 59
<td colspan="5"><button type="button" class="add-job">Add a new job</button></td><td colspan="5" style="text-align: center;"><button type="button" class="add-job btn btn-success"><i class="icon-plus icon-white"></i> Add a job</button></td> - replacement in src/root/edit-view.tt at line 64
<p><button type="submit"><img src="/static/images/success.gif" />[%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>[% IF !create %]<button id="delete-view" type="submit" class="btn btn-danger" name="submit" value="delete"><i class="icon-trash icon-white"></i>Delete this view</button><script type="text/javascript">$("#delete-view").click(function() {return confirm("Are you sure you want to delete this view?");});</script>[% END %]</div> - edit in src/root/edit-view.tt at line 106[8.1890]→[8.2726:2728](∅→∅),[8.2726]→[8.2726:2728](∅→∅),[8.2728]→[8.1944:1962](∅→∅),[8.1962]→[8.10408:10616](∅→∅),[8.10616]→[8.2190:2200](∅→∅),[8.2190]→[8.2190:2200](∅→∅)
[% IF !create %]<form action="[% c.uri_for('/view' project.name view.name 'delete') %]" method="post"><p><button id="delete-project" type="submit"><img src="/static/images/failure.gif" />Delete this view</button></p></form> - edit in src/root/edit-view.tt at line 107[8.2201]→[8.1369:1403](∅→∅),[8.1403]→[8.2212:2256](∅→∅),[8.2212]→[8.2212:2256](∅→∅),[8.2256]→[8.10617:10685](∅→∅),[8.10685]→[8.2331:2352](∅→∅),[8.2331]→[8.2331:2352](∅→∅),[8.2352]→[8.2728:2738](∅→∅),[8.2728]→[8.2728:2738](∅→∅),[8.2738]→[8.2353:2354](∅→∅)
<script type="text/javascript">$("#delete-project").click(function() {return confirm("Are you sure you want to delete this view?");});</script>[% END %] - replacement in src/root/error.tt at line 4
<h1>[% IF httpStatus %][% httpStatus %][% ELSE %]Error[% END %]</h1><div class="page-header"><h1>[% IF httpStatus %][% httpStatus %][% ELSE %]Error[% END %]</h1></div> - replacement in src/root/errors.tt at line 4
<h1>Errors</h1><div class="page-header"><h1>Errors</h1></div> - replacement in src/root/jobset-eval.tt at line 4
<h2>Jobset <tt>[% project.name %]:[% jobset.name %]</tt> evaluation [% eval.id %]</h2><div class="page-header"><h1>Jobset <tt>[% project.name %]:[% jobset.name %]</tt> evaluation [% eval.id %]</h1></div> - replacement in src/root/jobset-evals.tt at line 4
<h2>Evaluations of Jobset <tt>[% INCLUDE renderLink<div class="page-header"><h1>Evaluations of Jobset <tt>[% INCLUDE renderLink - replacement in src/root/jobset-evals.tt at line 6
title = project.name %]:[% jobset.name %]</tt></h2>title = project.name %]:[% jobset.name %]</tt></h1></div> - replacement in src/root/jobset.tt at line 5
<form action="[% IF create %][% c.uri_for('/project' project.name 'create-jobset/submit') %][% ELSE %][% c.uri_for('/jobset' project.name jobset.name 'submit') %][% END %]" method="post"><form class="form-horizontal" action="[% IF create %][% c.uri_for('/project' project.name 'create-jobset/submit') %][% ELSE %][% c.uri_for('/jobset' project.name jobset.name 'submit') %][% END %]" method="post"> - replacement in src/root/jobset.tt at line 16
<button type="button" onclick='$(this).parents(".inputalt").remove()'><img src="/static/images/failure.gif" alt="Delete value" /></button><button type="button" class="btn btn-warning" onclick='$(this).parents(".inputalt").remove()'><i class="icon-trash icon-white"></i></button> - replacement in src/root/jobset.tt at line 29
[% IF edit %]<button type="button" onclick='$(this).parents(".input").remove()'><img src="/static/images/failure.gif" alt="Delete input" /></button>[% END -%][% IF edit %]<button type="button" class="btn btn-warning" onclick='$(this).parents(".input").remove()'><i class="icon-trash icon-white"></i></button>[% END -%] - replacement in src/root/jobset.tt at line 45
[% IF edit %]<button type="button" onclick='return false' class="add-inputalt">+</button>[% END %][% IF edit %]<button type="button" class="add-inputalt btn btn-success" onclick='return false'><i class="icon-plus icon-white"></i></button>[% END %] - replacement in src/root/jobset.tt at line 65
<td colspan="3"><button type="button" class="add-input">Add a new input</button></td><td colspan="3" style="text-align: center;"><button type="button" class="add-input btn btn-success"><i class="icon-plus icon-white"></i> Add a new input</button></td> - edit in src/root/jobset.tt at line 82
- replacement in src/root/jobset.tt at line 155
[% INCLUDE renderSelection param="enabled" curValue=jobset.enabled options={"1" = "Yes", "0" = "No"} %][% INCLUDE renderSelection param="enabled" curValue=jobset.enabled radiobuttons=1 options={"1" = "Yes", "0" = "No"} %] - replacement in src/root/jobset.tt at line 161
[% INCLUDE renderSelection param="enableemail" curValue=jobset.enableemail options={"1" = "Yes", "0" = "No"} %][% INCLUDE renderSelection param="enableemail" curValue=jobset.enableemail radiobuttons=1 options={"1" = "Yes", "0" = "No"} %] - replacement in src/root/jobset.tt at line 258
<p><button type="submit"><img src="/static/images/success.gif" />[%IF create %]Create[% ELSE %]Apply changes[% END %]</button></p><p><button type="submit" class="btn btn-primary"><i class="icon-ok icon-white"></i> [%IF create %]Create[% ELSE %]Apply changes[% END %]</button></p> - replacement in src/root/jobstatus.tt at line 1
[% WRAPPER layout.tt title="Job Status" %][% WRAPPER layout.tt title="Job status" %] - replacement in src/root/jobstatus.tt at line 4
<h1>Job Status[% IF project %] of <tt>[% project.name %][% IF jobset %]:[% jobset.name%][% END %][% IF job %]:[% job.name%][% END %]</tt>[% END %]</h1><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> - replacement in src/root/layout.tt at line 111
</div><footer class="navbar"><hr /><small><em><a href="http://nixos.org/hydra" target="_new">Hydra</a> [% HTML.escape(version) %] (using [% HTML.escape(nixVersion) %]).</em>Page generated on [% INCLUDE renderDateTime %].[% IF c.user_exists %]You are logged in as <tt>[% c.user.username %]</tt>.[% END %]</small></footer> - edit in src/root/layout.tt at line 122[8.2275]→[8.7387:7484](∅→∅),[8.7484]→[8.2300:2333](∅→∅),[8.2300]→[8.2300:2333](∅→∅),[8.2333]→[8.9616:9756](∅→∅),[8.9756]→[8.2422:2603](∅→∅),[8.2422]→[8.2422:2603](∅→∅),[8.2603]→[8.11641:11642](∅→∅),[8.4904]→[8.11641:11642](∅→∅),[8.11641]→[8.11641:11642](∅→∅)
<div class="navbar navbar-fixed-bottom"><div id="footer" style="text-align: center;"><div id="last-modified"><em><a href="http://nixos.org/hydra" target="_new">Hydra</a> [% HTML.escape(version) %] (using [% HTML.escape(nixVersion) %]).</em>Page generated on [% INCLUDE renderDateTime %].[% IF c.user_exists %]You are logged in as <tt>[% c.user.username %]</tt>.[% END %]</div> - replacement in src/root/log.tt at line 4
<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 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> - edit in src/root/login.tt at line 3
<div class="page-header"><h1>Login</h1></div> - replacement in src/root/login.tt at line 6
<h1>Login</h1>[% IF errorMsg %]<p class="btn-warning btn-large">Error: [% errorMsg %]</p>[% END %] - replacement in src/root/login.tt at line 11
<p><p class="btn-info btn-large"> - edit in src/root/login.tt at line 16
<form class="form-horizontal" method="post" action="[% c.uri_for('/login') %]"> - replacement in src/root/login.tt at line 19
[% IF errorMsg %]<p class="error">Error: [% errorMsg %]</p>[% END %]<fieldset><div class="control-group"><label class="control-label">User name</label><div class="controls"><input type="text" class="span3" name="username" value=""></input></div></div> - replacement in src/root/login.tt at line 27
<form method="post" action="[% c.uri_for('/login') %]"><div class="control-group"><label class="control-label">Password</label><div class="controls"><input type="password" class="span3" name="password" value=""></input></div></div> - replacement in src/root/login.tt at line 34
<table class="layoutTable"><tr><td>Username:</td><td><input type="text" name="username" /></td></tr><tr><td>Password:</td><td><input type="password" name="password" /></td></tr><tr colspan="2"><td><input type="submit" name="login" value="Login" /></td></tr></table><div class="form-actions"><input type="submit" name="login" value="Login" class="btn btn-primary" /></div> - replacement in src/root/machine.tt at line 4
<form action="[% IF create %][% c.uri_for('/admin/create-machine/submit') %][% ELSE %][% c.uri_for('/admin/machine' machine.hostname 'submit') %][% END %]" method="post"><h2>Machine[% IF ! create %] '[% machine.hostname %]'[% END %]</h2><div class="page-header"><h1>[% IF create %]New machine[% ELSE %]Machine <tt>[% machine.hostname %]</tt>[% END %]</h1></div><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 %]"> - replacement in src/root/machine.tt at line 9
<table class="layoutTable"><fieldset> - replacement in src/root/machine.tt at line 11
<tr><th>Hostname:</th><td>[% INCLUDE maybeEditString param="hostname" value=machine.hostname %]</td></tr><div class="control-group"><label class="control-label">Host name</label><div class="controls"><input type="text" class="span3" name="hostname" value="[% machine.hostname %]"></input></div></div> - replacement in src/root/machine.tt at line 18
<tr><th>Username:</th><td>[% INCLUDE maybeEditString param="username" value=machine.username %]</td></tr><tr><th>SSH key location:</th><td>[% INCLUDE maybeEditString param="ssh_key" value=machine.ssh_key %]</td></tr><tr><th>Options:</th><td>[% INCLUDE maybeEditString param="options" value=machine.options %]</td></tr><tr><th>Max concurrent builds:</th><td><tt>[% INCLUDE maybeEditString param="maxconcurrent" value=machine.maxconcurrent %]</tt></td></tr><tr><th>Speed factor:</th><td>[% INCLUDE maybeEditString param="speedfactor" value=machine.speedfactor %]</td></tr><tr><th>Systems:</th><td><select multiple name="systems" style="width: 27em;">[% FOREACH s IN systemtypes %]<option value="[% s.system %]"[% checked = false %][% FOREACH ms IN machine.buildmachinesystemtypes %][% checked = ms.system == s.system %][% BREAK IF checked %][% END %][% IF checked %]SELECTED[% END %]>[% s.system %]</option>[% END %]</select></td></tr></table><div class="control-group"><label class="control-label">User name</label><div class="controls"><input type="text" class="span3" name="username" value="[% machine.username %]"></input></div></div><div class="control-group"><label class="control-label">SSH key location</label><div class="controls"><input type="text" class="span3" name="ssh_key" value="[% machine.ssh_key %]"></input></div></div><div class="control-group"><label class="control-label">Options</label><div class="controls"><input type="text" class="span3" name="options" value="[% machine.options %]"></input></div></div><div class="control-group"><label class="control-label">Max concurrent builds</label><div class="controls"><input type="text" class="span3" name="maxconcurrent" value="[% machine.maxconcurrent %]"></input></div></div><div class="control-group"><label class="control-label">Speed factor</label><div class="controls"><input type="text" class="span3" name="speedfactor" value="[% machine.speedfactor %]"></input></div></div><div class="control-group"><label class="control-label">Systems</label><div class="controls"><select class="span3" multiple="1" name="systems">[% FOREACH s IN systemtypes;checked = false;FOREACH ms IN machine.buildmachinesystemtypes;checked = ms.system == s.system;BREAK IF checked;END %]<option value="[% s.system %]" [% IF checked %]selected="1"[% END %]>[% s.system %]</option>[% END %]</select></div></div> - replacement in src/root/machine.tt at line 70
<p><button type="submit"><img src="/static/images/success.gif" />[%IF create %]Create[% ELSE %]Apply changes[% END %]</button></p></form>[% IF !create %]<form action="[% c.uri_for('/admin/machine' machine.hostname 'delete') %]" method="post"><p><button id="delete-machine" type="submit"><img src="/static/images/failure.gif" />Remove this machine</button></p></form><script type="text/javascript">$("#delete-machine").click(function() {return confirm("Are you sure you want to delete this machine?");});</script>[% END %]<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>[% IF !create %]<button id="delete-machine" type="submit" class="btn btn-danger" name="submit" value="delete"><i class="icon-trash icon-white"></i>Delete this machine</button><script type="text/javascript">$("#delete-machine").click(function() {return confirm("Are you sure you want to delete this machine?");});</script>[% END %]</div></fieldset> - replacement in src/root/machines.tt at line 4
<h1>Build machines</h1><div class="page-header"><h1>Build machines</h1></div> - replacement in src/root/machines.tt at line 12
<th>Speedfactor</th><th>Speed factor</th> - replacement in src/root/machines.tt at line 20
<td>[% INCLUDE maybeLink uri = c.uri_for(c.controller('Admin').action_for('machine_edit'), [m.hostname]) content = m.hostname %]</td><td><a href="[% c.uri_for(c.controller('Admin').action_for('machine_edit'), [m.hostname]) %]">[% m.hostname %]</a></td> - edit in src/root/machines.tt at line 38
<p>[ <a href="[% c.uri_for(c.controller('Admin').action_for('create_machine')) %]">Add a new machine</a> ]</p> - edit in src/root/machines.tt at line 39
<p><a class="btn" href="[% c.uri_for(c.controller('Admin').action_for('create_machine')) %]"><i class="icon-plus"></i> Add a new machine</a></p> - replacement in src/root/news.tt at line 5
<h1>News items</h1><div class="page-header"><h1>News items</h1></div> - replacement in src/root/news.tt at line 18
<td>[ [% INCLUDE maybeLink uri = c.uri_for(c.controller('Admin').action_for('news_delete') i.id) content = "Delete" confirmmsg = "Are you sure you want to delete this news item?" %] ]</td><td>[% INCLUDE maybeLink uri = c.uri_for(c.controller('Admin').action_for('news_delete') i.id) content = "Delete" confirmmsg = "Are you sure you want to delete this news item?" class = "btn btn-mini btn-danger" %]</td> - edit in src/root/news.tt at line 24
<form action="[% c.uri_for('/admin/news/submit') %]" method="post"><h2>Add news item</h2><p><textarea class="longString" name="contents"></textarea></p><p><button type="submit">Post</button></p> - edit in src/root/news.tt at line 25
<form class="form-horizontal" action="[% c.uri_for('/admin/news/submit') %]" method="post"><fieldset><legend>Add news item</legend><div class="control-group"><label class="control-label">News text (HTML)</label><div class="controls"><textarea class="span9" name="contents"></textarea></div></div></fieldset><div class="form-actions"><button type="submit" class="btn btn-primary"><i class="icon-ok icon-white"></i>Post</button></div> - edit in src/root/news.tt at line 42
- edit in src/root/news.tt at line 43
- replacement in src/root/plain.tt at line 8
<h1>[% title %]</h1><div class="page-header"><h1>[% title %]</h1></div> - replacement in src/root/project.tt at line 136
[% INCLUDE renderSelection param="enabled" curValue=project.enabled options={"1" = "Yes", "0" = "No"} %][% INCLUDE renderSelection param="enabled" curValue=project.enabled radiobuttons=1 options={"1" = "Yes", "0" = "No"} %] - edit in src/root/project.tt at line 142
<p><button type="submit"><img src="/static/images/success.gif" />[%IF create %]Create[% ELSE %]Apply changes[% END %]</button></p> - replacement in src/root/project.tt at line 143
</form>[% IF !create %]<form action="[% c.uri_for('/project' project.name 'delete') %]" method="post"><p><button id="delete-project" type="submit"><img src="/static/images/failure.gif" />Delete this project</button></p></form><script type="text/javascript">$("#delete-project").click(function() {return confirm("Are you sure you want to delete this project?");});</script><p><button type="submit" class="btn btn-primary"><i class="icon-ok icon-white"></i>[%IF create %]Create[% ELSE %]Apply changes[% END %]</button>[% IF !create %]<button id="delete-project" type="submit" class="btn btn-danger" name="submit" value="delete"><i class="icon-trash icon-white"></i>Delete this project</button><script type="text/javascript">$("#delete-project").click(function() {return confirm("Are you sure you want to delete this project?");});</script>[% END %]</p> - edit in src/root/project.tt at line 161
[% END %] - edit in src/root/project.tt at line 162
</form> - replacement in src/root/project.tt at line 180
[<a href="[% c.uri_for('/view' project.name view.name "edit") %]">Edit</a>]<a class="btn btn-mini" href="[% c.uri_for('/view' project.name view.name "edit") %]">Edit</a> - replacement in src/root/project.tt at line 191
<p><a href="[% c.uri_for('/project' project.name 'create-view') %]">[Create a new view]</a></p><p><a class="btn" href="[% c.uri_for('/project' project.name 'create-view') %]"><i class="icon-plus"></i> Create a new view</a></p> - replacement in src/root/queue.tt at line 4
<h1>Hydra Queue</h1><div class="page-header"><h1>Hydra queue</h1></div> - replacement in src/root/queue.tt at line 6
<p>[ <a href="[% c.uri_for('/status') %]">Running build steps</a> ]</p><p><a class="btn" href="[% c.uri_for('/status') %]">Running build steps</a></p> - replacement in src/root/release.tt at line 6
<h1>Release <tt>[% release.name %]</tt> <aclass="smallLink" href="[% c.uri_for('/release' project.name release.name "edit") %]">[Edit]</a></h1><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> - replacement in src/root/release.tt at line 20
<h2><h3> - replacement in src/root/release.tt at line 24
</h2></h3> - replacement in src/root/releases.tt at line 5
<h1>Releases for Project <tt>[% project.name %]</tt></h1><div class="page-header"><h1>Releases for Project <tt>[% project.name %]</tt></h1></div> - replacement in src/root/releases.tt at line 36
<p>[<a href="[% c.uri_for('/project' project.name 'create-release') %]">Create a release</a>]</p><p><a class="btn" href="[% c.uri_for('/project' project.name 'create-release') %]"><i class="icon-plus"></i> Create a release</a></p> - replacement in src/root/status.tt at line 4
<h1>Hydra Status</h1><div class="page-header"><h1>Hydra status</h1></div> - replacement in src/root/timeline.tt at line 7
<h1>Hydra timeline of last 24 hours</h1><div class="page-header"><h1>Hydra timeline of last 24 hours</h1></div> - replacement in src/root/topbar.tt at line 90
[% INCLUDE maybeLink uri = c.uri_for(c.controller('Admin').action_for('force_eval'), project.name, jobset.name) content = "Evaluate" confirmmsg = ("Are you sure you want to force evaluation of jobset " _ project.name _ ":" _ jobset.name _ "?") %][% INCLUDE maybeLink uri = c.uri_for(c.controller('Admin').action_for('force_eval'), project.name, jobset.name) content = "Evaluate" confirmmsg = ("Are you sure you want to force evaluation of jobset " _ project.name _ ":" _ jobset.name _ "?") class = "" %] - replacement in src/root/topbar.tt at line 117
<li>[% INCLUDE maybeLink uri = c.uri_for(c.controller('Admin').action_for('users')) content = "Manage users" %]</li><li>[% INCLUDE maybeLink uri = c.uri_for(c.controller('Admin').action_for('news')) content = "Manage news" %]</li><li>[% INCLUDE maybeLink uri = c.uri_for(c.controller('Admin').action_for('users')) content = "Manage users" class = "" %]</li><li>[% INCLUDE maybeLink uri = c.uri_for(c.controller('Admin').action_for('news')) content = "Manage news" class = "" %]</li> - replacement in src/root/topbar.tt at line 177
confirmmsg = "Are you sure you want to clear the failed builds cache?" %]confirmmsg = "Are you sure you want to clear the failed builds cache?"class = "" %] - replacement in src/root/topbar.tt at line 182
confirmmsg = "Are you sure you want to clear the queue?"confirmmsg = "Are you sure you want to clear the queue?"class = "" - replacement in src/root/user.tt at line 17
<form action="[% IF create %][% c.uri_for('/admin/create-user/submit') %][% ELSE %][% c.uri_for('/admin/user' user.username 'submit') %][% END %]" method="post"><div class="page-header"><h1>[% IF create %]New user[% ELSE %]User <tt>[% user.username %]</tt>[% END %]</h1></div> - replacement in src/root/user.tt at line 19
<h2>User[% IF ! create %] '[% user.username %]'[% END %]</h2><table class="layoutTable"><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> - replacement in src/root/user.tt at line 23
<tr><th>Username:</th><td>[% INCLUDE maybeEditString param="username" value=user.username %]</td></tr><div class="control-group"><label class="control-label">User name</label><div class="controls"><input type="text" class="span3" name="username" value=""></input></div></div> - replacement in src/root/user.tt at line 30
<tr><th>Full name:</th><td>[% INCLUDE maybeEditString param="fullname" value=user.fullname %]</td></tr><tr><th>Email:</th><td>[% INCLUDE maybeEditString param="emailaddress" value=user.emailaddress %]</td></tr><tr><th>Evaluation error notifications:</th><td>[% INCLUDE renderSelection param="emailonerror" curValue=user.emailonerror options={"1" = "Yes", "0" = "No"} %]</td></tr><tr><th>Roles:</th><td><select multiple name="roles" style="width: 27em;">[% INCLUDE roleoption role="admin" %][% INCLUDE roleoption role="create-project" %]</select></td></tr></table><div class="control-group"><label class="control-label">Full name</label><div class="controls"><input type="text" class="span3" name="fullname" [% HTML.attributes(value => user.fullname) %]></input></div></div><div class="control-group"><label class="control-label">Email</label><div class="controls"><input type="text" class="span3" name="emailaddress" [% HTML.attributes(value => user.emailaddress) %]></input></div></div><div class="control-group"><label class="control-label">Evaluation error notifications</label>[% INCLUDE renderSelection param="emailonerror" curValue=user.emailonerror radiobuttons=1 options={"1" = "Yes", "0" = "No"} %]</div><div class="control-group"><label class="control-label">Roles</label><div class="controls"><select multiple name="roles" class="span3">[% INCLUDE roleoption role="admin" %][% INCLUDE roleoption role="create-project" %]</select></div></div> - replacement in src/root/user.tt at line 56
<p><button type="submit"><img src="/static/images/success.gif" />[%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>[% IF !create %]<button id="delete-user" type="submit" class="btn btn-danger" name="submit" value="delete"><i class="icon-trash icon-white"></i>Delete this user</button><script type="text/javascript">$("#delete-user").click(function() {return confirm("Are you sure you want to delete this user?");});</script>[% END %]</div></p> - edit in src/root/user.tt at line 76
[% IF !create %]<form action="[% c.uri_for('/admin/user' user.hostname 'delete') %]" method="post"><p><button id="delete-user" type="submit"><img src="/static/images/failure.gif" />Remove this user</button></p></form><script type="text/javascript">$("#delete-user").click(function() {return confirm("Are you sure you want to delete this user?");});</script>[% END %] - replacement in src/root/users.tt at line 4
<h1>Users</h1><div class="page-header"><h1>Users</h1></div> - replacement in src/root/users.tt at line 20
<td>[% INCLUDE maybeLink uri = c.uri_for(c.controller('Admin').action_for('user_edit'), [u.username]) content = u.username %]</td><td><a href="[% c.uri_for(c.controller('Admin').action_for('user_edit'), [u.username]) %]">[% u.username %]</a></td> - replacement in src/root/users.tt at line 25
<td>[ [% INCLUDE maybeLink uri = c.uri_for(c.controller('Admin').action_for('reset_password'), [u.username]) content = "Reset password" confirmmsg = "Are you sure you want to reset the password for this user?" %] ]</td><td>[% INCLUDE maybeLink uri = c.uri_for(c.controller('Admin').action_for('reset_password'), [u.username]) content = "Reset password" confirmmsg = "Are you sure you want to reset the password for this user?" class = "btn btn-mini" %]</td> - replacement in src/root/users.tt at line 32
<p>[ <a href="[% c.uri_for(c.controller('Admin').action_for('create_user')) %]">Add a new user</a> ]</p><p><a class="btn" href="[% c.uri_for(c.controller('Admin').action_for('create_user')) %]"><i class="icon-plus"></i> Add a new user</a></p> - replacement in src/root/view-result.tt at line 7
<h1>View <tt>[% view.project.name %]:[% view.name %]</tt> result [% result.id %][% IF result.releasename %] (<tt>[% result.releasename %]</tt>)[% END %]</h1><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> - edit in src/root/view-result.tt at line 48
<br /> - replacement in src/root/view-result.tt at line 55
[<a href="[% c.uri_for('/view' project.name view.name result.id 'release') %]">Release</a>]<a class="btn" href="[% c.uri_for('/view' project.name view.name result.id 'release') %]">Release</a> - replacement in src/root/view.tt at line 5
<h1>View <tt>[% view.project.name %]:[% view.name %]</tt></h1><div class="page-header"><h1>View <tt>[% view.project.name %]:[% view.name %]</tt></h1></div> - replacement in src/root/view.tt at line 8
[<a href="[% c.uri_for('/view' project.name view.name "edit") %]">Edit</a>][<a href="[% c.uri_for('/view' project.name view.name "latest") %]">Latest</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> - edit in src/root/view.tt at line 68
[% IF page > 1 %] - edit in src/root/view.tt at line 70
[% END %][% IF page * resultsPerPage < totalResults %] - edit in src/root/view.tt at line 73
[% END %]