Fix some wellformedness issues

[?]
Sep 3, 2013, 3:35 PM
2G63HKCHG7S6DGWDOHSDF7PXFPD6H4TRKDKIIFCXXAKET6FCWN2AC

Dependencies

  • [2] OOZK3MF5 Show current query in the search box
  • [3] LHBSOI2D Fix adding jobset inputs
  • [4] SPHE6E75 Allow manually scheduling disabled jobsets for evaluation
  • [5] DV43UILU Don't float the search bar to the right in collapsed mode
  • [6] RDSPL26C Load a tab only once
  • [7] D7X6XTKQ Integrate the "Job status" and "All jobs" tabs
  • [8] 4WZQW2N6 Fix indentation and get rid of some unnecessary whitespace in the output
  • [9] GCHNNFZP
  • [10] YG6VGK4F "Evaluate" command: push the jobset to the front of the eval queue
  • [11] NDL67SQT * XHTML validity.
  • [12] I3X25POI hydra-update-gc-roots: Keep the most recent evaluations
  • [13] RU7AQO7U * Role-based access control. Only admins can create projects. Only
  • [14] UICHT2PS Add a search feature
  • [15] JY7BXXOP Split viewing and editing a project
  • [16] PBFZEQLZ
  • [17] 3A2H3FWZ Remove unnecessary "Page generated" line
  • [18] PVIRRARJ Turn hiding/unhiding a jobset into a checkbox
  • [19] 4XVYHFDL Show an error message if tab loading fails
  • [20] 6KIJX24R Get rid of unnecessary [%- and -%] tags
  • [21] RSEGBU6C Hydra/20: Jobset clone feature
  • [22] JZVRK5QJ Group some menu items together under a "Status" menu
  • [23] 22JB5HNE make changes section more compact/readable
  • [24] VJFLX7B6 Fix rendering of jobset inputs
  • [25] 3PNG7NIB Remove trailing whitespace
  • [26] XJRJ4J7M Add user registration
  • [27] TLJC6BJ3 Add a menu item for deleting jobsets
  • [28] QCGCX2BR Generalize lazy tabs
  • [29] OX6NYJDV Split viewing and editing a jobset
  • [30] NRSKJPP4 makeLink -> menuItem
  • [31] JARRBLZD Bootstrapify the Hydra forms (except the project and jobset edit pages)
  • [32] A6XVP6FE Make the hide/unhide actions a checkbox in the project settings
  • [33] HCKFTNQ6
  • [34] OEPUOUNB Using twitter bootstrap for more consistent looks for Hydra
  • [35] PZL3SZM3 Give every page a consistent title
  • [36] 2VBQRQ2Q Fix some XML well-formedness problems
  • [37] KR7QIG6Z
  • [38] QL55ECJ6 - adapted ui for hydra, more in line with nixos.org website
  • [39] 7ZQAHJQM Fix indentation
  • [40] SZYDW2DG hydra: added some user admin
  • [41] GPHLV42M * Allow the description of a release member to be edited, and to
  • [42] LC64D4PU Correctly redirect to the referring page when logging in
  • [43] J5UVLXOK * Start of a basic Catalyst web interface.
  • [44] QTC3SYBM Jobset page: Load the jobs and status tabs on demand
  • [45] QLOLZHRX Allow a per-jobset check interval
  • [46] LSZLZHJY Allow users to edit their own settings
  • [47] ODNCGFQ5 * Improved the navigation bar: don't include all projects (since that
  • [*] IK53RV4V
  • [*] KXGOUX7P * Creating releases.
  • [*] G6HJY2V4

