| Index: templates/waterfall_mail.html
 | 
| diff --git a/templates/waterfall_mail.html b/templates/waterfall_mail.html
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..20a2299bc5bab7441ac6f67199fa55f4006d43e5
 | 
| --- /dev/null
 | 
| +++ b/templates/waterfall_mail.html
 | 
| @@ -0,0 +1,96 @@
 | 
| +{% extends "base_mail.html" %}
 | 
| +
 | 
| +{% set results = ["success", "warnings", "failure", "skipped", "exception",
 | 
| +                      "retry"] %}
 | 
| +{% set styles = {
 | 
| +    'BuildStep': '',
 | 
| +    'start': ('color: #666666; background-color: #fffc6c;'
 | 
| +              'border-color: #C5C56D;'),
 | 
| +    'success': ('color: #FFFFFF; background-color: #8fdf5f; '
 | 
| +                'border-color: #4F8530;'),
 | 
| +    'failure': ('color: #FFFFFF; background-color: #e98080; '
 | 
| +                'border-color: #A77272;'),
 | 
| +    'warnings': ('color: #FFFFFF; background-color: #ffc343; '
 | 
| +                 'border-color: #C29D46;'),
 | 
| +    'exception': ('color: #FFFFFF; background-color: #e0b0ff; '
 | 
| +                  'border-color: #ACA0B3;'),
 | 
| +    'offline': ('color: #FFFFFF; background-color: #e0b0ff; '
 | 
| +                'border-color: #ACA0B3;'),
 | 
| +   }
 | 
| +%}
 | 
| +
 | 
| +
 | 
| +{% block buildbox%}
 | 
| +
 | 
| +{% set class_= '' %}
 | 
| +{% if build_status['result'] in results %}
 | 
| +  {% set class_= results[build_status['result']] %}
 | 
| +{%endif%}
 | 
| +{% set style = styles.get(class_, '') %}
 | 
| +{% set buildername = build_status['builderName'] %}
 | 
| +<tr><td style="{{style}}"><a title="Reason: {{build_status['reason']}}" href="{{waterfall_url}}builders/{{buildername|urlquote}}/builds/{{build_status['number']}}">Build {{build_status['number']}}</a></td></tr>
 | 
| +{% for step in build_status['steps'] if step['started'] and step['text'] %}
 | 
| +  {% set stepclass_= '' %}
 | 
| +  {% if step['results'] in results %}
 | 
| +    {% set stepclass = results[step['results']] %}
 | 
| +  {%endif%}
 | 
| +  {% set stepstyle = styles.get(stepclass, '') %}
 | 
| +  <tr><td style="{{stepstyle}}">
 | 
| +      {% for line in step['text'] %}
 | 
| +        {{line}}<br/>
 | 
| +      {% endfor %}
 | 
| +      {% for steplog in step['logs'] %}
 | 
| +        <a href="{{steplog[1]}}">{{steplog[0]}}</a><br/>
 | 
| +      {% endfor %}
 | 
| +      {% for urlname, target in step['urls'].iteritems() %}
 | 
| +        <a href="{{target}}">{{urlname}}</a><br/>
 | 
| +      {% endfor %}
 | 
| +  </td></tr>
 | 
| +{% endfor %}
 | 
| +{% endblock %}
 | 
| +
 | 
| +
 | 
| +{% block changes %}
 | 
| +  {% for change in build_status['changes'] %}
 | 
| +    <p>Changed by: <b>{{change['who']}}</b><br />
 | 
| +    Changed at: <b>{{change['at']}}</b><br />
 | 
| +    {% if change['repository'] %}
 | 
| +      Repository: <b>{{change['repository']}}</b><br />
 | 
| +    {% endif %}
 | 
| +    {% if change['branch'] %}
 | 
| +      Branch: <b>{{change['branch']}}</b><br />
 | 
| +    {% endif %}
 | 
| +    {% if change['revision'] %}
 | 
| +      {% if change.get('revlink') %}
 | 
| +        Revision: <a href="{{change['revlink']}}"><b>{{change['revision']}}</b></a>
 | 
| +      {% else %}
 | 
| +        Revision: <b>{{change['revision']}}</b><br />
 | 
| +      {% endif %}
 | 
| +    {% endif %}
 | 
| +    <br />
 | 
| +
 | 
| +    Changed files:
 | 
| +    <ul>
 | 
| +      {% for f in change['files'] %}
 | 
| +        <li>
 | 
| +          {% if f['url'] %}
 | 
| +            <a href="{{f['url']}}"><b>{{f['name']}}</b></a>
 | 
| +          {% else %}
 | 
| +            <b>{{f['name']}}</b>{% endif %}</li>
 | 
| +      {% endfor %}
 | 
| +    </ul>
 | 
| +
 | 
| +    Comments:
 | 
| +    <pre>{{change['comments']}}</pre>
 | 
| +
 | 
| +    Properties:
 | 
| +    <ul>
 | 
| +      {% for prop in change['properties'] %}
 | 
| +        <li>
 | 
| +          {{prop[0]}}: {{prop[1]}}<br/></li>
 | 
| +      {% endfor %}
 | 
| +    </ul>
 | 
| +    </p>
 | 
| +  {% endfor %}
 | 
| +{% endblock %}
 | 
| +
 | 
| 
 |