mirror of
https://github.com/zulip/zulip.git
synced 2025-11-01 20:44:04 +00:00
message view: Move live update logic of stream name to message_store.
This commit is contained in:
@@ -172,36 +172,6 @@ run_test("message_range", () => {
|
||||
assert.deepEqual(list.message_range(-1, 40), [{id: 30}, {id: 40}]);
|
||||
});
|
||||
|
||||
run_test("updates", () => {
|
||||
const list = new MessageList({});
|
||||
list.view.rerender_preserving_scrolltop = noop;
|
||||
|
||||
const messages = [
|
||||
{
|
||||
id: 1,
|
||||
sender_id: 100,
|
||||
sender_full_name: "tony",
|
||||
stream_id: 32,
|
||||
stream: "denmark",
|
||||
small_avatar_url: "http://zulip.spork",
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
sender_id: 39,
|
||||
sender_full_name: "jeff",
|
||||
stream_id: 64,
|
||||
stream: "russia",
|
||||
small_avatar_url: "http://github.com",
|
||||
},
|
||||
];
|
||||
|
||||
list.append(messages, true);
|
||||
|
||||
list.update_stream_name(64, "Finland");
|
||||
assert.equal(list.get(2).stream, "Finland");
|
||||
assert.equal(list.get(1).stream, "denmark");
|
||||
});
|
||||
|
||||
run_test("nth_most_recent_id", () => {
|
||||
const list = new MessageList({});
|
||||
list.append([{id: 10}, {id: 20}, {id: 30}]);
|
||||
|
||||
@@ -25,6 +25,18 @@ set_global("page_params", {
|
||||
is_admin: true,
|
||||
});
|
||||
|
||||
const denmark = {
|
||||
subscribed: false,
|
||||
name: "Denmark",
|
||||
stream_id: 20,
|
||||
};
|
||||
|
||||
const devel = {
|
||||
subscribed: true,
|
||||
name: "Devel",
|
||||
stream_id: 21,
|
||||
};
|
||||
|
||||
const me = {
|
||||
email: "me@example.com",
|
||||
user_id: 101,
|
||||
@@ -257,6 +269,9 @@ run_test("update_property", () => {
|
||||
sender_full_name: alice.full_name,
|
||||
sender_id: alice.user_id,
|
||||
small_avatar_url: "alice_url",
|
||||
stream_id: devel.stream_id,
|
||||
stream: devel.name,
|
||||
display_recipient: devel.name,
|
||||
id: 100,
|
||||
};
|
||||
const message2 = {
|
||||
@@ -264,6 +279,9 @@ run_test("update_property", () => {
|
||||
sender_full_name: bob.full_name,
|
||||
sender_id: bob.user_id,
|
||||
small_avatar_url: "bob_url",
|
||||
stream_id: denmark.stream_id,
|
||||
stream: denmark.name,
|
||||
display_recipient: denmark.name,
|
||||
id: 101,
|
||||
};
|
||||
for (const message of [message1, message2]) {
|
||||
@@ -282,6 +300,16 @@ run_test("update_property", () => {
|
||||
message_store.update_property("small_avatar_url", "bobby_url", {user_id: bob.user_id});
|
||||
assert.equal(message1.small_avatar_url, "alice_url");
|
||||
assert.equal(message2.small_avatar_url, "bobby_url");
|
||||
|
||||
assert.equal(message1.stream, devel.name);
|
||||
assert.equal(message1.display_recipient, devel.name);
|
||||
assert.equal(message2.stream, denmark.name);
|
||||
assert.equal(message2.display_recipient, denmark.name);
|
||||
message_store.update_property("stream_name", "Prod", {stream_id: devel.stream_id});
|
||||
assert.equal(message1.stream, "Prod");
|
||||
assert.equal(message1.display_recipient, "Prod");
|
||||
assert.equal(message2.stream, denmark.name);
|
||||
assert.equal(message2.display_recipient, denmark.name);
|
||||
});
|
||||
|
||||
run_test("each", () => {
|
||||
|
||||
@@ -393,13 +393,6 @@ class MessageList {
|
||||
return this.view.get_row(id);
|
||||
}
|
||||
|
||||
update_stream_name(stream_id, new_stream_name) {
|
||||
this.data.update_stream_name(stream_id, new_stream_name);
|
||||
if (this.table_name !== undefined) {
|
||||
this.view.rerender_preserving_scrolltop();
|
||||
}
|
||||
}
|
||||
|
||||
change_message_id(old_id, new_id) {
|
||||
const opts = {
|
||||
is_current_list: () => current_msg_list === this,
|
||||
|
||||
@@ -193,15 +193,6 @@ class MessageListData {
|
||||
return this.last().id;
|
||||
}
|
||||
|
||||
update_stream_name(stream_id, new_stream_name) {
|
||||
for (const item of this._items) {
|
||||
if (item.stream_id && item.stream_id === stream_id) {
|
||||
item.display_recipient = new_stream_name;
|
||||
item.stream = new_stream_name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
add_messages(messages) {
|
||||
let top_messages = [];
|
||||
let bottom_messages = [];
|
||||
|
||||
@@ -10,12 +10,8 @@ function rerender_messages_view() {
|
||||
}
|
||||
|
||||
exports.update_stream_name = function (stream_id, new_name) {
|
||||
for (const list of [home_msg_list, message_list.narrowed, message_list.all]) {
|
||||
if (list === undefined) {
|
||||
continue;
|
||||
}
|
||||
list.update_stream_name(stream_id, new_name);
|
||||
}
|
||||
message_store.update_property("stream_name", new_name, {stream_id});
|
||||
rerender_messages_view();
|
||||
};
|
||||
|
||||
exports.update_user_full_name = function (user_id, full_name) {
|
||||
|
||||
@@ -212,6 +212,14 @@ exports.update_property = function (property, value, info) {
|
||||
}
|
||||
});
|
||||
break;
|
||||
case "stream_name":
|
||||
exports.each((msg) => {
|
||||
if (msg.stream_id && msg.stream_id === info.stream_id) {
|
||||
msg.display_recipient = value;
|
||||
msg.stream = value;
|
||||
}
|
||||
});
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user