product list: convert to a proper table
[?]
May 12, 2016, 6:43 PM
RHMUFX4RC7WJP7I6KQO776VQB6Y7PPPZ35ZFCF6O5GZKBD2BKRAQCDependencies
- [2]
W5NB3GQLRestore the links to the contents pages - [3]
TPSX6J6WShow links on products of type "doc" - [4]
T5BIOVJEAdd support for tracking custom metrics - [5]
KBIHF2RLproduct-list: Handle channel along with "file". - [6]
MFHM3RLC* Add an icon for PDFs. - [7]
LL36GPHAadded help, removed nix closure from 'failed build with output' productlist - [8]
Y35C6GHH* One-click installs. - [9]
3PNG7NIBRemove trailing whitespace - [10]
K22TMPH5Make the info tables less compressed - [11]
3ZAJ2ZRPUse popovers for the product list help/details - [12]
HQ54SEMSAdd more spacing between products - [13]
OEPUOUNBUsing twitter bootstrap for more consistent looks for Hydra - [14]
ADP54EI4Fix the spacing around some <h3> headers - [15]
MAOFG2TD* Allow omitting the product number if there is only one product in a - [16]
JFZNAYJX* Showing releases. - [17]
M3WSK4CB - [18]
YVVIXELLMake channels a product type instead of subtype. - [19]
74VYRQ6WAdd an icon for binary distributions - [20]
OW6XV2YS* Allow a view result to be saved as a release. - [21]
A4ZMBK7D* Icon for ISOs. - [22]
GS4SFHCPtemplates: Use uri_for to reference static paths. - [23]
RRCGVQLWRevert sorting build products - [24]
VVDQKVNL - [25]
ELABMHJI* hydra: layout changes - [26]
SMM4HQTP* Put actions related to builds under /build (e.g. /log/<buildid> - [27]
4RHAHTL6 - [28]
XJFHFZCA* Provide some redirects to build products by type so that we can for - [29]
E3X3C5LKReplace ugly link with nice small buttons - [30]
PMNWRTGJAdd multiple output support - [31]
GPRYAAFPhydra: change icon for positive failures - [32]
6KIJX24RGet rid of unnecessary [%- and -%] tags - [33]
JREZM2S2Add channel as a product type. - [34]
NUIKDEHL* A quick hack to list the contents of various types of files (RPM, - [35]
GDCB4LBPAlways show the links related to the build product. - [*]
J5UVLXOK* Start of a basic Catalyst web interface.
Change contents
- replacement in src/root/product-list.tt at line 22
<table class="productList"><table class="table table-striped"><tr><th>Icon</th><th>Type</th><th>Link</th><th>Actions</th></tr> - edit in src/root/product-list.tt at line 46
<a href="[% contents %]"> - replacement in src/root/product-list.tt at line 47
Failed build produced output. Click here to inspect the output.</a>[% WRAPPER makePopover title="Help" classes="btn-mini" %]<p>If you have Nix installed on your machine, this failed build output andall its dependencies can be unpacked into your local Nix store by doing:</p></td><td>Error</td><td><a href="[% contents %]">Failed build produced output. Click here to inspect the output.</a></td><td>[% WRAPPER makePopover title="Help" classes="btn-mini" %]<p>If you have Nix installed on your machine, this failed build output andall its dependencies can be unpacked into your local Nix store by doing:</p> - replacement in src/root/product-list.tt at line 61
<pre><span class="shell-prompt">$ </span>curl [% uri %] | gunzip | nix-store --import</pre><pre><span class="shell-prompt">$ </span>curl [% uri %] | gunzip | nix-store --import</pre> - replacement in src/root/product-list.tt at line 63
<p>The build output can then be found in the path <tt>[% product.path %]</tt>.</p>[% END %]<p>The build output can then be found in the path <tt>[% product.path %]</tt>.</p>[% END %] - edit in src/root/product-list.tt at line 71
[% uri = c.uri_for('/build' build.id 'nix' 'pkg' "${build.nixname}-${build.system}.nixpkg") %]<a href="[% uri %]"> - replacement in src/root/product-list.tt at line 72[6.2449]→[6.621:714](∅→∅),[6.621]→[6.621:714](∅→∅),[6.714]→[6.941:1011](∅→∅),[6.1011]→[6.873:1332](∅→∅),[6.8030]→[6.873:1332](∅→∅),[6.873]→[6.873:1332](∅→∅)
One-click install of Nix package <tt>[% build.nixname %]</tt></a>[% WRAPPER makePopover title="Help" classes="btn-mini" %]<p>If you have Nix installed on your machine, you caninstall this package and all its dependencies automaticallyby clicking on the link above. This requires that you havethe <tt>application/nix-package</tt> MIME type associatedwith the <tt>nix-install-package</tt> program in your webbrowser. Alternatively, you can install it from thecommand-line:</p></td><td>One-Click install</td><td>[% uri = c.uri_for('/build' build.id 'nix' 'pkg' "${build.nixname}-${build.system}.nixpkg") %]<a href="[% uri %]"><tt>[% build.nixname %]</tt></a></td><td>[% WRAPPER makePopover title="Help" classes="btn-mini" %]<p>If you have Nix installed on your machine, you caninstall this package and all its dependencies automaticallyby clicking on the link above. This requires that you havethe <tt>application/nix-package</tt> MIME type associatedwith the <tt>nix-install-package</tt> program in your webbrowser. Alternatively, you can install it from thecommand-line:</p> - replacement in src/root/product-list.tt at line 92
<pre><span class="shell-prompt">$ </span>nix-install-package --non-interactive --url [% uri %]</pre><pre><span class="shell-prompt">$ </span>nix-install-package --non-interactive --url [% uri %]</pre> - replacement in src/root/product-list.tt at line 94[6.31275]→[6.1443:1590](∅→∅),[6.1443]→[6.1443:1590](∅→∅),[6.1590]→[6.1128:1223](∅→∅),[6.1223]→[2.0:71](∅→∅)
<p>If you get an error message “Permission denied”, youshould make sure that you have sufficient access rights tothe Nix store, e.g., run the command as <tt>root</tt>.</p>[% END %]<a class="btn btn-mini" href="[% contents %]">Contents</a><p>If you get an error message “Permission denied”, youshould make sure that you have sufficient access rights tothe Nix store, e.g., run the command as <tt>root</tt>.</p>[% END %]<a class="btn btn-mini" href="[% contents %]">Contents</a> - edit in src/root/product-list.tt at line 103[6.740]→[6.31280:31281](∅→∅),[6.31281]→[6.15527:15635](∅→∅),[6.15635]→[6.804:883](∅→∅),[6.804]→[6.804:883](∅→∅),[6.883]→[6.31282:31283](∅→∅),[6.31283]→[6.896:929](∅→∅),[6.896]→[6.896:929](∅→∅)
[% filename = build.nixname _ (product.subtype ? "-" _ product.subtype : "") _ ".closure.gz" %][% uri = c.uri_for('/build' build.id 'nix' 'closure' filename ) %]<a href="[% uri %]"> - replacement in src/root/product-list.tt at line 104[6.2539]→[6.999:1078](∅→∅),[6.999]→[6.999:1078](∅→∅),[6.1078]→[6.31284:31285](∅→∅),[6.31285]→[6.1224:1294](∅→∅),[6.1294]→[6.1211:1391](∅→∅),[6.8082]→[6.1211:1391](∅→∅),[6.1211]→[6.1211:1391](∅→∅)
Nix closure of path <tt>[% product.path %]</tt></a>[% WRAPPER makePopover title="Help" classes="btn-mini" %]<p>If you have Nix installed on your machine, this build andall its dependencies can be unpacked into your local Nixstore by doing:</p></td><td>Nix closure</td><td>[% filename = build.nixname _ (product.subtype ? "-" _ product.subtype : "") _ ".closure.gz" %][% uri = c.uri_for('/build' build.id 'nix' 'closure' filename ) %] - replacement in src/root/product-list.tt at line 112
<pre><span class="shell-prompt">$ </span>gunzip < [% filename %] | nix-store --import</pre><a href="[% uri %]"><tt>[% product.path %]</tt></a></td><td>[% WRAPPER makePopover title="Help" classes="btn-mini" %]<p>If you have Nix installed on your machine, this build andall its dependencies can be unpacked into your local Nixstore by doing:</p> - replacement in src/root/product-list.tt at line 122
<p>or to download and unpack in one command:</p><pre><span class="shell-prompt">$ </span>gunzip < [% filename %] | nix-store --import</pre> - replacement in src/root/product-list.tt at line 124
<pre><span class="shell-prompt">$ </span>curl [% uri %] | gunzip | nix-store --import</pre><p>or to download and unpack in one command:</p> - replacement in src/root/product-list.tt at line 126
<p>The package can then be found in the path <tt>[%product.path %]</tt>. You’ll probably also want to do</p><pre><span class="shell-prompt">$ </span>curl [% uri %] | gunzip | nix-store --import</pre> - replacement in src/root/product-list.tt at line 128
<pre><span class="shell-prompt">$ </span>nix-env -i [% product.path %]</pre><p>The package can then be found in the path <tt>[%product.path %]</tt>. You’ll probably also want to do</p> - replacement in src/root/product-list.tt at line 131
<p>to actually install the package in your Nix user environment.</p><pre><span class="shell-prompt">$ </span>nix-env -i [% product.path %]</pre> - replacement in src/root/product-list.tt at line 133
<p>If you get the error message “importedarchive lacks a signature”, you should make sure that you havesufficient access rights to the Nix store, e.g., run thecommand as <tt>root</tt>.</p>[% END %]<p>to actually install the package in your Nix user environment.</p> - edit in src/root/product-list.tt at line 135
<p>If you get the error message “importedarchive lacks a signature”, you should make sure that you havesufficient access rights to the Nix store, e.g., run thecommand as <tt>root</tt>.</p>[% END %] - replacement in src/root/product-list.tt at line 147[6.607]→[6.607:620](∅→∅),[6.620]→[6.2427:2456](∅→∅),[6.2529]→[6.2427:2456](∅→∅),[6.2456]→[6.4497:4571](∅→∅),[6.4497]→[6.4497:4571](∅→∅),[6.4571]→[6.2540:2677](∅→∅),[6.2677]→[6.4689:4716](∅→∅),[6.4689]→[6.4689:4716](∅→∅),[6.4716]→[6.2678:2796](∅→∅),[6.2796]→[6.0:28](∅→∅),[6.4815]→[6.0:28](∅→∅),[6.28]→[6.2797:2929](∅→∅),[6.141]→[6.4815:4842](∅→∅),[6.2929]→[6.4815:4842](∅→∅),[6.4815]→[6.4815:4842](∅→∅),[6.4842]→[6.2930:3054](∅→∅),[6.3054]→[6.0:27](∅→∅),[6.4947]→[6.0:27](∅→∅),[6.27]→[6.3055:3183](∅→∅),[6.3183]→[6.0:35](∅→∅),[6.136]→[6.0:35](∅→∅),[6.35]→[6.3184:3334](∅→∅),[6.136]→[6.4947:4976](∅→∅),[6.165]→[6.4947:4976](∅→∅),[6.166]→[6.4947:4976](∅→∅),[6.3334]→[6.4947:4976](∅→∅),[6.4947]→[6.4947:4976](∅→∅),[6.4976]→[5.38:85](∅→∅)
<td><a href="[% uri %]">[% SWITCH product.subtype %][% CASE "source-dist" %]<img src="[% c.uri_for("/static/images/source-dist.png") %]" alt="Source" /> Source distribution <tt>[% product.name %]</tt>[% CASE "rpm" %]<img src="[% c.uri_for("/static/images/rpm.png") %]" alt="RPM" /> RPM package <tt>[% product.name %]</tt>[% CASE "srpm" %]<img src="[% c.uri_for("/static/images/rpm.png") %]" alt="Source RPM" /> Source RPM package <tt>[% product.name %]</tt>[% CASE "deb" %]<img src="[% c.uri_for("/static/images/debian.png") %]" alt="RPM" /> Debian package <tt>[% product.name %]</tt>[% CASE "iso" %]<img src="[% c.uri_for("/static/images/iso.png") %]" alt="ISO" /> ISO-9660 CD/DVD image <tt>[% product.name %]</tt>[% CASE "binary-dist" %]<img src="[% c.uri_for("/static/images/binary-dist.png") %]" alt="Binary distribution" /> Binary distribution <tt>[% product.name %]</tt>[% CASE DEFAULT %][% IF product.type == "channel" %][% SWITCH product.subtype %][% CASE "source-dist" %]<td><img src="[% c.uri_for("/static/images/source-dist.png") %]" alt="Source" /></td><td>Source distribution</td>[% CASE "rpm" %]<td><img src="[% c.uri_for("/static/images/rpm.png") %]" alt="RPM" /></td><td>RPM package</td>[% CASE "srpm" %]<td><img src="[% c.uri_for("/static/images/rpm.png") %]" alt="Source RPM" /></td><td>Source RPM package</td>[% CASE "deb" %]<td><img src="[% c.uri_for("/static/images/debian.png") %]" alt="DEB" /></td><td>Debian package</td>[% CASE "iso" %]<td><img src="[% c.uri_for("/static/images/iso.png") %]" alt="ISO" /></td><td>ISO-9660 CD/DVD image</td>[% CASE "binary-dist" %]<td><img src="[% c.uri_for("/static/images/binary-dist.png") %]" alt="Binary distribution" /></td><td>Binary distribution</td>[% CASE DEFAULT %][% IF product.type == "channel" %]<td> - replacement in src/root/product-list.tt at line 182
Channel expression tarball <tt>[% product.name %]</tt></td><td>Channel expression tarball - replacement in src/root/product-list.tt at line 186
[% ELSE %]File <tt>[% product.name %]</tt> of type <tt>[% product.subtype %]</tt>[% END %]</td>[% ELSE %]<td>File</td><td>[% product.subtype %]</td> - edit in src/root/product-list.tt at line 191[6.5080]→[6.5080:5093](∅→∅),[6.5093]→[6.1627:1733](∅→∅),[6.1733]→[3.534:579](∅→∅),[3.579]→[6.5536:5665](∅→∅),[6.1355]→[6.5536:5665](∅→∅),[6.5536]→[6.5536:5665](∅→∅),[6.5665]→[6.32:200](∅→∅),[6.200]→[6.5815:5911](∅→∅),[6.5815]→[6.5815:5911](∅→∅)
</a>[% WRAPPER makePopover title="Details" classes="btn-mini" %]<table class="info-table">[% INCLUDE renderProductLinks %]<tr><th>File size:</th><td>[% product.filesize %] bytes ([% mibs(product.filesize / (1024 * 1024)) %] MiB)</td></tr><tr><th>SHA-1 hash:</th><td><tt>[% product.sha1hash %]</tt></td></tr><tr><th>SHA-256 hash:</th><td><tt>[% product.sha256hash %]</tt></td></tr><tr><th>Full path:</th><td><tt>[% product.path %]</tt></td></tr></table> - replacement in src/root/product-list.tt at line 192
<a class="btn btn-mini" href="[% contents %]">Contents</a><td><a href="[% uri %]"><tt>[% product.name %]</tt></a></td><td>[% WRAPPER makePopover title="Details" classes="btn-mini" %]<table class="info-table">[% INCLUDE renderProductLinks %]<tr><th>File size:</th><td>[% product.filesize %] bytes ([% mibs(product.filesize / (1024 * 1024)) %] MiB)</td></tr><tr><th>SHA-1 hash:</th><td><tt>[% product.sha1hash %]</tt></td></tr><tr><th>SHA-256 hash:</th><td><tt>[% product.sha256hash %]</tt></td></tr><tr><th>Full path:</th><td><tt>[% product.path %]</tt></td></tr></table>[% END %]<a class="btn btn-mini" href="[% contents %]">Contents</a> - edit in src/root/product-list.tt at line 215
<a href="[% uri %]"> - edit in src/root/product-list.tt at line 216
[% SWITCH product.subtype %][% CASE "coverage" %]Code coverage analysis report[% CASE DEFAULT %]Report of type <tt>[% product.subtype %]</tt>[% END %]</a> - edit in src/root/product-list.tt at line 217
[% SWITCH product.subtype %][% CASE "coverage" %]<td>Code coverage</td><td><a href="[% uri %]">Analysis report</a></td>[% CASE DEFAULT %]<td>Report</td><td><a href="[% uri %]"><tt>[% product.subtype %]</tt></a></td>[% END %]<td></td> - edit in src/root/product-list.tt at line 240
<a href="[% uri %]"> - edit in src/root/product-list.tt at line 245
</td><td>Documentation</td><td><a href="[% uri %]"> - replacement in src/root/product-list.tt at line 259
Documentation of type <tt>[% product.subtype %]</tt>[% product.subtype %] - replacement in src/root/product-list.tt at line 262
[% WRAPPER makePopover title="Details" classes="btn-mini" %]<table class="info-table">[% INCLUDE renderProductLinks %]</table>[% END %]</td><td>[% WRAPPER makePopover title="Details" classes="btn-mini" %]<table class="info-table">[% INCLUDE renderProductLinks %]</table>[% END %] - replacement in src/root/product-list.tt at line 276
Something of type <tt>[% product.type %]</tt> [% product %]<tt>[% product.type %]</tt></td><td></td><td>[% product %]</td><td> - edit in src/root/static/css/hydra.css at line 27
table.productList {border-collapse: separate;border-spacing: 0em 1em;}