review/web_templates/review.html @ 474bb295c5f8 webui
Show comments on skipped hunks at the end of files.
| author | Steve Losh <steve@stevelosh.com> |
|---|---|
| date | Sat, 06 Feb 2010 06:39:00 -0500 |
| parents | 91bd7fd0bd98 |
| children | 83f2e11a22be |
$def with (rd, rcset) $ ctx = rd.target[rcset.node] <h2>Changeset ${ ctx.rev() }: ${ ctx.description() }</h2> $ review_level_comments = filter(lambda c: not c.filename, rcset.comments) $for comment in review_level_comments: <div class="comment"> <div class="avatar"><img height="52" width="52" src="http://www.gravatar.com/avatar/${ md5(email(comment.author)).hexdigest() }?s=52"/></div> <div> <div class="author"><a href="mailto:${ email(comment.author) }">${ templatefilters.person(comment.author) }</a> said:</div> <div class="message">${ comment.message }</div> </div> </div> <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=""> ↓</a> <h3>${ filename }</h3> </div> <div class="file-review-contents"> $ file_level_comments = filter(lambda c: c.filename == filename and not c.lines, rcset.comments) $for comment in file_level_comments: <div class="comment"> <div class="avatar"> <img height="52" width="52" src="http://www.gravatar.com/avatar/${ md5(email(comment.author)).hexdigest() }?s=52"/> </div> <div> <div class="author"><a href="mailto:${ email(comment.author) }">${ templatefilters.person(comment.author) }</a> said:</div> <div class="message">${ comment.message }</div> </div> </div> <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> $ max_line = diff['max'] $ content = diff['content'] $ line_level_comments = filter(lambda c: c.filename == filename and c.lines, rcset.comments) $ previous_n = -1 $for n, line in content: $if n - 1 > previous_n: $ skipped_count = n - previous_n $if previous_n == -1: $ skipped_count -= 1 <tr class="skipped"> <td><code>… skipped ${ skipped_count } lines …</code></td> </tr> $ skipped_comments = filter(lambda c: max(c.lines) in range(previous_n + 1, n), line_level_comments) $for comment in skipped_comments: <tr><td class="comment"> <div class="avatar"><img height="52" width="52" src="http://www.gravatar.com/avatar/${ md5(email(comment.author)).hexdigest() }?s=52"/></div> <div> <div class="author"><a href="mailto:${ email(comment.author) }">${ templatefilters.person(comment.author) }</a> said (on a skipped line):</div> <div class="message">${ comment.message }</div> </div> </td></tr> $ kind = 'rem' if line[0] == '-' else 'add' if line[0] == '+' else 'con' <tr class="${ kind }"> <td class="diff-line"><code>${ line[1:] or ' ' }</code></td> </tr> $ line_comments = filter(lambda c: max(c.lines) == n, line_level_comments) $for comment in line_comments: <tr><td class="comment"> <div class="avatar"><img height="52" width="52" src="http://www.gravatar.com/avatar/${ md5(email(comment.author)).hexdigest() }?s=52"/></div> <div> <div class="author"><a href="mailto:${ email(comment.author) }">${ templatefilters.person(comment.author) }</a> said:</div> <div class="message">${ comment.message }</div> </div> </td></tr> <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> $ previous_n = n $if previous_n < max_line: $ skipped_count = max_line - previous_n <tr class="skipped"> <td><code>… skipped ${ skipped_count } lines …</code></td> </tr> </table> </div> </div> </div>