From d76ec60ee15c1fafbb4212eda77b842e793108d0 Mon Sep 17 00:00:00 2001 From: Cesar G Date: Sun, 24 Nov 2013 09:09:48 -0800 Subject: [ticket/12034] Move similar code in the two callbacks to separate function. PHPBB3-12034 --- phpBB/styles/prosilver/template/ajax.js | 59 ++++++++++++++++----------------- 1 file changed, 28 insertions(+), 31 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 38f9f80b44..1d70adc48d 100644 --- a/phpBB/styles/prosilver/template/ajax.js +++ b/phpBB/styles/prosilver/template/ajax.js @@ -109,22 +109,7 @@ phpbb.addAjaxCallback('mark_topics_read', function(res, update_topic_links) { // This callback will mark all notifications read phpbb.addAjaxCallback('notification.mark_all_read', function(res) { if (typeof res.success !== 'undefined') { - var unreadRows = $('#notification_list li.bg2'); - - // Remove the unread status. - unreadRows.removeClass('bg2'); - unreadRows.find('a.mark_read').remove(); - - // Update the notification link to the real URL. - unreadRows.each(function() { - var link = $(this).find('a'); - link.attr('href', link.attr('data-real-url')); - }); - // Set the unread count to 0. - $('#notification_list_button strong').html(0); - // Remove the Mark all read link - $('#mark_all_notifications').remove(); - + phpbb.markNotifications($('#notification_list li.bg2'), 0); phpbb.closeDarkenWrapper(3000); } }); @@ -132,24 +117,36 @@ phpbb.addAjaxCallback('notification.mark_all_read', function(res) { // This callback will mark a notification read phpbb.addAjaxCallback('notification.mark_read', function(res) { if (typeof res.success !== 'undefined') { - var el = $(this), - unreadCountEl = $('#notification_list_button strong'), - unreadCount = Number(unreadCountEl.html()), - link = el.siblings('a'); - - // Remove the unread status. - el.parent('li.bg2').removeClass('bg2'); - el.remove(); - link.attr('href', link.attr('data-real-url')); - // Update the unread count - unreadCountEl.html(--unreadCount); - // Remove the Mark all read link if there are no unread notifications. - if (!unreadCount) { - $('#mark_all_notifications').remove(); - } + var unreadCount = Number($('#notification_list_button strong').html()) - 1; + phpbb.markNotifications($(this).parent('li.bg2'), unreadCount); } }); +/** + * Mark notification popup rows as read. + * + * @param {jQuery} el jQuery object(s) to mark read. + * @param {int} unreadCount The new unread notifications count. + */ +phpbb.markNotifications = function(el, unreadCount) { + // Remove the unread status. + el.removeClass('bg2'); + el.find('a.mark_read').remove(); + + // Update the notification link to the real URL. + el.each(function() { + var link = $(this).find('a'); + link.attr('href', link.attr('data-real-url')); + }); + + // Update the unread count. + $('#notification_list_button strong').html(unreadCount); + // Remove the Mark all read link if there are no unread notifications. + if (!unreadCount) { + $('#mark_all_notifications').remove(); + } +}; + // This callback finds the post from the delete link, and removes it. phpbb.addAjaxCallback('post_delete', function() { var el = $(this), -- cgit v1.2.1