From a54128b3bc146fa6f46bd10c712253e568352ec8 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Sun, 3 Feb 2013 15:51:29 +0100 Subject: [ticket/11342] Mark active topics read when marking forums read Marking forums read while viewing a category will also mark the active topics inside that category read. Therefore, the active topics should also be marked read. With this patch the ajax callback "mark_forums_read" will check if the active topics id ("active_topics") exists and also mark topics read if it does. As the active topics will only be displayed in categories, which can't have any other topics, this is a proper approach. PHPBB3-11342 --- phpBB/styles/prosilver/template/ajax.js | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'phpBB/styles/prosilver/template/ajax.js') diff --git a/phpBB/styles/prosilver/template/ajax.js b/phpBB/styles/prosilver/template/ajax.js index 6ce3b38981..b2a27089f7 100644 --- a/phpBB/styles/prosilver/template/ajax.js +++ b/phpBB/styles/prosilver/template/ajax.js @@ -37,14 +37,24 @@ phpbb.addAjaxCallback('mark_forums_read', function(res) { // Mark subforums read $('a.subforum[class*="unread"]').removeClass('unread').addClass('read'); + // Mark topics read if we are watching a category and showing active topics + if ($('#active_topics').length) { + phpbb.ajaxCallbacks['mark_topics_read'].call(this, res, false); + } + // Update mark forums read links $('[data-ajax="mark_forums_read"]').attr('href', res.U_MARK_FORUMS); phpbb.closeDarkenWrapper(3000); }); -// This callback will mark all topic icons read -phpbb.addAjaxCallback('mark_topics_read', function(res) { +/** +* This callback will mark all topic icons read +* +* @param update_topic_links bool Wether "Mark topics read" links should be +* updated. Defaults to true. +*/ +phpbb.addAjaxCallback('mark_topics_read', function(res, update_topic_links = true) { var readTitle = res.NO_UNREAD_POSTS; var unreadTitle = res.UNREAD_POSTS; var iconsArray = { @@ -85,7 +95,9 @@ phpbb.addAjaxCallback('mark_topics_read', function(res) { $('a').has('span.icon_topic_newest').remove(); // Update mark topics read links - $('[data-ajax="mark_topics_read"]').attr('href', res.U_MARK_TOPICS); + if (update_topic_links) { + $('[data-ajax="mark_topics_read"]').attr('href', res.U_MARK_TOPICS); + } phpbb.closeDarkenWrapper(3000); }); -- cgit v1.2.1