retrieve inline discussion by ajax

This commit is contained in:
Rocky Duan
2012-07-31 13:22:25 -04:00
parent 701f8716f7
commit c39b2db678
7 changed files with 63 additions and 31 deletions

View File

@@ -9,9 +9,13 @@ $ ->
$('#open_close_accordion a').click @toggle
$('#accordion').show()
$(".discussion-module").each (index, elem) ->
Discussion.initializeDiscussionModule(elem)
$("section.discussion").each (index, discussion) ->
Discussion.bindDiscussionEvents(discussion)
Discussion.initializeDiscussion(discussion)
Discussion.bindDiscussionEvents(discussion)
generateLocal = (elem) ->
@@ -82,12 +86,52 @@ Discussion =
upload : "/courses/#{$$course_id}/discussion/upload"
search : "/courses/#{$$course_id}/discussion/forum/search"
tags_autocomplete : "/courses/#{$$course_id}/discussion/threads/tags/autocomplete"
retrieve_discussion : "/courses/#{$$course_id}/discussion/forum/#{param}/inline"
}[name]
handleAnchorAndReload: (response) ->
#window.location = window.location.pathname + "#" + response['id']
window.location.reload()
initializeDiscussionModule: (elem) ->
$discussionModule = $(elem)
$local = generateLocal($discussionModule)
handleShowDiscussion = (elem) ->
$elem = $(elem)
if $elem.attr("disabled")
return
if not $local("section.discussion").length
$elem.attr("disabled", "disabled")
discussion_id = $elem.attr("discussion_id")
url = Discussion.urlFor 'retrieve_discussion', discussion_id
$.ajax
url: url
method: "GET"
success: (data, textStatus, xhr) ->
$discussionModule.append(data)
discussion = $local("section.discussion")
Discussion.initializeDiscussion(discussion)
Discussion.bindDiscussionEvents(discussion)
$elem.removeAttr("disabled")
$elem.html("Hide Discussion")
$elem.unbind('click').click ->
handleHideDiscussion(this)
dataType: 'html'
else
$local("section.discussion").show()
$elem.html("Hide Discussion")
$elem.unbind('click').click ->
handleHideDiscussion(this)
handleHideDiscussion = (elem) ->
$local("section.discussion").hide()
$elem = $(elem)
$elem.html("Show Discussion")
$elem.unbind('click').click ->
handleShowDiscussion(this)
$local(".discussion-show").click ->
handleShowDiscussion(this)
initializeDiscussion: (discussion) ->
initializeVote = (index, content) ->
@@ -340,8 +384,9 @@ Discussion =
converter = Markdown.getMathCompatibleConverter()
$local(".content-body").html(converter.makeHtml(raw_text))
id = $content.attr("_id")
if not ($$annotated_content_info[id] || [])['editable']
$local(".discussion-edit").remove()
if $$annotated_content_info?
if not ($$annotated_content_info[id] || [])['editable']
$local(".discussion-edit").remove()