מדיה ויקי:Gadget-NotifCountTitle.js

מתוך צפונות ויקי
גרסה מ־12:17, 5 בדצמבר 2022 מאת צפונות (שיחה | תרומות) (4 גרסאות של הדף wikipedia:he:מדיה_ויקי:Gadget-NotifCountTitle.js יובאו)
(הבדל) → הגרסה הקודמת | הגרסה האחרונה (הבדל) | הגרסה הבאה ← (הבדל)

הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
  • אופרה: ללחוץ על Ctrl-F5.
// Author: Eee888
$(document).ready( function(){
	
		var initialDocTitle = document.title;
		var messageNotification = 0, alertNotification = 0;
	
		function addNotificationCounterToDocumentTitle(notificationType, newCountValue){
			
			if (!notificationType) { //first time the page is loaded
			
				var notificationElmArr = $('.mw-echo-notifications-badge').filter(function() { return $(this).closest('#pt-notifications-watchlist').length === 0; });
				for(var elemIndex = 0; elemIndex < notificationElmArr.length ; elemIndex++){
					
					var elementNotificationNumber = parseInt($(notificationElmArr[elemIndex]).data('counter-num'));
					notificationElmArr[elemIndex].parentElement.id.indexOf('alert') > -1 ? 
						alertNotification += elementNotificationNumber : messageNotification += elementNotificationNumber;
				}
			} else {// it's an update
			
				'alert' == notificationType ? alertNotification = newCountValue : messageNotification = newCountValue;
			}
			var notificationToTitle = messageNotification + alertNotification;
			document.title = notificationToTitle !== 0 ? '('+mediaWiki.language.convertNumber(notificationToTitle)+') ' + initialDocTitle : initialDocTitle;
		}
		addNotificationCounterToDocumentTitle(); //for the initial page load
		mw.hook('ext.echo.badge.countChange').add(addNotificationCounterToDocumentTitle); //for any other notification counter change
});