Commit 3c681a20 by Rocky Duan

fixed vote bug

parent 6f798fd1
......@@ -3,6 +3,22 @@ if not @Discussion?
Discussion = @Discussion
initializeVote = (content) ->
$content = $(content)
$local = Discussion.generateLocal($content.children(".discussion-content"))
id = $content.attr("_id")
if Discussion.isUpvoted id
$local(".discussion-vote-up").addClass("voted")
else if Discussion.isDownvoted id
$local(".discussion-vote-down").addClass("voted")
initializeFollowThread = (thread) ->
$thread = $(thread)
id = $thread.attr("_id")
$thread.children(".discussion-content")
.find(".follow-wrapper")
.append(Discussion.subscriptionLink('thread', id))
@Discussion = $.extend @Discussion,
bindContentEvents: (content) ->
......@@ -265,6 +281,9 @@ Discussion = @Discussion
initializeContent: (content) ->
$content = $(content)
initializeVote $content
if $content.hasClass("thread")
initializeFollowThread $content
$local = Discussion.generateLocal($content.children(".discussion-content"))
$contentBody = $local(".content-body")
raw_text = $contentBody.html()
......
......@@ -3,75 +3,27 @@ if not @Discussion?
Discussion = @Discussion
initializeVote = (index, content) ->
$content = $(content)
$local = Discussion.generateLocal($content.children(".discussion-content"))
id = $content.attr("_id")
if Discussion.isUpvoted id
$local(".discussion-vote-up").addClass("voted")
else if Discussion.isDownvoted id
$local(".discussion-vote-down").addClass("voted")
subscriptionLink = (type, id) ->
followLink = ->
Discussion.generateDiscussionLink("discussion-follow-#{type}", "Follow", handleFollow)
unfollowLink = ->
Discussion.generateDiscussionLink("discussion-unfollow-#{type}", "Unfollow", handleUnfollow)
handleFollow = (elem) ->
Discussion.safeAjax
$elem: $(elem)
url: Discussion.urlFor("follow_#{type}", id)
type: "POST"
success: (response, textStatus) ->
if textStatus == "success"
$(elem).replaceWith unfollowLink()
dataType: 'json'
handleUnfollow = (elem) ->
Discussion.safeAjax
$elem: $(elem)
url: Discussion.urlFor("unfollow_#{type}", id)
type: "POST"
success: (response, textStatus) ->
if textStatus == "success"
$(elem).replaceWith followLink()
dataType: 'json'
if Discussion.isSubscribed(id, type)
unfollowLink()
else
followLink()
initializeFollowDiscussion = (discussion) ->
$discussion = $(discussion)
id = $following.attr("_id")
$local = Discussion.generateLocal()
$discussion.children(".discussion-non-content")
.find(".discussion-title-wrapper")
.append(subscriptionLink('discussion', id))
initializeFollowThread = (index, thread) ->
$thread = $(thread)
id = $thread.attr("_id")
$thread.children(".discussion-content")
.find(".follow-wrapper")
.append(subscriptionLink('thread', id))
.append(Discussion.subscriptionLink('discussion', id))
@Discussion = $.extend @Discussion,
initializeDiscussion: (discussion) ->
$discussion = $(discussion)
$discussion.find(".thread").each (index, thread) ->
Discussion.initializeContent(thread)
Discussion.bindContentEvents(thread)
$discussion.find(".comment").each (index, comment) ->
Discussion.initializeContent(comment)
Discussion.bindContentEvents(comment)
$local = Discussion.generateLocal(discussion)
$local(".comment").each(initializeVote)
$local(".thread").each(initializeVote).each(initializeFollowThread)
#initializeFollowDiscussion(discussion) TODO move this somewhere else
$local(".new-post-tags").tagsInput Discussion.tagsInputOptions()
bindDiscussionEvents: (discussion) ->
$discussion = $(discussion)
......@@ -189,11 +141,3 @@ initializeFollowThread = (index, thread) ->
"click .discussion-inline-sort-link": ->
handleAjaxSort(this)
$discussion.find(".thread").each (index, thread) ->
Discussion.initializeContent(thread)
Discussion.bindContentEvents(thread)
$discussion.find(".comment").each (index, comment) ->
Discussion.initializeContent(comment)
Discussion.bindContentEvents(comment)
......@@ -132,3 +132,35 @@ wmdEditors = {}
if not window.$$annotated_content_info?
window.$$annotated_content_info = {}
window.$$annotated_content_info = $.extend window.$$annotated_content_info, newInfos
subscriptionLink: (type, id) ->
followLink = ->
Discussion.generateDiscussionLink("discussion-follow-#{type}", "Follow", handleFollow)
unfollowLink = ->
Discussion.generateDiscussionLink("discussion-unfollow-#{type}", "Unfollow", handleUnfollow)
handleFollow = (elem) ->
Discussion.safeAjax
$elem: $(elem)
url: Discussion.urlFor("follow_#{type}", id)
type: "POST"
success: (response, textStatus) ->
if textStatus == "success"
$(elem).replaceWith unfollowLink()
dataType: 'json'
handleUnfollow = (elem) ->
Discussion.safeAjax
$elem: $(elem)
url: Discussion.urlFor("unfollow_#{type}", id)
type: "POST"
success: (response, textStatus) ->
if textStatus == "success"
$(elem).replaceWith followLink()
dataType: 'json'
if Discussion.isSubscribed(id, type)
unfollowLink()
else
followLink()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment