mirror of
https://github.com/zulip/zulip.git
synced 2025-11-13 18:36:36 +00:00
Previously, the show_date_row flag for the first entry in the edit history modal was directly set to `true`, while in all other entries it was calculated with identical code. Though show_date_row for the first entry should indeed always be true, there's no need for it to be a special case. In preparation for factoring out the calculation of show_date_row, this commit nominally calculates the first entry's show_date_row with the same code that is used to calculate show_date_row for all other entries. Nominally, because it will still always end up being true.
71 lines
3.1 KiB
JavaScript
71 lines
3.1 KiB
JavaScript
const render_message_edit_history = require('../templates/message_edit_history.hbs');
|
|
|
|
exports.fetch_and_render_message_history = function (message) {
|
|
channel.get({
|
|
url: "/json/messages/" + message.id + "/history",
|
|
data: {message_id: JSON.stringify(message.id)},
|
|
success: function (data) {
|
|
const content_edit_history = [];
|
|
let prev_timestamp = null;
|
|
|
|
for (const [index, msg] of data.message_history.entries()) {
|
|
// Format timestamp nicely for display
|
|
const timestamp = timerender.get_full_time(msg.timestamp);
|
|
const item = {
|
|
timestamp: moment(timestamp).format("h:mm A"),
|
|
display_date: moment(timestamp).format("MMMM D, YYYY"),
|
|
};
|
|
if (msg.user_id) {
|
|
const person = people.get_by_user_id(msg.user_id);
|
|
item.edited_by = person.full_name;
|
|
}
|
|
|
|
if (index === 0) {
|
|
item.posted_or_edited = "Posted by";
|
|
item.body_to_render = msg.rendered_content;
|
|
// This will always be true because of `prev_timestamp = null` above.
|
|
item.show_date_row = !moment(timestamp).isSame(prev_timestamp, 'day');
|
|
} else if (msg.prev_topic && msg.prev_content) {
|
|
item.posted_or_edited = "Edited by";
|
|
item.body_to_render = msg.content_html_diff;
|
|
item.show_date_row = !moment(timestamp).isSame(prev_timestamp, 'day');
|
|
item.topic_edited = true;
|
|
item.prev_topic = msg.prev_topic;
|
|
item.new_topic = msg.topic;
|
|
} else if (msg.prev_topic) {
|
|
item.posted_or_edited = "Topic edited by";
|
|
item.show_date_row = !moment(timestamp).isSame(prev_timestamp, 'day');
|
|
item.topic_edited = true;
|
|
item.prev_topic = msg.prev_topic;
|
|
item.new_topic = msg.topic;
|
|
} else {
|
|
// just a content edit
|
|
item.posted_or_edited = "Edited by";
|
|
item.body_to_render = msg.content_html_diff;
|
|
item.show_date_row = !moment(timestamp).isSame(prev_timestamp, 'day');
|
|
}
|
|
|
|
content_edit_history.push(item);
|
|
|
|
prev_timestamp = timestamp;
|
|
}
|
|
$('#message-history').attr('data-message-id', message.id);
|
|
$('#message-history').html(render_message_edit_history({
|
|
edited_messages: content_edit_history,
|
|
}));
|
|
},
|
|
error: function (xhr) {
|
|
ui_report.error(i18n.t("Error fetching message edit history"), xhr,
|
|
$("#message-history-error"));
|
|
},
|
|
});
|
|
};
|
|
|
|
exports.show_history = function (message) {
|
|
$('#message-history').html('');
|
|
$('#message-edit-history').modal("show");
|
|
exports.fetch_and_render_message_history(message);
|
|
};
|
|
|
|
window.message_edit_history = exports;
|