diff --git a/common/static/js/vendor/jquery.tagsinput.js b/common/static/js/vendor/jquery.tagsinput.js index 4ce21b026d..b05a87ca99 100644 --- a/common/static/js/vendor/jquery.tagsinput.js +++ b/common/static/js/vendor/jquery.tagsinput.js @@ -227,6 +227,7 @@ markup = markup + '
'; $(markup).insertAfter(this); + $(data.holder).css('width',settings.width); $(data.holder).css('min-height',settings.height); @@ -240,6 +241,7 @@ $(data.fake_input).css('color',settings.placeholderColor); $(data.fake_input).resetAutosize(settings); + $(data.fake_input).doAutosize(settings); $(data.holder).bind('click',data,function(event) { $(event.data.fake_input).focus(); }); @@ -260,7 +262,6 @@ if (jQuery.Autocompleter !== undefined) { onSelectCallback = settings.autocomplete.onItemSelect; settings.autocomplete.onItemSelect = function() { - console.log("here"); $(data.real_input).addTag($(data.fake_input).val(), {focus: true, unique: (settings.unique)}); $(data.fake_input).resetAutosize(settings); if (onSelectCallback) { diff --git a/lms/djangoapps/django_comment_client/forum/views.py b/lms/djangoapps/django_comment_client/forum/views.py index 4f8c5e0f3c..e9c7fda4fe 100644 --- a/lms/djangoapps/django_comment_client/forum/views.py +++ b/lms/djangoapps/django_comment_client/forum/views.py @@ -29,11 +29,12 @@ 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, search_text=''): +def render_discussion(request, course_id, threads, discussion_id=None, with_search_bar=True, search_text=''): context = { 'threads': threads, 'discussion_id': discussion_id, - 'search_bar': render_search_bar(request, course_id, discussion_id, text=search_text), + 'search_bar': '' if not with_search_bar \ + else render_search_bar(request, course_id, discussion_id, text=search_text), 'user_info': comment_client.get_user_info(request.user.id, raw=True), 'tags': comment_client.get_threads_tags(raw=True), 'course_id': course_id, @@ -41,9 +42,8 @@ def render_discussion(request, course_id, threads, discussion_id=None, search_te return render_to_string('discussion/inline.html', context) def inline_discussion(request, course_id, discussion_id): - print "rendering inline" threads = comment_client.get_threads(discussion_id, recursive=False) - html = render_discussion(request, course_id, threads, discussion_id) + html = render_discussion(request, course_id, threads, discussion_id=discussion_id) return HttpResponse(html, content_type="text/plain") def render_search_bar(request, course_id, discussion_id=None, text=''): diff --git a/lms/static/coffee/src/discussion.coffee b/lms/static/coffee/src/discussion.coffee index e7e1b24a19..6e23a293a4 100644 --- a/lms/static/coffee/src/discussion.coffee +++ b/lms/static/coffee/src/discussion.coffee @@ -29,6 +29,17 @@ generateDiscussionLink = (cls, txt, handler) -> Discussion = + newPostTemplate: """ +
+ + +
+ + Submit + Cancel +
+ """ + replyTemplate: """
@@ -169,9 +180,7 @@ Discussion = watchDiscussion = generateDiscussionLink("discussion-watch-discussion", "Watch", handleWatchDiscussion) $local(".discussion-title-wrapper").append(watchDiscussion) - newPostBody = $(discussion).find(".new-post-body") - if newPostBody.length - Markdown.makeWmdEditor newPostBody, "-new-post-body-#{$(discussion).attr('_id')}", Discussion.urlFor('upload') + initializeWatchThreads = (index, thread) -> $thread = $(thread) @@ -192,7 +201,6 @@ Discussion = Discussion.handleAnchorAndReload(response) , 'json' - if id in $$user_info.subscribed_thread_ids unwatchThread = generateDiscussionLink("discussion-unwatch-thread", "Unwatch", handleUnwatchThread) $local(".info").append(unwatchThread) @@ -406,7 +414,7 @@ Discussion = else window.location = Discussion.urlFor('search') + '?text=' + encodeURI(text) - handleSubmitNewThread = (elem) -> + handleSubmitNewPost = (elem) -> title = $local(".new-post-title").val() body = $local("#wmd-input-new-post-body-#{id}").val() tags = $local(".new-post-tags").val() @@ -419,6 +427,38 @@ Discussion = else Discussion.handleAnchorAndReload(response) , 'json' + + handleCancelNewPost = (elem) -> + $local(".new-post-form").hide() + $local(".discussion-new-post").show() + + handleNewPost = (elem) -> + newPostForm = $local(".new-post-form") + if newPostForm.length + newPostForm.show() + $(elem).hide() + else + view = { + discussion_id: id + } + $discussionNonContent.append Mustache.render Discussion.newPostTemplate, view + newPostBody = $(discussion).find(".new-post-body") + if newPostBody.length + Markdown.makeWmdEditor newPostBody, "-new-post-body-#{$(discussion).attr('_id')}", Discussion.urlFor('upload') + $local(".new-post-tags").tagsInput + autocomplete_url: Discussion.urlFor('tags_autocomplete') + autocomplete: + remoteDataType: 'json' + interactive: true + defaultText: "Tag your post: press enter after each tag" + height: "30px" + width: "85%" + removeWithBackspace: true + $local(".discussion-submit-post").click -> + handleSubmitNewPost(this) + $local(".discussion-cancel-post").click -> + handleCancelNewPost(this) + $(elem).hide() $local(".discussion-search-form").submit (event) -> event.preventDefault() @@ -427,7 +467,7 @@ Discussion = handleSearch(text, isSearchWithinBoard) $local(".discussion-new-post").click -> - handleSubmitNewThread(this) + handleNewPost(this) $local(".discussion-search").click -> $local(".new-post-form").submit() diff --git a/lms/static/sass/_discussion.scss b/lms/static/sass/_discussion.scss index 3e97ce5232..5cf325280b 100644 --- a/lms/static/sass/_discussion.scss +++ b/lms/static/sass/_discussion.scss @@ -152,7 +152,7 @@ $discussion_input_width: 90%; width: inherit; } } - .discussion-content-edit, .discussion-reply-new { + .discussion-content-edit, .discussion-reply-new, .new-post-form { .control-button { display: inline-block; } diff --git a/lms/templates/discussion/inline.html b/lms/templates/discussion/inline.html index 42fac4e110..5901900b0c 100644 --- a/lms/templates/discussion/inline.html +++ b/lms/templates/discussion/inline.html @@ -6,13 +6,7 @@ Discussion ${search_bar} - - - -
- - New Post -
+ New Post % for thread in threads: ${renderer.render_thread(course_id, thread, edit_thread=False, show_comments=False)}