Fix indentation of build.tt

[?]
Feb 20, 2013, 4:02 PM
2GUAKGTBTNFFER343SQWSLFYIXXHJLDSGH5JHF7QMC3AVZB7Q3TQC

Dependencies

  • [2] 2VBQRQ2Q Fix some XML well-formedness problems
  • [3] PZL3SZM3 Give every page a consistent title
  • [4] NW3ZYPCM added store path size graph
  • [5] KJOGCBGZ hydra: current build -> this build
  • [6] WWZWUPFI if no previous successful build, do not show changes section
  • [7] TW5ZQX5Z * Move up the build products in the builds page, since they're more
  • [8] RYLUY5ZU Do not load charts lazily for now.
  • [9] L2E6EVE2 * Merged the Build and Job tables.
  • [10] TCXFZZFN * hydra: make chart zoomable and clickable
  • [11] 4C7LKWH4 Consistent capitalisation
  • [12] ELABMHJI * hydra: layout changes
  • [13] 3PNG7NIB Remove trailing whitespace
  • [14] JLICHVE6 * hydra: do not show build history if there are no previous builds
  • [15] Y6AHH4TH Remove the logfile and logSize columns from the database
  • [16] CLJQCY2X * Store info about all the build actions and allow them to be
  • [17] 6KIJX24R Get rid of unnecessary [%- and -%] tags
  • [18] LKPVSUCI Builds page: Remove redundant tab titles
  • [19] LUPEGYR7 Hydra: In case of failure, also show changes between last succesful build and the first failed build after this
  • [20] A52HEFHQ * Allow builds to be restarted (if they failed with a transient error,
  • [21] J5UVLXOK * Start of a basic Catalyst web interface.
  • [22] 6UESWI2Q Ensure that the first tab is selected
  • [23] XHK7IGYI * hdyra: show last succeeded build and changes since on build status summary if build has failed
  • [24] ADP54EI4 Fix the spacing around some <h3> headers
  • [25] PHX2HIVG * Store info about the build inputs in the build record.
  • [26] LQNG45RT hydra: description at changes section
  • [27] YPDYBK5G Show dependencies as a tree rather than a list
  • [28] BD3GRK4B * Get rid of "positive failures" and separate log phases.
  • [29] MOX7XJ2E Merge the BuildSchedulingInfo table into the Builds table
  • [30] OEPUOUNB Using twitter bootstrap for more consistent looks for Hydra
  • [31] PMNWRTGJ Add multiple output support
  • [32] HPEG2RHV Merge the BuildResultInfo table into the Builds table
  • [33] AS5PAYLI
  • [34] JBUTIGW7 hydra: description at changes section
  • [35] ZEEZRG2E clean up build page for build that failed with result
  • [36] G5YSUSNZ In build tables, hide the project, jobset and/or job name if they're constant
  • [37] Z6MDQIGO * A quick (non-Web 2.0) interface to manually add builds to a release.
  • [38] JARRBLZD Bootstrapify the Hydra forms (except the project and jobset edit pages)
  • [39] 67P45PY4
  • [40] WHAFVCEI
  • [41] VCOSLZRP
  • [42] 22JB5HNE make changes section more compact/readable
  • [43] WRIU3S5E * UI for cloning builds (not functional yet).
  • [44] CEARA7OH * hydra: show running buildsteps on build page
  • [45] BIZEPF2T ignore this
  • [46] TH674WKJ add log diff to compare logs to previous builds
  • [47] YFYRNNQU Use <h3> for running/failed build steps
  • [48] ZLQL62FK Only show "Running build steps" if there are running build steps
  • [49] 2R7GHSA4 * hydra: added initial version of build graph
  • [50] KAZWI5G4 * hydra: buildpage, show changes since last build/successful build
  • [51] IVEDB2LG Omit the small build status icon on the build page
  • [52] 3SQCOHZN * minor performance tweaks
  • [53] E3X3C5LK Replace ugly link with nice small buttons
  • [54] ZI535LI6 * hydra: 'new' UI for project/jobset/job/build
  • [55] EX4FXA5T Handle active build steps of aborted builds properly
  • [56] LQNBKF3D
  • [57] BEKA3TMM Hydra/25: At job pages, show the hash of the output

Change contents

  • replacement in src/root/build.tt at line 26
    [4.11990][4.11990:13401](),[4.13589][4.13589:13615](),[4.13615][4.1329:1405](),[4.1405][4.13615:13673](),[4.13615][4.13615:13673]()
    log = c.uri_for('/build' build.id 'nixlog' step.stepnr); %]
    <tr [% IF has_log %] class="clickable" onclick="window.location = '[% log %]'" [% END %]>
    <td>[% step.stepnr %]</td>
    <td>
    [% IF step.type == 0 %]
    Build of <tt>[% INCLUDE renderOutputs outputs=step.buildstepoutputs %]</tt>
    [% ELSE %]
    Substitution of <tt>[% INCLUDE renderOutputs outputs=step.buildstepoutputs %]</tt>
    [% END %]
    </td>
    <td>
    [% IF step.busy == 0;
    INCLUDE renderDuration duration = step.stoptime - step.starttime;
    ELSIF build.finished;
    INCLUDE renderDuration duration = build.stoptime - step.starttime;
    ELSE;
    INCLUDE renderDuration duration = curTime - step.starttime;
    END %]
    </td>
    <td>[% step.machine.split('@').1 %]</td>
    <td>
    [% IF step.busy == 1 %]
    <strong>Building</strong>
    [% ELSIF step.status == 0 %]
    Succeeded
    [% ELSIF step.status == 4 %]
    <span class="error">Aborted</span>
    [% ELSE %]
    <span class="error">Failed: [% HTML.escape(step.errormsg) %]</span>
    [% END %]
    [%%] [%+ IF has_log; INCLUDE renderLogLinks url=log; END %]
    </td>
    </tr>
    [% END %]
    [4.11990]
    [4.13673]
    log = c.uri_for('/build' build.id 'nixlog' step.stepnr); %]
    <tr [% IF has_log %] class="clickable" onclick="window.location = '[% log %]'" [% END %]>
    <td>[% step.stepnr %]</td>
    <td>
    [% IF step.type == 0 %]
    Build of <tt>[% INCLUDE renderOutputs outputs=step.buildstepoutputs %]</tt>
    [% ELSE %]
    Substitution of <tt>[% INCLUDE renderOutputs outputs=step.buildstepoutputs %]</tt>
    [% END %]
    </td>
    <td>
    [% IF step.busy == 0;
    INCLUDE renderDuration duration = step.stoptime - step.starttime;
    ELSIF build.finished;
    INCLUDE renderDuration duration = build.stoptime - step.starttime;
    ELSE;
    INCLUDE renderDuration duration = curTime - step.starttime;
    END %]
    </td>
    <td>[% step.machine.split('@').1 %]</td>
    <td>
    [% IF step.busy == 1 %]
    <strong>Building</strong>
    [% ELSIF step.status == 0 %]
    Succeeded
    [% ELSIF step.status == 4 %]
    <span class="error">Aborted</span>
    [% ELSE %]
    <span class="error">Failed: [% HTML.escape(step.errormsg) %]</span>
    [% END %]
    [%%] [%+ IF has_log; INCLUDE renderLogLinks url=log; END %]
    </td>
    </tr>
  • edit in src/root/build.tt at line 60
    [4.13691]
    [4.13691]
    [% END %]
  • edit in src/root/build.tt at line 65
    [4.1632]
    [4.7438]
    <ul class="nav nav-tabs">
    <li class="active"><a href="#tabs-summary" data-toggle="tab">Summary</a></li>
    <li><a href="#tabs-information" data-toggle="tab">Details</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 %]
    </ul>
  • replacement in src/root/build.tt at line 75
    [4.7439][4.0:128](),[4.128][4.161:244](),[4.5848][4.161:244](),[4.244][4.5935:6266](),[4.5935][4.5935:6266](),[4.181][4.762:873](),[4.6266][4.762:873](),[4.762][4.762:873](),[4.873][4.6267:6394](),[4.6394][4.973:1021](),[4.4260][4.973:1021](),[4.1021][4.6395:6451]()
    <ul class="nav nav-tabs">
    <li class="active"><a href="#tabs-summary" data-toggle="tab">Summary</a></li>
    <li><a href="#tabs-information" data-toggle="tab">Details</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 %]
    </ul>
    <div id="generic-tabs" class="tab-content">
    <div id="tabs-summary" class="tab-pane active">
    [4.7439]
    [4.6451]
    <div id="generic-tabs" class="tab-content">
    <div id="tabs-summary" class="tab-pane active">
  • replacement in src/root/build.tt at line 79
    [4.6452][4.6452:6492]()
    <table class="layoutTable">
    [4.6452]
    [4.6492]
    <table class="layoutTable">
    <tr>
    <td>
    [% INCLUDE renderBuildStatusIcon size=128, build=build %]
    </td>
    <td>
    <table class="layoutTable">
    <tr>
    <th>Build ID:</th>
    <td>[% build.id %]</td>
    </tr>
    <tr>
    <th>Status:</th>
    <td>[% INCLUDE renderStatus build=build icon=0 %]</td>
    </tr>
    <tr>
    <th>System:</th>
    <td><tt>[% build.system %]</tt></td>
    </tr>
    [% IF build.releasename %]
    <tr>
    <th>Release name:</th>
    <td><tt>[% HTML.escape(build.releasename) %]</tt></td>
    </tr>
    [% ELSE %]
    <tr>
    <th>Nix name:</th>
    <td><tt>[% build.nixname %]</tt></td>
    </tr>
    [% END %]
    [% IF build.iscachedbuild %]
    <tr>
    <th>Cached from:</th>
    <td>[% INCLUDE renderFullBuildLink build=cachedBuild %]</td>
    </tr>
    [% ELSE %]
    <tr>
    <th>Duration:</th>
    <td>[% INCLUDE renderDuration duration = build.stoptime - build.starttime %]; finished at [% INCLUDE renderDateTime timestamp = build.stoptime %]</td>
    </tr>
    [% END %]
    [% IF log_exists(build.drvpath) %]
  • edit in src/root/build.tt at line 122
    [4.6511]
    [4.6511]
    <th>Logfile:</th>
  • replacement in src/root/build.tt at line 124
    [4.6532][4.6532:6622]()
    [% INCLUDE renderBuildStatusIcon size=128, build=build %]
    [4.6532]
    [4.6622]
    <a class="btn btn-mini" href="[% c.uri_for('/build' build.id 'log') %]">pretty</a>
    <a class="btn btn-mini" href="[% c.uri_for('/build' build.id 'log' 'raw') %]">raw</a>
    <a class="btn btn-mini" href="[% c.uri_for('/build' build.id 'log' 'tail-reload') %]">tail</a>
  • edit in src/root/build.tt at line 128
    [4.6644][4.6644:6879](),[4.6879][4.0:301](),[4.301][4.6879:6919](),[4.6879][4.6879:6919](),[4.6919][3.349:554](),[3.554][4.6919:7546](),[4.6919][4.6919:7546](),[4.8045][4.13716:14146](),[4.14146][4.8103:8244](),[4.8103][4.8103:8244](),[4.8244][4.14147:14329](),[4.14329][4.8740:8870](),[4.8740][4.8740:8870](),[4.8870][4.10181:10250](),[4.10250][4.8927:9073](),[4.8927][4.8927:9073](),[4.9073][4.10251:10376](),[4.10376][4.9210:9680](),[4.9210][4.9210:9680]()
    <td>
    <table class="layoutTable">
    <tr>
    <th>Build ID:</th>
    <td>[% build.id %]</td>
    </tr>
    <tr>
    <th>Status:</th>
    <td>
    [% INCLUDE renderStatus build=build icon=0 %]
    </td>
    </tr>
    <tr>
    <th>System:</th>
    <td><tt>[% build.system %]</tt></td>
    </tr>
    [% IF build.releasename %]
    <tr>
    <th>Release name:</th>
    <td><tt>[% HTML.escape(build.releasename) %]</tt></td>
    </tr>
    [% ELSE %]
    <tr>
    <th>Nix name:</th>
    <td><tt>[% build.nixname %]</tt></td>
    </tr>
    [% END %]
    [% IF build.iscachedbuild %]
    <tr>
    <th>Cached from:</th>
    <td>
    [% INCLUDE renderFullBuildLink build=cachedBuild %]
    </td>
    </tr>
    [% ELSE %]
    <tr>
    <th>Duration:</th>
    <td>
    [% INCLUDE renderDuration duration = build.stoptime - build.starttime %]; finished at [% INCLUDE renderDateTime timestamp = build.stoptime %]
    </td>
    </tr>
    [% END %]
    [% IF log_exists(build.drvpath) %]
    <tr>
    <th>Logfile:</th>
    <td>
    <a class="btn btn-mini" href="[% c.uri_for('/build' build.id 'log') %]">pretty</a>
    <a class="btn btn-mini" href="[% c.uri_for('/build' build.id 'log' 'raw') %]">raw</a>
    <a class="btn btn-mini" href="[% c.uri_for('/build' build.id 'log' 'tail-reload') %]">tail</a>
    </td>
    </tr>
    [% END %]
    </table>
    </td>
  • replacement in src/root/build.tt at line 129
    [4.9700][4.9700:9721]()
    </table>
    [4.9700]
    [4.842]
    [% END %]
    </table>
    </td>
    </tr>
    </table>
  • replacement in src/root/build.tt at line 135
    [4.843][4.9722:9774](),[4.9774][3.555:577](),[3.577][4.9774:9896](),[4.9774][4.9774:9896](),[4.9896][4.1776:2148](),[4.1776][4.1776:2148](),[4.2148][4.9897:9947]()
    [% IF c.user_exists && available %]
    <br/>
    <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>
    </form>
    [% END %]
    [4.843]
    [4.9947]
    [% IF c.user_exists && available %]
    <br/>
    <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>
    </form>
    [% END %]
  • replacement in src/root/build.tt at line 148
    [4.9948][4.9948:9993]()
    [% IF build.buildproducts %]
    [4.9948]
    [4.1105]
    [% IF build.buildproducts %]
  • replacement in src/root/build.tt at line 150
    [4.1106][4.9994:10042]()
    <h3>Build products</h3>
    [4.1106]
    [4.10042]
    <h3>Build products</h3>
  • replacement in src/root/build.tt at line 152
    [4.10043][4.10043:10209]()
    [% IF !available %]
    <p class="error">Note: this build is no longer available.</p>
    [% END %]
    [4.10043]
    [4.10209]
    [% IF !available %]
    <p class="error">Note: this build is no longer available.</p>
    [% END %]
  • replacement in src/root/build.tt at line 156
    [4.10210][4.10210:10347]()
    [% INCLUDE renderProductList latestRoot=['/job' build.project.name build.jobset.name build.job.name 'latest'] %]
    [4.10210]
    [4.10347]
    [% INCLUDE renderProductList latestRoot=['/job' build.project.name build.jobset.name build.job.name 'latest'] %]
  • replacement in src/root/build.tt at line 158
    [4.10348][4.10348:10374]()
    [% END %]
    [4.10348]
    [4.1106]
    [% END %]
  • replacement in src/root/build.tt at line 160
    [4.1107][4.174:202](),[4.202][4.83:124](),[4.83][4.83:124](),[4.62][4.0:58](),[4.124][4.0:58](),[4.1146][4.0:58](),[4.58][4.10375:10393]()
    [% IF build.busy %]
    <h3>Running build steps</h3>
    [% INCLUDE renderBuildSteps type="Running" %]
    [% END %]
    [4.1107]
    [4.31]
    [% IF build.busy %]
    <h3>Running build steps</h3>
    [% INCLUDE renderBuildSteps type="Running" %]
    [% END %]
  • replacement in src/root/build.tt at line 165
    [4.32][4.10394:10536](),[4.10536][4.125:185](),[4.7982][4.125:185](),[4.185][4.10537:10648]()
    [% IF build.finished %]
    [% IF build.buildsteps && build.buildstatus != 0 && build.buildstatus != 6 %]
    <h3>Failed build steps</h3>
    [% INCLUDE renderBuildSteps type="Failed" %]
    [% END %]
    [4.32]
    [4.126]
    [% IF build.finished %]
    [% IF build.buildsteps && build.buildstatus != 0 && build.buildstatus != 6 %]
    <h3>Failed build steps</h3>
    [% INCLUDE renderBuildSteps type="Failed" %]
    [% END %]
  • replacement in src/root/build.tt at line 171
    [4.127][4.0:41](),[4.41][4.28:57](),[4.57][4.1071:1135](),[4.79][4.1071:1135](),[4.1135][4.49:73](),[4.49][4.49:73](),[4.73][4.273:404](),[4.404][4.1282:1386](),[4.1386][4.339:638](),[4.638][4.1682:1742](),[4.1682][4.1682:1742](),[4.1742][4.639:899](),[4.899][4.2000:2026](),[4.2000][4.2000:2026](),[4.40][4.307:353](),[4.727][4.307:353](),[4.2026][4.307:353](),[4.307][4.307:353](),[4.353][4.1136:1817](),[4.1817][4.10649:10671](),[4.10671][4.957:1356](),[4.957][4.957:1356]()
    [% IF prevSuccessfulBuild %]
    <h3>Changes</h3>
    <table class="table table-striped table-condensed">
    <thead>
    <th>Last successful build <tt>[% INCLUDE renderDateTime timestamp = prevSuccessfulBuild.timestamp %]</tt></th>
    [% IF prevSuccessfulBuild && firstBrokenBuild && firstBrokenBuild.id != build.id %]
    <th>First broken build <tt>[% INCLUDE renderDateTime timestamp = firstBrokenBuild.timestamp %]</tt>
    <a class="btn btn-mini" href="[% c.uri_for(c.controller('API').action_for('logdiff') prevSuccessfulBuild.id firstBrokenBuild.id ) %]">log diff</a>
    </th>
    [% END %]
    <th>This build <tt>[% INCLUDE renderDateTime timestamp = build.timestamp %]</tt>
    <a class="btn btn-mini" href="[% c.uri_for(c.controller('API').action_for('logdiff') prevSuccessfulBuild.id build.id) %]">log diff</a>
    </th>
    </thead>
    <tr>
    <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>
    </tr>
    <tr>
    <td></td>
    [% IF prevSuccessfulBuild && firstBrokenBuild && firstBrokenBuild.id != build.id %]<td>[% INCLUDE renderInputDiff build1=prevSuccessfulBuild , build2=firstBrokenBuild %]</td>[% END %]
    <td>[% INCLUDE renderInputDiff build1=prevSuccessfulBuild , build2=build %]</td>
    </tr>
    </table>
    [4.127]
    [4.42]
    [% IF prevSuccessfulBuild %]
    <h3>Changes</h3>
    <table class="table table-striped table-condensed">
    <thead>
    <th>Last successful build <tt>[% INCLUDE renderDateTime timestamp = prevSuccessfulBuild.timestamp %]</tt></th>
    [% IF prevSuccessfulBuild && firstBrokenBuild && firstBrokenBuild.id != build.id %]
    <th>First broken build <tt>[% INCLUDE renderDateTime timestamp = firstBrokenBuild.timestamp %]</tt>
    <a class="btn btn-mini" href="[% c.uri_for(c.controller('API').action_for('logdiff') prevSuccessfulBuild.id firstBrokenBuild.id ) %]">log diff</a>
    </th>
  • edit in src/root/build.tt at line 181
    [4.64]
    [4.56]
    <th>This build <tt>[% INCLUDE renderDateTime timestamp = build.timestamp %]</tt>
    <a class="btn btn-mini" href="[% c.uri_for(c.controller('API').action_for('logdiff') prevSuccessfulBuild.id build.id) %]">log diff</a>
    </th>
    </thead>
    <tr>
    <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>
    </tr>
    <tr>
    <td></td>
    [% IF prevSuccessfulBuild && firstBrokenBuild && firstBrokenBuild.id != build.id %]<td>[% INCLUDE renderInputDiff build1=prevSuccessfulBuild , build2=firstBrokenBuild %]</td>[% END %]
    <td>[% INCLUDE renderInputDiff build1=prevSuccessfulBuild , build2=build %]</td>
    </tr>
    </table>
    [% END %]
  • replacement in src/root/build.tt at line 198
    [4.57][4.10672:10746]()
    [% IF build.errormsg && build.buildstatus != 5 %]
    [4.57]
    [4.10746]
    [% IF build.errormsg && build.buildstatus != 5 %]
    <h2 id="nix-error">Nix error output</h2>
    <pre class="buildlog">[% HTML.escape(build.errormsg) %]</pre>
    [% END %]
  • replacement in src/root/build.tt at line 203
    [4.10747][4.10747:10820]()
    <h2 id="nix-error">Nix error output</h2>
    [4.10747]
    [4.151]
    [% END %]
  • replacement in src/root/build.tt at line 205
    [4.152][4.0:94](),[4.94][4.10916:10976](),[4.10916][4.10916:10976]()
    <pre class="buildlog">[% HTML.escape(build.errormsg) %]</pre>
    [% END %]
    [% END %]
    [4.152]
    [4.10377]
    [% IF logtext %]
    <h2>Log</h2>
    <pre class="buildlog">[% HTML.escape(logtext) %]</pre>
    [% END %]
  • replacement in src/root/build.tt at line 210
    [4.10378][4.10976:11046](),[4.10976][4.10976:11046](),[4.11046][4.95:174](),[4.174][4.11127:11221](),[4.11127][4.11127:11221]()
    [% IF logtext %]
    <h2>Log</h2>
    <pre class="buildlog">[% HTML.escape(logtext) %]</pre>
    [% END %]
    </div>
    <div id="tabs-information" class="tab-pane">
    [4.10378]
    [4.11259]
    </div>
  • replacement in src/root/build.tt at line 212
    [4.11260][4.11260:11304](),[4.12179][4.12179:12625](),[4.12871][4.12871:13869](),[4.13869][4.10379:10510](),[4.10510][4.14009:14197](),[4.14009][4.14009:14197](),[4.14370][4.14370:14763](),[4.14763][4.14330:14379](),[4.14379][4.14811:14836](),[4.14811][4.14811:14836](),[4.14836][4.14380:14466](),[4.14466][4.14887:15121](),[4.14887][4.14887:15121](),[4.5872][4.15122:15145](),[4.15370][4.15370:15589](),[4.15871][4.15871:16372](),[4.17322][4.17322:18176](),[4.18176][4.5873:5901](),[4.10056][4.5873:5901](),[4.5901][4.18177:18270]()
    <table class="layoutTable">
    [% IF build.nixexprinput %]
    <tr>
    <th>Nix expression:</th>
    <td>file <tt>[% HTML.escape(build.nixexprpath) %]</tt> in input <tt>[% HTML.escape(build.nixexprinput) %]</tt></td>
    </tr>
    [% END %]
    <tr>
    <th>Nix name:</th>
    <td><tt>[% build.nixname %]</tt></td>
    </tr>
    <tr>
    <th>Short description:</th>
    <td>[% IF build.description %][% HTML.escape(build.description) %][% ELSE %]<em>(not given)</em>[% END %]</td>
    </tr>
    <tr>
    <th>Long description:</th>
    <td>[% IF build.longdescription %][% HTML.escape(build.longdescription) %][% ELSE %]<em>(not given)</em>[% END %]</td>
    </tr>
    <tr>
    <th>License:</th>
    <td>[% IF build.license %][% HTML.escape(build.license) %][% ELSE %]<em>(not given)</em>[% END %]</td>
    </tr>
    <tr>
    <th>Homepage:</th>
    <td>[% IF build.homepage %]<a [% HTML.attributes(href => build.homepage) %]>[% HTML.escape(build.homepage) %]</a>[% ELSE %]<em>(not given)</em>[% END %]</td>
    </tr>
    <tr>
    <th>Maintainer(s):</th>
    <td>[% IF build.maintainers %][% HTML.escape(build.maintainers) %][% ELSE %]<em>(not given)</em>[% END %]</td>
    </tr>
    <tr>
    <th>System:</th>
    <td><tt>[% build.system %]</tt></td>
    </tr>
    <tr>
    <th>Derivation store path:</th>
    <td>
    <tt>[% build.drvpath %]</tt>
    [% IF drvAvailable %]
    (<a href="[% c.uri_for('/build' build.id 'deps') %]#buildtime">build-time dependencies</a>)
    [% END %]
    </td>
    </tr>
    <tr>
    <th>Output store paths:</th>
    <td>
    <tt>[% INCLUDE renderOutputs outputs=build.buildoutputs %]</tt>
    [% IF available %]
    (<a href="[% c.uri_for('/build' build.id 'deps') %]#runtime">runtime dependencies</a>)
    [% END %]
    </td>
    </tr>
    <tr>
    <th>Time added:</th>
    <td>[% INCLUDE renderDateTime timestamp = build.timestamp %]</td>
    </tr>
    [% IF build.finished && build.buildstatus != 4 %]
    <tr>
    <th>Build started:</th>
    <td>[% IF build.starttime %][% INCLUDE renderDateTime timestamp = build.starttime %][% ELSE %]<em>(cached build)</em>[% END %]</td>
    </tr>
    <tr>
    <th>Build finished:</th>
    <td>[% IF build.stoptime %][% INCLUDE renderDateTime timestamp = build.stoptime %][% ELSE %]<em>(cached build)</em>[% END %]</td>
    </tr>
    [% END %]
    [% IF !build.finished %]
    <tr>
    <th>Priority:</th>
    <td>[% build.priority %]</td>
    </tr>
    [% END %]
    [% IF build.finished && build.buildproducts %]
    <tr>
    <th>Availability:</th>
    <td>
    [% IF !available %]
    <em>Build output is no longer available</em>
    [% ELSIF build.keep %]
    <em>Build output will be kept permanently</em>
    [% ELSE %]
    <em>Build output is available, but may be garbage-collected</em>
    [% END %]
    </td>
    </tr>
    [% END %]
    </table>
    </div>
    <div id="tabs-buildinputs" class="tab-pane">
    [4.11260]
    [4.18309]
    <div id="tabs-information" class="tab-pane">
  • replacement in src/root/build.tt at line 214
    [4.18310][4.18310:18575](),[4.18575][4.175:231](),[4.231][4.18632:18916](),[4.18632][4.18632:18916](),[4.18916][2.0:85](),[2.85][4.19005:19479](),[4.19005][4.19005:19479](),[4.19479][4.232:262](),[4.262][4.19510:19562](),[4.19510][4.19510:19562]()
    <table class="tablesorter table table-striped table-condensed">
    <thead>
    <tr><th>Name</th><th>Type</th><th>Value</th><th>Revision</th><th>Store path</th></tr>
    </thead>
    <tbody>
    [% FOREACH input IN build.inputs %]
    <tr>
    <td><tt>[% input.name %]</tt></td>
    <td><tt>[% type = input.type; inputTypes.$type %]</tt></td>
    <td>
    [% IF input.type == "build" || input.type == "sysbuild" %]
    [% INCLUDE renderFullBuildLink build=input.dependency %]
    [% ELSIF input.type == "string" || input.type == "boolean" %]
    <tt>"[% input.value %]"</tt>
    [% ELSE %]
    <tt>[% input.uri %]</tt>
    [% END %]
    </td>
    <td>[% IF input.revision %][% input.revision %][% END %]</td>
    <td><tt>[% input.path %]</tt></td>
    </tr>
    [% END %]
    </tbody>
    </table>
    [4.18310]
    [4.577]
    <table class="layoutTable">
    [% IF build.nixexprinput %]
    <tr>
    <th>Nix expression:</th>
    <td>file <tt>[% HTML.escape(build.nixexprpath) %]</tt> in input <tt>[% HTML.escape(build.nixexprinput) %]</tt></td>
    </tr>
    [% END %]
    <tr>
    <th>Nix name:</th>
    <td><tt>[% build.nixname %]</tt></td>
    </tr>
    <tr>
    <th>Short description:</th>
    <td>[% IF build.description %][% HTML.escape(build.description) %][% ELSE %]<em>(not given)</em>[% END %]</td>
    </tr>
    <tr>
    <th>Long description:</th>
    <td>[% IF build.longdescription %][% HTML.escape(build.longdescription) %][% ELSE %]<em>(not given)</em>[% END %]</td>
    </tr>
    <tr>
    <th>License:</th>
    <td>[% IF build.license %][% HTML.escape(build.license) %][% ELSE %]<em>(not given)</em>[% END %]</td>
    </tr>
    <tr>
    <th>Homepage:</th>
    <td>[% IF build.homepage %]<a [% HTML.attributes(href => build.homepage) %]>[% HTML.escape(build.homepage) %]</a>[% ELSE %]<em>(not given)</em>[% END %]</td>
    </tr>
    <tr>
    <th>Maintainer(s):</th>
    <td>[% IF build.maintainers %][% HTML.escape(build.maintainers) %][% ELSE %]<em>(not given)</em>[% END %]</td>
    </tr>
    <tr>
    <th>System:</th>
    <td><tt>[% build.system %]</tt></td>
    </tr>
    <tr>
    <th>Derivation store path:</th>
    <td><tt>[% build.drvpath %]</tt>[% IF drvAvailable %] (<a href="[% c.uri_for('/build' build.id 'deps') %]#buildtime">build-time dependencies</a>)[% END %]</td>
    </tr>
    <tr>
    <th>Output store paths:</th>
    <td><tt>[% INCLUDE renderOutputs outputs=build.buildoutputs %]</tt> [% IF available %](<a href="[% c.uri_for('/build' build.id 'deps') %]#runtime">runtime dependencies</a>)[% END %]</td>
    </tr>
    <tr>
    <th>Time added:</th>
    <td>[% INCLUDE renderDateTime timestamp = build.timestamp %]</td>
    </tr>
    [% IF build.finished && build.buildstatus != 4 %]
    <tr>
    <th>Build started:</th>
    <td>[% IF build.starttime %][% INCLUDE renderDateTime timestamp = build.starttime %][% ELSE %]<em>(cached build)</em>[% END %]</td>
    </tr>
    <tr>
    <th>Build finished:</th>
    <td>[% IF build.stoptime %][% INCLUDE renderDateTime timestamp = build.stoptime %][% ELSE %]<em>(cached build)</em>[% END %]</td>
    </tr>
    [% END %]
    [% IF !build.finished %]
    <tr>
    <th>Priority:</th>
    <td>[% build.priority %]</td>
    </tr>
    [% END %]
    [% IF build.finished && build.buildproducts %]
    <tr>
    <th>Availability:</th>
    <td>
    [% IF !available %]
    <em>Build output is no longer available</em>
    [% ELSIF build.keep %]
    <em>Build output will be kept permanently</em>
    [% ELSE %]
    <em>Build output is available, but may be garbage-collected</em>
    [% END %]
    </td>
    </tr>
    [% END %]
    </table>
    </div>
  • replacement in src/root/build.tt at line 294
    [4.578][4.578:591]()
    <p/>
    [4.578]
    [4.1147]
    <div id="tabs-buildinputs" class="tab-pane">
  • replacement in src/root/build.tt at line 296
    [4.1148][4.1148:1175](),[4.1175][4.10511:10649](),[4.694][4.1277:1351](),[4.2118][4.1277:1351](),[4.10649][4.1277:1351](),[4.1277][4.1277:1351]()
    [% IF prevBuild %]
    <h3>Changes since previous build: [% INCLUDE renderFullBuildLink build=prevBuild, hideProjectName=1, hideJobsetName=1 %]</h3>
    [% INCLUDE renderInputDiff build2=build , build1=prevBuild %]
    [4.1148]
    [4.1646]
    <table class="tablesorter table table-striped table-condensed">
    <thead>
    <tr><th>Name</th><th>Type</th><th>Value</th><th>Revision</th><th>Store path</th></tr>
    </thead>
    <tbody>
    [% FOREACH input IN build.inputs %]
    <tr>
    <td><tt>[% input.name %]</tt></td>
    <td><tt>[% type = input.type; inputTypes.$type %]</tt></td>
    <td>
    [% IF input.type == "build" || input.type == "sysbuild" %]
    [% INCLUDE renderFullBuildLink build=input.dependency %]
    [% ELSIF input.type == "string" || input.type == "boolean" %]
    <tt>"[% input.value %]"</tt>
    [% ELSE %]
    <tt>[% input.uri %]</tt>
    [% END %]
    </td>
    <td>[% IF input.revision %][% input.revision %][% END %]</td>
    <td><tt>[% input.path %]</tt></td>
    </tr>
  • edit in src/root/build.tt at line 318
    [4.1664]
    [4.19563]
    </tbody>
    </table>
  • replacement in src/root/build.tt at line 321
    [4.19564][4.19564:19579]()
    </div>
    [4.19564]
    [4.265]
    <br />
  • replacement in src/root/build.tt at line 323
    [4.266][4.1943:1974](),[4.1974][4.19580:19635](),[4.19675][4.19675:19901](),[4.19901][4.2094:2112](),[4.2094][4.2094:2112]()
    [% IF relatedbuilds %]
    <div id="tabs-relatedbuilds" class="tab-pane">
    <p>The following builds are part of the same jobset evaluation that produced this build.</p>
    [% INCLUDE renderBuildList builds=relatedbuilds hideProjectName=1 hideJobsetName=1 %]
    </div>
    [% END %]
    [4.266]
    [4.7981]
    [% IF prevBuild %]
    <h3>Changes since previous build: [% INCLUDE renderFullBuildLink build=prevBuild, hideProjectName=1, hideJobsetName=1 %]</h3>
    [% INCLUDE renderInputDiff build2=build , build1=prevBuild %]
    [% END %]
  • edit in src/root/build.tt at line 328
    [4.6736][4.3950:3976](),[4.3976][4.186:232](),[4.261][4.261:307]()
    [% IF build.buildsteps %]
    <div id="tabs-buildsteps" class="tab-pane">
    [% INCLUDE renderBuildSteps type="All" %]
  • edit in src/root/build.tt at line 329
    [4.316][4.4676:4686](),[4.13749][4.4676:4686](),[4.4676][4.4676:4686]()
    [% END %]
  • edit in src/root/build.tt at line 330
    [4.19903]
    [4.4687]
    [% IF relatedbuilds %]
    <div id="tabs-relatedbuilds" class="tab-pane">
    <p>The following builds are part of the same jobset evaluation that produced this build.</p>
    [% INCLUDE renderBuildList builds=relatedbuilds hideProjectName=1 hideJobsetName=1 %]
    </div>
    [% END %]
  • replacement in src/root/build.tt at line 337
    [4.1321][4.4184:4210](),[4.109][4.4184:4210]()
    [% IF build.dependents %]
    [4.4688]
    [4.2214]
    [% IF build.buildsteps %]
    <div id="tabs-buildsteps" class="tab-pane">
    [% INCLUDE renderBuildSteps type="All" %]
    </div>
    [% END %]
    [% IF build.dependents %]
  • replacement in src/root/build.tt at line 346
    [4.146][4.19904:19937]()
    <h2>Used by</h2>
    [4.146]
    [4.19937]
    <h2>Used by</h2>
  • replacement in src/root/build.tt at line 348
    [4.19938][4.19938:20016]()
    <p>The following builds have used this build as an input:</p>
    [4.19938]
    [4.20016]
    <p>The following builds have used this build as an input:</p>
  • replacement in src/root/build.tt at line 350
    [4.20017][4.20017:20272](),[4.20272][4.263:323](),[4.323][4.20333:20695](),[4.20333][4.20333:20695](),[4.20695][4.324:354](),[4.354][4.20726:20778](),[4.20726][4.20726:20778]()
    <table class="tablesorter table table-condensed table-striped">
    <thead>
    <tr><th>Build</th><th>Input name</th><th>System</th><th>Timestamp</th></tr>
    </thead>
    <tbody>
    [% FOREACH input IN build.dependents %]
    <tr>
    <td>[% INCLUDE renderFullBuildLink build=input.build %]</td>
    <td><tt>[% input.name %]</tt></td>
    <td><tt>[% input.build.system %]</tt></td>
    <td>[% INCLUDE renderDateTime timestamp = input.build.timestamp %]</td>
    </tr>
    [% END %]
    </tbody>
    </table>
    [4.20017]
    [4.14385]
    <table class="tablesorter table table-condensed table-striped">
    <thead>
    <tr><th>Build</th><th>Input name</th><th>System</th><th>Timestamp</th></tr>
    </thead>
    <tbody>
    [% FOREACH input IN build.dependents %]
    <tr>
    <td>[% INCLUDE renderFullBuildLink build=input.build %]</td>
    <td><tt>[% input.name %]</tt></td>
    <td><tt>[% input.build.system %]</tt></td>
    <td>[% INCLUDE renderDateTime timestamp = input.build.timestamp %]</td>
    </tr>
    [% END %]
    </tbody>
    </table>
  • replacement in src/root/build.tt at line 366
    [4.14396][4.753:763](),[4.8443][4.753:763](),[4.763][4.82:102](),[4.102][4.2326:2371](),[4.2371][4.54:103](),[4.873][4.54:103](),[4.103][4.20779:20949](),[4.275][4.8443:8444](),[4.763][4.8443:8444](),[4.873][4.8443:8444](),[4.1192][4.8443:8444](),[4.20949][4.8443:8444](),[4.8443][4.8443:8444](),[4.938][4.938:1016](),[4.1016][4.276:364](),[4.364][4.1016:1065](),[4.1016][4.1016:1065](),[4.1065][4.365:399](),[4.399][4.8776:9020](),[4.9020][4.20950:20973](),[4.717][4.1378:1379](),[4.20973][4.1378:1379](),[4.1378][4.1378:1379](),[4.2290][4.2290:2310](),[4.2310][4.718:785](),[4.785][4.2377:2440](),[4.2377][4.2377:2440](),[4.2440][4.786:922](),[4.922][4.2515:2522](),[4.2515][4.2515:2522]()
    [% END %]
    [% IF prevBuilds %]
    <div id="tabs-history" class="tab-pane">
    <h2>Build time history (in seconds)</h2>
    <div id="placeholder" style="width:800px;height:400px;"></div>
    <div id="overview" style="margin-left:50px;margin-top:20px;width:600px;height:50px"></div>
    <script src="/static/js/flot/jquery.flot.js" type="text/javascript"></script>
    <script src="/static/js/flot/jquery.flot.selection.js" type="text/javascript"></script>
    <script type="text/javascript">
    $(function() {
    var d = [];
    var ids = [];
    [% FOREACH prevbuild IN prevBuilds %][% IF prevbuild.build.starttime != 0 %]
    d.push([[% prevbuild.starttime * 1000 %],[% prevbuild.get_column('actualBuildTime') %]]);
    ids[[% prevbuild.starttime * 1000 %]] = [% prevbuild.id %] ;
    [% END %][% END %]
    var options = {
    xaxis: { mode: "time" },
    selection: { mode: "x" },
    points: { show: true },
    lines: { show: true },
    grid: {
    clickable: true,
    hoverable: true,
    hoverFill: '#444',
    hoverRadius: 4,
    },
    };
    [4.14396]
    [4.20974]
    [% END %]
  • edit in src/root/build.tt at line 368
    [4.20975]
    [4.974]
    [% IF prevBuilds %]
    <div id="tabs-history" class="tab-pane">
    <h2>Build time history (in seconds)</h2>
    <div id="placeholder" style="width:800px;height:400px;"></div>
    <div id="overview" style="margin-left:50px;margin-top:20px;width:600px;height:50px"></div>
  • replacement in src/root/build.tt at line 374
    [4.975][4.975:1039]()
    var plot = $.plot($("#placeholder"), [d], options);
    [4.975]
    [4.20976]
    <script src="/static/js/flot/jquery.flot.js" type="text/javascript"></script>
    <script src="/static/js/flot/jquery.flot.selection.js" type="text/javascript"></script>
    <script type="text/javascript">
    $(function() {
    var d = [];
    var ids = [];
    [% FOREACH prevbuild IN prevBuilds; IF prevbuild.build.starttime != 0 %]
    d.push([[% prevbuild.starttime * 1000 %],[% prevbuild.get_column('actualBuildTime') %]]);
    ids[[% prevbuild.starttime * 1000 %]] = [% prevbuild.id %] ;
    [% END; END %]
  • replacement in src/root/build.tt at line 385
    [4.20977][4.1044:1414](),[4.1044][4.1044:1414](),[4.1414][4.20978:20979](),[4.20979][4.1416:1451](),[4.1416][4.1416:1451]()
    var overview = $.plot($("#overview"), [d], {
    series: {
    lines: { show: true, lineWidth: 1 },
    shadowSize: 0
    },
    xaxis: { ticks: [], mode: "time" },
    yaxis: { ticks: [], min: 0, autoscaleMargin: 0.1 },
    selection: { mode: "x" }
    });
    // now connect the two
    [4.20977]
    [4.20980]
    var options = {
    xaxis: { mode: "time" },
    selection: { mode: "x" },
    points: { show: true },
    lines: { show: true },
    grid: {
    clickable: true,
    hoverable: true,
    hoverFill: '#444',
    hoverRadius: 4,
    },
    };
  • edit in src/root/build.tt at line 398
    [4.20981][4.1456:1807](),[4.1456][4.1456:1807]()
    $("#placeholder").bind("plotselected", function (event, ranges) {
    // do the zooming
    plot = $.plot($("#placeholder"), [d],
    $.extend(true, {}, options, {
    xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to }
    }));
  • replacement in src/root/build.tt at line 399
    [4.20983][4.1809:1954](),[4.1809][4.1809:1954]()
    // don't fire event on the overview to prevent eternal loop
    overview.setSelection(ranges, true);
    });
    [4.20983]
    [4.20984]
    var plot = $.plot($("#placeholder"), [d], options);
  • replacement in src/root/build.tt at line 401
    [4.20985][4.1959:2093](),[4.1959][4.1959:2093]()
    $("#overview").bind("plotselected", function (event, ranges) {
    plot.setSelection(ranges);
    });
    [4.20985]
    [4.2093]
    var overview = $.plot($("#overview"), [d], {
    series: {
    lines: { show: true, lineWidth: 1 },
    shadowSize: 0
    },
    xaxis: { ticks: [], mode: "time" },
    yaxis: { ticks: [], min: 0, autoscaleMargin: 0.1 },
    selection: { mode: "x" }
    });
  • replacement in src/root/build.tt at line 411
    [4.2094][4.2094:2168](),[4.2168][4.0:204](),[4.204][4.20986:21020](),[4.21020][4.264:270](),[4.264][4.264:270]()
    $("#placeholder").bind("plotclick", function (e, pos, item) {
    if (item) {
    plot.highlight(item.series, item.datapoint);
    buildid = ids[item.datapoint[0]];
    window.location = "/build/"+buildid;
    }
    });
    });
    [4.2094]
    [4.270]
    // now connect the two
  • replacement in src/root/build.tt at line 413
    [4.271][4.271:281]()
    </script>
    [4.271]
    [4.281]
    $("#placeholder").bind("plotselected", function (event, ranges) {
    // do the zooming
    plot = $.plot($("#placeholder"), [d],
    $.extend(true, {}, options, {
    xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to }
    }));
  • replacement in src/root/build.tt at line 420
    [4.282][4.282:331](),[4.331][4.21021:21201](),[4.21201][4.513:596](),[4.513][4.513:596](),[4.596][4.9021:9245](),[4.9245][4.21202:21225]()
    <h2>Store path size history (in MB)</h2>
    <div id="placeholder-size" style="width:800px;height:400px;"></div>
    <div id="overview-size" style="margin-left:50px;margin-top:20px;width:600px;height:50px"></div>
    <script type="text/javascript">
    $(function() {
    var d = [];
    var ids = [];
    [% FOREACH prevbuild IN prevBuilds %][% IF prevbuild.size != 0 %]
    d.push([[% prevbuild.starttime * 1000 %],[% prevbuild.size / (1024*1024.0) %]]);
    ids[[% prevbuild.starttime * 1000 %]] = [% prevbuild.id %] ;
    [% END %][% END %]
    [4.282]
    [4.888]
    // don't fire event on the overview to prevent eternal loop
    overview.setSelection(ranges, true);
    });
  • replacement in src/root/build.tt at line 424
    [4.889][4.889:1182]()
    var options = {
    xaxis: { mode: "time" },
    selection: { mode: "x" },
    points: { show: true },
    lines: { show: true },
    grid: {
    clickable: true,
    hoverable: true,
    hoverFill: '#444',
    hoverRadius: 4,
    },
    };
    [4.889]
    [4.1295]
    $("#overview").bind("plotselected", function (event, ranges) {
    plot.setSelection(ranges);
    });
  • edit in src/root/build.tt at line 428
    [4.1296]
    [4.21226]
    $("#placeholder").bind("plotclick", function (e, pos, item) {
    if (item) {
    plot.highlight(item.series, item.datapoint);
    buildid = ids[item.datapoint[0]];
    window.location = "/build/"+buildid;
    }
    });
    });
    </script>
  • replacement in src/root/build.tt at line 438
    [4.21227][4.1296:1365](),[4.1296][4.1296:1365]()
    var plot = $.plot($("#placeholder-size"), [d], options);
    [4.21227]
    [4.21228]
    <h2>Store path size history (in MB)</h2>
    <div id="placeholder-size" style="width:800px;height:400px;"></div>
    <div id="overview-size" style="margin-left:50px;margin-top:20px;width:600px;height:50px"></div>
    <script type="text/javascript">
    $(function() {
    var d = [];
    var ids = [];
    [% FOREACH prevbuild IN prevBuilds; IF prevbuild.size != 0 %]
    d.push([[% prevbuild.starttime * 1000 %],[% prevbuild.size / (1024*1024.0) %]]);
    ids[[% prevbuild.starttime * 1000 %]] = [% prevbuild.id %] ;
    [% END; END %]
  • replacement in src/root/build.tt at line 450
    [4.21229][4.1370:1745](),[4.1370][4.1370:1745]()
    var overview = $.plot($("#overview-size"), [d], {
    series: {
    lines: { show: true, lineWidth: 1 },
    shadowSize: 0
    },
    xaxis: { ticks: [], mode: "time" },
    yaxis: { ticks: [], min: 0, autoscaleMargin: 0.1 },
    selection: { mode: "x" }
    });
    [4.21229]
    [4.21230]
    var options = {
    xaxis: { mode: "time" },
    selection: { mode: "x" },
    points: { show: true },
    lines: { show: true },
    grid: {
    clickable: true,
    hoverable: true,
    hoverFill: '#444',
    hoverRadius: 4,
    },
    };
  • replacement in src/root/build.tt at line 463
    [4.21231][4.1747:1782](),[4.1747][4.1747:1782]()
    // now connect the two
    [4.21231]
    [4.21232]
    var plot = $.plot($("#placeholder-size"), [d], options);
  • replacement in src/root/build.tt at line 465
    [4.21233][4.1787:2148](),[4.1787][4.1787:2148]()
    $("#placeholder-size").bind("plotselected", function (event, ranges) {
    // do the zooming
    plot = $.plot($("#placeholder-size"), [d],
    $.extend(true, {}, options, {
    xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to }
    }));
    [4.21233]
    [4.21234]
    var overview = $.plot($("#overview-size"), [d], {
    series: {
    lines: { show: true, lineWidth: 1 },
    shadowSize: 0
    },
    xaxis: { ticks: [], mode: "time" },
    yaxis: { ticks: [], min: 0, autoscaleMargin: 0.1 },
    selection: { mode: "x" }
    });
  • replacement in src/root/build.tt at line 475
    [4.21235][4.2150:2295](),[4.2150][4.2150:2295]()
    // don't fire event on the overview to prevent eternal loop
    overview.setSelection(ranges, true);
    });
    [4.21235]
    [4.21236]
    // now connect the two
  • replacement in src/root/build.tt at line 477
    [4.21237][4.2300:2439](),[4.2300][4.2300:2439]()
    $("#overview-size").bind("plotselected", function (event, ranges) {
    plot.setSelection(ranges);
    });
    [4.21237]
    [4.2439]
    $("#placeholder-size").bind("plotselected", function (event, ranges) {
    // do the zooming
    plot = $.plot($("#placeholder-size"), [d],
    $.extend(true, {}, options, {
    xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to }
    }));
  • replacement in src/root/build.tt at line 484
    [4.2440][4.2440:2519](),[4.2519][4.2168:2372](),[4.2168][4.2168:2372](),[4.2372][4.21238:21272](),[4.21272][4.2802:2808](),[4.2802][4.2802:2808]()
    $("#placeholder-size").bind("plotclick", function (e, pos, item) {
    if (item) {
    plot.highlight(item.series, item.datapoint);
    buildid = ids[item.datapoint[0]];
    window.location = "/build/"+buildid;
    }
    });
    });
    [4.2440]
    [4.2808]
    // don't fire event on the overview to prevent eternal loop
    overview.setSelection(ranges, true);
    });
  • replacement in src/root/build.tt at line 488
    [4.2809][4.2809:2819]()
    </script>
    [4.2809]
    [4.2819]
    $("#overview-size").bind("plotselected", function (event, ranges) {
    plot.setSelection(ranges);
    });
  • edit in src/root/build.tt at line 492
    [4.2820]
    [4.21273]
    $("#placeholder-size").bind("plotclick", function (e, pos, item) {
    if (item) {
    plot.highlight(item.series, item.datapoint);
    buildid = ids[item.datapoint[0]];
    window.location = "/build/"+buildid;
    }
    });
    });
    </script>
  • replacement in src/root/build.tt at line 503
    [4.2840][4.103:113]()
    [% END %]
    [4.2840]
    [4.2840]
    [% END %]
  • edit in src/root/build.tt at line 511
    [4.1274][4.1274:1276]()