From 0375710d22e1b31764ccd157d8aa62a3d64efca0 Mon Sep 17 00:00:00 2001 From: Rocky Duan Date: Thu, 2 Aug 2012 16:01:27 -0400 Subject: [PATCH] i meant sort before...this time it's search ajax --- .../django_comment_client/forum/views.py | 4 +-- lms/static/coffee/src/discussion.coffee | 34 +++++++++++++++---- lms/templates/discussion/_forum.html | 6 ++-- lms/templates/discussion/_inline.html | 4 +-- lms/templates/discussion/_search_bar.html | 15 ++++---- 5 files changed, 44 insertions(+), 19 deletions(-) diff --git a/lms/djangoapps/django_comment_client/forum/views.py b/lms/djangoapps/django_comment_client/forum/views.py index fdad3921e7..883c25ab49 100644 --- a/lms/djangoapps/django_comment_client/forum/views.py +++ b/lms/djangoapps/django_comment_client/forum/views.py @@ -41,7 +41,7 @@ def render_accordion(request, course, discussion_id): return render_to_string('discussion/_accordion.html', context) -def render_discussion(request, course_id, threads, discussion_id=None, with_search_bar=True, \ +def render_discussion(request, course_id, threads, discussion_id=None, \ discussion_type='inline', query_params={}): template = { @@ -57,8 +57,6 @@ def render_discussion(request, course_id, threads, discussion_id=None, with_sear context = { 'threads': threads, 'discussion_id': discussion_id, - 'search_bar': '' if not with_search_bar \ - else render_search_bar(request, course_id, discussion_id, text=query_params.get('text', '')), 'user_info': comment_client.get_user_info(request.user.id, raw=True), 'course_id': course_id, 'request': request, diff --git a/lms/static/coffee/src/discussion.coffee b/lms/static/coffee/src/discussion.coffee index a1664a6063..126deb7ff4 100644 --- a/lms/static/coffee/src/discussion.coffee +++ b/lms/static/coffee/src/discussion.coffee @@ -527,8 +527,25 @@ Discussion = handleCancelNewPost(this) $(elem).hide() + handleAjaxSearch = (elem) -> + console.log $(elem).attr("action") + $elem = $(elem) + $discussionModule = $elem.parents(".discussion-module") + $discussion = $discussionModule.find(".discussion") + Discussion.safeAjax + $elem: $elem + url: $elem.attr("action") + data: + text: $local(".search-input").val() + method: "GET" + success: (data, textStatus) -> + $discussion.replaceWith(data) + $discussion = $discussionModule.find(".discussion") + Discussion.initializeDiscussion($discussion) + Discussion.bindDiscussionEvents($discussion) + dataType: 'html' - handleSort = (elem) -> + handleAjaxSort = (elem) -> $elem = $(elem) $discussionModule = $elem.parents(".discussion-module") $discussion = $discussionModule.find(".discussion") @@ -543,7 +560,7 @@ Discussion = Discussion.bindDiscussionEvents($discussion) dataType: 'html' - $local(".discussion-search-form").submit (event) -> + $local(".search-wrapper-forum > .discussion-search-form").submit (event) -> event.preventDefault() text = $local(".search-input").val() isSearchWithinBoard = $local(".discussion-search-within-board").is(":checked") @@ -552,11 +569,16 @@ Discussion = $local(".discussion-new-post").click -> handleNewPost(this) - $local(".discussion-search").click -> - $local(".new-post-form").submit() + $local(".discussion-search-link").click -> + handleAjaxSearch(this) + + $local(".search-wrapper-inline > .discussion-search-form").submit (e)-> + e.preventDefault() + handleAjaxSearch(this) + + $local(".discussion-inline-sort-link").click -> + handleAjaxSort(this) - $discussion.children(".discussion-sort").find(".discussion-inline-sort-link").click -> - handleSort(this) $discussion.find(".thread").each (index, thread) -> Discussion.initializeContent(thread) diff --git a/lms/templates/discussion/_forum.html b/lms/templates/discussion/_forum.html index 490963bf01..bdb7cd7e19 100644 --- a/lms/templates/discussion/_forum.html +++ b/lms/templates/discussion/_forum.html @@ -5,14 +5,16 @@
Discussion
- ${search_bar} +
+ <%include file="_search_bar.html" /> +
New Post
+ <%include file="_sort.html" /> - <%include file="_sort.html" /> % for thread in threads: ${renderer.render_thread(course_id, thread, edit_thread=False, show_comments=False)} % endfor diff --git a/lms/templates/discussion/_inline.html b/lms/templates/discussion/_inline.html index bc9fb8d0e5..c779499792 100644 --- a/lms/templates/discussion/_inline.html +++ b/lms/templates/discussion/_inline.html @@ -3,11 +3,11 @@
- ${search_bar} + <%include file="_search_bar.html" />
New Post
+ <%include file="_sort.html" />
- <%include file="_sort.html" /> % for thread in threads: ${renderer.render_thread(course_id, thread, edit_thread=False, show_comments=False)} % endfor diff --git a/lms/templates/discussion/_search_bar.html b/lms/templates/discussion/_search_bar.html index c295e14b54..afed1d33a2 100644 --- a/lms/templates/discussion/_search_bar.html +++ b/lms/templates/discussion/_search_bar.html @@ -1,11 +1,14 @@ -<%! from django.core.urlresolvers import reverse %> - +<%! from urllib import urlencode %> <% -def url_for_search(): - return reverse('django_comment_client.forum.views.search', args=[course_id]) + +def merge(dic1, dic2): + return dict(dic1.items() + dic2.items()) + +def base_url_for_search(): + return base_url + '?' + urlencode(merge(query_params, {'page': 1})) %> -
+ - +