{% extends "layout.html" %}
{% block content %}

<form action="../waterfall" method="get">

<h1>The Waterfall Display</h1>

<p>The Waterfall display can be controlled by adding query arguments to the
URL. For example, if your Waterfall is accessed via the URL
<tt>http://buildbot.example.org:8080</tt>, then you could add a
<tt>branch=</tt> argument (described below) by going to
<tt>http://buildbot.example.org:8080?branch=beta4</tt> instead. Remember that
query arguments are separated from each other with ampersands, but they are
separated from the main URL with a question mark, so to add a
<tt>branch=</tt> and two <tt>builder=</tt> arguments, you would use
<tt>http://buildbot.example.org:8080?branch=beta4&amp;builder=unix&amp;builder=macos</tt>.</p>

<h2>Limiting the Displayed Interval</h2>

<p>The <tt>last_time=</tt> argument is a unix timestamp (seconds since the
start of 1970) that will be used as an upper bound on the interval of events
displayed: nothing will be shown that is more recent than the given time.
When no argument is provided, all events up to and including the most recent
steps are included.</p>

<p>The <tt>first_time=</tt> argument provides the lower bound. No events will
be displayed that occurred <b>before</b> this timestamp. Instead of providing
<tt>first_time=</tt>, you can provide <tt>show_time=</tt>: in this case,
<tt>first_time</tt> will be set equal to <tt>last_time</tt> minus
<tt>show_time</tt>. <tt>show_time</tt> overrides <tt>first_time</tt>.</p>

<p>The display normally shows the latest 200 events that occurred in the
given interval, where each timestamp on the left hand edge counts as a single
event. You can add a <tt>num_events=</tt> argument to override this this.</p>
    
<h2>Showing non-Build events</h2>

<p>By passing <tt>show_events=true</tt>, you can add the "buildslave
attached", "buildslave detached", and "builder reconfigured" events that
appear in-between the actual builds.</p>

<p>
<input type="checkbox" name="show_events" value="true" 
{% if show_events_checked %} checked="checked" {% endif %}/>
Show non-Build events
</p>

<h2>Showing only Certain Branches</h2>

<p>If you provide one or more <tt>branch=</tt> arguments, the display will be
limited to builds that used one of the given branches. If no <tt>branch=</tt>
arguments are given, builds from all branches will be displayed.</p>

Erase the text from these "Show Branch:" boxes to remove that branch filter.

{% if branches %}
<table>
  {% for b in branches %}
  <tr>
    <td>Show Branch: 
      <input type="text" name="branch" value="{{ b|e }}"/>
    </td>
  </tr>
  {% endfor %}
</table>
{% endif %}

<h2>Limiting the Builders that are Displayed</h2>

<p>By adding one or more <tt>builder=</tt> arguments, the display will be
limited to showing builds that ran on the given builders. This serves to
limit the display to the specific named columns. If no <tt>builder=</tt>
arguments are provided, all Builders will be displayed.</p>

<p>To view a Waterfall page with only a subset of Builders displayed, select
the Builders you are interested in here.</p>
       
<table>
{% for bn in all_builders %}
 <tr><td><input type="checkbox" name="builder" value="{{ bn }}"
  {% if bn in show_builders %}checked="checked"{% endif %} />
 </td><td>{{bn}}</td></tr>
{% endfor %}
</table>

<h2>Limiting the Categories that are displayed</h2>

<p>By adding one or more <tt>category=</tt> arguments, the display will be
limited to showing builds that ran on the builders with those categories. 
This serves to limit the display to the specific named columns. 
If no <tt>category=</tt> arguments are provided, all Categories will be displayed.</p>

<p>To view a Waterfall page with only a subset of Categories displayed, select
the Categories you are interested in here.</p>
       
<table>
{% for cat in all_categories %}
 <tr><td><input type="checkbox" name="category" value="{{ cat }}"
  {% if cat in show_categories %}checked="checked"{% endif %} />
 </td><td>{{cat}}</td></tr>
{% endfor %}
</table>

<h2>Limiting the Builds that are Displayed</h2>

<h3>Filter on commiters</h3>

<p>By adding one or more <tt>committer=</tt> arguments, the display will be
limited to showing builds that were started by the given committer.  If no
<tt>committer=</tt> arguments are provided, all builds will be displayed.</p>

<p>To view a Waterfall page with only a subset of Builds displayed, select
the committers your are interested in here.</p>

Erase the text from these "Show Committer:" boxes to remove that filter.

{% if committers %}
  <table>
    {% for cn in committers %}
      <tr>
        <td>
          Show Committer: <input type="text" name="committer" value="{{ cn }}">
        </td>
      </tr>
    {% endfor %}
  </table>
{% endif %}

<h3>Filter on projects</h3>

<p>By adding one or more <tt>project=</tt> arguments, the display
will be limited to showing builds that were started for the given project.
If no <tt>project=</tt> arguments are provided, all builds will be displayed.</p>

<p>To view a Waterfall page with only a subset of Builds displayed, select
the projects your are interested in here.</p>

Erase the text from these "Show Project:" boxes to remove that filter.

{% if projects %}
  <table>
    {% for cn in projects %}
      <tr>
        <td>
          Show Project: <input type="text" name="project" value="{{ cn }}">
        </td>
      </tr>
    {% endfor %}
  </table>
{% endif %}

<h2>Showing only the Builders with failures</h2>

<p>By adding the <tt>failures_only=true</tt> argument, the display will be limited
to showing builders that are currently failing. A builder is considered
failing if the last finished build was not successful, a step in the current
build(s) failed, or if the builder is offline.</p>

<p>
  <input type="checkbox" name="failures_only" value="true" 
    {% if failures_only %}checked="checked"{% endif %}/>  
    Show failures only
</p>

<h2>Auto-reloading the Page</h2>

<p>Adding a <tt>reload=</tt> argument will cause the page to automatically
reload itself after that many seconds.</p>

<table>
{% for value, name in times %}
 <tr><td><input type="radio" name="reload" value="{{ value|e }}"
  {% if value == current_reload_time %}checked="checked"{% endif %}/>
 </td><td>{{ name|e }}</td></tr>
{% endfor %}
</table>


<h2>Reload Waterfall Page</h2>

<input type="submit" value="View Waterfall" />
</form>
{% endblock %}
