mirror of
https://github.com/zulip/zulip.git
synced 2025-11-14 19:06:09 +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}]);
|
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", () => {
|
run_test("nth_most_recent_id", () => {
|
||||||
const list = new MessageList({});
|
const list = new MessageList({});
|
||||||
list.append([{id: 10}, {id: 20}, {id: 30}]);
|
list.append([{id: 10}, {id: 20}, {id: 30}]);
|
||||||
|
|||||||
@@ -25,6 +25,18 @@ set_global("page_params", {
|
|||||||
is_admin: true,
|
is_admin: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const denmark = {
|
||||||
|
subscribed: false,
|
||||||
|
name: "Denmark",
|
||||||
|
stream_id: 20,
|
||||||
|
};
|
||||||
|
|
||||||
|
const devel = {
|
||||||
|
subscribed: true,
|
||||||
|
name: "Devel",
|
||||||
|
stream_id: 21,
|
||||||
|
};
|
||||||
|
|
||||||
const me = {
|
const me = {
|
||||||
email: "me@example.com",
|
email: "me@example.com",
|
||||||
user_id: 101,
|
user_id: 101,
|
||||||
@@ -257,6 +269,9 @@ run_test("update_property", () => {
|
|||||||
sender_full_name: alice.full_name,
|
sender_full_name: alice.full_name,
|
||||||
sender_id: alice.user_id,
|
sender_id: alice.user_id,
|
||||||
small_avatar_url: "alice_url",
|
small_avatar_url: "alice_url",
|
||||||
|
stream_id: devel.stream_id,
|
||||||
|
stream: devel.name,
|
||||||
|
display_recipient: devel.name,
|
||||||
id: 100,
|
id: 100,
|
||||||
};
|
};
|
||||||
const message2 = {
|
const message2 = {
|
||||||
@@ -264,6 +279,9 @@ run_test("update_property", () => {
|
|||||||
sender_full_name: bob.full_name,
|
sender_full_name: bob.full_name,
|
||||||
sender_id: bob.user_id,
|
sender_id: bob.user_id,
|
||||||
small_avatar_url: "bob_url",
|
small_avatar_url: "bob_url",
|
||||||
|
stream_id: denmark.stream_id,
|
||||||
|
stream: denmark.name,
|
||||||
|
display_recipient: denmark.name,
|
||||||
id: 101,
|
id: 101,
|
||||||
};
|
};
|
||||||
for (const message of [message1, message2]) {
|
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});
|
message_store.update_property("small_avatar_url", "bobby_url", {user_id: bob.user_id});
|
||||||
assert.equal(message1.small_avatar_url, "alice_url");
|
assert.equal(message1.small_avatar_url, "alice_url");
|
||||||
assert.equal(message2.small_avatar_url, "bobby_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", () => {
|
run_test("each", () => {
|
||||||
|
|||||||
@@ -393,13 +393,6 @@ class MessageList {
|
|||||||
return this.view.get_row(id);
|
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) {
|
change_message_id(old_id, new_id) {
|
||||||
const opts = {
|
const opts = {
|
||||||
is_current_list: () => current_msg_list === this,
|
is_current_list: () => current_msg_list === this,
|
||||||
|
|||||||
@@ -193,15 +193,6 @@ class MessageListData {
|
|||||||
return this.last().id;
|
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) {
|
add_messages(messages) {
|
||||||
let top_messages = [];
|
let top_messages = [];
|
||||||
let bottom_messages = [];
|
let bottom_messages = [];
|
||||||
|
|||||||
@@ -10,12 +10,8 @@ function rerender_messages_view() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
exports.update_stream_name = function (stream_id, new_name) {
|
exports.update_stream_name = function (stream_id, new_name) {
|
||||||
for (const list of [home_msg_list, message_list.narrowed, message_list.all]) {
|
message_store.update_property("stream_name", new_name, {stream_id});
|
||||||
if (list === undefined) {
|
rerender_messages_view();
|
||||||
continue;
|
|
||||||
}
|
|
||||||
list.update_stream_name(stream_id, new_name);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.update_user_full_name = function (user_id, full_name) {
|
exports.update_user_full_name = function (user_id, full_name) {
|
||||||
|
|||||||
@@ -212,6 +212,14 @@ exports.update_property = function (property, value, info) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
break;
|
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