aboutsummaryrefslogtreecommitdiffstats
path: root/libbe
diff options
context:
space:
mode:
authorW. Trevor King <wking@tremily.us>2013-03-12 23:04:56 -0400
committerW. Trevor King <wking@tremily.us>2013-03-12 23:04:56 -0400
commitf41908a1f7b5a100ae1f4f143ac8f150d1d83f73 (patch)
treec4736d950ac1f9f34ed6b157f26307acd57424dc /libbe
parentec2f5d26bc84a93feef9c31fb06486b50a59b14a (diff)
downloadbugseverywhere-f41908a1f7b5a100ae1f4f143ac8f150d1d83f73.tar.gz
command:html: Rework comment <div> closing
Comment nesting wasn't working properly before, where you could get things like: <div class="comment root" id="a"> </div> <!-- close a --> <div class="comment" id="a/b"> <div class="comment" id="a/b/c"> <div class="comment root" id="d"> </div> <!-- close d --> </div> <!-- close a/b/c --> </div> <!-- close a/b --> from a comment tree (using fake ids) of: . |-- a | `-- a/b | `-- a/b/c `-- d The new handling pushes the `div_close(depth)` call to the front of the comment block, because a comment's depth tells us how many of the already-rendered comments we need to close. Closing comments at the top of the block means that we'll always have at least one unclosed comment to close after the comment loop completes. With the new handling, we'll get a more appropriate: <div class="comment root" id="a"> <div class="comment" id="a/b"> <div class="comment" id="a/b/c"> </div> <!-- close a/b/c --> </div> <!-- close a/b --> </div> <!-- close a --> <div class="comment root" id="C29a03522-ed6e-4a9a-8823-23a1c513865f"> </div> <!-- close d --> Reported-by: Owen Jacobson <owen.jacobson@grimoire.ca>
Diffstat (limited to 'libbe')
-rw-r--r--libbe/command/html.py6
1 files changed, 2 insertions, 4 deletions
diff --git a/libbe/command/html.py b/libbe/command/html.py
index 2b7dcf8..5186417 100644
--- a/libbe/command/html.py
+++ b/libbe/command/html.py
@@ -698,6 +698,7 @@ div.root.comment {
{% if comments %}
{% for depth,comment in comments %}
+{{ div_close(depth) }}
{% if depth == 0 %}
<div class="comment root" id="C{{ comment_dir(comment) }}">
{% else %}
@@ -707,11 +708,8 @@ div.root.comment {
'depth':depth, 'bug': bug, 'comment':comment, 'comment_dir':comment_dir,
'format_body': format_body, 'div_close': div_close,
'strip_email': strip_email}) }}
-{{ div_close(depth) }}
{% endfor %}
-{% if comments[-1][0] > 0 %}
{{ div_close(0) }}
-{% endif %}
{% else %}
<p>No comments.</p>
{% endif %}
@@ -953,7 +951,7 @@ Html = HTML # alias for libbe.command.base.get_command_class()
class _DivCloser (object):
- def __init__(self, depth=0):
+ def __init__(self, depth=-1):
self.depth = depth
def __call__(self, depth):