diff --git a/frontend_tests/node_tests/fetch_status.js b/frontend_tests/node_tests/fetch_status.js index d8ba08919f..a7a533bac1 100644 --- a/frontend_tests/node_tests/fetch_status.js +++ b/frontend_tests/node_tests/fetch_status.js @@ -30,6 +30,14 @@ function has_not_found_newest() { assert.equal(fetch_status.has_found_newest(), false); } +function can_load_history() { + assert.equal(fetch_status.history_limited(), false); +} + +function blocked_history() { + assert.equal(fetch_status.history_limited(), true); +} + run_test('basics', () => { reset(); @@ -37,16 +45,19 @@ run_test('basics', () => { blocked_newer(); blocked_older(); + can_load_history(); has_not_found_newest(); fetch_status.finish_initial_narrow({ found_oldest: true, found_newest: true, + history_limited: true, }); has_found_newest(); blocked_newer(); blocked_older(); + blocked_history(); reset(); @@ -54,14 +65,17 @@ run_test('basics', () => { blocked_newer(); blocked_older(); + can_load_history(); fetch_status.finish_initial_narrow({ found_oldest: false, found_newest: false, + history_limited: false, }); can_load_older(); can_load_newer(); + can_load_history(); reset(); @@ -71,25 +85,31 @@ run_test('basics', () => { blocked_older(); can_load_newer(); + can_load_history(); fetch_status.finish_older_batch({ found_oldest: false, + history_limited: false, }); can_load_older(); can_load_newer(); + can_load_history(); fetch_status.start_older_batch(); blocked_older(); can_load_newer(); + can_load_history(); fetch_status.finish_older_batch({ found_oldest: true, + history_limited: true, }); blocked_older(); can_load_newer(); + blocked_history(); reset(); diff --git a/static/js/fetch_status.js b/static/js/fetch_status.js index b15413eecd..79a8fce21a 100644 --- a/static/js/fetch_status.js +++ b/static/js/fetch_status.js @@ -6,6 +6,7 @@ var FetchStatus = function () { var loading_newer = false; var found_oldest = false; var found_newest = false; + var history_limited = false; self.start_initial_narrow = function () { loading_newer = true; @@ -17,6 +18,7 @@ var FetchStatus = function () { loading_older = false; found_oldest = opts.found_oldest; found_newest = opts.found_newest; + history_limited = opts.history_limited; }; self.start_older_batch = function () { @@ -26,12 +28,17 @@ var FetchStatus = function () { self.finish_older_batch = function (opts) { loading_older = false; found_oldest = opts.found_oldest; + history_limited = opts.history_limited; }; self.can_load_older_messages = function () { return !loading_older && !found_oldest; }; + self.history_limited = function () { + return history_limited; + }; + self.start_newer_batch = function () { loading_newer = true; }; diff --git a/static/js/message_fetch.js b/static/js/message_fetch.js index 9271f88f08..5b77855e95 100644 --- a/static/js/message_fetch.js +++ b/static/js/message_fetch.js @@ -226,10 +226,12 @@ exports.do_backfill = function (opts) { cont: function (data) { msg_list.fetch_status.finish_older_batch({ found_oldest: data.found_oldest, + history_limited: data.history_limited, }); if (msg_list === home_msg_list) { message_list.all.fetch_status.finish_older_batch({ found_oldest: data.found_oldest, + history_limited: data.history_limited, }); } if (opts.cont) { @@ -306,9 +308,11 @@ exports.initialize = function () { // has an older batch to finish. home_msg_list.fetch_status.finish_older_batch({ found_oldest: data.found_oldest, + history_limited: data.history_limited, }); message_list.all.fetch_status.finish_older_batch({ found_oldest: data.found_oldest, + history_limited: data.history_limited, }); }