mirror of https://github.com/zulip/zulip.git
js: Extract message_edit_history.js.
This commit is contained in:
parent
4eaa62eaa6
commit
b0a0ae215f
|
@ -231,6 +231,7 @@
|
|||
"marked": false,
|
||||
"md5": false,
|
||||
"message_edit": false,
|
||||
"message_edit_history": false,
|
||||
"message_events": false,
|
||||
"message_fetch": false,
|
||||
"message_flags": false,
|
||||
|
|
|
@ -98,6 +98,7 @@ import "../stream_create.js";
|
|||
import "../stream_edit.js";
|
||||
import "../subs.js";
|
||||
import "../message_edit.js";
|
||||
import "../message_edit_history.js";
|
||||
import "../condense.js";
|
||||
import "../resize.js";
|
||||
import "../list_render.js";
|
||||
|
|
|
@ -164,7 +164,7 @@ exports.initialize = function () {
|
|||
const message_history_cancel_btn = $('#message-history-cancel');
|
||||
|
||||
if (page_params.realm_allow_edit_history) {
|
||||
message_edit.show_history(message);
|
||||
message_edit_history.show_history(message);
|
||||
message_history_cancel_btn.focus();
|
||||
}
|
||||
e.stopPropagation();
|
||||
|
|
|
@ -68,6 +68,7 @@ declare let local_message: any;
|
|||
declare let localstorage: any;
|
||||
declare let markdown: any;
|
||||
declare let message_edit: any;
|
||||
declare let message_edit_history: any;
|
||||
declare let message_events: any;
|
||||
declare let message_fetch: any;
|
||||
declare let message_flags: any;
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
const render_message_edit_form = require('../templates/message_edit_form.hbs');
|
||||
const render_message_edit_history = require('../templates/message_edit_history.hbs');
|
||||
const render_topic_edit_form = require('../templates/topic_edit_form.hbs');
|
||||
|
||||
const currently_editing_messages = new Map();
|
||||
|
@ -787,70 +786,6 @@ exports.edit_last_sent_message = function () {
|
|||
});
|
||||
};
|
||||
|
||||
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;
|
||||
|
||||
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;
|
||||
prev_timestamp = timestamp;
|
||||
item.show_date_row = true;
|
||||
} 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.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);
|
||||
}
|
||||
$('#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);
|
||||
};
|
||||
|
||||
function hide_delete_btn_show_spinner(deleting) {
|
||||
if (deleting) {
|
||||
$('do_delete_message_button').attr('disabled', 'disabled');
|
||||
|
|
|
@ -0,0 +1,67 @@
|
|||
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;
|
||||
|
||||
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;
|
||||
prev_timestamp = timestamp;
|
||||
item.show_date_row = true;
|
||||
} 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.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);
|
||||
}
|
||||
$('#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;
|
|
@ -324,7 +324,7 @@ exports.update_messages = function update_messages(events) {
|
|||
// Rerender "Message edit history" if it was open to the edited message.
|
||||
if ($('#message-edit-history').hasClass('in') &&
|
||||
msg.id === parseInt($('#message-history').attr('data-message-id'), 10)) {
|
||||
message_edit.fetch_and_render_message_history(msg);
|
||||
message_edit_history.fetch_and_render_message_history(msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1020,7 +1020,7 @@ exports.register_click_handlers = function () {
|
|||
const message_history_cancel_btn = $('#message-history-cancel');
|
||||
|
||||
exports.hide_actions_popover();
|
||||
message_edit.show_history(message);
|
||||
message_edit_history.show_history(message);
|
||||
message_history_cancel_btn.focus();
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
|
|
|
@ -72,6 +72,7 @@ EXEMPT_FILES = {
|
|||
'static/js/local_message.js',
|
||||
'static/js/localstorage.js',
|
||||
'static/js/message_edit.js',
|
||||
'static/js/message_edit_history.js',
|
||||
'static/js/message_events.js',
|
||||
'static/js/message_fetch.js',
|
||||
'static/js/message_flags.js',
|
||||
|
|
Loading…
Reference in New Issue