review/web_templates/changeset.html @ f936bf37db17 webpy-sucks

Checkpoint before the big refactor.
author Steve Losh <steve@stevelosh.com>
date Wed, 03 Mar 2010 18:04:53 -0500
parents 36b37712c670
children 85b4ae69ded2
{% extends "base.html" %}

{% block title %} at {{ title }}{% endblock %}
{% block header %} at {{ title }}{% endblock %}

{% block content %}
    <h2>Changeset {{ rev.rev() }}: {{ rev.description().splitlines()[0] }}</h2>
    
    {% for comment in rcset.review_level_comments() %}
        <div class="comment">
            <div class="avatar">
                <img height="52" width="52"
                     src="{{ utils['comment_gravatar'](comment) }}?s=52"
                />
            </div>
            <div>
                <div class="author">
                    <a href="mailto:${ email(comment.author) }">{{ utils['templatefilters'].person(comment.author) }}</a>
                    said:
                </div>
                <div class="message">{{ comment.message }}</div>
            </div>
        </div>
    {% endfor %}

    <div id="comment-review">
        <p class="comment-activate"><a href="">Add a comment on this changeset</a></p>
        <form id="comment-review-form" method="post" action="">
            <div class="field">
                <label for="body">Add a comment on this changeset:</label>
                <textarea cols="60" rows="6" name="body"></textarea>
            </div>
            <div class="buttons">
                <input type="submit" class="button" value="Submit" />
            </div>
        </form>
    </div>

    <h2>Files</h2>
    
    {% for filename, diff in rcset.diffs().iteritems() %}
        <div class="file-review">
            <div class="filename-header">
                <a class="fold-file" href="">&nbsp;&nbsp;&nbsp;&darr;</a>
                <h3>{{ filename }}</h3>
            </div>
            
            <div class="file-review-contents">
                {% for comment in rcset.file_level_comments(filename) %}
                    <div class="comment">
                        <div class="avatar">
                            <img height="52" width="52" src="{{ utils['comment_gravatar'](comment) }}?s=52"/>
                        </div>
                        <div>
                            <div class="author">
                                <a href="mailto:{{ utils['email'](comment.author) }}">
                                    {{ utils['templatefilters'].person(comment.author) }}</a>
                                    said:
                            </div>
                            <div class="message">{{ comment.message }}</div>
                        </div>
                    </div>
                {% endfor %}
                
                <div id="comment-file">
                    <p class="comment-activate"><a href="">Add a comment on this file</a></p>
                    
                    <form id="comment-file-form" method="post" action="">
                        <div class="field">
                            <label for="body">Add a comment on this file:</label>
                            <textarea cols="60" rows="6" name="body"></textarea>
                        </div>
                        <div class="buttons">
                            <input type="submit" class="button" value="Submit" />
                        </div>
                        <input type="hidden" name="filename" value="{{ filename }}" />
                    </form>
                </div>
                
                <div class="diff">
                    <table>
                        {% set max_line = diff['max'] %}
                        {% set content = diff['content'] %}
                        {% set line_level_comments = rcset.line_level_comments(filename) %}
                        {% set previous_n = -1 %}
                        
                        {% for n, line in content %}
                            {% if n - 1 < previous_n %}
                                {% set skipped_count = n - previous_n %}
                                {% if previous_n == -1 %}
                                    {% set skipped_count = skipped_count - 1 %}
                                {% endif %}
                                <tr class="skipped">
                                    <td><code>&hellip; skipped {{ skipped_count }} lines &hellip;</code></td>
                                </tr>
                            {% endif %}
                            
                            {% for comment in utils['skipped_comments'](n, previous_n, line_level_comments) %}
                                <tr><td class="comment">
                                    <div class="avatar"><img height="52" width="52" src="{{ utils['comment_gravatar'](comment) }}?s=52"/></div>
                                    <div>
                                        <div class="author">
                                            <a href="mailto:{{ utils['email'](comment.author) }}">
                                                {{ utils['templatefilters'].person(comment.author) }}
                                            </a>
                                            said (on a skipped line):
                                        </div>
                                        <div class="message">{{ comment.message }}</div>
                                    </div>
                                </td></tr>
                            {% endfor %}
                            
                            <tr class="{{ utils['line_type'](line) }}">
                                <td class="diff-line"><code>{{ line[1:] }}</code></td>
                            </tr>
                            
                            {% for comment in utils['line_comments'](n, line_level_comments) %}
                                <tr><td class="comment">
                                    <div class="avatar"><img height="52" width="52" src="{{ utils['comment_gravatar'](comment) }}?s=52"/></div>
                                    <div>
                                        <div class="author">
                                            <a href="mailto:{{ utils['email'](comment.author) }}">
                                                {{ utils['templatefilters'].person(comment.author) }}
                                            </a>
                                            said:
                                        </div>
                                        <div class="message">{{ comment.message }}</div>
                                    </div>
                                </td></tr>
                            {% endfor %}
                            
                            <tr class="comment-line">
                                <td>
                                    <form id="comment-line-form" method="post" action="">
                                        <div class="field">
                                            <label for="body">Add a comment on this line:</label>
                                            <textarea cols="60" rows="6" name="body"></textarea>
                                        </div>
                                        <div class="buttons">
                                            <input type="submit" class="button" value="Submit" />
                                        </div>
                                        <input type="hidden" name="filename" value="{{ filename }}" />
                                        <input type="hidden" name="lines" value="{{ n }}" />
                                    </form>
                                </td>
                            </tr>
                            
                            {% set previous_n = n %}
                        {% endfor %}
                        
                        {% if previous_n < max_line %}
                            <tr class="skipped">
                                <td><code>&hellip; skipped {{ max_line - previous_n }} lines &hellip;</code></td>
                            </tr>
                            
                            {% for comment in utils['skipped_comments_end'](previous_n, max_line, line_level_comments) %}
                                <tr><td class="comment">
                                    <div class="avatar"><img height="52" width="52" src="{{ utils['comment_gravatar'](comment) }}?s=52"/></div>
                                    <div>
                                        <div class="author">
                                            <a href="mailto:{{ utils['email'](comment.author) }}">
                                                {{ utils['templatefilters'].person(comment.author) }}
                                            </a>
                                            said (on a skipped line):
                                        </div>
                                        <div class="message">{{ comment.message }}</div>
                                    </div>
                                </td></tr>
                            {% endfor %}
                        {% endif %}
                    </table>
                </div>
            </div>
        </div>
    {% endfor %}
{% endblock %}