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

From Official Kodi Wiki
Jump to navigation Jump to search
ESAMS issues again, commenting out to prevent page loading lag.
Ned Scott (talk | contribs)
No edit summary
 
(12 intermediate revisions by 9 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);