From 452414da373515d2fe4c200d1f22aa1c9cb5389e Mon Sep 17 00:00:00 2001 From: Arjun Singh Date: Wed, 12 Sep 2012 06:13:46 -0700 Subject: [PATCH] Kill requests for loading responses when selecting another thread. This ensures that the thread you're viewing has the right responses loaded. --- lms/static/coffee/src/discussion/discussion_router.coffee | 1 + lms/static/coffee/src/discussion/utils.coffee | 3 ++- .../src/discussion/views/discussion_thread_view.coffee | 7 ++++++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lms/static/coffee/src/discussion/discussion_router.coffee b/lms/static/coffee/src/discussion/discussion_router.coffee index 53ada7a596..274e7f2675 100644 --- a/lms/static/coffee/src/discussion/discussion_router.coffee +++ b/lms/static/coffee/src/discussion/discussion_router.coffee @@ -26,6 +26,7 @@ if Backbone? @thread = @discussion.get(thread_id) @setActiveThread() if(@main) + @main.cleanup() @main.undelegateEvents() @main = new DiscussionThreadView(el: $(".discussion-column"), model: @thread) diff --git a/lms/static/coffee/src/discussion/utils.coffee b/lms/static/coffee/src/discussion/utils.coffee index 07a23a4ca6..c65a3c15fd 100644 --- a/lms/static/coffee/src/discussion/utils.coffee +++ b/lms/static/coffee/src/discussion/utils.coffee @@ -71,7 +71,7 @@ class @DiscussionUtil params["loadingCallback"].apply(params["$loading"]) else params["$loading"].loading() - $.ajax(params).always -> + request = $.ajax(params).always -> if $elem $elem.removeAttr("disabled") if params["$loading"] @@ -79,6 +79,7 @@ class @DiscussionUtil params["loadedCallback"].apply(params["$loading"]) else params["$loading"].loaded() + return request @get: ($elem, url, data, success) -> @safeAjax diff --git a/lms/static/coffee/src/discussion/views/discussion_thread_view.coffee b/lms/static/coffee/src/discussion/views/discussion_thread_view.coffee index f56a47b85d..82d00255ae 100644 --- a/lms/static/coffee/src/discussion/views/discussion_thread_view.coffee +++ b/lms/static/coffee/src/discussion/views/discussion_thread_view.coffee @@ -23,10 +23,15 @@ if Backbone? @renderResponses() @ + cleanup: -> + if @responsesRequest? + @responsesRequest.abort() + renderResponses: -> - DiscussionUtil.safeAjax + @responsesRequest = DiscussionUtil.safeAjax url: "/courses/#{$$course_id}/discussion/forum/#{@model.get('commentable_id')}/threads/#{@model.id}" success: (data, textStatus, xhr) => + @responsesRequest = null @$el.find(".loading").remove() Content.loadContentInfos(data['annotated_content_info']) comments = new Comments(data['content']['children'])