Using twitter bootstrap for more consistent looks for Hydra
[?]
Apr 12, 2012, 6:12 PM
OEPUOUNBNTHTFZVDXREGBQCKFRCWMVP2MDVK4OA47VK2DBKEWVYACDependencies
- [2]
VRDK2P3X - [3]
23QNCJF2* Use a table. - [4]
2RGAZCKY* in topbar, use 'Projects' in stead of 'Overview' - [5]
JLICHVE6* hydra: do not show build history if there are no previous builds - [6]
PUIJ66FVadd some stats to jobsets in project view - [7]
6VPKJTKN* hdyra: remove debug thing - [8]
JLVKTWLThydra: newer version of jquery ui - [9]
SMTMFEKEhydra: add missing templates - [10]
BIZEPF2Tignore this - [11]
3JBUMW3Eforgot to commit a file - [12]
LL36GPHAadded help, removed nix closure from 'failed build with output' productlist - [13]
ULNQG7OXRemove the gray container around the main page div - [14]
7G5RWHB7Remove the "all" channel - [15]
IZWCANCVI'm stupid - [16]
63A26BM2Unpack jQuery etc. in the build tree for easier testing - [17]
L7NUCXKSShow new and removed jobs - [18]
XZJFZSCJUser color instead of a big animated GIF to indicate whether a build is running - [19]
L2E6EVE2* Merged the Build and Job tables. - [20]
H7CNGK4O* Log evaluation errors etc. in the DB. - [21]
JFZNAYJX* Showing releases. - [22]
XHK7IGYI* hdyra: show last succeeded build and changes since on build status summary if build has failed - [23]
SZZ3PFYF - [24]
HJLYC753* Adding input value alternatives. - [25]
QB3LWT7N* Ouch. - [26]
LQNBKF3D - [27]
JD27RBKM - [28]
GPHLV42M* Allow the description of a release member to be edited, and to - [29]
T2232OBS* Add some DB indices to make the /releases page much faster. - [30]
7YBYT2LQ - [31]
WHAFVCEI - [32]
RAKTHYAI* In the job status and error pages, show when the status of a job - [33]
WRIU3S5E* UI for cloning builds (not functional yet). - [34]
ZI535LI6* hydra: 'new' UI for project/jobset/job/build - [35]
IGNQFFV7* Put the release sets in the navbar. - [36]
ZDF42B24revert change to dbix::class generated code - [37]
CLJQCY2X* Store info about all the build actions and allow them to be - [38]
QU5I5GCL - [39]
W6DC6K4I* Happy Javascript hacking. - [40]
PPJN6SDP* paging for releases page - [41]
CEARA7OH* hydra: show running buildsteps on build page - [42]
6QRHXIM3* Speed up the jobset index page. Especially the query to get the - [43]
FKK2ZSTL* Split the CSS. - [44]
L7LFU6IQ* Make build steps clickable as well. - [45]
BD3GRK4B* Get rid of "positive failures" and separate log phases. - [46]
G5YSUSNZIn build tables, hide the project, jobset and/or job name if they're constant - [47]
TQKGQ5R3 - [48]
TCXFZZFN* hydra: make chart zoomable and clickable - [49]
D5QIOJGP* Move everything up one directory. - [50]
FGQPXZIXhydra: make nr of build to keep configurable per jobset - [51]
YJUOVXMDRemove the global Job status and Errors links - [52]
LQNG45RThydra: description at changes section - [53]
UVMFS73T* Some jQuery / CSS hackery. - [54]
FV2M6MOThydra: use autoconf/-make - [55]
B72GLND4 - [56]
2B63JW6F* hydra: changes in list in stead of table, also showing changes of changed 'build output' inputs - [57]
PRNGXWJ3* hydra: more minor css tweaks - [58]
WWZWUPFIif no previous successful build, do not show changes section - [59]
HK32XC42 - [60]
US27ZTX5* HydraFrontend -> Hydra. - [61]
SGNXIOI4Hydra/32: Add option to force evaluation of a certain jobset via web interface (for admins only) - [62]
75XUS62Y* Added a page to quickly see all failed builds and failed evaluations - [63]
EFWN7JBV* Added a status page that shows all the currently executing build steps. - [64]
KJOGCBGZhydra: current build -> this build - [65]
SMCOU72Fhydra: add some admin for adding/enabling/etc build machines - [66]
TH674WKJadd log diff to compare logs to previous builds - [67]
DE2DNCOIAllow comparing an evaluation with an arbitrary other evaluation - [68]
PHX2HIVG* Store info about the build inputs in the build record. - [69]
BHZXGT2H* Channels: provide an index page that lists all the packages in the - [70]
2R7GHSA4* hydra: added initial version of build graph - [71]
NUIKDEHL* A quick hack to list the contents of various types of files (RPM, - [72]
I35CIZI7 - [73]
KR7QIG6Z - [74]
ELABMHJI* hydra: layout changes - [75]
TW5ZQX5Z* Move up the build products in the builds page, since they're more - [76]
2GK5DOU7* Downloading closures. - [77]
TJPIS3UPhydra: minor improvements in hydra ui - [78]
AKAXJDMW* Disable the statistics on the project, jobset and job pages for now - [79]
S5PV6IIM* Represent jobs explicitly in the DB. - [80]
FHF6IZJQ* Basic release management: releases are now dynamically computed as - [81]
QL55ECJ6- adapted ui for hydra, more in line with nixos.org website - [82]
HUH62VDLshow current builds on job page - [83]
ZWCTAZGLadded newsitems, added some admin options to clear various caches. - [84]
QTFVCDIFadded hide feature for project/jobset - [85]
FX2DV5APhydra: remove old clear eval cache option - [86]
HRAFVVOEmake logo configurable via HYDRA_LOGO env var - [87]
QZLMDKMU* Queue runner: don't start scheduled builds builds if they belong to - [88]
4S4ZMFJK* Links on trs. - [89]
777XFGVYHydra/22: on job page, 'finished builds' shows nothing for old (non-current) jobs - [90]
JK2QWPH6 - [91]
J5UVLXOK* Start of a basic Catalyst web interface. - [92]
DVNWJXWW* Generic declaration of build products. - [93]
67P45PY4 - [94]
Z6MDQIGO* A quick (non-Web 2.0) interface to manually add builds to a release. - [95]
ZEEZRG2Eclean up build page for build that failed with result - [96]
A52HEFHQ* Allow builds to be restarted (if they failed with a transient error, - [97]
NDL67SQT* XHTML validity. - [98]
ZNFDFJHG* Provide a redirect to the latest successful release in a release set - [99]
MMDLWWZ2automatic reload of tail log when build is running - [100]
7Z3YOKCV* PROCESS -> INCLUDE in most cases. INCLUDE does proper scoping of - [101]
YJAHR4FU* jQuery 1.8.4. - [102]
JLDUSNUO* Unify rendering of finished and scheduled builds. - [103]
2M7J26V4inital version of links to diff in scm - [104]
X5OIC5FF* hydra: ui bug - [105]
DGVPFNCU* Grabbed a logo. TODO: check copyright status. - [106]
3BNEHVKOused wrong builds collection for determining if we need to show current build section in job page - [107]
S66BOMVU* Added authentication. - [108]
TMP2FRIW - [109]
KSVD6RAP* hydra: queue stats (nr running builds / nr queued builds) - [110]
RBNQKATL* Adding persistant releases. A release is a named set of builds. - [111]
QT4FO2HPrefactored admin controller, using chains, to avoid using requireadmin on each endpoint - [112]
F2YSY4BKupdate jquery versions in templates - [113]
MOCEUXZA* Support serving products that are directories (such as manuals or - [114]
22JB5HNEmake changes section more compact/readable - [115]
HPEG2RHVMerge the BuildResultInfo table into the Builds table - [116]
BA46C5LN* Pretty-print the logs. - [117]
YZUQKPNJ* hydra: remove excess layout - [118]
ZXJSQF6Bpoint log link for running build step to the automatically reloading log page in stead of the 'useless' pretty log page - [119]
SIIXRVUETweak CSS for img/logo. - [120]
FN6V3C7Malways show latest 10 builds on job page - [121]
ODNCGFQ5* Improved the navigation bar: don't include all projects (since that - [122]
5QE3TIHPhydra: add status icon per jobset on project page - [123]
JRU2LRPZ - [124]
FZVIDIEP - [125]
LQ5QEDVV - [126]
VCOSLZRP - [127]
YTSIRIMK* Separate job status and all builds pages. - [128]
2AUODJBT - [129]
G6HJY2V4 - [130]
GPRYAAFPhydra: change icon for positive failures - [131]
JBUTIGW7hydra: description at changes section - [132]
U4TD3AIQAdd support for viewing jobset evaluations - [133]
UWVMQIAC* Refactoring. - [134]
TNZXSORJremove reference to non-existing nix-common.css - [135]
IK53RV4V - [136]
XJFHFZCA* Provide some redirects to build products by type so that we can for - [137]
GN3JXNQS - [138]
GCHNNFZP - [139]
YTZOC7C5* Editing of jobset inputs. - [140]
KAZWI5G4* hydra: buildpage, show changes since last build/successful build - [141]
PILMG2JS* hydra: layout changes, forgot something - [142]
WIISNKXDremove link to overall channel - [143]
AX5EQJO3hydra: show machine in buildsteps - [144]
SZYDW2DGhydra: added some user admin - [145]
PC6UOHH7add some stats to jobsets in project view - [146]
4JPNFWRB* Use jquery for the logfile manipulation. - [147]
HI6VU2PNAdd links missing from the admin page. - [148]
LP66DSH2* hydra: updated jquery version, needed for tabs (to be added later) - [149]
67NFGL7Dadd links in admin page to clear queue (all non-running builds, and all non-running old (non-current) builds) - [150]
3SQCOHZN* minor performance tweaks - [151]
P5X4P6VK* Renaming "release sets" to "views" (not finished yet). Having - [152]
K5BEBWKM - [153]
RSEGBU6CHydra/20: Jobset clone feature - [154]
OOQ2D3KC* Refactoring: move fetchInput out of hydra_scheduler into a separate - [*]
OZ5UBJEK
Change contents
- edit in src/root/Makefile.am at line 9
BOOTSTRAP = bootstrap.zip - replacement in src/root/Makefile.am at line 11
ZIPS = $(FLOT) $(TABLESORTER) $(JQUERY)ZIPS = $(FLOT) $(TABLESORTER) $(JQUERY) $(BOOTSTRAP) - edit in src/root/Makefile.am at line 21
unzip -u -d $(srcdir)/static $(BOOTSTRAP) - edit in src/root/Makefile.am at line 29[16.272]
mkdir -p $(hydradir)/static/bootstrapcp -prvd $(srcdir)/static/bootstrap/* $(hydradir)/static/bootstrap - edit in src/root/admin.tt at line 5[19.8427]→[19.8427:8563](∅→∅),[19.8563]→[19.0:240](∅→∅),[19.240]→[19.477:984](∅→∅),[19.241]→[19.8563:8816](∅→∅),[19.984]→[19.8563:8816](∅→∅),[19.8563]→[19.8563:8816](∅→∅),[19.9032]→[19.9032:9263](∅→∅),[19.9385]→[19.9385:9391](∅→∅)
<ul><li>[% INCLUDE maybeLink uri = c.uri_for(c.controller('Project').action_for('create')) content = "Create project" %]</li><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>Queue<ul><li>[% INCLUDE maybeLink uri = c.uri_for(c.controller('Admin').action_for('clear_queue')) content = "Clear all non-running builds from queue." confirmmsg = "Are you sure you want to clear the queue?" %]</li><li>[% INCLUDE maybeLink uri = c.uri_for(c.controller('Admin').action_for('clear_queue_non_current')) content = "Clear all non-running old builds from queue." confirmmsg = "Are you sure you want to clear the queue?" %]</li></ul></li><li>Caching<ul><li>[% INCLUDE maybeLink uri = c.uri_for(c.controller('Admin').action_for('clearfailedcache')) content = "Clear failed builds cache" confirmmsg = "Are you sure you want to clear the failed builds cache?" %]</li><li>[% INCLUDE maybeLink uri = c.uri_for(c.controller('Admin').action_for('clearvcscache')) content = "Clear VCS caches" confirmmsg = "Are you sure you want to clear the VCS caches?" %]</li></ul></li></ul> - replacement in src/root/build.tt at line 14
<table class="tablesorter"><table class="tablesorter table table-striped table-condensed"> - replacement in src/root/build.tt at line 85[19.7461]→[19.3892:4080](∅→∅),[19.4080]→[19.513:604](∅→∅),[19.604]→[19.4080:4168](∅→∅),[19.4080]→[19.4080:4168](∅→∅),[19.4168]→[19.695:788](∅→∅),[19.788]→[5.0:81](∅→∅)
<div id="generic-tabs"><ul><li><a href="#tabs-summary">Summary</a></li><li><a href="#tabs-information">Information</a></li><li><a href="#tabs-buildinputs">Build Inputs</a></li>[% IF relatedbuilds %]<li><a href="#tabs-relatedbuilds">Related builds</a></li>[% END %][% IF build.buildsteps %]<li><a href="#tabs-buildsteps">Build Steps</a></li>[% END %][% IF build.dependents %]<li><a href="#tabs-usedby">Used by</a></li>[% END%][% IF prevBuilds %]<li><a href="#tabs-history">History chart</a></li>[% END %]<ul id="tab" class="nav nav-tabs"><li><a href="#tabs-summary" data-toggle="tab">Summary</a></li><li><a href="#tabs-information" data-toggle="tab">Information</a></li><li><a href="#tabs-buildinputs" data-toggle="tab">Build Inputs</a></li>[% IF relatedbuilds %]<li><a href="#tabs-relatedbuilds" data-toggle="tab">Related builds</a></li>[% END %][% IF build.buildsteps %]<li><a href="#tabs-buildsteps" data-toggle="tab">Build Steps</a></li>[% END %][% IF build.dependents %]<li><a href="#tabs-usedby" data-toggle="tab">Used by</a></li>[% END%][% IF prevBuilds %]<li><a href="#tabs-history" data-toggle="tab">History chart</a></li>[% END %] - replacement in src/root/build.tt at line 94
<div id="tabs-summary"><div id="generic-tabs" class="tab-content"><div id="tabs-summary" class="tab-pane active"> - replacement in src/root/build.tt at line 191
<table><table class="table table-striped table-condensed"> - replacement in src/root/build.tt at line 204
<td valign="center">[% INCLUDE renderBuildStatusIcon build=prevSuccessfulBuild size=32 %] [% INCLUDE renderFullBuildLink build=prevSuccessfulBuild %]</td>[% IF prevSuccessfulBuild && firstBrokenBuild && firstBrokenBuild.id != build.id %]<td valign="center">[% INCLUDE renderBuildStatusIcon build=firstBrokenBuild size=32 %] [% INCLUDE renderFullBuildLink build=firstBrokenBuild %]</td>[% END %]<td>[% INCLUDE renderBuildStatusIcon build=build size=32 %] [% INCLUDE renderFullBuildLink build=build %]</td><td valign="center">[% INCLUDE renderBuildStatusIcon build=prevSuccessfulBuild size=32 %] [% INCLUDE renderFullBuildLink build=prevSuccessfulBuild, hideProjectName=1, hideJobsetName=1 %]</td>[% IF prevSuccessfulBuild && firstBrokenBuild && firstBrokenBuild.id != build.id %]<td valign="center">[% INCLUDE renderBuildStatusIcon build=firstBrokenBuild size=32 %] [% INCLUDE renderFullBuildLink build=firstBrokenBuild, hideProjectName=1, hideJobsetName=1 %]</td>[% END %]<td>[% INCLUDE renderBuildStatusIcon build=build size=32 %] [% INCLUDE renderFullBuildLink build=build, hideProjectName=1, hideJobsetName=1 %]</td> - replacement in src/root/build.tt at line 229
<div id="tabs-information"><div id="tabs-information" class="tab-pane"> - replacement in src/root/build.tt at line 399
<div id="tabs-buildinputs"><div id="tabs-buildinputs" class="tab-pane"> - replacement in src/root/build.tt at line 403
<table class="tablesorter"><table class="tablesorter table table-striped table-condensed"> - replacement in src/root/build.tt at line 431
<h3>Changes since previous build : [% INCLUDE renderFullBuildLink build=prevBuild %]</h3><h3>Changes since previous build : [% INCLUDE renderFullBuildLink build=prevBuild, hideProjectName=1, hideJobsetName=1 %]</h3> - replacement in src/root/build.tt at line 438
<div id="tabs-relatedbuilds"><div id="tabs-relatedbuilds" class="tab-pane"> - replacement in src/root/build.tt at line 446
<div id="tabs-buildsteps"><div id="tabs-buildsteps" class="tab-pane"> - replacement in src/root/build.tt at line 453
<div id="tabs-usedby"><div id="tabs-usedby" class="tab-pane"> - replacement in src/root/build.tt at line 459
<table class="tablesorter"><table class="tablesorter table table-condensed table-striped"> - replacement in src/root/build.tt at line 477
<div id="tabs-history"><div id="tabs-history" class="tab-pane"> - replacement in src/root/build.tt at line 632
$("#generic-tabs").tabs();$('#tab').tab('show'); - replacement in src/root/channel-contents.tt at line 37
<table class="tablesorter"><table class="tablesorter table table-condensed table-striped"> - replacement in src/root/clone-build.tt at line 24
<table class="tablesorter"><table class="tablesorter table table-condensed table-striped"> - replacement in src/root/common.tt at line 64
<table class="buildList [% IF !unsortable %]tablesorter[% END %] [% IF !showSchedulingInfo %] clean[% END %]"><table class="buildList table table-striped table-condensed [% IF !unsortable %]tablesorter[% END %] [% IF !showSchedulingInfo %] clean[% END %]"> - edit in src/root/common.tt at line 189
[% BLOCK maybeButton -%][% IF uri %]<a class="btn btn-mini" [% HTML.attributes(href => uri) %][% IF confirmmsg %]onclick="javascript:return confirm('[% confirmmsg %]')"[% END %]>[% content %]</a>[% ELSE; content; END -%][% END -%] - replacement in src/root/common.tt at line 327
<table class="tablesorter clean"><table class="table table-striped table-condensed"> - replacement in src/root/common.tt at line 372
<table class="tablesorter"><table class="tablesorter table table-striped table-condensed"> - edit in src/root/common.tt at line 394
<ul class="pagination"><li><a href="[% "$baseUri?page=1" %]">First</a></li><li [% IF page == 1 %]class="disabled"[% END %]><a href="[% "$baseUri?page="; (page - 1) %]">Previous</a></li><li [% IF page * resultsPerPage < total %]class="disabled"[% END %]><a href="[% "$baseUri?page="; (page + 1) %]">Next</a></li><li><a href="[% "$baseUri?page="; (total - 1) div resultsPerPage + 1 %]">Last</a></li></ul><!-- - replacement in src/root/common.tt at line 403
[<a href="[% "$baseUri?page=1" %]">First</a>][] - edit in src/root/common.tt at line 412
--> - replacement in src/root/edit-view.tt at line 37
<table class="tablesorter"><table class="tablesorter table table-condensed table-striped"> - replacement in src/root/errors.tt at line 18
<table class="buildList tablesorter"><table class="buildList tablesorter table table-condensed table-striped"> - replacement in src/root/errors.tt at line 44
<table class="buildList tablesorter"><table class="buildList tablesorter table table-condensed table-striped"> - replacement in src/root/job.tt at line 5[19.7780]→[19.7780:7781](∅→∅),[19.7781]→[19.1328:1647](∅→∅),[19.1647]→[19.330:332](∅→∅),[19.332]→[19.17971:18153](∅→∅),[19.18153]→[19.183:245](∅→∅)
<h1>Job <tt>[% INCLUDE renderLinkuri = c.uri_for(c.controller('Project').action_for('view'), [project.name])title = project.name %]:[% INCLUDE renderLinkuri = c.uri_for(c.controller('Jobset').action_for('index'), [project.name, jobset.name])title = jobset.name %]:[% job.name %]</tt></h1><div id="generic-tabs"><ul><li><a href="#tabs-status">Status</a></li><li><a href="#tabs-channels">Channels</a></li><li><a href="#tabs-latestbuilds">Latest builds</a></li><!-- <li><a href="#tabs-statistics">Statistics</a></li> --><ul id="tab" class="nav nav-tabs"><li><a href="#tabs-status" data-toggle="tab">Status</a></li><li><a href="#tabs-channels" data-toggle="tab">Channels</a></li><li><a href="#tabs-latestbuilds" data-toggle="tab">Latest builds</a></li> - replacement in src/root/job.tt at line 10
<div id="tabs-status"><div id="generic-tabs" class="tab-content"><div id="tabs-status" class="tab-pane active"> - replacement in src/root/job.tt at line 25
<div id="tabs-channels"><div id="tabs-channels" class="tab-pane"> - replacement in src/root/job.tt at line 36
<div id="tabs-latestbuilds"><div id="tabs-latestbuilds" class="tab-pane"> - edit in src/root/job.tt at line 47[19.19395]→[19.246:258](∅→∅),[19.258]→[19.19395:19423](∅→∅),[19.19395]→[19.19395:19423](∅→∅),[19.19423]→[19.259:317](∅→∅)
[%#<div id="tabs-statistics">[% INCLUDE showBuildStats % ]</div>%] - replacement in src/root/job.tt at line 49
$("#generic-tabs").tabs();jQuery(document).ready(function ($) {$('#tab').tab('show');}); - replacement in src/root/jobset-evals.tt at line 15
<table class="tablesorter"><table class="tablesorter table table-condensed table-striped"> - replacement in src/root/jobset-evals.tt at line 29
[% eval.get_column('nrSucceeded') %] / [% eval.get_column('nrBuilds') %]<span class="label label-success">[% eval.get_column('nrSucceeded') %]</span><span class="label label-important">[% eval.get_column('nrBuilds') - eval.get_column('nrSucceeded') - eval.get_column('nrScheduled') %]</span> - replacement in src/root/jobset-evals.tt at line 32
<br />[% eval.get_column('nrScheduled') %] scheduled<span class="label">[% eval.get_column('nrScheduled') %]</span> - replacement in src/root/jobset-evals.tt at line 38
<span class='green'><strong>+[% diff %]</strong></span><span class='label label-success'><strong>+[% diff %]</strong></span> - replacement in src/root/jobset-evals.tt at line 40
<span class='red'><strong>[% diff %]</strong></span><span class='label label-important'><strong>[% diff %]</strong></span> - edit in src/root/jobset.tt at line 11
[% ELSE %]<h1>Jobset <tt>[% INCLUDE renderLinkuri = c.uri_for(c.controller('Project').action_for('view'), [project.name])title = project.name %]:[% jobset.name %]</tt></h1> - replacement in src/root/jobset.tt at line 55
<table class="tablesorter"><table class="tablesorter table table-striped table-condensed"> - replacement in src/root/jobset.tt at line 74
<div id="generic-tabs"><ul><ul id="tab" class="nav nav-tabs"> - replacement in src/root/jobset.tt at line 76[19.20118]→[19.20118:20170](∅→∅),[19.20170]→[19.401:498](∅→∅),[19.498]→[19.20256:20322](∅→∅),[19.20256]→[19.20256:20322](∅→∅)
<li><a href="#tabs-information">Jobset</a></li>[% IF jobset.errormsg -%]<li><a href="#tabs-errors">Evaluation errors</a></li>[% END %]<li><a href="#tabs-jobs">Jobs ([% activeJobs.size %])</a></li><li><a href="#tabs-information" data-toggle="tab">Jobset</a></li>[% IF jobset.errormsg -%]<li><a href="#tabs-errors" data-toggle="tab">Evaluation errors</a></li>[% END %]<li><a href="#tabs-jobs" data-toggle="tab">Jobs ([% activeJobs.size %])</a></li> - replacement in src/root/jobset.tt at line 80
<li><a href="#tabs-setup">Setup</a></li><li><a href="#tabs-setup" data-toggle="tab">Setup</a></li> - replacement in src/root/jobset.tt at line 82
<li><a href="#tabs-channels">Channels</a></li><!-- <li><a href="#tabs-statistics">Statistics</a></li> --><li><a href="#tabs-channels" data-toggle="tab">Channels</a></li> - replacement in src/root/jobset.tt at line 85
<div id="tabs-information"><div id="generic-tabs" class="tab-content"><div id="tabs-information" class="tab-pane active"> - replacement in src/root/jobset.tt at line 104
<table><table class="table table-striped table-condensed"> - replacement in src/root/jobset.tt at line 138
<div id="tabs-errors"><div id="tabs-errors" class="tab-pane"> - replacement in src/root/jobset.tt at line 144
<div id="tabs-setup"><div id="tabs-setup" class="tab-pane [% IF edit %]active[% END %]"> - edit in src/root/jobset.tt at line 147
[% IF !edit && c.user_exists %]<p>[ <a href="[% c.uri_for('/jobset' project.name jobset.name 'edit') %]">Edit</a> | <a href="[% c.uri_for('/jobset' project.name jobset.name 'clone') %]">Clone</a> ]</p>[% END %] - replacement in src/root/jobset.tt at line 209
<div id="tabs-channels"><div id="tabs-channels" class="tab-pane"> - replacement in src/root/jobset.tt at line 225
<div id="tabs-jobs"><div id="tabs-jobs" class="tab-pane"> - edit in src/root/jobset.tt at line 247[19.25352]→[19.414:434](∅→∅),[19.434]→[19.25352:25411](∅→∅),[19.25352]→[19.25352:25411](∅→∅),[19.25411]→[19.435:468](∅→∅),[19.468]→[19.25443:25452](∅→∅),[19.25443]→[19.25443:25452](∅→∅),[19.25452]→[19.469:488](∅→∅)
[%#<div id="tabs-statistics"><h2>Statistics</h2>[% INCLUDE showBuildStats % ]</div>%] - replacement in src/root/jobset.tt at line 252
$("#generic-tabs").tabs();jQuery(document).ready(function ($) {$('#tab').tab('show');}); - replacement in src/root/layout.tt at line 13[19.2185]→[8.0:113](∅→∅),[8.113]→[19.232:307](∅→∅),[19.113]→[19.232:307](∅→∅),[19.113]→[19.232:307](∅→∅),[19.258]→[19.232:307](∅→∅),[19.2185]→[19.232:307](∅→∅),[19.25656]→[19.232:307](∅→∅),[19.11498]→[19.232:307](∅→∅),[19.156]→[19.1829:1909](∅→∅),[19.156]→[19.307:384](∅→∅),[19.1909]→[19.307:384](∅→∅),[19.307]→[19.307:384](∅→∅),[19.384]→[19.423:617](∅→∅),[19.217]→[19.1805:1901](∅→∅),[19.310]→[19.1805:1901](∅→∅),[19.362]→[19.1805:1901](∅→∅),[19.558]→[19.1805:1901](∅→∅),[19.577]→[19.1805:1901](∅→∅),[19.617]→[19.1805:1901](∅→∅),[19.12001]→[19.1805:1901](∅→∅),[19.1805]→[19.1805:1901](∅→∅)
<link type="text/css" href="/static/js/jquery/css/smoothness/jquery-ui-1.8.5.custom.css" rel="Stylesheet" /><link rel="stylesheet" href="/static/css/hydra.css" type="text/css" /><link rel="stylesheet" href="/static/css/nixos-site.css" type="text/css" /><link rel="stylesheet" href="/static/css/logfile.css" type="text/css" /><script type="text/javascript" src="/static/js/jquery/js/jquery-1.4.2.min.js"></script><script type="text/javascript" src="/static/js/jquery/js/jquery-ui-1.8.5.custom.min.js"></script><script type="text/javascript" src="/static/js/tablesorter/jquery.tablesorter.js"></script><link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css" type="text/css" /><style>body {padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */padding-bottom: 60px; /* 60px to make the container go all the way to the bottom of the topbar */}</style><link rel="stylesheet" href="/static/bootstrap/css/bootstrap-responsive.css" type="text/css" /> - edit in src/root/layout.tt at line 23
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script><script type="text/javascript" src="/static/bootstrap/js/bootstrap-dropdown.js"></script><script type="text/javascript" src="/static/bootstrap/js/bootstrap-tab.js"></script><script type="text/javascript" src="/static/bootstrap/js/bootstrap-alert.js"></script><!--<script type="text/javascript" src="/static/js/tablesorter/jquery.tablesorter.js"></script>--> - edit in src/root/layout.tt at line 35
$("table.tablesorter").tablesorter(); - edit in src/root/layout.tt at line 83
<div id="page"> - replacement in src/root/layout.tt at line 84
<div id="header"><div id="logo"><a class="no-hover" href="/"><img src="[% logo %]" alt="Hydra Logo" /></a></div>[% PROCESS topbar.tt %][% PROCESS contextbar.tt %]<div class="navbar navbar-fixed-top"><div class="navbar-inner"><div class="container"><a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></a><a class="brand" href="[% c.uri_for(c.controller('Root').action_for('index')) %]">Hydra</a><div class="nav-collapse">[% PROCESS topbar.tt %]</div><!--/.nav-collapse --></div> - replacement in src/root/layout.tt at line 98
<div id="main">[% PROCESS navbar.tt %]</div> - replacement in src/root/layout.tt at line 100[19.4744]→[19.2222:2273](∅→∅),[19.615]→[19.4876:4891](∅→∅),[19.2273]→[19.4876:4891](∅→∅),[19.4824]→[19.4876:4891](∅→∅),[19.4876]→[19.4876:4891](∅→∅)
<div id="content">[% content %]</div><div class="container">[% content %]</div> - replacement in src/root/layout.tt at line 106
</div><div id="footer"><div class="navbar navbar-fixed-bottom"><div id="footer" style="text-align: center;"> - edit in src/root/layout.tt at line 117
- replacement in src/root/machines.tt at line 6
<table><table class="table table-condensed table-striped"> - edit in src/root/navbar.tt at line 1[19.15137]→[19.15138:15302](∅→∅),[19.15302]→[19.2604:2750](∅→∅),[19.2750]→[19.15302:15465](∅→∅),[19.15302]→[19.15302:15465](∅→∅),[19.15465]→[19.2751:2814](∅→∅),[19.2814]→[19.15700:15720](∅→∅),[19.15700]→[19.15700:15720](∅→∅),[19.15720]→[19.2815:2823](∅→∅),[19.2823]→[19.15738:15749](∅→∅),[19.15738]→[19.15738:15749](∅→∅),[19.15749]→[19.12002:12028](∅→∅),[19.2841]→[19.16330:16331](∅→∅),[19.12028]→[19.16330:16331](∅→∅),[19.16330]→[19.16330:16331](∅→∅),[19.16331]→[19.2842:2864](∅→∅),[19.2864]→[19.16331:16424](∅→∅),[19.16331]→[19.16331:16424](∅→∅),[19.16424]→[19.2865:3497](∅→∅),[19.3334]→[19.16853:17139](∅→∅),[19.3497]→[19.16853:17139](∅→∅),[19.16853]→[19.16853:17139](∅→∅),[19.17139]→[19.7944:8100](∅→∅),[19.8100]→[19.17139:17266](∅→∅),[19.17139]→[19.17139:17266](∅→∅),[19.17266]→[15.0:311](∅→∅),[15.311]→[19.17425:17538](∅→∅),[19.3487]→[19.17425:17538](∅→∅),[19.17425]→[19.17425:17538](∅→∅),[19.17538]→[2.0:107](∅→∅),[2.107]→[19.17642:17998](∅→∅),[19.17642]→[19.17642:17998](∅→∅),[19.17998]→[19.3488:3647](∅→∅),[19.3647]→[19.17998:18024](∅→∅),[19.17998]→[19.17998:18024](∅→∅),[19.18024]→[19.12029:12341](∅→∅),[19.12341]→[19.4439:4559](∅→∅),[19.4559]→[19.12341:12367](∅→∅),[19.12341]→[19.12341:12367](∅→∅),[19.12367]→[19.18024:18027](∅→∅),[19.18024]→[19.18024:18027](∅→∅),[19.18027]→[19.3498:3515](∅→∅)
[% BLOCK makeLinkWrapped %]<li [% IF curUri == uri %]class="active"[% END %]><div class="title"><a href="[% uri %]">[% title %]</a></div>[% content %]</li>[% END %][% BLOCK menuItem %]<li [% IF "${root}${curUri}" == uri %]class="active"[% END %]><a href="[% uri %]">[% title %]</a></li>[% END %][% BLOCK makeLink -%][% INCLUDE makeLinkWrapped content="" -%][% END %][% BLOCK makeSubMenu %][% extra = collapsed ? "collapsed" : "" %]<div id="left-title">[% title %]</div><ul id="left-menu">[% content %]</ul>[% END %][% IF project || admin %]<div id="left-bar">[% IF project %][% WRAPPER makeSubMenu title="Project" collapsed=(jobset || job) %][% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('view'), [project.name]) title = "Overview" %][% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('releases'), [project.name]) title = "Releases" %][% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('all'), [project.name]) title = "All builds" %][% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('jobstatus'), [project.name]) title = "Job status" %][% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('errors'), [project.name]) title = "Errors" %][% END %][% END %][% IF jobset %][% WRAPPER makeSubMenu title="Jobset" collapsed=job %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Jobset').action_for('index'), [project.name, jobset.name])title = "Overview" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Jobset').action_for('evals'), [project.name, jobset.name])title = "Evaluations" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Jobset').action_for('all'), [project.name, jobset.name])title = "All builds" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Jobset').action_for('jobstatus'), [project.name, jobset.name])title = "Job status" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Jobset').action_for('errors'), [project.name, jobset.name])title = "Errors" %][% END %][% END %][% IF job %][% WRAPPER makeSubMenu title="Job" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Job').action_for('overview'), [project.name, jobset.name, job.name])title = "Overview" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Job').action_for('all'), [project.name, jobset.name, job.name])title = "All builds" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Job').action_for('jobstatus'), [project.name, jobset.name, job.name])title = "Job status" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Job').action_for('errors'), [project.name, jobset.name, job.name])title = "Errors" %][% END %][% END %][% IF admin %][% WRAPPER makeSubMenu title="Admin" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Admin').action_for('machines'))title = "Machines" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Admin').action_for('managenews'))title = "News" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Admin').action_for('users'))title = "Users" %][% END %][% END %]</div>[% END %] - edit in src/root/navbar.tt at line 2
- replacement in src/root/news.tt at line 10
<table><table class="table table-striped table-condensed"> - replacement in src/root/overview.tt at line 5
<div class="newsbar"><div class="alert alert-info"><a class="close" data-dismiss="alert">×</a> - replacement in src/root/overview.tt at line 9
<p><b>[% INCLUDE renderDateTime timestamp=i.createtime %]</b> <tt>by [% i.author.fullname %]</tt> <br/>[% contents.replace('\n','<br />\n') %]<h4 class="alert-heading">[% INCLUDE renderDateTime timestamp=i.createtime %] by [% i.author.fullname %]</h4>[% contents.replace('\n','<br />\n') %] - replacement in src/root/overview.tt at line 19
<table class="tablesorter"><table class="tablesorter table table-condensed table-striped"> - edit in src/root/overview.tt at line 49
[% IF c.user_exists %]<p>[ [% INCLUDE maybeLinkuri = c.uri_for(c.controller('Project').action_for('create'))content = "Create project" %] ]</p>[% END %] - replacement in src/root/product-list.tt at line 32
<div class="help productDetails"><div class="well hide productDetails"> - replacement in src/root/product-list.tt at line 54
<div class="help productDetails"><div class="well hide productDetails"> - replacement in src/root/product-list.tt at line 86
<div class="help productDetails"><div class="well hide productDetails"> - replacement in src/root/product-list.tt at line 136
<div class="productDetails"><div class="well hide productDetails"> - edit in src/root/product-list.tt at line 233
- replacement in src/root/project.tt at line 3[19.3055]→[19.3055:3105](∅→∅),[19.3105]→[19.2681:2728](∅→∅),[19.2728]→[19.3155:3166](∅→∅),[19.3155]→[19.3155:3166](∅→∅),[19.3166]→[19.25657:25687](∅→∅)
[% IF create %]<h1>New Project</h1>[% ELSE %]<h1>Project <tt>[% project.name %]</tt></h1>[% END %]<div id="generic-tabs"><ul><ul id="tab" class="nav nav-tabs"> - replacement in src/root/project.tt at line 5
<li><a href="#tabs-project">Project</a></li><li><a href="#tabs-project" data-toggle="tab">Project</a></li> - replacement in src/root/project.tt at line 7
<li><a href="#tabs-settings">Settings</a></li><li><a href="#tabs-settings" data-toggle="tab">Settings</a></li> - replacement in src/root/project.tt at line 9
<li><a href="#tabs-views">Views</a></li><li><a href="#tabs-channels">Channels</a></li><!-- <li><a href="#tabs-statistics">Statistics</a></li> --><li><a href="#tabs-views" data-toggle="tab">Views</a></li><li><a href="#tabs-channels" data-toggle="tab">Channels</a></li> - edit in src/root/project.tt at line 14
<div class="tab-content"> - replacement in src/root/project.tt at line 17
<div id="tabs-project"><div id="tabs-project" class="tab-pane active"> - replacement in src/root/project.tt at line 24
<table class="tablesorter"><table class="tablesorter table table-striped table-condensed"> - replacement in src/root/project.tt at line 57
[% class = '' %][% class = 'label' %] - replacement in src/root/project.tt at line 59
[% class = 'red' %][% class = 'label label-important' %] - replacement in src/root/project.tt at line 61
[% class = 'orange' %][% class = 'label label-warning' %] - replacement in src/root/project.tt at line 63
[% class = 'green' %][% class = 'label label-success' %] - replacement in src/root/project.tt at line 66
<td align="right"><div class="[% class %]">[% successrate FILTER format('%d') %]%</div><td><span class="[% class %]">[% successrate FILTER format('%d') %]%</span></td><td>[% IF j.get_column('nrsucceeded') > 0 %]<span class="label label-success">[% j.get_column('nrsucceeded') %]</span>[% END %][% IF j.get_column('nrfailed') > 0 %]<span class="label label-important">[% j.get_column('nrfailed') %]</span>[% END %] - replacement in src/root/project.tt at line 77
[% j.get_column('nrscheduled') %] builds still running<span class="label label">[% j.get_column('nrscheduled') %]</span> - edit in src/root/project.tt at line 80
<td align="right"><div class="[% class %]">[% j.get_column('nrsucceeded') %]/[% j.get_column('nrtotal') %]</div></td> - replacement in src/root/project.tt at line 81
<td>[ [% INCLUDE maybeLink uri = c.uri_for(c.controller('Admin').action_for('force_eval'), project.name, j.name) content = "Evaluate" confirmmsg = ("Are you sure you want to force evaluation of jobset " _ project.name _ ":" _ j.name _ "?") %]| [% IF j.hidden %][% INCLUDE maybeLink uri = c.uri_for('/jobset' project.name j.name 'unhide') content = "Unhide" %]<td>[% INCLUDE maybeButton uri = c.uri_for(c.controller('Admin').action_for('force_eval'), project.name, j.name) content = "Evaluate" confirmmsg = ("Are you sure you want to force evaluation of jobset " _ project.name _ ":" _ j.name _ "?") %][% IF j.hidden %][% INCLUDE maybeButton uri = c.uri_for('/jobset' project.name j.name 'unhide') content = "Unhide" %] - replacement in src/root/project.tt at line 85
[% INCLUDE maybeLink uri = c.uri_for('/jobset' project.name j.name 'hide') content = "Hide" %][% INCLUDE maybeButton uri = c.uri_for('/jobset' project.name j.name 'hide') content = "Hide" %] - edit in src/root/project.tt at line 87
] - edit in src/root/project.tt at line 100
<p><a href="[% c.uri_for(c.controller('Project').action_for('create_jobset'), [project.name]) %]">[Create a new jobset]</a></p> - replacement in src/root/project.tt at line 103
<div id="tabs-settings"><div id="tabs-settings" class="tab-pane [% IF edit %]active[% END %]"> - replacement in src/root/project.tt at line 109
<h2>Information[% IF !edit %] <a class="smallLink" href="[% c.uri_for('/project' project.name 'edit') %]">[Edit]</a>[% END %]</h2><h2>Information</h2> - replacement in src/root/project.tt at line 177
<div id="tabs-views"><div id="tabs-views" class="tab-pane"> - replacement in src/root/project.tt at line 203
<div id="tabs-channels"><div id="tabs-channels" class="tab-pane"> - edit in src/root/project.tt at line 217[19.30585]→[19.553:602](∅→∅),[19.602]→[19.30615:30638](∅→∅),[19.30615]→[19.30615:30638](∅→∅),[19.30638]→[19.603:636](∅→∅),[19.636]→[19.30678:30687](∅→∅),[19.30678]→[19.30678:30687](∅→∅),[19.30687]→[19.637:656](∅→∅)
[%#<div id="tabs-statistics"><h2>Statistics</h2>[% INCLUDE showBuildStats % ]</div>%] - replacement in src/root/project.tt at line 221
$("#generic-tabs").tabs();jQuery(document).ready(function ($) {$('#tab').tab('show');}); - replacement in src/root/releases.tt at line 15
<table class="tablesorter"><table class="tablesorter table table-condensed table-striped"> - replacement in src/root/static/css/hydra.css at line 1[19.8691]→[19.873:961](∅→∅),[19.961]→[19.30870:30872](∅→∅),[19.30870]→[19.30870:30872](∅→∅),[19.30912]→[19.30912:30913](∅→∅),[19.30913]→[19.157:169](∅→∅),[19.8691]→[19.157:169](∅→∅),[19.169]→[13.0:17](∅→∅),[19.14]→[19.8897:8900](∅→∅),[13.17]→[19.8897:8900](∅→∅),[19.186]→[19.8897:8900](∅→∅),[19.427]→[19.8897:8900](∅→∅),[19.975]→[19.8897:8900](∅→∅),[19.1923]→[19.8897:8900](∅→∅),[19.3715]→[19.8897:8900](∅→∅),[19.8897]→[19.8897:8900](∅→∅),[19.8900]→[19.976:982](∅→∅),[19.982]→[19.30949:30976](∅→∅),[19.30949]→[19.30949:30976](∅→∅),[19.30976]→[19.983:1256](∅→∅),[19.1256]→[19.494:497](∅→∅),[19.308]→[19.494:497](∅→∅),[19.497]→[19.1257:1289](∅→∅),[19.1289]→[17.1480:1511](∅→∅),[19.1314]→[19.30977:30999](∅→∅),[17.1511]→[19.30977:30999](∅→∅),[19.4976]→[19.30977:30999](∅→∅),[19.30999]→[19.8702:8705](∅→∅),[19.2599]→[19.8702:8705](∅→∅),[19.8705]→[19.1315:1355](∅→∅),[19.1355]→[19.1099:1124](∅→∅),[19.1124]→[19.31000:31003](∅→∅),[19.1355]→[19.31000:31003](∅→∅),[19.8787]→[19.31000:31003](∅→∅),[19.31003]→[19.1356:1361](∅→∅),[19.1361]→[19.8101:8251](∅→∅),[19.1391]→[19.31086:31089](∅→∅),[19.8251]→[19.31086:31089](∅→∅),[19.31086]→[19.31086:31089](∅→∅),[19.31089]→[19.84:135](∅→∅),[19.135]→[19.1431:1462](∅→∅),[19.1431]→[19.1431:1462](∅→∅),[19.1462]→[19.9167:9170](∅→∅),[19.31140]→[19.9167:9170](∅→∅),[19.9167]→[19.9167:9170](∅→∅),[19.9170]→[19.136:186](∅→∅),[19.186]→[19.1163:1197](∅→∅),[19.1163]→[19.1163:1197](∅→∅),[19.1197]→[19.1463:1538](∅→∅),[19.9170]→[19.1463:1538](∅→∅),[19.1538]→[19.1109:1110](∅→∅),[19.1110]→[19.1538:1576](∅→∅),[19.1538]→[19.1538:1576](∅→∅),[19.1576]→[19.10386:10389](∅→∅),[19.23436]→[19.10386:10389](∅→∅),[19.10386]→[19.10386:10389](∅→∅),[19.10389]→[19.1111:1147](∅→∅),[19.1147]→[19.1577:1578](∅→∅),[19.10389]→[19.1577:1578](∅→∅),[19.1578]→[19.1148:1149](∅→∅),[19.1149]→[19.1578:1637](∅→∅),[19.1578]→[19.1578:1637](∅→∅),[19.1637]→[19.1104:1107](∅→∅),[19.27]→[19.1104:1107](∅→∅),[19.1107]→[19.1638:1839](∅→∅),[19.27]→[19.10609:10612](∅→∅),[19.1139]→[19.10609:10612](∅→∅),[19.1839]→[19.10609:10612](∅→∅),[19.2622]→[19.10609:10612](∅→∅),[19.10609]→[19.10609:10612](∅→∅),[19.10612]→[19.1840:1954](∅→∅),[19.1954]→[19.3474:3477](∅→∅),[19.3474]→[19.3474:3477](∅→∅),[19.3477]→[19.1955:2072](∅→∅),[19.325]→[19.247:250](∅→∅),[19.2072]→[19.247:250](∅→∅),[19.10676]→[19.247:250](∅→∅),[19.250]→[19.2073:2191](∅→∅),[19.2191]→[19.606:609](∅→∅),[19.606]→[19.606:609](∅→∅),[19.609]→[19.2192:2414](∅→∅),[19.2414]→[19.5731:5734](∅→∅),[19.5731]→[19.5731:5734](∅→∅),[19.609]→[19.1971:2033](∅→∅),[19.5734]→[19.1971:2033](∅→∅),[19.250]→[19.1971:2033](∅→∅),[19.2033]→[19.3561:3605](∅→∅),[19.3605]→[19.2033:2035](∅→∅),[19.2033]→[19.2033:2035](∅→∅),[19.2035]→[19.250:251](∅→∅),[19.250]→[19.250:251](∅→∅),[19.2037]→[19.3606:3711](∅→∅),[19.3711]→[19.449:452](∅→∅),[19.452]→[18.0:156](∅→∅),[18.156]→[19.2022:2024](∅→∅),[19.816]→[19.2022:2024](∅→∅),[19.2451]→[19.2022:2024](∅→∅),[19.2022]→[19.2022:2024](∅→∅),[19.2024]→[19.3714:3715](∅→∅),[19.1607]→[19.3714:3715](∅→∅),[19.3715]→[19.2452:2469](∅→∅),[19.2469]→[18.157:199](∅→∅),[18.199]→[19.2396:2398](∅→∅),[19.2489]→[19.2396:2398](∅→∅),[19.2396]→[19.2396:2398](∅→∅),[19.2398]→[19.2025:2026](∅→∅),[19.3715]→[19.2025:2026](∅→∅),[19.2026]→[19.2490:2546](∅→∅),[19.2546]→[19.2459:2462](∅→∅),[19.2459]→[19.2459:2462](∅→∅),[19.2462]→[19.2547:2595](∅→∅),[19.2595]→[19.317:319](∅→∅),[19.317]→[19.317:319](∅→∅),[19.319]→[19.1174:1175](∅→∅),[19.1175]→[19.2596:2651](∅→∅),[19.2651]→[19.520:523](∅→∅),[19.520]→[19.520:523](∅→∅),[19.523]→[19.2652:2667](∅→∅),[19.2667]→[11.423:516](∅→∅),[11.516]→[19.740:772](∅→∅),[19.2667]→[19.740:772](∅→∅),[19.772]→[19.2696:2743](∅→∅),[19.2696]→[19.2696:2743](∅→∅),[19.2743]→[19.773:820](∅→∅),[19.820]→[19.637:640](∅→∅),[19.2743]→[19.637:640](∅→∅),[19.637]→[19.637:640](∅→∅),[19.640]→[19.2744:2808](∅→∅),[19.2808]→[19.757:760](∅→∅),[19.757]→[19.757:760](∅→∅),[19.760]→[19.2809:2887](∅→∅),[19.2887]→[19.878:880](∅→∅),[19.878]→[19.878:880](∅→∅),[19.880]→[19.728:729](∅→∅),[19.729]→[19.2888:2919](∅→∅),[19.2919]→[19.1974:1977](∅→∅),[19.787]→[19.1974:1977](∅→∅),[19.1977]→[19.2920:3009](∅→∅),[19.3009]→[19.1977:1978](∅→∅),[19.1977]→[19.1977:1978](∅→∅),[19.1978]→[19.3010:3072](∅→∅),[19.3072]→[19.8852:8918](∅→∅),[19.8852]→[19.8852:8918](∅→∅),[19.2096]→[19.2096:2099](∅→∅),[19.2640]→[19.2640:2736](∅→∅),[19.2736]→[19.0:17](∅→∅),[19.17]→[19.2753:2755](∅→∅),[19.3079]→[19.2753:2755](∅→∅),[19.2753]→[19.2753:2755](∅→∅),[19.2755]→[19.3711:3732](∅→∅),[19.3732]→[19.3080:3096](∅→∅),[19.3096]→[19.1104:1126](∅→∅),[19.1126]→[19.11171:11188](∅→∅)
body {font-family: sans-serif;background: white;margin: 2em 1em 2em 1em;}#logo img {height: 6em;}img {border-style: none;}a { text-decoration: none;}a:link { color: #0048b3; }a:visited { color: #002a6a; }a.no-hover:hover { background: none; }a:hover, a:visited:hover { text-decoration: underline;}a.smallLink {font-size: 60%;vertical-align: top;}a#error-link {color: red;}table {empty-cells: show;border-collapse: collapse;text-align: left;}th, td {border: 1px solid #dddddd;vertical-align: top;}th {background-color: #E6EEEE;}th.subheader {background-color: #f0f0f8;font-size: 120%;text-align: center;font-weight: normal;}table.tablesorter:not(.clean) tr:nth-child(even) {background-color: #efefef;}table.tablesorter:not(.clean) tr:nth-child(odd) {background-color: #ffffff;}tr.clickable:hover {background-color: #E6EEFF;cursor: pointer;}td.centered {text-align: center;}td.right {text-align: right;}.layoutTable td, .layoutTable th {border-style: none;}table.tablesorter thead tr .header {background-image: url(/static/js/tablesorter/themes/blue/bg.gif);background-repeat: no-repeat;background-position: center right;cursor: pointer;}table.tablesorter thead tr .headerSortUp {background-image: url(/static/js/tablesorter/themes/blue/asc.gif);}table.tablesorter thead tr .headerSortDown {background-image: url(/static/js/tablesorter/themes/blue/desc.gif);}table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp {background-color: #D6DDDD;}table.tablesorter thead tr th {padding-right: 1.5em;}#generic-tabs li {height : 30px;font-size : 90%;}#generic-tabs div {font-size : 90%;}h1, h2, h3 {font-weight: bold;color: #002a70;}ul.productList {list-style: none;padding-left: 1em;}ul.productList li {margin-top: 1em;}.productDetails {display: none;margin-top: 1em;margin-bottom: 1em;margin-left: 3em;}tr:nth-child(even).runningBuild {background-color: #d8ffd8 !important;}tr:nth-child(odd).runningBuild {background-color: #e8ffe8 !important;}.disabledBuild {background-color: #ffc0c0 !important;}.error-msg {color: red;white-space: pre-wrap;}.error {color: red;font-weight: bold;}pre {margin-left: 1.5em;margin-right: 1.5em;}pre.buildlog {border: 1px solid black;padding: 0.3em;white-space: pre-wrap;}pre.taillog {border: 3px solid darkblue;padding: 0.3em;white-space: pre-wrap;background: black;color: #ffffff;}div.buildlog {border: 1px solid black;padding: 0.3em;}.multiLineMsg {padding: 0em;margin: 0em;white-space: pre-wrap;}.template {display: none;}div.help {border: solid black 1px;padding-left: 1em;padding-right: 1em;}div.help pre {padding-left: 1.5em;color: #400000;}th.releaseSetJobName {font-size: 60%;padding: 0 0 0 0;}input.string {font-family: sans-serif;font-size: 100%;background-color: #fffff0;width: 20em;}input.shortString {width: 7em;}input.longString {width: 40em;.logTreeToggle {text-decoration: none;font-family: monospace;font-size: larger; - edit in src/root/static/css/hydra.css at line 7[19.11191]→[19.11191:11213](∅→∅),[19.11213]→[19.1126:1143](∅→∅),[19.1126]→[19.1126:1143](∅→∅),[19.1143]→[19.3096:3098](∅→∅),[19.3096]→[19.3096:3098](∅→∅)
textarea.longString {width: 40em;} - edit in src/root/static/css/hydra.css at line 8[19.3099]→[19.3099:3139](∅→∅),[19.3139]→[19.3749:3751](∅→∅),[19.3749]→[19.3749:3751](∅→∅),[19.3751]→[19.3140:3181](∅→∅),[19.3181]→[19.1971:2011](∅→∅),[19.2011]→[19.3716:3717](∅→∅),[19.3717]→[19.1344:1423](∅→∅),[19.1423]→[19.11214:11411](∅→∅)
select {background-color: #fffff0;}button {background-color: #f0f0e0;}form.inline {display: inline;}.red {color: red;}.orange {color: orange;}.green {color: green;}.newsbar {background-color:#D9E3EA;border:1px solid #999999;float:right;font-size:x-small;margin:0 0 0.5em 0.5em;overflow:hidden;padding:0.5em;width:30em;} - replacement in src/root/topbar.tt at line 1
[% BLOCK makeLinkWrapped %]<li [% IF curUri == uri %]class="active"[% END %]>[% BLOCK menuItem %]<li class="[% IF "${root}${curUri}" == uri %]active[% END %]"> - edit in src/root/topbar.tt at line 5
[% content %] - replacement in src/root/topbar.tt at line 13
<ul class="short-menu" id="top-menu">[% content %]</ul><li class="dropdown"><a class="dropdown-toggle" href="#" data-toggle="dropdown">[% title %]<b class="caret"></b></a><ul id="left-menu" class="dropdown-menu">[% content %]</ul> - replacement in src/root/topbar.tt at line 22
[% WRAPPER makeSubMenu title="Hydra" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Root').action_for('index'))title = "Projects" %][% BLOCK makeLinkWrapped %]<li [% IF curUri == uri %]class="active"[% END %]><a href="[% uri %]">[% title %]</a>[% content %]</li>[% END %][% BLOCK makeLink -%][% INCLUDE makeLinkWrapped content="" -%][% END %]<ul class="nav" id="top-menu"> - replacement in src/root/topbar.tt at line 37
title = "Queue" %] ([% nrRunningBuilds %]/[% nrQueuedBuilds %])title = "Queue ("_ nrRunningBuilds _"/"_ nrQueuedBuilds _")" %] - edit in src/root/topbar.tt at line 40
title = "All builds" %][% IF project || admin %][% IF project %][% WRAPPER makeSubMenu title=("Project: " _ project.name) collapsed=(jobset || job) %][% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('view'), [project.name]) title = "Overview" %][% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('releases'), [project.name]) title = "Releases" %][% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('all'), [project.name]) title = "All builds" %][% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('jobstatus'), [project.name]) title = "Job status" %][% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('errors'), [project.name]) title = "Errors" %][% IF c.check_user_roles('admin') %]<li class="divider"></li>[% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('create_jobset'), [project.name]) title = "Create new jobset" %][% INCLUDE menuItem uri = c.uri_for('/project' project.name 'edit') title="Edit project" %][% END %][% END %][% END %][% IF jobset %][% WRAPPER makeSubMenu title=("Jobset: " _ jobset.name) collapsed=job %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Jobset').action_for('index'), [project.name, jobset.name])title = "Overview" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Jobset').action_for('evals'), [project.name, jobset.name])title = "Evaluations" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Jobset').action_for('all'), [project.name, jobset.name])title = "All builds" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Jobset').action_for('jobstatus'), [project.name, jobset.name])title = "Job status" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Jobset').action_for('errors'), [project.name, jobset.name])title = "Errors" %][% IF c.check_user_roles('admin') %]<li class="divider"></li>[% INCLUDE menuItem uri = c.uri_for('/jobset' project.name jobset.name 'edit') title="Edit jobset" %][% INCLUDE menuItem uri = c.uri_for('/jobset' project.name jobset.name 'clone') title="Clone jobset" %][% END %][% END %][% END %][% IF job %][% WRAPPER makeSubMenu title=("Job: " _ job.name) %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Job').action_for('overview'), [project.name, jobset.name, job.name])title = "Overview" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Job').action_for('all'), [project.name, jobset.name, job.name]) - edit in src/root/topbar.tt at line 94
[% INCLUDE makeLinkuri = c.uri_for(c.controller('Job').action_for('jobstatus'), [project.name, jobset.name, job.name])title = "Job status" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Job').action_for('errors'), [project.name, jobset.name, job.name])title = "Errors" %]<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>[% END %][% END %][% END %][% IF c.user_exists %][% IF c.check_user_roles('admin') %][% WRAPPER makeSubMenu title="Admin" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Admin').action_for('index'))title = "Machine status" %]<li class="divider"></li>[% INCLUDE makeLinkuri = c.uri_for(c.controller('Admin').action_for('machines'))title = "Manage machines" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Admin').action_for('managenews'))title = "Manage news" %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Admin').action_for('users'))title = "Manage users" %]<li class="divider"></li>[% INCLUDE maybeLinkuri = c.uri_for(c.controller('Admin').action_for('clearfailedcache'))content = "Clear failed builds cache"confirmmsg = "Are you sure you want to clear the failed builds cache?" %][% INCLUDE maybeLinkuri = c.uri_for(c.controller('Admin').action_for('clear_queue_non_current'))content = "Clear all non-running old builds from queue."confirmmsg = "Are you sure you want to clear the queue?"%]<li class="divider"></li>[% IF c.check_user_roles('admin') %][% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('create')) title = "Create new project" %][% END %][% END %][% END %][% END %] - edit in src/root/topbar.tt at line 145[19.7704]→[19.11412:11489](∅→∅),[19.11489]→[19.557:630](∅→∅),[19.630]→[19.11562:11613](∅→∅),[19.11562]→[19.11562:11613](∅→∅)
[% IF c.check_user_roles('admin') %][% INCLUDE makeLinkuri = c.uri_for(c.controller('Admin').action_for('index'))title = "Admin" %][% END %] - edit in src/root/topbar.tt at line 153
[% END %] - edit in src/root/topbar.tt at line 154[19.8007]
</ul> - replacement in src/root/users.tt at line 6
<table><table class="table table-striped table-condensed"> - replacement in src/root/view.tt at line 14
<table class="tablesorter"><table class="tablesorter table table-condensed table-striped"> - edit in src/root/view.tt at line 67[19.3147][156.131]
<ul class="pager"><li class="previous"><a href="[% "$baseUri?page="; (page - 1) %]">Prev</a></li><li class="next"><a href="[% "$baseUri?page="; (page + 1) %]">Next</a></li></ul><!-- - edit in src/root/view.tt at line 83[156.141][19.10051]
-->