From b919de683f66b817781e504fd18664979e63fc32 Mon Sep 17 00:00:00 2001 From: Kohei Yoshino Date: Tue, 26 Aug 2025 03:51:52 -0400 Subject: [PATCH 1/3] Bug 1983944 - My dashboard should render updated comments in markdown --- extensions/MyDashboard/lib/WebService.pm | 9 ++++++++- extensions/MyDashboard/web/js/query.js | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/extensions/MyDashboard/lib/WebService.pm b/extensions/MyDashboard/lib/WebService.pm index 4023791a34..42530f2359 100644 --- a/extensions/MyDashboard/lib/WebService.pm +++ b/extensions/MyDashboard/lib/WebService.pm @@ -14,6 +14,7 @@ use base qw(Bugzilla::WebService Bugzilla::WebService::Bug); use Bugzilla::Constants; use Bugzilla::Error; +use Bugzilla::Template; use Bugzilla::Util qw(detaint_natural template_var datetime_from); use Bugzilla::WebService::Util qw(validate); @@ -72,7 +73,13 @@ sub run_last_changes { if ($last_comment_id) { my $comments = $self->comments({comment_ids => [$last_comment_id]}); my $comment = $comments->{comments}{$last_comment_id}; - $last_changes->{comment} = $comment->{text}; + my $text = $comment->{text}; + my $bug = Bugzilla::Bug->check($params->{bug_id}); + my $html + = Bugzilla->params->{use_markdown} + ? Bugzilla->markdown->render_html($text, $bug, $comment, $user) + : Bugzilla::Template::quoteUrls($text, $bug, $comment, $user); + $last_changes->{comment_html} = $html; $last_changes->{email} = $comment->{creator} if !$last_changes->{email}; my $datetime = datetime_from($comment->{creation_time}); $datetime->set_time_zone($user->timezone); diff --git a/extensions/MyDashboard/web/js/query.js b/extensions/MyDashboard/web/js/query.js index c4be47b029..cd93ecf712 100644 --- a/extensions/MyDashboard/web/js/query.js +++ b/extensions/MyDashboard/web/js/query.js @@ -121,7 +121,7 @@ window.addEventListener('DOMContentLoaded', () => { } if (lastChangesCache[bug_id]) { - const { email, when, activity, comment } = lastChangesCache[bug_id]; + const { email, when, activity, comment_html } = lastChangesCache[bug_id]; $target.innerHTML = `
@@ -157,7 +157,7 @@ window.addEventListener('DOMContentLoaded', () => { ` : `` } - ${comment ? `
${comment.htmlEncode()}
` : ``} + ${comment_html ?? ''} ` : `This is a new ${BUGZILLA.string.bug} and no changes have been made yet.` } From e8f9b99931c179e6e6105242b8e5bfa81a277169 Mon Sep 17 00:00:00 2001 From: Kohei Yoshino Date: Tue, 26 Aug 2025 18:15:32 -0400 Subject: [PATCH 2/3] Remove unnecessary arguments as per feedback --- extensions/MyDashboard/lib/WebService.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/MyDashboard/lib/WebService.pm b/extensions/MyDashboard/lib/WebService.pm index 42530f2359..dbb07ebbfe 100644 --- a/extensions/MyDashboard/lib/WebService.pm +++ b/extensions/MyDashboard/lib/WebService.pm @@ -77,8 +77,8 @@ sub run_last_changes { my $bug = Bugzilla::Bug->check($params->{bug_id}); my $html = Bugzilla->params->{use_markdown} - ? Bugzilla->markdown->render_html($text, $bug, $comment, $user) - : Bugzilla::Template::quoteUrls($text, $bug, $comment, $user); + ? Bugzilla->markdown->render_html($text, $bug) + : Bugzilla::Template::quoteUrls($text, $bug); $last_changes->{comment_html} = $html; $last_changes->{email} = $comment->{creator} if !$last_changes->{email}; my $datetime = datetime_from($comment->{creation_time}); From 1509fd67d43fb5295f0b0d7f1527a260b58ec627 Mon Sep 17 00:00:00 2001 From: Kohei Yoshino Date: Tue, 26 Aug 2025 18:16:37 -0400 Subject: [PATCH 3/3] Refactor default value handling for comment_html --- extensions/MyDashboard/web/js/query.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/MyDashboard/web/js/query.js b/extensions/MyDashboard/web/js/query.js index cd93ecf712..3a0a670cc5 100644 --- a/extensions/MyDashboard/web/js/query.js +++ b/extensions/MyDashboard/web/js/query.js @@ -121,7 +121,7 @@ window.addEventListener('DOMContentLoaded', () => { } if (lastChangesCache[bug_id]) { - const { email, when, activity, comment_html } = lastChangesCache[bug_id]; + const { email, when, activity, comment_html = '' } = lastChangesCache[bug_id]; $target.innerHTML = `
@@ -157,7 +157,7 @@ window.addEventListener('DOMContentLoaded', () => { ` : `` } - ${comment_html ?? ''} + ${comment_html} ` : `This is a new ${BUGZILLA.string.bug} and no changes have been made yet.` }