review/web_templates/changeset.html @ 36b37712c670 webpy-sucks
Get a bare Cherrypy server up and running.
| author | Steve Losh <steve@stevelosh.com> |
|---|---|
| date | Tue, 02 Mar 2010 20:23:36 -0500 |
| parents | review/web_templates/review.html@2d471b406299 |
| children | f936bf37db17 |
$def with (rd, rcset) $ ctx = rd.target[rcset.node] <h2>Changeset ${ ctx.rev() }: ${ ctx.description() }</h2> $ review_level_comments = rcset.review_level_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 = rcset.file_level_comments(filename) $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 = rcset.line_level_comments(filename) $ 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> $ skipped_comments = filter(lambda c: max(c.lines) in range(previous_n + 1, max_line), 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> </table> </div> </div> </div>