mirror of
https://github.com/zulip/zulip.git
synced 2025-11-13 18:36:36 +00:00
narrow-banner: Pass filter for showing/picking an empty narrow banner.
We expect to have a message list and therefore a filter when we show or pick an empty narrow banner.
This commit is contained in:
committed by
Tim Abbott
parent
a98c86922a
commit
cb8e67a0e6
@@ -49,7 +49,9 @@ export function initialize(): void {
|
|||||||
const button_type = $elem.attr("data-reply-button-type");
|
const button_type = $elem.attr("data-reply-button-type");
|
||||||
switch (button_type) {
|
switch (button_type) {
|
||||||
case "direct_disabled": {
|
case "direct_disabled": {
|
||||||
instance.setContent(pick_empty_narrow_banner().title);
|
const narrow_filter = narrow_state.filter();
|
||||||
|
assert(narrow_filter !== undefined);
|
||||||
|
instance.setContent(pick_empty_narrow_banner(narrow_filter).title);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
case "stream_disabled": {
|
case "stream_disabled": {
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ export function fetch_more_if_required_for_current_msg_list(
|
|||||||
if (has_found_oldest && has_found_newest && message_lists.current.visibly_empty()) {
|
if (has_found_oldest && has_found_newest && message_lists.current.visibly_empty()) {
|
||||||
// Even after loading more messages, we have
|
// Even after loading more messages, we have
|
||||||
// no messages to display in this narrow.
|
// no messages to display in this narrow.
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(message_lists.current.data.filter);
|
||||||
compose_closed_ui.update_buttons_for_private();
|
compose_closed_ui.update_buttons_for_private();
|
||||||
compose_recipient.check_posting_policy_for_compose_box();
|
compose_recipient.check_posting_policy_for_compose_box();
|
||||||
}
|
}
|
||||||
@@ -433,7 +433,7 @@ export function load_messages(opts: MessageFetchOptions, attempt = 1): void {
|
|||||||
!opts.msg_list.is_combined_feed_view &&
|
!opts.msg_list.is_combined_feed_view &&
|
||||||
opts.msg_list.visibly_empty()
|
opts.msg_list.visibly_empty()
|
||||||
) {
|
) {
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(opts.msg_list.data.filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: This should probably do something explicit with
|
// TODO: This should probably do something explicit with
|
||||||
|
|||||||
@@ -583,7 +583,7 @@ export class MessageList {
|
|||||||
// Show the empty narrow message only if we're certain
|
// Show the empty narrow message only if we're certain
|
||||||
// that the view doesn't have messages that we're
|
// that the view doesn't have messages that we're
|
||||||
// waiting for the server to send us.
|
// waiting for the server to send us.
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(this.data.filter);
|
||||||
} else {
|
} else {
|
||||||
narrow_banner.hide_empty_narrow_message();
|
narrow_banner.hide_empty_narrow_message();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ import _ from "lodash";
|
|||||||
import assert from "minimalistic-assert";
|
import assert from "minimalistic-assert";
|
||||||
|
|
||||||
import * as compose_validate from "./compose_validate.ts";
|
import * as compose_validate from "./compose_validate.ts";
|
||||||
|
import type {Filter} from "./filter.ts";
|
||||||
import {$t, $t_html} from "./i18n.ts";
|
import {$t, $t_html} from "./i18n.ts";
|
||||||
import type {NarrowBannerData, SearchData} from "./narrow_error.ts";
|
import type {NarrowBannerData, SearchData} from "./narrow_error.ts";
|
||||||
import {narrow_error} from "./narrow_error.ts";
|
import {narrow_error} from "./narrow_error.ts";
|
||||||
import * as narrow_state from "./narrow_state.ts";
|
|
||||||
import {page_params} from "./page_params.ts";
|
import {page_params} from "./page_params.ts";
|
||||||
import * as people from "./people.ts";
|
import * as people from "./people.ts";
|
||||||
import * as spectators from "./spectators.ts";
|
import * as spectators from "./spectators.ts";
|
||||||
@@ -62,10 +62,8 @@ const STARRED_MESSAGES_VIEW_EMPTY_BANNER = {
|
|||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
function retrieve_search_query_data(): SearchData {
|
function retrieve_search_query_data(current_filter: Filter): SearchData {
|
||||||
// when search bar contains multiple filters, only retrieve search queries
|
// when search bar contains multiple filters, only retrieve search queries
|
||||||
const current_filter = narrow_state.filter();
|
|
||||||
assert(current_filter !== undefined);
|
|
||||||
const search_query = current_filter.operands("search")[0];
|
const search_query = current_filter.operands("search")[0];
|
||||||
const query_words = search_query!.split(" ");
|
const query_words = search_query!.split(" ");
|
||||||
|
|
||||||
@@ -107,7 +105,7 @@ function retrieve_search_query_data(): SearchData {
|
|||||||
return search_string_result;
|
return search_string_result;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function pick_empty_narrow_banner(): NarrowBannerData {
|
export function pick_empty_narrow_banner(current_filter: Filter): NarrowBannerData {
|
||||||
const default_banner = {
|
const default_banner = {
|
||||||
title: $t({defaultMessage: "There are no messages here."}),
|
title: $t({defaultMessage: "There are no messages here."}),
|
||||||
// Spectators cannot start a conversation.
|
// Spectators cannot start a conversation.
|
||||||
@@ -127,11 +125,6 @@ export function pick_empty_narrow_banner(): NarrowBannerData {
|
|||||||
};
|
};
|
||||||
const default_banner_for_multiple_filters = $t({defaultMessage: "No search results."});
|
const default_banner_for_multiple_filters = $t({defaultMessage: "No search results."});
|
||||||
|
|
||||||
const current_filter = narrow_state.filter();
|
|
||||||
if (current_filter === undefined) {
|
|
||||||
// We're in either the inbox or recent conversations view.
|
|
||||||
return default_banner;
|
|
||||||
}
|
|
||||||
if (current_filter.is_in_home()) {
|
if (current_filter.is_in_home()) {
|
||||||
// We're in the combined feed view.
|
// We're in the combined feed view.
|
||||||
return {
|
return {
|
||||||
@@ -197,7 +190,7 @@ export function pick_empty_narrow_banner(): NarrowBannerData {
|
|||||||
if (current_filter.operands("search").length > 0) {
|
if (current_filter.operands("search").length > 0) {
|
||||||
return {
|
return {
|
||||||
title: default_banner_for_multiple_filters,
|
title: default_banner_for_multiple_filters,
|
||||||
search_data: retrieve_search_query_data(),
|
search_data: retrieve_search_query_data(current_filter),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -323,7 +316,7 @@ export function pick_empty_narrow_banner(): NarrowBannerData {
|
|||||||
// You are narrowed to empty search results.
|
// You are narrowed to empty search results.
|
||||||
return {
|
return {
|
||||||
title: $t({defaultMessage: "No search results."}),
|
title: $t({defaultMessage: "No search results."}),
|
||||||
search_data: retrieve_search_query_data(),
|
search_data: retrieve_search_query_data(current_filter),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
case "dm": {
|
case "dm": {
|
||||||
@@ -483,9 +476,9 @@ export function pick_empty_narrow_banner(): NarrowBannerData {
|
|||||||
return default_banner;
|
return default_banner;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function show_empty_narrow_message(): void {
|
export function show_empty_narrow_message(current_filter: Filter): void {
|
||||||
$(".empty_feed_notice_main").empty();
|
$(".empty_feed_notice_main").empty();
|
||||||
const rendered_narrow_banner = narrow_error(pick_empty_narrow_banner());
|
const rendered_narrow_banner = narrow_error(pick_empty_narrow_banner(current_filter));
|
||||||
$(".empty_feed_notice_main").html(rendered_narrow_banner);
|
$(".empty_feed_notice_main").html(rendered_narrow_banner);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ const message_view = zrequire("message_view");
|
|||||||
const narrow_title = zrequire("narrow_title");
|
const narrow_title = zrequire("narrow_title");
|
||||||
const recent_view_util = zrequire("recent_view_util");
|
const recent_view_util = zrequire("recent_view_util");
|
||||||
const inbox_util = zrequire("inbox_util");
|
const inbox_util = zrequire("inbox_util");
|
||||||
const message_lists = zrequire("message_lists");
|
|
||||||
const {set_current_user, set_realm} = zrequire("state_data");
|
const {set_current_user, set_realm} = zrequire("state_data");
|
||||||
const user_groups = zrequire("user_groups");
|
const user_groups = zrequire("user_groups");
|
||||||
const {initialize_user_settings} = zrequire("user_settings");
|
const {initialize_user_settings} = zrequire("user_settings");
|
||||||
@@ -55,14 +54,7 @@ function set_filter(terms) {
|
|||||||
operator: op[0],
|
operator: op[0],
|
||||||
operand: op[1],
|
operand: op[1],
|
||||||
}));
|
}));
|
||||||
message_lists.set_current({
|
return new Filter(terms);
|
||||||
data: {
|
|
||||||
filter: new Filter(terms),
|
|
||||||
fetch_status: {
|
|
||||||
has_found_newest: () => true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const me = {
|
const me = {
|
||||||
@@ -239,20 +231,9 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
|
|
||||||
mock_template("empty_feed_notice.hbs", true, (_data, html) => html);
|
mock_template("empty_feed_notice.hbs", true, (_data, html) => html);
|
||||||
|
|
||||||
message_lists.set_current(undefined);
|
|
||||||
narrow_banner.show_empty_narrow_message();
|
|
||||||
assert.equal(
|
|
||||||
$(".empty_feed_notice_main").html(),
|
|
||||||
empty_narrow_html(
|
|
||||||
"translated: There are no messages here.",
|
|
||||||
'translated HTML: Why not <a href="#" class="empty_feed_compose_stream">start the conversation</a>?',
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
// for empty combined feed
|
// for empty combined feed
|
||||||
const current_filter = new Filter([{operator: "in", operand: "home"}]);
|
let current_filter = new Filter([{operator: "in", operand: "home"}]);
|
||||||
message_lists.set_current({data: {filter: current_filter}});
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
narrow_banner.show_empty_narrow_message();
|
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -262,8 +243,8 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
// for non-existent or private stream
|
// for non-existent or private stream
|
||||||
set_filter([["stream", "999"]]);
|
current_filter = set_filter([["stream", "999"]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -271,12 +252,12 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
set_filter([
|
current_filter = set_filter([
|
||||||
["stream", "999"],
|
["stream", "999"],
|
||||||
["topic", "foo"],
|
["topic", "foo"],
|
||||||
["near", "99"],
|
["near", "99"],
|
||||||
]);
|
]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -287,8 +268,8 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
// for non-subbed public stream
|
// for non-subbed public stream
|
||||||
const rome_id = 99;
|
const rome_id = 99;
|
||||||
stream_data.add_sub({name: "ROME", stream_id: rome_id});
|
stream_data.add_sub({name: "ROME", stream_id: rome_id});
|
||||||
set_filter([["stream", rome_id.toString()]]);
|
current_filter = set_filter([["stream", rome_id.toString()]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -299,8 +280,8 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
|
|
||||||
// for non-web-public stream for spectator
|
// for non-web-public stream for spectator
|
||||||
page_params.is_spectator = true;
|
page_params.is_spectator = true;
|
||||||
set_filter([["stream", rome_id.toString()]]);
|
current_filter = set_filter([["stream", rome_id.toString()]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -309,11 +290,11 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
set_filter([
|
current_filter = set_filter([
|
||||||
["stream", rome_id.toString()],
|
["stream", rome_id.toString()],
|
||||||
["topic", "foo"],
|
["topic", "foo"],
|
||||||
]);
|
]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -325,19 +306,19 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
// for web-public stream for spectator
|
// for web-public stream for spectator
|
||||||
const web_public_id = 1231;
|
const web_public_id = 1231;
|
||||||
stream_data.add_sub({name: "web-public-stream", stream_id: web_public_id, is_web_public: true});
|
stream_data.add_sub({name: "web-public-stream", stream_id: web_public_id, is_web_public: true});
|
||||||
set_filter([
|
current_filter = set_filter([
|
||||||
["stream", web_public_id.toString()],
|
["stream", web_public_id.toString()],
|
||||||
["topic", "foo"],
|
["topic", "foo"],
|
||||||
]);
|
]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html("translated: There are no messages here."),
|
empty_narrow_html("translated: There are no messages here."),
|
||||||
);
|
);
|
||||||
page_params.is_spectator = false;
|
page_params.is_spectator = false;
|
||||||
|
|
||||||
set_filter([["is", "starred"]]);
|
current_filter = set_filter([["is", "starred"]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -346,8 +327,8 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
set_filter([["is", "mentioned"]]);
|
current_filter = set_filter([["is", "mentioned"]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -358,8 +339,8 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
|
|
||||||
override(realm, "realm_direct_message_permission_group", everyone.id);
|
override(realm, "realm_direct_message_permission_group", everyone.id);
|
||||||
override(realm, "realm_direct_message_initiator_group", everyone.id);
|
override(realm, "realm_direct_message_initiator_group", everyone.id);
|
||||||
set_filter([["is", "dm"]]);
|
current_filter = set_filter([["is", "dm"]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -368,22 +349,22 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
set_filter([["is", "unread"]]);
|
current_filter = set_filter([["is", "unread"]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html("translated: You have no unread messages!"),
|
empty_narrow_html("translated: You have no unread messages!"),
|
||||||
);
|
);
|
||||||
|
|
||||||
set_filter([["is", "resolved"]]);
|
current_filter = set_filter([["is", "resolved"]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html("translated: No topics are marked as resolved."),
|
empty_narrow_html("translated: No topics are marked as resolved."),
|
||||||
);
|
);
|
||||||
|
|
||||||
set_filter([["is", "followed"]]);
|
current_filter = set_filter([["is", "followed"]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html("translated: You aren't following any topics."),
|
empty_narrow_html("translated: You aren't following any topics."),
|
||||||
@@ -393,23 +374,23 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
override(realm, "realm_direct_message_permission_group", nobody.id);
|
override(realm, "realm_direct_message_permission_group", nobody.id);
|
||||||
|
|
||||||
// prioritize information about invalid user(s) in narrow/search
|
// prioritize information about invalid user(s) in narrow/search
|
||||||
set_filter([["dm", ["Yo"]]]);
|
current_filter = set_filter([["dm", ["Yo"]]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html("translated: This user does not exist!"),
|
empty_narrow_html("translated: This user does not exist!"),
|
||||||
);
|
);
|
||||||
|
|
||||||
people.add_active_user(alice);
|
people.add_active_user(alice);
|
||||||
set_filter([["dm", ["alice@example.com", "Yo"]]]);
|
current_filter = set_filter([["dm", ["alice@example.com", "Yo"]]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html("translated: One or more of these users do not exist!"),
|
empty_narrow_html("translated: One or more of these users do not exist!"),
|
||||||
);
|
);
|
||||||
|
|
||||||
set_filter([["dm", "alice@example.com"]]);
|
current_filter = set_filter([["dm", "alice@example.com"]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -421,8 +402,8 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
// direct messages with a bot are possible even though
|
// direct messages with a bot are possible even though
|
||||||
// the organization has disabled sending direct messages
|
// the organization has disabled sending direct messages
|
||||||
people.add_active_user(bot);
|
people.add_active_user(bot);
|
||||||
set_filter([["dm", "bot@example.com"]]);
|
current_filter = set_filter([["dm", "bot@example.com"]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -433,8 +414,8 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
|
|
||||||
// group direct messages with bots are not possible when
|
// group direct messages with bots are not possible when
|
||||||
// sending direct messages is disabled
|
// sending direct messages is disabled
|
||||||
set_filter([["dm", bot.email + "," + alice.email]]);
|
current_filter = set_filter([["dm", bot.email + "," + alice.email]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -445,8 +426,8 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
|
|
||||||
// sending direct messages enabled
|
// sending direct messages enabled
|
||||||
override(realm, "realm_direct_message_permission_group", everyone.id);
|
override(realm, "realm_direct_message_permission_group", everyone.id);
|
||||||
set_filter([["dm", "alice@example.com"]]);
|
current_filter = set_filter([["dm", "alice@example.com"]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -458,8 +439,8 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
// sending direct messages to deactivated user
|
// sending direct messages to deactivated user
|
||||||
override(realm, "realm_direct_message_permission_group", everyone.id);
|
override(realm, "realm_direct_message_permission_group", everyone.id);
|
||||||
people.deactivate(alice);
|
people.deactivate(alice);
|
||||||
set_filter([["dm", alice.email]]);
|
current_filter = set_filter([["dm", alice.email]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html("translated: You have no direct messages with Alice Smith."),
|
empty_narrow_html("translated: You have no direct messages with Alice Smith."),
|
||||||
@@ -468,8 +449,8 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
|
|
||||||
people.add_active_user(me);
|
people.add_active_user(me);
|
||||||
people.initialize_current_user(me.user_id);
|
people.initialize_current_user(me.user_id);
|
||||||
set_filter([["dm", me.email]]);
|
current_filter = set_filter([["dm", me.email]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -478,8 +459,8 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
set_filter([["dm", me.email + "," + alice.email]]);
|
current_filter = set_filter([["dm", me.email + "," + alice.email]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -490,8 +471,8 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
|
|
||||||
// group dm with a deactivated user
|
// group dm with a deactivated user
|
||||||
people.deactivate(alice);
|
people.deactivate(alice);
|
||||||
set_filter([["dm", ray.email + "," + alice.email]]);
|
current_filter = set_filter([["dm", ray.email + "," + alice.email]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html("translated: You have no direct messages with these users."),
|
empty_narrow_html("translated: You have no direct messages with these users."),
|
||||||
@@ -502,15 +483,15 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
override(realm, "realm_direct_message_permission_group", nobody.id);
|
override(realm, "realm_direct_message_permission_group", nobody.id);
|
||||||
|
|
||||||
// prioritize information about invalid user in narrow/search
|
// prioritize information about invalid user in narrow/search
|
||||||
set_filter([["dm-including", ["Yo"]]]);
|
current_filter = set_filter([["dm-including", ["Yo"]]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html("translated: This user does not exist!"),
|
empty_narrow_html("translated: This user does not exist!"),
|
||||||
);
|
);
|
||||||
|
|
||||||
set_filter([["dm-including", "alice@example.com"]]);
|
current_filter = set_filter([["dm-including", "alice@example.com"]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -521,8 +502,8 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
|
|
||||||
// direct messages with a bot are possible even though
|
// direct messages with a bot are possible even though
|
||||||
// the organization has disabled sending direct messages
|
// the organization has disabled sending direct messages
|
||||||
set_filter([["dm-including", "bot@example.com"]]);
|
current_filter = set_filter([["dm-including", "bot@example.com"]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html("translated: You have no direct messages including Example Bot yet."),
|
empty_narrow_html("translated: You have no direct messages including Example Bot yet."),
|
||||||
@@ -531,46 +512,46 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
// sending direct messages enabled
|
// sending direct messages enabled
|
||||||
override(realm, "realm_direct_message_permission_group", everyone.id);
|
override(realm, "realm_direct_message_permission_group", everyone.id);
|
||||||
override(realm, "realm_direct_message_permission_group", everyone.id);
|
override(realm, "realm_direct_message_permission_group", everyone.id);
|
||||||
set_filter([["dm-including", "alice@example.com"]]);
|
current_filter = set_filter([["dm-including", "alice@example.com"]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html("translated: You have no direct messages including Alice Smith yet."),
|
empty_narrow_html("translated: You have no direct messages including Alice Smith yet."),
|
||||||
);
|
);
|
||||||
|
|
||||||
set_filter([["dm-including", me.email]]);
|
current_filter = set_filter([["dm-including", me.email]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html("translated: You don't have any direct message conversations yet."),
|
empty_narrow_html("translated: You don't have any direct message conversations yet."),
|
||||||
);
|
);
|
||||||
|
|
||||||
set_filter([["sender", "ray@example.com"]]);
|
current_filter = set_filter([["sender", "ray@example.com"]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html("translated: You haven't received any messages sent by Raymond yet."),
|
empty_narrow_html("translated: You haven't received any messages sent by Raymond yet."),
|
||||||
);
|
);
|
||||||
|
|
||||||
set_filter([["sender", "sinwar@example.com"]]);
|
current_filter = set_filter([["sender", "sinwar@example.com"]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html("translated: This user does not exist!"),
|
empty_narrow_html("translated: This user does not exist!"),
|
||||||
);
|
);
|
||||||
|
|
||||||
set_filter([
|
current_filter = set_filter([
|
||||||
["sender", "alice@example.com"],
|
["sender", "alice@example.com"],
|
||||||
["stream", rome_id.toString()],
|
["stream", rome_id.toString()],
|
||||||
]);
|
]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html("translated: No search results."),
|
empty_narrow_html("translated: No search results."),
|
||||||
);
|
);
|
||||||
|
|
||||||
set_filter([["is", "invalid"]]);
|
current_filter = set_filter([["is", "invalid"]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -587,8 +568,8 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
stream_data.add_sub(my_stream);
|
stream_data.add_sub(my_stream);
|
||||||
stream_data.subscribe_myself(my_stream);
|
stream_data.subscribe_myself(my_stream);
|
||||||
|
|
||||||
set_filter([["stream", my_stream_id.toString()]]);
|
current_filter = set_filter([["stream", my_stream_id.toString()]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -597,8 +578,8 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
set_filter([["stream", ""]]);
|
current_filter = set_filter([["stream", ""]]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -606,11 +587,11 @@ run_test("show_empty_narrow_message", ({mock_template, override}) => {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
set_filter([
|
current_filter = set_filter([
|
||||||
["has", "reaction"],
|
["has", "reaction"],
|
||||||
["sender", "me"],
|
["sender", "me"],
|
||||||
]);
|
]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -625,9 +606,8 @@ run_test("show_empty_narrow_message_with_search", ({mock_template, override}) =>
|
|||||||
|
|
||||||
mock_template("empty_feed_notice.hbs", true, (_data, html) => html);
|
mock_template("empty_feed_notice.hbs", true, (_data, html) => html);
|
||||||
|
|
||||||
message_lists.set_current(undefined);
|
const current_filter = set_filter([["search", "grail"]]);
|
||||||
set_filter([["search", "grail"]]);
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
narrow_banner.show_empty_narrow_message();
|
|
||||||
assert.match($(".empty_feed_notice_main").html(), /<span>grail<\/span>/);
|
assert.match($(".empty_feed_notice_main").html(), /<span>grail<\/span>/);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -649,9 +629,8 @@ run_test("show_search_stopwords", ({mock_template, override}) => {
|
|||||||
{query_word: "grail", is_stop_word: false},
|
{query_word: "grail", is_stop_word: false},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
message_lists.set_current(undefined);
|
let current_filter = set_filter([["search", "what about grail"]]);
|
||||||
set_filter([["search", "what about grail"]]);
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
narrow_banner.show_empty_narrow_message();
|
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html("translated: No search results.", undefined, expected_search_data),
|
empty_narrow_html("translated: No search results.", undefined, expected_search_data),
|
||||||
@@ -668,11 +647,11 @@ run_test("show_search_stopwords", ({mock_template, override}) => {
|
|||||||
{query_word: "grail", is_stop_word: false},
|
{query_word: "grail", is_stop_word: false},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
set_filter([
|
current_filter = set_filter([
|
||||||
["stream", streamA_id.toString()],
|
["stream", streamA_id.toString()],
|
||||||
["search", "what about grail"],
|
["search", "what about grail"],
|
||||||
]);
|
]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html("translated: No search results.", undefined, expected_stream_search_data),
|
empty_narrow_html("translated: No search results.", undefined, expected_stream_search_data),
|
||||||
@@ -688,12 +667,12 @@ run_test("show_search_stopwords", ({mock_template, override}) => {
|
|||||||
{query_word: "grail", is_stop_word: false},
|
{query_word: "grail", is_stop_word: false},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
set_filter([
|
current_filter = set_filter([
|
||||||
["stream", streamA_id.toString()],
|
["stream", streamA_id.toString()],
|
||||||
["topic", "topicA"],
|
["topic", "topicA"],
|
||||||
["search", "what about grail"],
|
["search", "what about grail"],
|
||||||
]);
|
]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -705,7 +684,6 @@ run_test("show_search_stopwords", ({mock_template, override}) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
run_test("show_invalid_narrow_message", ({mock_template}) => {
|
run_test("show_invalid_narrow_message", ({mock_template}) => {
|
||||||
message_lists.set_current(undefined);
|
|
||||||
mock_template("empty_feed_notice.hbs", true, (_data, html) => html);
|
mock_template("empty_feed_notice.hbs", true, (_data, html) => html);
|
||||||
|
|
||||||
const streamA_id = 88;
|
const streamA_id = 88;
|
||||||
@@ -713,11 +691,11 @@ run_test("show_invalid_narrow_message", ({mock_template}) => {
|
|||||||
stream_data.add_sub({name: "streamA", stream_id: streamA_id});
|
stream_data.add_sub({name: "streamA", stream_id: streamA_id});
|
||||||
stream_data.add_sub({name: "streamB", stream_id: streamB_id});
|
stream_data.add_sub({name: "streamB", stream_id: streamB_id});
|
||||||
|
|
||||||
set_filter([
|
let current_filter = set_filter([
|
||||||
["stream", streamA_id.toString()],
|
["stream", streamA_id.toString()],
|
||||||
["stream", streamB_id.toString()],
|
["stream", streamB_id.toString()],
|
||||||
]);
|
]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -726,11 +704,11 @@ run_test("show_invalid_narrow_message", ({mock_template}) => {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
set_filter([
|
current_filter = set_filter([
|
||||||
["topic", "topicA"],
|
["topic", "topicA"],
|
||||||
["topic", "topicB"],
|
["topic", "topicB"],
|
||||||
]);
|
]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
@@ -742,11 +720,11 @@ run_test("show_invalid_narrow_message", ({mock_template}) => {
|
|||||||
people.add_active_user(ray);
|
people.add_active_user(ray);
|
||||||
people.add_active_user(alice);
|
people.add_active_user(alice);
|
||||||
|
|
||||||
set_filter([
|
current_filter = set_filter([
|
||||||
["sender", "alice@example.com"],
|
["sender", "alice@example.com"],
|
||||||
["sender", "ray@example.com"],
|
["sender", "ray@example.com"],
|
||||||
]);
|
]);
|
||||||
narrow_banner.show_empty_narrow_message();
|
narrow_banner.show_empty_narrow_message(current_filter);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
$(".empty_feed_notice_main").html(),
|
$(".empty_feed_notice_main").html(),
|
||||||
empty_narrow_html(
|
empty_narrow_html(
|
||||||
|
|||||||
Reference in New Issue
Block a user