Commit 3c681a20 by Rocky Duan

fixed vote bug

parent 6f798fd1
...@@ -3,6 +3,22 @@ if not @Discussion? ...@@ -3,6 +3,22 @@ if not @Discussion?
Discussion = @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, @Discussion = $.extend @Discussion,
bindContentEvents: (content) -> bindContentEvents: (content) ->
...@@ -265,6 +281,9 @@ Discussion = @Discussion ...@@ -265,6 +281,9 @@ Discussion = @Discussion
initializeContent: (content) -> initializeContent: (content) ->
$content = $(content) $content = $(content)
initializeVote $content
if $content.hasClass("thread")
initializeFollowThread $content
$local = Discussion.generateLocal($content.children(".discussion-content")) $local = Discussion.generateLocal($content.children(".discussion-content"))
$contentBody = $local(".content-body") $contentBody = $local(".content-body")
raw_text = $contentBody.html() raw_text = $contentBody.html()
......
...@@ -3,75 +3,27 @@ if not @Discussion? ...@@ -3,75 +3,27 @@ if not @Discussion?
Discussion = @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) -> initializeFollowDiscussion = (discussion) ->
$discussion = $(discussion) $discussion = $(discussion)
id = $following.attr("_id") id = $following.attr("_id")
$local = Discussion.generateLocal() $local = Discussion.generateLocal()
$discussion.children(".discussion-non-content") $discussion.children(".discussion-non-content")
.find(".discussion-title-wrapper") .find(".discussion-title-wrapper")
.append(subscriptionLink('discussion', id)) .append(Discussion.subscriptionLink('discussion', id))
initializeFollowThread = (index, thread) ->
$thread = $(thread)
id = $thread.attr("_id")
$thread.children(".discussion-content")
.find(".follow-wrapper")
.append(subscriptionLink('thread', id))
@Discussion = $.extend @Discussion, @Discussion = $.extend @Discussion,
initializeDiscussion: (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 #initializeFollowDiscussion(discussion) TODO move this somewhere else
$local(".new-post-tags").tagsInput Discussion.tagsInputOptions()
bindDiscussionEvents: (discussion) -> bindDiscussionEvents: (discussion) ->
$discussion = $(discussion) $discussion = $(discussion)
...@@ -189,11 +141,3 @@ initializeFollowThread = (index, thread) -> ...@@ -189,11 +141,3 @@ initializeFollowThread = (index, thread) ->
"click .discussion-inline-sort-link": -> "click .discussion-inline-sort-link": ->
handleAjaxSort(this) 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 = {} ...@@ -132,3 +132,35 @@ wmdEditors = {}
if not window.$$annotated_content_info? if not window.$$annotated_content_info?
window.$$annotated_content_info = {} window.$$annotated_content_info = {}
window.$$annotated_content_info = $.extend window.$$annotated_content_info, newInfos 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