Change contents

  • replacement in src/root/clone-jobset.tt at line 12
    [8.1382][8.1382:1458]()
    <input type="text" class="span3" name="newjobset" value=""></input>
    [8.1382]
    [8.1458]
    <input type="text" class="span3" name="newjobset" value=""/>
  • replacement in src/root/common.tt at line 147
    [8.3611][8.3611:3799]()
    IF uri %]<a [% HTML.attributes(href => uri, class => class) %][% IF confirmmsg %]onclick="javascript:return confirm('[% confirmmsg %]')"[% END %]>[% content %]</a>[% ELSE; content; END;
    [8.3611]
    [8.4008]
    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 167
    [8.3006][8.3006:3144]()
    <option [% HTML.attributes(value => name) %] [% IF name == curValue; "selected='selected'"; END %]>[% options.$name %]</option>
    [8.3006]
    [8.3144]
    <option [% IF name == curValue; "selected='selected'"; END; " "; HTML.attributes(value => name) %]>[% options.$name %]</option>
  • replacement in src/root/common.tt at line 276
    [8.5785][8.5785:5928]()
    <a target="_new" href="[% m.uri.replace('_path_', path).replace('_1_', bi1.revision).replace('_2_', bi2.revision) %]">[% contents %]</a>
    [8.5785]
    [8.5928]
    <a target="_blank" href="[% m.uri.replace('_path_', path).replace('_1_', bi1.revision).replace('_2_', bi2.revision) %]">[% contents %]</a>
  • replacement in src/root/common.tt at line 285
    [8.6091][8.86:246]()
    <a target="_new" href="[% HTML.escape("/api/scmdiff?uri=$url&rev1=$bi1.revision&rev2=$bi2.revision&type=$bi1.type&branch=$branch") %]">[% contents %]</a>
    [8.6091]
    [8.6255]
    <a target="_blank" href="[% HTML.escape("/api/scmdiff?uri=$url&rev1=$bi1.revision&rev2=$bi2.revision&type=$bi1.type&branch=$branch") %]">[% contents %]</a>
  • replacement in src/root/common.tt at line 467
    [8.542][6.28:85]()
    if (id == "#[% tabName %]" && !tabsLoaded[id]) {
    [8.542]
    [6.85]
    if (id == "#[% tabName %]" &amp;&amp; !tabsLoaded[id]) {
  • replacement in src/root/edit-jobset.tt at line 6
    [8.691][8.691:777]()
    <input type="text" [% HTML.attributes(value => alt.value, name => name) %]></input>
    [8.691]
    [8.777]
    <input type="text" [% HTML.attributes(value => alt.value, name => name) %]/>
  • replacement in src/root/edit-jobset.tt at line 14
    [8.1046][3.0:133]()
    <tt><input type="text" id="[% baseName %]-name" name="[% baseName %]-name" [% HTML.attributes(value => input.name) %]></input>
    [8.1046]
    [8.1154]
    <input type="text" id="[% baseName %]-name" name="[% baseName %]-name" [% HTML.attributes(value => input.name) %]/>
  • replacement in src/root/edit-jobset.tt at line 40
    [8.2042][8.2042:2216]()
    <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
    [8.2042]
    [8.2216]
    <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>
  • replacement in src/root/edit-jobset.tt at line 53
    [8.2584][8.2584:2698]()
    <input type="checkbox" name="enabled" [% IF jobset.enabled; 'checked="checked"'; END %]></input>Enabled
    [8.2584]
    [8.2698]
    <input type="checkbox" name="enabled" [% IF jobset.enabled; 'checked="checked"'; END %]/>Enabled
  • replacement in src/root/edit-jobset.tt at line 58
    [8.130][8.130:244]()
    <input type="checkbox" name="visible" [% IF !jobset.hidden; 'checked="checked"'; END %]></input>Visible
    [8.130]
    [8.244]
    <input type="checkbox" name="visible" [% IF !jobset.hidden; 'checked="checked"'; END %]/>Visible
  • replacement in src/root/edit-jobset.tt at line 66
    [8.2855][8.2855:2961]()
    <input type="text" class="span3" name="name" [% HTML.attributes(value => jobset.name) %]></input>
    [8.2855]
    [8.2961]
    <input type="text" class="span3" name="name" [% HTML.attributes(value => jobset.name) %]/>
  • replacement in src/root/edit-jobset.tt at line 73
    [8.3102][8.3102:3222]()
    <input type="text" class="span3" name="description" [% HTML.attributes(value => jobset.description) %]></input>
    [8.3102]
    [8.3222]
    <input type="text" class="span3" name="description" [% HTML.attributes(value => jobset.description) %]/>
  • replacement in src/root/edit-jobset.tt at line 80
    [8.3366][8.3366:3486]()
    <input type="text" class="span3" name="nixexprpath" [% HTML.attributes(value => jobset.nixexprpath) %]></input>
    [8.3366]
    [8.3486]
    <input type="text" class="span3" name="nixexprpath" [% HTML.attributes(value => jobset.nixexprpath) %]/>
  • replacement in src/root/edit-jobset.tt at line 82
    [8.3497][8.3497:3619]()
    <input type="text" class="span3" name="nixexprinput" [% HTML.attributes(value => jobset.nixexprinput) %]></input>
    [8.3497]
    [8.3619]
    <input type="text" class="span3" name="nixexprinput" [% HTML.attributes(value => jobset.nixexprinput) %]/>
  • replacement in src/root/edit-jobset.tt at line 90
    [8.554][8.554:682]()
    <input type="number" class="span3" name="checkinterval" [% HTML.attributes(value => jobset.checkinterval) %]></input>
    [8.554]
    [8.682]
    <input type="number" class="span3" name="checkinterval" [% HTML.attributes(value => jobset.checkinterval) %]/>
  • replacement in src/root/edit-jobset.tt at line 100
    [8.3738][8.3738:3871]()
    <input type="checkbox" name="enableemail" [% IF jobset.enableemail; 'checked="checked"'; END %]></input>Email notification
    [8.3738]
    [8.3871]
    <input type="checkbox" name="enableemail" [% IF jobset.enableemail; 'checked="checked"'; END %]/>Email notification
  • replacement in src/root/edit-jobset.tt at line 108
    [8.4032][8.4032:4156]()
    <input type="text" class="span3" name="emailoverride" [% HTML.attributes(value => jobset.emailoverride) %]></input>
    [8.4032]
    [8.4156]
    <input type="text" class="span3" name="emailoverride" [% HTML.attributes(value => jobset.emailoverride) %]/>
  • replacement in src/root/edit-jobset.tt at line 115
    [8.4310][8.4310:4422]()
    <input type="number" class="span3" name="keepnr" [% HTML.attributes(value => jobset.keepnr) %]></input>
    [8.4310]
    [8.4422]
    <input type="number" class="span3" name="keepnr" [% HTML.attributes(value => jobset.keepnr) %]/>
  • replacement in src/root/edit-project.tt at line 11
    [8.425][8.5745:5860]()
    <input type="checkbox" name="enabled" [% IF project.enabled; 'checked="checked"'; END %]></input>Enabled
    [8.425]
    [8.556]
    <input type="checkbox" name="enabled" [% IF project.enabled; 'checked="checked"'; END %]/>Enabled
  • replacement in src/root/edit-project.tt at line 16
    [8.648][8.5861:6000]()
    <input type="checkbox" name="visible" [% IF !project.hidden; 'checked="checked"'; END %]></input>Visible in the list of projects
    [8.648]
    [8.803]
    <input type="checkbox" name="visible" [% IF !project.hidden; 'checked="checked"'; END %]/>Visible in the list of projects
  • replacement in src/root/edit-project.tt at line 24
    [8.960][8.960:1067]()
    <input type="text" class="span3" name="name" [% HTML.attributes(value => project.name) %]></input>
    [8.960]
    [8.1067]
    <input type="text" class="span3" name="name" [% HTML.attributes(value => project.name) %]/>
  • replacement in src/root/edit-project.tt at line 31
    [8.1209][8.1209:1330]()
    <input type="text" class="span3" name="displayname" [% HTML.attributes(value => project.displayname) %]></input>
    [8.1209]
    [8.1330]
    <input type="text" class="span3" name="displayname" [% HTML.attributes(value => project.displayname) %]/>
  • replacement in src/root/edit-project.tt at line 38
    [8.1471][8.1471:1592]()
    <input type="text" class="span3" name="description" [% HTML.attributes(value => project.description) %]></input>
    [8.1471]
    [8.1592]
    <input type="text" class="span3" name="description" [% HTML.attributes(value => project.description) %]/>
  • replacement in src/root/edit-project.tt at line 45
    [8.1730][8.1730:1845]()
    <input type="text" class="span3" name="homepage" [% HTML.attributes(value => project.homepage) %]></input>
    [8.1730]
    [8.1845]
    <input type="text" class="span3" name="homepage" [% HTML.attributes(value => project.homepage) %]/>
  • replacement in src/root/edit-project.tt at line 52
    [8.1980][8.1980:2117]()
    <input type="text" class="span3" name="owner" [% HTML.attributes(value => project.owner.username || c.user.username) %]></input>
    [8.1980]
    [8.2117]
    <input type="text" class="span3" name="owner" [% HTML.attributes(value => project.owner.username || c.user.username) %]/>
  • replacement in src/root/edit-release.tt at line 12
    [8.3729][8.3729:3834]()
    <input type="text" class="span3" name="name" [% HTML.attributes(value => release.name) %]></input>
    [8.3729]
    [8.3834]
    <input type="text" class="span3" name="name" [% HTML.attributes(value => release.name) %]/>
  • replacement in src/root/edit-release.tt at line 19
    [8.3969][8.3969:4088]()
    <input type="text" class="span3" name="description" [% HTML.attributes(value => release.description) %]></input>
    [8.3969]
    [8.4088]
    <input type="text" class="span3" name="description" [% HTML.attributes(value => release.description) %]/>
  • replacement in src/root/edit-release.tt at line 33
    [8.4318][8.4318:4457]()
    <input type="text" class="span3" name="member-[% m.build.id %]-description" [% HTML.attributes(value => m.description) %]></input>
    [8.4318]
    [8.4457]
    <input type="text" class="span3" name="member-[% m.build.id %]-description" [% HTML.attributes(value => m.description) %]/>
  • replacement in src/root/edit-view.tt at line 29
    [8.5934][8.5934:6036]()
    <input type="text" class="span3" name="name" [% HTML.attributes(value => view.name) %]></input>
    [8.5934]
    [8.6036]
    <input type="text" class="span3" name="name" [% HTML.attributes(value => view.name) %]/>
  • replacement in src/root/edit-view.tt at line 36
    [8.6169][8.6169:6285]()
    <input type="text" class="span3" name="description" [% HTML.attributes(value => view.description) %]></input>
    [8.6169]
    [8.6285]
    <input type="text" class="span3" name="description" [% HTML.attributes(value => view.description) %]/>
  • replacement in src/root/jobset-jobs-tab.tt at line 5
    [7.494][7.494:649]()
    <input name="filter" type="text" class="input-large search-query" placeholder="Search jobs by name..." [% HTML.attributes(value => filter) %]></input>
    [7.494]
    [7.649]
    <input name="filter" type="text" class="input-large search-query" placeholder="Search jobs by name..." [% HTML.attributes(value => filter) %]/>
  • edit in src/root/layout.tt at line 3
    [8.1517][8.1151:1190](),[8.6353][8.1151:1190](),[8.11236][8.1151:1190](),[8.1190][8.0:1]()
    <?xml version="1.0" encoding="UTF-8"?>
  • edit in src/root/layout.tt at line 4
    [8.1526][8.1526:1527]()
  • replacement in src/root/layout.tt at line 96
    [8.9079][8.9079:9221]()
    <em><a href="http://nixos.org/hydra" target="_new">Hydra</a> [% HTML.escape(version) %] (using [% HTML.escape(nixVersion) %]).</em>
    [8.9079]
    [8.9279]
    <em><a href="http://nixos.org/hydra" target="_blank">Hydra</a> [% HTML.escape(version) %] (using [% HTML.escape(nixVersion) %]).</em>
  • replacement in src/root/login.tt at line 24
    [8.240][8.240:315]()
    <input type="text" class="span3" name="username" value=""></input>
    [8.240]
    [8.315]
    <input type="text" class="span3" name="username" value=""/>
  • replacement in src/root/login.tt at line 31
    [8.442][8.442:521]()
    <input type="password" class="span3" name="password" value=""></input>
    [8.442]
    [8.521]
    <input type="password" class="span3" name="password" value=""/>
  • replacement in src/root/topbar.tt at line 10
    [8.5748][8.5748:5794]()
    <ul id="left-menu" class="dropdown-menu">
    [8.5748]
    [8.5794]
    <ul class="dropdown-menu">
  • replacement in src/root/topbar.tt at line 16
    [8.11122][8.2704:2745]()
    <ul class="nav pull-left" id="top-menu">
    [8.11122]
    [8.0]
    <ul class="nav pull-left">
  • replacement in src/root/topbar.tt at line 82
    [8.274][4.161:277]()
    $.post("[% c.uri_for('/api/push', { jobsets = project.name _ ':' _ jobset.name, force = "1" }) %]")
    [8.274]
    [8.377]
    $.post("[% HTML.escape(c.uri_for('/api/push', { jobsets = project.name _ ':' _ jobset.name, force = "1" })) %]")
  • replacement in src/root/topbar.tt at line 192
    [8.15872][5.0:42]()
    <ul class="nav pull-right" id="top-menu">
    [8.15872]
    [8.15884]
    <ul class="nav pull-right">
  • replacement in src/root/topbar.tt at line 195
    [8.2847][2.0:144]()
    <input name="query" type="text" class="search-query span2" placeholder="Search" [% HTML.attributes(value => c.req.params.query) %]></input>
    [8.2847]
    [8.2940]
    <input name="query" type="text" class="search-query span2" placeholder="Search" [% HTML.attributes(value => c.req.params.query) %]/>
  • replacement in src/root/user.tt at line 12
    [8.4806][8.4806:4821]()
    SELECTED
    [8.4806]
    [8.4821]
    selected="selected"
  • replacement in src/root/user.tt at line 25
    [8.5055][8.5055:5162]()
    <input type="text" class="span3" name="username" [% HTML.attributes(value => username) %]></input>
    [8.5055]
    [8.5162]
    <input type="text" class="span3" name="username" [% HTML.attributes(value => username) %]/>
  • replacement in src/root/user.tt at line 33
    [8.5305][8.5305:5412]()
    <input type="text" class="span3" name="fullname" [% HTML.attributes(value => fullname) %]></input>
    [8.5305]
    [8.5412]
    <input type="text" class="span3" name="fullname" [% HTML.attributes(value => fullname) %]/>
  • replacement in src/root/user.tt at line 40
    [8.5550][8.5550:5629]()
    <input type="password" class="span3" name="password" value=""></input>
    [8.5550]
    [8.5629]
    <input type="password" class="span3" name="password" value=""/>
  • replacement in src/root/user.tt at line 47
    [8.5765][8.5765:5845]()
    <input type="password" class="span3" name="password2" value=""></input>
    [8.5765]
    [8.5845]
    <input type="password" class="span3" name="password2" value=""/>
  • replacement in src/root/user.tt at line 55
    [8.5979][8.5979:6099]()
    <input type="text" class="span3" name="emailaddress" [% HTML.attributes(value => user.emailaddress) %]></input>
    [8.5979]
    [8.6099]
    <input type="text" class="span3" name="emailaddress" [% HTML.attributes(value => user.emailaddress) %]/>
  • replacement in src/root/user.tt at line 64
    [8.6222][8.5442:5592]()
    <input type="checkbox" name="emailonerror" [% IF emailonerror; 'checked="checked"'; END %]></input>Receive evaluation error notifications
    [8.6222]
    [8.6356]
    <input type="checkbox" name="emailonerror" [% IF emailonerror; 'checked="checked"'; END %]/>Receive evaluation error notifications
  • replacement in src/root/user.tt at line 74
    [8.6586][8.6586:6641]()
    <select multiple name="roles" class="span3">
    [8.6586]
    [8.6641]
    <select multiple="multiple" name="roles" class="span3">
  • replacement in src/root/user.tt at line 92
    [8.7143][8.7143:7219]()
    <input type="text" class="span3" name="captcha" value=""></input>
    [8.7143]
    [8.7219]
    <input type="text" class="span3" name="captcha" value=""/>
  • replacement in src/root/user.tt at line 137
    [8.7878][8.19340:19349](),[8.19340][8.19340:19349](),[8.19349][8.37556:37561]()
    </div>
    </p>
    [8.7878]
    [8.6269]
    </div>
    </fieldset>