From 8a325684d016166c6ee638e1165c5ba8700b51c9 Mon Sep 17 00:00:00 2001 From: Paul Holden Date: Tue, 2 Jul 2024 11:32:35 +0100 Subject: [PATCH] MDL-82309 comment: preserve link text property during AJAX requests. We really only need to update the count value that follows the link text content, so do that rather than overwriting the entire thing. --- comment/comment.js | 18 +++++++++--------- comment/lib.php | 3 +-- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/comment/comment.js b/comment/comment.js index 806ee9c6425..13ab753fc10 100644 --- a/comment/comment.js +++ b/comment/comment.js @@ -100,9 +100,9 @@ M.core_comment = { var newcomment = Y.Node.create(result.html); container.appendChild(newcomment); var ids = result.ids; - var linkText = Y.one('#comment-link-text-' + cid); - if (linkText) { - linkText.set('innerHTML', M.util.get_string('commentscount', 'moodle', obj.count)); + var linkTextCount = Y.one('#comment-link-text-' + cid + ' .comment-link-count'); + if (linkTextCount) { + linkTextCount.set('innerHTML', obj.count); } for(var i in ids) { var attributes = { @@ -249,9 +249,9 @@ M.core_comment = { scope: scope, params: params, callback: async function(id, ret, args) { - var linkText = Y.one('#comment-link-text-' + scope.client_id); - if (ret.count && linkText) { - linkText.set('innerHTML', M.util.get_string('commentscount', 'moodle', ret.count)); + var linkTextCount = Y.one('#comment-link-text-' + scope.client_id + ' .comment-link-count'); + if (linkTextCount) { + linkTextCount.set('innerHTML', ret.count); } var container = Y.one('#comment-list-'+scope.client_id); var pagination = Y.one('#comment-pagination-'+scope.client_id); @@ -284,10 +284,10 @@ M.core_comment = { params = {'commentid': id}; function remove_dom(type, anim, cmt) { cmt.remove(); - var linkText = Y.one('#comment-link-text-' + cid), + var linkTextCount = Y.one('#comment-link-text-' + cid + ' .comment-link-count'), comments = Y.all('#comment-list-' + cid + ' li'); - if (linkText && comments) { - linkText.set('innerHTML', M.util.get_string('commentscount', 'moodle', comments.size())); + if (linkTextCount) { + linkTextCount.set('innerHTML', comments.size()); } } this.request({ diff --git a/comment/lib.php b/comment/lib.php index e555f93927c..41c77e87147 100644 --- a/comment/lib.php +++ b/comment/lib.php @@ -263,7 +263,6 @@ class comment { $page->requires->strings_for_js(array( 'addcomment', 'comments', - 'commentscount', 'commentsrequirelogin', 'deletecommentbyon' ), @@ -454,7 +453,7 @@ class comment { // comments open and closed $countstring = ''; if ($this->displaytotalcount) { - $countstring = '('.$this->count().')'; + $countstring = '(' . html_writer::span($this->count(), 'comment-link-count') . ')'; } $collapsedimage= 't/collapsed'; if (right_to_left()) {