mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	Previously, the edit history modal did not respect the time format
setting (whether to show times in 12-hour or 24-hour format) when
displaying message edit times (#15171).
This commit fixes that by passing the edit times to
timerender.stringify_time(), which takes that setting into account,
instead of just doing a static string formatting operation.
This bug has existed since February 2017, when the edit history UI
was first added in 1a697b6e02.
Fixes #15171.
		
	
		
			
				
	
	
		
			69 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			2.7 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_datestamp = null;
 | 
						|
 | 
						|
            for (const [index, msg] of data.message_history.entries()) {
 | 
						|
                // Format times and dates nicely for display
 | 
						|
                const time = new XDate(msg.timestamp * 1000);
 | 
						|
                const datestamp = time.toDateString();
 | 
						|
                const item = {
 | 
						|
                    timestamp: timerender.stringify_time(time),
 | 
						|
                    display_date: time.toString("MMMM d, yyyy"),
 | 
						|
                    show_date_row: datestamp !== prev_datestamp,
 | 
						|
                };
 | 
						|
 | 
						|
                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;
 | 
						|
                } else if (msg.prev_topic && msg.prev_content) {
 | 
						|
                    item.posted_or_edited = "Edited by";
 | 
						|
                    item.body_to_render = msg.content_html_diff;
 | 
						|
                    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;
 | 
						|
                }
 | 
						|
 | 
						|
                content_edit_history.push(item);
 | 
						|
 | 
						|
                prev_datestamp = datestamp;
 | 
						|
            }
 | 
						|
            $('#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;
 |