MediaWiki:Common.js/watchlist.js: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
Undid revision 292963871 by OverlordQ (talk) toolserver is pretty much dead now, for prevention, disabled
Ned Scott (talk | contribs)
No edit summary
 
(14 intermediate revisions by 10 users not shown)
Line 1: Line 1:
//<source lang="JavaScript">
/** Add dismiss buttons to watchlist-message *************************************
/** Add dismiss buttons to watchlist-message *************************************
  *
  *
Line 7: Line 5:
  *  Maintainers: [[User:Ruud Koot|Ruud Koot]], [[User:MZMcBride|MZMcBride]]
  *  Maintainers: [[User:Ruud Koot|Ruud Koot]], [[User:MZMcBride|MZMcBride]]
  */
  */
/*importScriptURI('http://toolserver.org/~para/geoip.fcgi');*/
addOnloadHook(function() { importScriptURI('http://en.wikipedia.org/w/index.php?title=MediaWiki:Geonotice.js&action=raw&ctype=text/javascript&maxage=3600'); });


function addDismissButton() {
function addDismissButton() {
   var docobj = document.getElementById('bodyContent') || document.getElementById('content') || document
   var docobj = document.getElementById('bodyContent') || document.getElementById('content') || document;
   var watchItems = getElementsByClassName(docobj, 'div', 'watchlist-message');
   var watchItems = getElementsByClassName(docobj, 'div', 'watchlist-message');
  if(watchItems.length == 0) watchItems = getElementsByClassName(docobj, 'li', 'watchlist-message');
   if(watchItems.length == 0) return
   if(watchItems.length == 0) return
   for(var i=0;i<watchItems.length;i++) {
   for(var i=0;i<watchItems.length;i++) {
Line 31: Line 27:
     ButtonLink.appendChild(ButtonText);
     ButtonLink.appendChild(ButtonText);


     Button.appendChild(document.createTextNode('['));
     Button.appendChild(document.createTextNode(' ['));
     Button.appendChild(ButtonLink);
     Button.appendChild(ButtonLink);
     Button.appendChild(document.createTextNode(']'));
     Button.appendChild(document.createTextNode(']'));
Line 41: Line 37:
   var docobj = document.getElementById('bodyContent') || document.getElementById('content') || document
   var docobj = document.getElementById('bodyContent') || document.getElementById('content') || document
   var watchItems = getElementsByClassName(docobj, 'div', 'watchlist-message');
   var watchItems = getElementsByClassName(docobj, 'div', 'watchlist-message');
  if(watchItems.length == 0) watchItems = getElementsByClassName(docobj, 'li', 'watchlist-message');
   watchItems[num].style.display = 'none';
   watchItems[num].style.display = 'none';


Line 48: Line 45:
}
}
addOnloadHook(addDismissButton);
addOnloadHook(addDismissButton);
//</source>

Latest revision as of 14:30, 20 November 2011

/** Add dismiss buttons to watchlist-message *************************************
 *
 *  Description: Allows multiple dismiss buttons on [[MediaWiki:Watchlist-details]] with bump-able cookie IDs.
 *  Note: HTML is backwards compatible with old version, new version ignores old syntax, except for dismissed IDs.
 *  Maintainers: [[User:Ruud Koot|Ruud Koot]], [[User:MZMcBride|MZMcBride]]
 */

function addDismissButton() {
  var docobj = document.getElementById('bodyContent') || document.getElementById('content') || document;
  var watchItems = getElementsByClassName(docobj, 'div', 'watchlist-message');
  if(watchItems.length == 0) watchItems = getElementsByClassName(docobj, 'li', 'watchlist-message');
  if(watchItems.length == 0) return
  for(var i=0;i<watchItems.length;i++) {
    var watchlistCookieID = parseInt(watchItems[i].className.replace(/.*cookie\-ID\_(\d*).*/ig,'$1'));
    if(isNaN(watchlistCookieID)) continue
    if(document.cookie.indexOf('hidewatchlistmessage-' + watchlistCookieID + '=yes') != -1) {
      watchItems[i].style.display = 'none';
      continue;
    }
    var Button     = document.createElement('span');
    var ButtonLink = document.createElement('a');
    var ButtonText = document.createTextNode('dismiss');

    ButtonLink.setAttribute('id','dismissButton');
    ButtonLink.setAttribute('href','javascript:dismissWatchlistMessage(' + i + ',' + watchlistCookieID + ')');
    ButtonLink.setAttribute('title','Hide this message');
    ButtonLink.appendChild(ButtonText);

    Button.appendChild(document.createTextNode(' ['));
    Button.appendChild(ButtonLink);
    Button.appendChild(document.createTextNode(']'));
    watchItems[i].appendChild(Button);
  }
}

function dismissWatchlistMessage(num,cid) {
  var docobj = document.getElementById('bodyContent') || document.getElementById('content') || document
  var watchItems = getElementsByClassName(docobj, 'div', 'watchlist-message');
  if(watchItems.length == 0) watchItems = getElementsByClassName(docobj, 'li', 'watchlist-message');
  watchItems[num].style.display = 'none';

  var e = new Date();
  e.setTime( e.getTime() + (4*7*24*60*60*1000) );
  document.cookie = 'hidewatchlistmessage-' + cid + '=yes; expires=' + e.toGMTString() + '; path=/';
}
addOnloadHook(addDismissButton);