mirror of
https://github.com/zulip/zulip.git
synced 2025-10-28 02:23:57 +00:00
Handle topic edits and rerender view if topics have changed
(imported from commit b59f6b532138d660e0acfb949b2eb223b5c5ed0e)
This commit is contained in:
committed by
Jessica McKellar
parent
7658886b02
commit
b51ea69db0
@@ -6,7 +6,14 @@ var currently_editing_messages = {};
|
||||
//returns true if the edit task should end.
|
||||
exports.save = function (row) {
|
||||
var msg_list = current_msg_list;
|
||||
var message = current_msg_list.get(rows.id(row));
|
||||
var message_row;
|
||||
|
||||
if (row.hasClass('recipient_row')) {
|
||||
message_row = rows.first_message_in_group(row);
|
||||
} else {
|
||||
message_row = row;
|
||||
}
|
||||
var message = current_msg_list.get(rows.id(message_row));
|
||||
var changed = false;
|
||||
|
||||
var new_content = row.find(".message_edit_content").val();
|
||||
@@ -155,7 +162,7 @@ exports.start_topic_edit = function (recipient_row) {
|
||||
var form = $(templates.render('topic_edit_form'));
|
||||
current_msg_list.show_edit_topic(recipient_row, form);
|
||||
form.keydown(handle_edit_keydown);
|
||||
var message = current_msg_list.get(rows.id(recipient_row));
|
||||
var message = current_msg_list.get(rows.id(rows.first_message_in_group(recipient_row)));
|
||||
var topic = message.subject;
|
||||
if (topic === compose.empty_subject_placeholder()) {
|
||||
topic = '';
|
||||
|
||||
@@ -215,6 +215,7 @@ function maybe_add_narrowed_messages(messages, msg_list, messages_are_new) {
|
||||
|
||||
exports.update_messages = function update_messages(events) {
|
||||
var msgs_to_rerender = [];
|
||||
var topic_edited = false;
|
||||
|
||||
_.each(events, function (event) {
|
||||
var msg = stored_messages[event.message_id];
|
||||
@@ -237,6 +238,7 @@ exports.update_messages = function update_messages(events) {
|
||||
// A topic edit may affect multiple messages, listed in
|
||||
// event.message_ids. event.message_id is still the first message
|
||||
// where the user initiated the edit.
|
||||
topic_edited = true;
|
||||
_.each(event.message_ids, function (id) {
|
||||
var msg = message_store.get(id);
|
||||
if (msg === undefined) {
|
||||
@@ -271,9 +273,18 @@ exports.update_messages = function update_messages(events) {
|
||||
alert_words.process_message(msg);
|
||||
});
|
||||
|
||||
home_msg_list.view.rerender_messages(msgs_to_rerender);
|
||||
if (current_msg_list === narrowed_msg_list) {
|
||||
narrowed_msg_list.view.rerender_messages(msgs_to_rerender);
|
||||
// If a topic was edited, we re-render the whole view to get any propagated edits
|
||||
// to be updated
|
||||
if (topic_edited) {
|
||||
home_msg_list.rerender();
|
||||
if (current_msg_list === narrowed_msg_list) {
|
||||
narrowed_msg_list.rerender();
|
||||
}
|
||||
} else {
|
||||
home_msg_list.view.rerender_messages(msgs_to_rerender);
|
||||
if (current_msg_list === narrowed_msg_list) {
|
||||
narrowed_msg_list.view.rerender_messages(msgs_to_rerender);
|
||||
}
|
||||
}
|
||||
unread.update_unread_counts();
|
||||
stream_list.update_streams_sidebar();
|
||||
|
||||
Reference in New Issue
Block a user