inline discussion component filtering and sorting

TNL-6117
This commit is contained in:
alisan617
2017-01-11 16:24:46 -05:00
parent 78d1336497
commit f12dfae2d1
12 changed files with 64 additions and 24 deletions

View File

@@ -30,6 +30,14 @@
return discussionBoardView;
};
describe('Thread List View', function() {
it('should ensure the mode is all', function() {
var discussionBoardView = createDiscussionBoardView().render(),
threadListView = discussionBoardView.discussionThreadListView;
expect(threadListView.mode).toBe('all');
});
});
describe('Search events', function() {
it('perform search when enter pressed inside search textfield', function() {
var discussionBoardView = createDiscussionBoardView(),

View File

@@ -30,13 +30,22 @@ DiscussionSpecHelper, DiscussionUserProfileView) {
describe('thread list in user profile page', function() {
it('should render', function() {
var discussionUserProfileView = createDiscussionUserProfileView(),
threadListView;
discussionUserProfileView.render();
threadListView = discussionUserProfileView.discussionThreadListView;
threadListView.render();
var discussionUserProfileView = createDiscussionUserProfileView().render(),
threadListView = discussionUserProfileView.discussionThreadListView.render();
expect(threadListView.$('.forum-nav-thread-list').length).toBe(1);
});
it('should ensure discussion thread list view mode is all', function() {
var discussionUserProfileView = createDiscussionUserProfileView().render(),
threadListView = discussionUserProfileView.discussionThreadListView.render();
expect(threadListView.mode).toBe('user');
});
it('should not show the thread list unread unanswered filter', function() {
var discussionUserProfileView = createDiscussionUserProfileView().render(),
threadListView = discussionUserProfileView.discussionThreadListView.render();
expect(threadListView.$('.forum-nav-filter-main')).toHaveClass('is-hidden');
});
});
});
});

View File

@@ -46,7 +46,8 @@
collection: this.discussion,
el: this.$('.discussion-thread-list-container'),
courseSettings: this.courseSettings,
supportsActiveThread: true
supportsActiveThread: true,
mode: this.mode
}).render();
this.searchView = new DiscussionSearchView({
el: this.$('.forum-search')

View File

@@ -26,7 +26,7 @@
initialize: function(options) {
this.courseSettings = options.courseSettings;
this.discussion = options.discussion;
this.mode = 'all';
this.mode = 'user';
this.listenTo(this.model, 'change', this.render);
},
@@ -39,7 +39,7 @@
collection: this.discussion,
el: this.$('.inline-threads'),
courseSettings: this.courseSettings,
hideRefineBar: true, // TODO: re-enable the search/filter bar when it works correctly
mode: this.mode,
// @TODO: On the profile page, thread read state for the viewing user is not accessible via API.
// Fix this when the Discussions API can support this query. Until then, hide read state.
hideReadState: true

View File

@@ -76,6 +76,7 @@ from openedx.core.djangolib.js_utils import dump_js_escaped_json, js_escaped_str
data-course-name="${course.display_name_with_default}"
data-threads="${threads}"
data-user-info="${user_info}"
data-user-id="${django_user.id}"
data-page="${page}"
data-num-pages="${num_pages}"
data-user-create-comment="${json.dumps(can_create_comment)}"

View File

@@ -59,7 +59,8 @@ define([
requests,
'GET',
interpolate(
'/courses/%(courseID)s/discussion/forum/%(topicID)s/inline?page=1&ajax=1',
'/courses/%(courseID)s/discussion/forum/%(topicID)s/inline' +
'?page=1&sort_key=activity&sort_order=desc&ajax=1',
{
courseID: TeamSpecHelpers.testCourseID,
topicID: TeamSpecHelpers.testTeamDiscussionID