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,
|
"marked": false,
|
||||||
"md5": false,
|
"md5": false,
|
||||||
"message_edit": false,
|
"message_edit": false,
|
||||||
|
"message_edit_history": false,
|
||||||
"message_events": false,
|
"message_events": false,
|
||||||
"message_fetch": false,
|
"message_fetch": false,
|
||||||
"message_flags": false,
|
"message_flags": false,
|
||||||
|
|
|
@ -98,6 +98,7 @@ import "../stream_create.js";
|
||||||
import "../stream_edit.js";
|
import "../stream_edit.js";
|
||||||
import "../subs.js";
|
import "../subs.js";
|
||||||
import "../message_edit.js";
|
import "../message_edit.js";
|
||||||
|
import "../message_edit_history.js";
|
||||||
import "../condense.js";
|
import "../condense.js";
|
||||||
import "../resize.js";
|
import "../resize.js";
|
||||||
import "../list_render.js";
|
import "../list_render.js";
|
||||||
|
|
|
@ -164,7 +164,7 @@ exports.initialize = function () {
|
||||||
const message_history_cancel_btn = $('#message-history-cancel');
|
const message_history_cancel_btn = $('#message-history-cancel');
|
||||||
|
|
||||||
if (page_params.realm_allow_edit_history) {
|
if (page_params.realm_allow_edit_history) {
|
||||||
message_edit.show_history(message);
|
message_edit_history.show_history(message);
|
||||||
message_history_cancel_btn.focus();
|
message_history_cancel_btn.focus();
|
||||||
}
|
}
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
|
|
|
@ -68,6 +68,7 @@ declare let local_message: any;
|
||||||
declare let localstorage: any;
|
declare let localstorage: any;
|
||||||
declare let markdown: any;
|
declare let markdown: any;
|
||||||
declare let message_edit: any;
|
declare let message_edit: any;
|
||||||
|
declare let message_edit_history: any;
|
||||||
declare let message_events: any;
|
declare let message_events: any;
|
||||||
declare let message_fetch: any;
|
declare let message_fetch: any;
|
||||||
declare let message_flags: 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_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 render_topic_edit_form = require('../templates/topic_edit_form.hbs');
|
||||||
|
|
||||||
const currently_editing_messages = new Map();
|
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) {
|
function hide_delete_btn_show_spinner(deleting) {
|
||||||
if (deleting) {
|
if (deleting) {
|
||||||
$('do_delete_message_button').attr('disabled', 'disabled');
|
$('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.
|
// Rerender "Message edit history" if it was open to the edited message.
|
||||||
if ($('#message-edit-history').hasClass('in') &&
|
if ($('#message-edit-history').hasClass('in') &&
|
||||||
msg.id === parseInt($('#message-history').attr('data-message-id'), 10)) {
|
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');
|
const message_history_cancel_btn = $('#message-history-cancel');
|
||||||
|
|
||||||
exports.hide_actions_popover();
|
exports.hide_actions_popover();
|
||||||
message_edit.show_history(message);
|
message_edit_history.show_history(message);
|
||||||
message_history_cancel_btn.focus();
|
message_history_cancel_btn.focus();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
|
@ -72,6 +72,7 @@ EXEMPT_FILES = {
|
||||||
'static/js/local_message.js',
|
'static/js/local_message.js',
|
||||||
'static/js/localstorage.js',
|
'static/js/localstorage.js',
|
||||||
'static/js/message_edit.js',
|
'static/js/message_edit.js',
|
||||||
|
'static/js/message_edit_history.js',
|
||||||
'static/js/message_events.js',
|
'static/js/message_events.js',
|
||||||
'static/js/message_fetch.js',
|
'static/js/message_fetch.js',
|
||||||
'static/js/message_flags.js',
|
'static/js/message_flags.js',
|
||||||
|
|
Loading…
Reference in New Issue