From ee49b1894979cf58ca99adb73e6f91b6dfbe9414 Mon Sep 17 00:00:00 2001
From: KeyserSosa
Date: Tue, 2 Jun 2009 15:51:27 -0700
Subject: [PATCH] fix rendering glitch resulting in new comments showing as
having 2 points, and updating of points for all of a comment's children on
voting
---
r2/r2/public/static/js/jquery.reddit.js | 7 ++++---
r2/r2/templates/printable.html | 26 +++++++++++++------------
2 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/r2/r2/public/static/js/jquery.reddit.js b/r2/r2/public/static/js/jquery.reddit.js
index e7c4b83cd..f36e454bd 100644
--- a/r2/r2/public/static/js/jquery.reddit.js
+++ b/r2/r2/public/static/js/jquery.reddit.js
@@ -216,12 +216,13 @@ $.fn.vote = function(vh, callback) {
/* let the user vote only if they are logged in */
if(reddit.logged) {
things.each(function() {
+ var entry = $(this).find(".entry:first");
if(dir > 0)
- $(this).addClass('likes').removeClass('dislikes');
+ entry.addClass('likes').removeClass('dislikes');
else if(dir < 0)
- $(this).removeClass('likes').addClass('dislikes');
+ entry.removeClass('likes').addClass('dislikes');
else
- $(this).removeClass('likes').removeClass('dislikes');
+ entry.removeClass('likes').removeClass('dislikes');
});
$.request("vote", {id: things.filter(":first").thing_id(),
diff --git a/r2/r2/templates/printable.html b/r2/r2/templates/printable.html
index 2266c9c2a..aa6632229 100644
--- a/r2/r2/templates/printable.html
+++ b/r2/r2/templates/printable.html
@@ -49,13 +49,6 @@ ${self.RenderPrintable()}
<%def name="thing_css_class(what)" buffered="True">
thing id-${what._fullname}
- %if getattr(what, "likes", None):
- likes
- %elif getattr(what, "likes", None) is False:
- dislikes
- %elif getattr(what, "like", False) is None:
- unvoted
- %endif
%def>
<%def name="RenderPrintable()">
@@ -85,7 +78,14 @@ thing id-${what._fullname}
${self.numcol()}
${self.midcol()}
-
+ <%
+ like_cls = "unvoted"
+ if getattr(thing, "likes", None):
+ like_cls = "likes"
+ elif getattr(thing, "likes", None) is False:
+ like_cls = "dislikes"
+ %>
+
${self.entry()}
${self.Child()}
@@ -201,17 +201,19 @@ thing id-${what._fullname}
<%def name="score(this, likes=None, tag='span', score_fmt = None)">
<%
score = this.score
+ base_score = score - 1 if likes else score if likes is None else score + 1
+ base_score = [base_score + x for x in range(-1, 2)]
if score_fmt is None:
score_fmt = thing.score_fmt
%>
<${tag} class="score dislikes">
- ${score_fmt(score - 1)}
+ ${score_fmt(base_score[0])}
${tag}>
- <${tag} class="score">
- ${score_fmt(score)}
+ <${tag} class="score unvoted">
+ ${score_fmt(base_score[1])}
${tag}>
<${tag} class="score likes">
- ${score_fmt(score + 1)}
+ ${score_fmt(base_score[2])}
${tag}>
%def>