mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	js: Extract message_edit_history.js.
This commit is contained in:
		@@ -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();
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								static/js/global.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								static/js/global.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -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');
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										67
									
								
								static/js/message_edit_history.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								static/js/message_edit_history.js
									
									
									
									
									
										Normal file
									
								
							@@ -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',
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user