diff --git a/frontend_tests/node_tests/message_fetch.js b/frontend_tests/node_tests/message_fetch.js index 249e3e9d55..6705fcecc5 100644 --- a/frontend_tests/node_tests/message_fetch.js +++ b/frontend_tests/node_tests/message_fetch.js @@ -43,14 +43,16 @@ function stub_message_view(list) { function make_home_msg_list() { var table_name = 'whatever'; var filter = new Filter(); - var opts = {}; - var list = new message_list.MessageList(table_name, filter, opts); + var list = new message_list.MessageList({ + table_name: table_name, + filter: filter, + }); return list; } function make_all_list() { - return new message_list.MessageList(); + return new message_list.MessageList({}); } function reset_lists() { @@ -267,10 +269,10 @@ function simulate_narrow() { return 'operators-stub'; }; - var msg_list = new message_list.MessageList( - 'zfilt', - filter - ); + var msg_list = new message_list.MessageList({ + table_name: 'zfilt', + filter: filter, + }); set_global('current_msg_list', msg_list); return msg_list; diff --git a/frontend_tests/node_tests/message_list.js b/frontend_tests/node_tests/message_list.js index da70990490..50f7e6c4e8 100644 --- a/frontend_tests/node_tests/message_list.js +++ b/frontend_tests/node_tests/message_list.js @@ -31,10 +31,11 @@ function accept_all_filter() { } run_test('basics', () => { - var table; var filter = accept_all_filter(); - var list = new MessageList(table, filter); + var list = new MessageList({ + filter: filter, + }); var messages = [ { @@ -126,9 +127,7 @@ run_test('basics', () => { }); run_test('message_range', () => { - var table; - var filter = {}; - var list = new MessageList(table, filter); + var list = new MessageList({}); var messages = [{id: 30}, {id: 40}, {id: 50}, {id: 60}]; list.append(messages, true); @@ -140,9 +139,7 @@ run_test('message_range', () => { }); run_test('updates', () => { - var table; - var filter = {}; - var list = new MessageList(table, filter); + var list = new MessageList({}); list.view.rerender_the_whole_thing = noop; var messages = [ @@ -179,10 +176,7 @@ run_test('updates', () => { }); run_test('nth_most_recent_id', () => { - var table; - var filter = {}; - - var list = new MessageList(table, filter); + var list = new MessageList({}); list.append([{id:10}, {id:20}, {id:30}]); assert.equal(list.nth_most_recent_id(1), 30); assert.equal(list.nth_most_recent_id(2), 20); @@ -191,10 +185,7 @@ run_test('nth_most_recent_id', () => { }); run_test('change_message_id', () => { - var table; - var filter = {}; - - var list = new MessageList(table, filter); + var list = new MessageList({}); list.append([{id: 10.5, content: "good job"}, {id: 20.5, content: "ok!"}]); list.change_message_id(10.5, 11); assert.equal(list.get(11).content, "good job"); @@ -204,10 +195,7 @@ run_test('change_message_id', () => { }); run_test('last_sent_by_me', () => { - var table; - var filter = {}; - - var list = new MessageList(table, filter); + var list = new MessageList({}); var items = [ { id: 1, @@ -230,10 +218,7 @@ run_test('last_sent_by_me', () => { }); run_test('local_echo', () => { - var table; - var filter = {}; - - var list = new MessageList(table, filter); + var list = new MessageList({}); list.append([{id:10}, {id:20}, {id:30}, {id:20.02}, {id:20.03}, {id:40}, {id:50}, {id:60}]); list._local_only= {20.02: {id:20.02}, 20.03: {id:20.03}}; @@ -255,7 +240,7 @@ run_test('local_echo', () => { assert.equal(list.closest_id(58), 60); - list = new MessageList(table, filter); + list = new MessageList({}); list.append([ {id:10}, {id:20}, {id:30}, {id:20.02}, {id:20.03}, {id:40}, {id:50}, {id: 50.01}, {id: 50.02}, {id:60}]); @@ -282,10 +267,7 @@ run_test('local_echo', () => { }); run_test('bookend', () => { - var table; - var filter = {}; - - var list = new MessageList(table, filter); + var list = new MessageList({}); with_overrides(function (override) { var expected = "translated: You subscribed to stream IceCream"; @@ -362,10 +344,7 @@ run_test('bookend', () => { }); run_test('unmuted_messages', () => { - var table; - var filter = {}; - - var list = new MessageList(table, filter); + var list = new MessageList({}); var unmuted = [ { @@ -400,10 +379,9 @@ run_test('unmuted_messages', () => { }); run_test('add_remove_rerender', () => { - var table; var filter = accept_all_filter(); - var list = new MessageList(table, filter); + var list = new MessageList({filter: filter}); var messages = [{id: 1}, {id: 2}, {id: 3}]; diff --git a/frontend_tests/node_tests/message_list_view.js b/frontend_tests/node_tests/message_list_view.js index 68c78adb16..b500e5d262 100644 --- a/frontend_tests/node_tests/message_list_view.js +++ b/frontend_tests/node_tests/message_list_view.js @@ -370,9 +370,12 @@ run_test('render_windows', () => { var view = (function make_view() { var table_name = 'zfilt'; var filter = new Filter(); - var opts = {}; - var list = new message_list.MessageList(table_name, filter, opts); + var list = new message_list.MessageList({ + table_name: table_name, + filter: filter, + }); + var view = list.view; // Stub out functionality that is not core to the rendering window diff --git a/frontend_tests/node_tests/narrow_activate.js b/frontend_tests/node_tests/narrow_activate.js index af0e9a5f5c..52857ca8a0 100644 --- a/frontend_tests/node_tests/narrow_activate.js +++ b/frontend_tests/node_tests/narrow_activate.js @@ -95,10 +95,10 @@ function test_helper() { } function stub_message_list() { - message_list.MessageList = function (table_name, filter) { + message_list.MessageList = function (opts) { var list = this; this.messages = []; - this.filter = filter; + this.filter = opts.filter; this.view = { set_message_offset: function (offset) { list.view.offset = offset; diff --git a/static/js/message_list.js b/static/js/message_list.js index 88623ed0a0..5fb9c8b0e6 100644 --- a/static/js/message_list.js +++ b/static/js/message_list.js @@ -4,18 +4,23 @@ var exports = {}; exports.narrowed = undefined; -exports.MessageList = function (table_name, filter, opts) { - _.extend(this, { +exports.MessageList = function (opts) { + _.extend(opts, { collapse_messages: true, - muting_enabled: true, - }, opts); + }); + + var collapse_messages = opts.collapse_messages; + this.muting_enabled = opts.muting_enabled; + + var table_name = opts.table_name; + var filter = opts.filter; this.data = new MessageListData({ muting_enabled: this.muting_enabled, filter: filter, }); - this.view = new MessageListView(this, table_name, this.collapse_messages); + this.view = new MessageListView(this, table_name, collapse_messages); this.fetch_status = FetchStatus(); this.table_name = table_name; this.narrowed = this.table_name === "zfilt"; @@ -401,10 +406,9 @@ exports.MessageList.prototype = { }; -exports.all = new exports.MessageList( - undefined, undefined, - {muting_enabled: false} -); +exports.all = new exports.MessageList({ + muting_enabled: false, +}); // We stop autoscrolling when the user is clearly in the middle of // doing something. Be careful, though, if you try to capture diff --git a/static/js/narrow.js b/static/js/narrow.js index a06aeb46bf..5b5a438350 100644 --- a/static/js/narrow.js +++ b/static/js/narrow.js @@ -155,16 +155,12 @@ exports.activate = function (raw_operators, opts) { // Save how far from the pointer the top of the message list was. exports.save_pre_narrow_offset_for_reload(); - var msg_list_opts = { + var msg_list = new message_list.MessageList({ + table_name: 'zfilt', + filter: narrow_state.get_current_filter(), collapse_messages: ! narrow_state.get_current_filter().is_search(), muting_enabled: muting_enabled, - }; - - var msg_list = new message_list.MessageList( - 'zfilt', - narrow_state.get_current_filter(), - msg_list_opts - ); + }); msg_list.start_time = start_time; diff --git a/static/js/zulip.js b/static/js/zulip.js index 08b000a297..de362f6379 100644 --- a/static/js/zulip.js +++ b/static/js/zulip.js @@ -2,12 +2,11 @@ // global variables from Zulip (everything is being moved into // modules). Please don't add things here. -var home_msg_list = new message_list.MessageList( - 'zhome', - new Filter([{operator: "in", - operand: "home"}]), - {muting_enabled: true} -); +var home_msg_list = new message_list.MessageList({ + table_name: 'zhome', + filter: new Filter([{operator: "in", operand: "home"}]), + muting_enabled: true, +}); var current_msg_list = home_msg_list; if (typeof module !== 'undefined') {