web-src: Update comments with "private message" or "PM".

Updates comments in files the `web/src` directory to use "direct
message" instead of "private message" or "PM".
This commit is contained in:
Lauryn Menard 2023-06-16 13:23:39 +02:00 committed by Tim Abbott
parent 5be0f80135
commit 4d3d9bcefa
28 changed files with 98 additions and 87 deletions

View File

@ -74,7 +74,7 @@ export function compare_function(a, b) {
return diff; return diff;
} }
// Sort equivalent PM names alphabetically // Sort equivalent direct message names alphabetically
const person_a = people.get_by_user_id(a); const person_a = people.get_by_user_id(a);
const person_b = people.get_by_user_id(b); const person_b = people.get_by_user_id(b);
@ -188,8 +188,8 @@ export function get_title_data(user_ids_string, is_group) {
}; };
} }
// For buddy list and individual PMS. Since is_group=False, it's // For buddy list and individual direct messages.
// a single, human, user. // Since is_group=False, it's a single, human user.
const last_seen = user_last_seen_time_status(user_id); const last_seen = user_last_seen_time_status(user_id);
const is_my_user = people.is_my_user_id(user_id); const is_my_user = people.is_my_user_id(user_id);

View File

@ -584,7 +584,7 @@ export function initialize() {
); );
}); });
// PM LIST TOOLTIPS (not displayed on touch devices) // DIRECT MESSAGE LIST TOOLTIPS (not displayed on touch devices)
$("body").on("mouseenter", ".pm_user_status", (e) => { $("body").on("mouseenter", ".pm_user_status", (e) => {
e.stopPropagation(); e.stopPropagation();
const $elem = $(e.currentTarget); const $elem = $(e.currentTarget);
@ -617,12 +617,12 @@ export function initialize() {
); );
}); });
// Recent conversations PMs (Not displayed on small widths) // Recent conversations direct messages (Not displayed on small widths)
$("body").on("mouseenter", ".recent_topic_stream .pm_status_icon", (e) => { $("body").on("mouseenter", ".recent_topic_stream .pm_status_icon", (e) => {
e.stopPropagation(); e.stopPropagation();
const $elem = $(e.currentTarget); const $elem = $(e.currentTarget);
const user_ids_string = $elem.attr("data-user-ids-string"); const user_ids_string = $elem.attr("data-user-ids-string");
// Don't show tooltip for group PMs. // Don't show tooltip for group direct messages.
if (!user_ids_string || user_ids_string.split(",").length !== 1) { if (!user_ids_string || user_ids_string.split(",").length !== 1) {
return; return;
} }
@ -733,7 +733,7 @@ export function initialize() {
".private_messages_container.zoom-out #private_messages_section_header", ".private_messages_container.zoom-out #private_messages_section_header",
(e) => { (e) => {
if (e.target.classList.value === "fa fa-align-right") { if (e.target.classList.value === "fa fa-align-right") {
// Let the browser handle the "all private messages" widget. // Let the browser handle the "all direct messages" widget.
return; return;
} }
@ -745,7 +745,7 @@ export function initialize() {
const scroll_position = $left_sidebar_scrollbar.scrollTop(); const scroll_position = $left_sidebar_scrollbar.scrollTop();
// This next bit of logic is a bit subtle; this header // This next bit of logic is a bit subtle; this header
// button scrolls to the top of the private messages // button scrolls to the top of the direct messages
// section is uncollapsed but out of view; otherwise, we // section is uncollapsed but out of view; otherwise, we
// toggle its collapsed state. // toggle its collapsed state.
if (scroll_position === 0 || pm_list.is_private_messages_collapsed()) { if (scroll_position === 0 || pm_list.is_private_messages_collapsed()) {

View File

@ -144,10 +144,10 @@ export function create_message_object() {
message.private_message_recipient = recipient; message.private_message_recipient = recipient;
message.to_user_ids = people.email_list_to_user_ids_string(emails); message.to_user_ids = people.email_list_to_user_ids_string(emails);
// Note: The `undefined` case is for situations like the // Note: The `undefined` case is for situations like
// is_zephyr_mirror_realm case where users may be // the is_zephyr_mirror_realm case where users may
// automatically created when you try to send a private // be automatically created when you try to send a
// message to their email address. // direct message to their email address.
if (message.to_user_ids !== undefined) { if (message.to_user_ids !== undefined) {
message.to = people.user_ids_string_to_ids_array(message.to_user_ids); message.to = people.user_ids_string_to_ids_array(message.to_user_ids);
} }

View File

@ -200,7 +200,7 @@ export function start(msg_type, opts) {
// If we are invoked by a compose hotkey (c or x) or new topic // If we are invoked by a compose hotkey (c or x) or new topic
// button, do not assume that we know what the message's topic or // button, do not assume that we know what the message's topic or
// PM recipient should be. // direct message recipient should be.
if ( if (
opts.trigger === "compose_hotkey" || opts.trigger === "compose_hotkey" ||
opts.trigger === "new topic button" || opts.trigger === "new topic button" ||
@ -353,7 +353,7 @@ export function respond_to_message(opts) {
} }
// Important note: A reply_type of 'personal' is for the R hotkey // Important note: A reply_type of 'personal' is for the R hotkey
// (replying to a message's sender with a private message). All // (replying to a message's sender with a direct message). All
// other replies can just copy message.type. // other replies can just copy message.type.
if (opts.reply_type === "personal" || message.type === "private") { if (opts.reply_type === "personal" || message.type === "private") {
msg_type = "private"; msg_type = "private";
@ -370,8 +370,8 @@ export function respond_to_message(opts) {
} else { } else {
pm_recipient = message.reply_to; pm_recipient = message.reply_to;
if (opts.reply_type === "personal") { if (opts.reply_type === "personal") {
// reply_to for private messages is everyone involved, so for // reply_to for direct messages is everyone involved, so for
// personals replies we need to set the private message // personals replies we need to set the direct message
// recipient to just the sender // recipient to just the sender
pm_recipient = people.get_by_user_id(message.sender_id).email; pm_recipient = people.get_by_user_id(message.sender_id).email;
} else { } else {
@ -497,9 +497,9 @@ export function quote_and_reply(opts) {
} }
export function on_narrow(opts) { export function on_narrow(opts) {
// We use force_close when jumping between PM narrows with the "p" key, // We use force_close when jumping between direct message narrows with
// so that we don't have an open compose box that makes it difficult // the "p" key, so that we don't have an open compose box that makes
// to cycle quickly through unread messages. // it difficult to cycle quickly through unread messages.
if (opts.force_close) { if (opts.force_close) {
// This closes the compose box if it was already open, and it is // This closes the compose box if it was already open, and it is
// basically a noop otherwise. // basically a noop otherwise.
@ -532,7 +532,7 @@ export function on_narrow(opts) {
return; return;
} }
// Do not open compose box if organization has disabled sending // Do not open compose box if organization has disabled sending
// private messages and recipient is not a bot. // direct messages and recipient is not a bot.
if ( if (
page_params.realm_private_message_policy === page_params.realm_private_message_policy ===
settings_config.private_message_policy_values.disabled.code && settings_config.private_message_policy_values.disabled.code &&
@ -540,7 +540,7 @@ export function on_narrow(opts) {
) { ) {
const emails = opts.private_message_recipient.split(","); const emails = opts.private_message_recipient.split(",");
if (emails.length !== 1 || !people.get_by_email(emails[0]).is_bot) { if (emails.length !== 1 || !people.get_by_email(emails[0]).is_bot) {
// If we are navigating between private message conversations, // If we are navigating between direct message conversations,
// we want the compose box to close for non-bot users. // we want the compose box to close for non-bot users.
if (compose_state.composing()) { if (compose_state.composing()) {
cancel(); cancel();

View File

@ -16,8 +16,8 @@ export function get_recipient_label(message) {
if (message === undefined) { if (message === undefined) {
if (message_lists.current.visibly_empty()) { if (message_lists.current.visibly_empty()) {
// For empty narrows where there's a clear reply target, // For empty narrows where there's a clear reply target,
// i.e. stream+topic or a single PM conversation, we label // i.e. stream+topic or a single direct message conversation,
// the button as replying to the thread. // we label the button as replying to the thread.
if (narrow_state.narrowed_to_topic()) { if (narrow_state.narrowed_to_topic()) {
message = { message = {
stream: narrow_state.stream(), stream: narrow_state.stream(),

View File

@ -34,7 +34,7 @@ export function would_receive_message(user_id) {
return stream_data.is_user_subscribed(focused_recipient.stream_id, user_id); return stream_data.is_user_subscribed(focused_recipient.stream_id, user_id);
} }
// PM, so check if the given email is in the recipients list. // Direct message, so check if the given email is in the recipients list.
return is_pm_recipient(user_id); return is_pm_recipient(user_id);
} }

View File

@ -378,7 +378,7 @@ export function update_placeholder_text() {
message_type: compose_state.get_message_type(), message_type: compose_state.get_message_type(),
stream: compose_state.stream_name(), stream: compose_state.stream_name(),
topic: compose_state.topic(), topic: compose_state.topic(),
// TODO: to remove a circular import, PM recipient needs // TODO: to remove a circular import, direct message recipient needs
// to be calculated in compose_state instead of compose_pm_pill. // to be calculated in compose_state instead of compose_pm_pill.
private_message_recipient: compose_pm_pill.get_emails(), private_message_recipient: compose_pm_pill.get_emails(),
}; };

View File

@ -227,7 +227,7 @@ export function compute_placeholder_text(opts) {
} }
} }
// For private messages // For direct messages
if (opts.private_message_recipient) { if (opts.private_message_recipient) {
const recipient_list = opts.private_message_recipient.split(","); const recipient_list = opts.private_message_recipient.split(",");
const recipient_names = recipient_list const recipient_names = recipient_list

View File

@ -38,7 +38,7 @@ import {user_settings} from "./user_settings";
// highlighter that escapes (i.e. one that calls // highlighter that escapes (i.e. one that calls
// typeahead_helper.highlight_with_escaping). // typeahead_helper.highlight_with_escaping).
// This is what we use for PM/compose typeaheads. // This is what we use for direct message/compose typeaheads.
// We export it to allow tests to mock it. // We export it to allow tests to mock it.
export const max_num_items = 8; export const max_num_items = 8;

View File

@ -498,7 +498,7 @@ function filter_drafts_by_compose_box_and_recipient(drafts) {
else if (draft.type === "stream" && stream_id && !topic && draft.stream_id === stream_id) { else if (draft.type === "stream" && stream_id && !topic && draft.stream_id === stream_id) {
narrow_drafts_ids.push(id); narrow_drafts_ids.push(id);
} }
// Match by private message recipient. // Match by direct message recipient.
else if ( else if (
draft.type === "private" && draft.type === "private" &&
private_recipients && private_recipients &&

View File

@ -171,7 +171,7 @@ export function build_display_recipient(message) {
if (!sender_in_display_recipients) { if (!sender_in_display_recipients) {
// Ensure that the current user is included in // Ensure that the current user is included in
// display_recipient for group PMs. // display_recipient for group direct messages.
display_recipient.push({ display_recipient.push({
id: message.sender_id, id: message.sender_id,
email: message.sender_email, email: message.sender_email,

View File

@ -36,7 +36,7 @@ export function process_new_message(message) {
message.status_emoji_info = user_status.get_status_emoji(message.sender_id); message.status_emoji_info = user_status.get_status_emoji(message.sender_id);
} }
// Convert topic even for PMs, as legacy code // Convert topic even for direct messages, as legacy code
// wants the empty field. // wants the empty field.
util.convert_message_topic(message); util.convert_message_topic(message);

View File

@ -238,7 +238,7 @@ export class MessageListData {
messages_filtered_for_user_mutes(messages) { messages_filtered_for_user_mutes(messages) {
if (this.filter.is_non_huddle_pm()) { if (this.filter.is_non_huddle_pm()) {
// We are in a 1:1 PM narrow, so do not do any filtering. // We are in a 1:1 direct message narrow, so do not do any filtering.
return [...messages]; return [...messages];
} }

View File

@ -1,7 +1,7 @@
/* /*
We keep a set of user_ids for all people We keep a set of user_ids for all people
who have sent stream messages or who have who have sent stream messages or who have
been on PMs sent by the user. been on direct messages sent by the user.
We will use this in search to prevent really We will use this in search to prevent really
large result sets for realms that have lots large result sets for realms that have lots

View File

@ -315,7 +315,8 @@ export function narrowed_by_topic_reply() {
} }
// We auto-reply under certain conditions, namely when you're narrowed // We auto-reply under certain conditions, namely when you're narrowed
// to a PM (or huddle), and when you're narrowed to some stream/topic pair // to a 1:1 or group direct message conversation, and when you're
// narrowed to some stream/topic pair.
export function narrowed_by_reply() { export function narrowed_by_reply() {
return narrowed_by_pm_reply() || narrowed_by_topic_reply(); return narrowed_by_pm_reply() || narrowed_by_topic_reply();
} }

View File

@ -141,7 +141,7 @@ export function update_unread_counts(counts) {
window.electron_bridge.send_event("total_unread_count", unread_count); window.electron_bridge.send_event("total_unread_count", unread_count);
} }
// TODO: Add a `window.electron_bridge.updatePMCount(new_pm_count);` call? // TODO: Add a `window.electron_bridge.updateDirectMessageCount(new_pm_count);` call?
redraw_title(); redraw_title();
} }
@ -376,13 +376,13 @@ export function should_send_desktop_notification(message) {
} }
// enable_desktop_notifications determines whether we pop up a // enable_desktop_notifications determines whether we pop up a
// notification for PMs/mentions/alerts // notification for direct messages, mentions, and/or alerts.
if (!user_settings.enable_desktop_notifications) { if (!user_settings.enable_desktop_notifications) {
return false; return false;
} }
// And then we need to check if the message is a PM, mention, // And then we need to check if the message is a direct message,
// wildcard mention with wildcard_mentions_notify, or alert. // mention, wildcard mention with wildcard_mentions_notify, or alert.
if (message.type === "private") { if (message.type === "private") {
return true; return true;
} }
@ -422,13 +422,14 @@ export function should_send_audible_notification(message) {
return true; return true;
} }
// enable_sounds determines whether we ding for PMs/mentions/alerts // enable_sounds determines whether we ding for direct messages,
// mentions, and/or alerts.
if (!user_settings.enable_sounds) { if (!user_settings.enable_sounds) {
return false; return false;
} }
// And then we need to check if the message is a PM, mention, // And then we need to check if the message is a direct message,
// wildcard mention with wildcard_mentions_notify, or alert. // mention, wildcard mention with wildcard_mentions_notify, or alert.
if (message.type === "private" || message.type === "test-notification") { if (message.type === "private" || message.type === "test-notification") {
return true; return true;
} }

View File

@ -237,11 +237,11 @@ export function get_participants_from_user_ids_string(user_ids_string) {
let user_ids = user_ids_string_to_ids_array(user_ids_string); let user_ids = user_ids_string_to_ids_array(user_ids_string);
// Convert to set to ensure there are no duplicate ids. // Convert to set to ensure there are no duplicate ids.
user_ids = new Set(user_ids); user_ids = new Set(user_ids);
// For group PMs or 1:1 private messages, the user_ids_string // For group or 1:1 direct messages, the user_ids_string contains
// contains just the other user, so we need to add ourselves if not // just the other user, so we need to add ourselves if not already
// already present. For PM to self, the current user is already present, // present. For a direct message to oneself, the current user is
// in user_ids_string, so we don't need to add it which is take care of // already present, in user_ids_string, so we don't need to add it
// by user_ids being a `Set`. // which is take care of by user_ids being a `Set`.
user_ids.add(my_user_id); user_ids.add(my_user_id);
return user_ids; return user_ids;
} }
@ -380,7 +380,7 @@ export function get_recipients(user_ids_string) {
const {other_ids} = _calc_user_and_other_ids(user_ids_string); const {other_ids} = _calc_user_and_other_ids(user_ids_string);
if (other_ids.length === 0) { if (other_ids.length === 0) {
// private message with oneself // direct message with oneself
return my_full_name(); return my_full_name();
} }
@ -453,8 +453,8 @@ export function concat_huddle(user_ids, user_id) {
export function pm_lookup_key_from_user_ids(user_ids) { export function pm_lookup_key_from_user_ids(user_ids) {
/* /*
The server will sometimes include our own user id The server will sometimes include our own user id
in keys for PMs, but we only want our user id if in keys for direct messages, but we only want our
we sent a message to ourself. user id if we sent a direct message to ourself.
*/ */
user_ids = sorted_other_user_ids(user_ids); user_ids = sorted_other_user_ids(user_ids);
return user_ids.join(","); return user_ids.join(",");
@ -579,7 +579,8 @@ export function pm_with_operand_ids(operand) {
return undefined; return undefined;
} }
// If your email is included in a PM group with other people, just ignore it // If your email is included in a group direct message with other people,
// then ignore it.
if (persons.length > 1) { if (persons.length > 1) {
const my_user = people_by_user_id_dict.get(my_user_id); const my_user = people_by_user_id_dict.get(my_user_id);
persons = persons.filter((person) => person !== my_user); persons = persons.filter((person) => person !== my_user);
@ -616,9 +617,9 @@ export function emails_to_slug(emails_string) {
export function slug_to_emails(slug) { export function slug_to_emails(slug) {
/* /*
It's not super important to be flexible about It's not super important to be flexible about
PM-related slugs, since you would rarely post direct message related slugs, since you would
them to the web, but we we do want to support rarely post them to the web, but we we do want
reasonable variations: to support reasonable variations:
99-alice@example.com 99-alice@example.com
99 99
@ -685,7 +686,7 @@ export function user_can_direct_message(recipient_ids_string) {
// message to the target user (or group of users) represented by a // message to the target user (or group of users) represented by a
// user ids string. // user ids string.
// Regardless of policy, we allow sending private messages to bots. // Regardless of policy, we allow sending direct messages to bots.
const recipient_ids = user_ids_string_to_ids_array(recipient_ids_string); const recipient_ids = user_ids_string_to_ids_array(recipient_ids_string);
if (recipient_ids.length === 1 && user_is_bot(recipient_ids[0])) { if (recipient_ids.length === 1 && user_is_bot(recipient_ids[0])) {
return true; return true;
@ -971,8 +972,8 @@ export function get_recipient_count(person) {
For searching in the search bar, we will For searching in the search bar, we will
have true `person` objects with `user_id`. have true `person` objects with `user_id`.
Likewise, we'll have user_id if we Likewise, we'll have user_id if we are
are tab-completing a user to send a PM tab-completing a user to send a direct message
to (but we only get called if we're not to (but we only get called if we're not
currently in a stream view). currently in a stream view).
@ -1002,15 +1003,17 @@ export function get_message_people() {
/* /*
message_people are roughly the people who have message_people are roughly the people who have
actually sent messages that are currently actually sent messages that are currently
showing up on your feed. These people showing up on your feed. These people
are important--we give them preference are important--we give them preference
over other users in certain search over other users in certain search
suggestions, since non-message-people are suggestions, since non-message-people are
presumably either not very active or presumably either not very active or
possibly subscribed to streams you don't possibly subscribed to streams you don't
care about. message_people also includes care about.
people whom you have sent PMs, but look
at the message_store code to see the precise message_people also includes people whom
you have sent direct messages, but look at
the message_store code to see the precise
semantics semantics
*/ */
const message_people = util.try_parse_as_truthy( const message_people = util.try_parse_as_truthy(
@ -1263,7 +1266,7 @@ export function add_cross_realm_user(person) {
export function deactivate(person) { export function deactivate(person) {
// We don't fully remove a person from all of our data // We don't fully remove a person from all of our data
// structures, because deactivated users can be part // structures, because deactivated users can be part
// of somebody's PM list. // of somebody's direct message list.
active_user_dict.delete(person.user_id); active_user_dict.delete(person.user_id);
non_active_user_dict.set(person.user_id, person); non_active_user_dict.set(person.user_id, person);
} }
@ -1362,7 +1365,8 @@ export function maybe_incr_recipient_count(message) {
return; return;
} }
// Track the number of PMs we've sent to this person to improve autocomplete // Track the number of direct messages we've sent to this person
// to improve autocomplete
for (const recip of message.display_recipient) { for (const recip of message.display_recipient) {
if (recip.unknown_local_echo_user) { if (recip.unknown_local_echo_user) {
continue; continue;

View File

@ -33,7 +33,7 @@ class RecentDirectMessages {
insert(user_ids, message_id) { insert(user_ids, message_id) {
if (user_ids.length === 0) { if (user_ids.length === 0) {
// The server sends [] for self-PMs. // The server sends [] for direct messages to oneself.
user_ids = [people.my_current_user_id()]; user_ids = [people.my_current_user_id()];
} }
user_ids.sort((a, b) => a - b); user_ids.sort((a, b) => a - b);

View File

@ -11,12 +11,12 @@ import * as vdom from "./vdom";
let prior_dom; let prior_dom;
// This module manages the "Private messages" section in the upper // This module manages the direct messages section in the upper
// left corner of the app. This was split out from stream_list.js. // left corner of the app. This was split out from stream_list.js.
let private_messages_collapsed = false; let private_messages_collapsed = false;
// The private messages section can be zoomed in to view more messages. // The direct messages section can be zoomed in to view more messages.
// This keeps track of if we're zoomed in or not. // This keeps track of if we're zoomed in or not.
let zoomed = false; let zoomed = false;
@ -94,7 +94,8 @@ export function update_private_messages() {
const new_dom = _build_private_messages_list(); const new_dom = _build_private_messages_list();
set_dom_to(new_dom); set_dom_to(new_dom);
} }
// Make sure to update the left sidebar heights after updating PMs. // Make sure to update the left sidebar heights after updating
// direct messages.
setTimeout(resize.resize_stream_filters_container, 0); setTimeout(resize.resize_stream_filters_container, 0);
} }
@ -115,7 +116,8 @@ export function update_dom_with_unread_counts(counts) {
// In theory, we could support passing the counts object through // In theory, we could support passing the counts object through
// to pm_list_data, rather than fetching it directly there. But // to pm_list_data, rather than fetching it directly there. But
// it's not an important optimization, because it's unlikely a // it's not an important optimization, because it's unlikely a
// user would have 10,000s of unread PMs where it could matter. // user would have 10,000s of unread direct messages where it
// could matter.
update_private_messages(); update_private_messages();
// This is just the global unread count. // This is just the global unread count.
set_count(counts.private_message_count); set_count(counts.private_message_count);
@ -180,7 +182,8 @@ export function is_private_messages_collapsed() {
} }
export function toggle_private_messages_section() { export function toggle_private_messages_section() {
// change the state of PM section depending on the previous state. // change the state of direct message section depending on
// the previous state.
if (private_messages_collapsed) { if (private_messages_collapsed) {
expand(); expand();
} else { } else {

View File

@ -148,7 +148,7 @@ function get_row_type(row) {
} }
function get_max_selectable_cols(row) { function get_max_selectable_cols(row) {
// returns maximum number of columns in stream message or private message row. // returns maximum number of columns in stream message or direct message row.
const type = get_row_type(row); const type = get_row_type(row);
if (type === "private") { if (type === "private") {
return MAX_SELECTABLE_DIRECT_MESSAGE_COLS; return MAX_SELECTABLE_DIRECT_MESSAGE_COLS;
@ -411,7 +411,7 @@ function format_conversation(conversation_data) {
extra_sender_ids = all_senders.slice(0, -MAX_AVATAR); extra_sender_ids = all_senders.slice(0, -MAX_AVATAR);
displayed_other_senders = extra_sender_ids.slice(-MAX_EXTRA_SENDERS); displayed_other_senders = extra_sender_ids.slice(-MAX_EXTRA_SENDERS);
} else if (type === "private") { } else if (type === "private") {
// Private message info // Direct message info
context.user_ids_string = last_msg.to_user_ids; context.user_ids_string = last_msg.to_user_ids;
context.rendered_pm_with = last_msg.display_recipient context.rendered_pm_with = last_msg.display_recipient
.filter( .filter(
@ -446,8 +446,9 @@ function format_conversation(conversation_data) {
// Display in most recent sender first order. // Display in most recent sender first order.
// To match the behavior for streams, we display the set of users who've actually // To match the behavior for streams, we display the set of users who've actually
// participated, with the most recent participants first. It could make sense to // participated, with the most recent participants first. It could make sense to
// display the other recipients on the PM conversation with different styling, // display the other recipients on the direct message conversation with different
// but it's important to not destroy the information of "who's actually talked". // styling, but it's important to not destroy the information of "who's actually
// talked".
all_senders = recent_senders all_senders = recent_senders
.get_pm_recent_senders(context.user_ids_string) .get_pm_recent_senders(context.user_ids_string)
.participants.reverse(); .participants.reverse();
@ -1051,7 +1052,7 @@ function page_down_navigation() {
function check_row_type_transition(row, col) { function check_row_type_transition(row, col) {
// This function checks if the row is transitioning // This function checks if the row is transitioning
// from type "Private messages" to "Stream" or vice versa. // from type "Direct messages" to "Stream" or vice versa.
// This helps in setting the col_focus as maximum column // This helps in setting the col_focus as maximum column
// of both the type are different. // of both the type are different.
if (row < 0) { if (row < 0) {
@ -1312,7 +1313,7 @@ export function initialize() {
focus_clicked_element(topic_row_index, COLUMNS.read); focus_clicked_element(topic_row_index, COLUMNS.read);
const user_ids_string = $elt.attr("data-user-ids-string"); const user_ids_string = $elt.attr("data-user-ids-string");
if (user_ids_string) { if (user_ids_string) {
// PM row // direct message row
unread_ops.mark_pm_as_read(user_ids_string); unread_ops.mark_pm_as_read(user_ids_string);
} else { } else {
// Stream row // Stream row

View File

@ -32,7 +32,7 @@ export function get_topic_key(stream_id, topic) {
export function get_key_from_message(msg) { export function get_key_from_message(msg) {
if (msg.type === "private") { if (msg.type === "private") {
// The to_user_ids field on a private message object is a // The to_user_ids field on a direct message object is a
// string containing the user IDs involved in the message in // string containing the user IDs involved in the message in
// sorted order. // sorted order.
return msg.to_user_ids; return msg.to_user_ids;

View File

@ -23,7 +23,7 @@ export function update_scheduled_messages_row() {
} }
export function update_dom_with_unread_counts(counts, skip_animations) { export function update_dom_with_unread_counts(counts, skip_animations) {
// Note that "Private messages" counts are handled in pm_list.js. // Note that direct message counts are handled in pm_list.js.
// mentioned/home have simple integer counts // mentioned/home have simple integer counts
const $mentioned_li = $(".top_left_mentions"); const $mentioned_li = $(".top_left_mentions");

View File

@ -15,7 +15,7 @@ import * as stream_list_sort from "./stream_list_sort";
import * as user_groups from "./user_groups"; import * as user_groups from "./user_groups";
import * as user_status from "./user_status"; import * as user_status from "./user_status";
import * as util from "./util"; import * as util from "./util";
// Returns an array of private message recipients, removing empty elements. // Returns an array of direct message recipients, removing empty elements.
// For example, "a,,b, " => ["a", "b"] // For example, "a,,b, " => ["a", "b"]
export function get_cleaned_pm_recipients(query_string) { export function get_cleaned_pm_recipients(query_string) {
let recipients = util.extract_pm_recipients(query_string); let recipients = util.extract_pm_recipients(query_string);
@ -220,7 +220,7 @@ export function compare_people_for_relevance(
} }
} }
// give preference to pm partners if both (are)/(are not) subscribers // give preference to direct message partners if both (are)/(are not) subscribers
const a_is_partner = pm_conversations.is_partner(person_a.user_id); const a_is_partner = pm_conversations.is_partner(person_a.user_id);
const b_is_partner = pm_conversations.is_partner(person_b.user_id); const b_is_partner = pm_conversations.is_partner(person_b.user_id);

View File

@ -535,7 +535,7 @@ export function initialize_everything() {
- tracking all streams - tracking all streams
- tracking presence data - tracking presence data
- tracking user groups and bots - tracking user groups and bots
- tracking recent PMs - tracking recent direct messages
Using stream data as an example, we use a Using stream data as an example, we use a
module called `stream_data` to actually track module called `stream_data` to actually track

View File

@ -414,7 +414,7 @@ class UnreadTopicCounter {
for (const message_id of unread_mentions_counter) { for (const message_id of unread_mentions_counter) {
const stream_id = this.bucketer.reverse_lookup.get(message_id); const stream_id = this.bucketer.reverse_lookup.get(message_id);
if (stream_id === undefined) { if (stream_id === undefined) {
// This is a private message containing a mention. // This is a direct message containing a mention.
continue; continue;
} }
streams_with_mentions.add(stream_id); streams_with_mentions.add(stream_id);
@ -431,7 +431,7 @@ class UnreadTopicCounter {
for (const message_id of unread_mentions_counter) { for (const message_id of unread_mentions_counter) {
const stream_id = this.bucketer.reverse_lookup.get(message_id); const stream_id = this.bucketer.reverse_lookup.get(message_id);
if (stream_id === undefined) { if (stream_id === undefined) {
// This is a private message containing a mention. // This is a direct message containing a mention.
continue; continue;
} }
@ -509,7 +509,7 @@ function add_message_to_unread_mention_topics(message_id) {
function remove_message_from_unread_mention_topics(message_id) { function remove_message_from_unread_mention_topics(message_id) {
const stream_id = unread_topic_counter.bucketer.reverse_lookup.get(message_id); const stream_id = unread_topic_counter.bucketer.reverse_lookup.get(message_id);
if (!stream_id) { if (!stream_id) {
// Private messages and messages that were already not unread // Direct messages and messages that were already not unread
// exit here. // exit here.
return; return;
} }

View File

@ -89,8 +89,9 @@ export function update_unread_counts(skip_animations = false) {
// Set the unread counts that we show in the buttons that // Set the unread counts that we show in the buttons that
// toggle open the sidebar menus when we have a thin window. // toggle open the sidebar menus when we have a thin window.
set_count_toggle_button($("#streamlist-toggle-unreadcount"), res.home_unread_messages); set_count_toggle_button($("#streamlist-toggle-unreadcount"), res.home_unread_messages);
// Bots and group PMs do not appear in the right sidebar user list, so // Bots and group direct messages do not appear in the right
// we show unread count for only non bot 1:1 private messages there. // sidebar user list, so we show unread counts for only non-bot,
// 1:1 direct messages there.
set_count_toggle_button( set_count_toggle_button(
$("#userlist-toggle-unreadcount"), $("#userlist-toggle-unreadcount"),
res.right_sidebar_private_message_count, res.right_sidebar_private_message_count,

View File

@ -4,8 +4,8 @@ import {page_params} from "./page_params";
import * as people from "./people"; import * as people from "./people";
import * as user_status from "./user_status"; import * as user_status from "./user_status";
// This will be used for pills for things like composing PMs // This will be used for pills for things like composing
// or adding users to a stream/group. // direct messages or adding users to a stream/group.
export function create_item_from_email(email, current_items) { export function create_item_from_email(email, current_items) {
// For normal Zulip use, we need to validate the email for our realm. // For normal Zulip use, we need to validate the email for our realm.

View File

@ -69,8 +69,8 @@ export function extract_pm_recipients(recipients: string): string[] {
return recipients.split(/\s*[,;]\s*/).filter((recipient) => recipient.trim() !== ""); return recipients.split(/\s*[,;]\s*/).filter((recipient) => recipient.trim() !== "");
} }
// When the type is "private", properties from PMRecipient, namely to_user_ids might be // When the type is "private", properties from to_user_ids might be undefined.
// undefined. See https://github.com/zulip/zulip/pull/23032#discussion_r1038480596. // See https://github.com/zulip/zulip/pull/23032#discussion_r1038480596.
type Recipient = {to_user_ids?: string; type: "private"} | (StreamTopic & {type: "stream"}); type Recipient = {to_user_ids?: string; type: "private"} | (StreamTopic & {type: "stream"});
export const same_recipient = function util_same_recipient(a?: Recipient, b?: Recipient): boolean { export const same_recipient = function util_same_recipient(a?: Recipient, b?: Recipient): boolean {