MediaWiki:Gadget-NewMessages.js

From Zelda Dungeon Wiki
Jump to navigation Jump to search
Want an adless experience? Log in or Create an account.

Note: After saving, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: hold Shift while clicking Reload, or press either Ctrl+F5 or Ctrl+R (Command+R on a Mac)
  • Google Chrome: press Ctrl+Shift+R (Command+Shift+R on a Mac)
  • Internet Explorer: hold Ctrl while clicking Refresh, or press Ctrl+F5
  • Konqueror: click Reload or press F5
  • Opera: clear the cache in Tools → Preferences
$(gotNewMessages);
function gotNewMessages() {
  var um = document.getElementById('bodyContent').getElementsByClassName('usermessage');
  if(um.length == 0) return
  var links = um[0].getElementsByTagName('a');
  for(var i=0;i<links.length;i++) {
    if(links[i].href.indexOf('diff=cur') != -1) {
      var penultimate = links[i].href;
    }
  }
  var mytalk = document.getElementById('pt-mytalk');
  if(!mytalk) return

  mytalk.style.fontWeight = 'bold';
  var img = 'https://www.zeldadungeon.net/wiki/thumb.php?f=Triforce_(Ocarina_of_Time).png&w=13';
  if(penultimate) {
    /* add a linked icon if the message contains a diff=cur */
    var plink = document.createElement('a');
    plink.setAttribute('href',penultimate);
    plink.setAttribute('title','diff to last change');
    var pimg = document.createElement('img');
    pimg.setAttribute('src',img);
    pimg.style.width = '13px';
    pimg.style.height = '13px';
    pimg.style.marginLeft = '5px';
    pimg.style.paddingBottom = '1px';
    pimg.style.verticalAlign = 'sub';
    plink.appendChild(pimg);
    plink.appendChild(document.createTextNode(' '));
    mytalk.appendChild(plink);
  } else {
    mytalk.style.background = 'transparent url("' + img + '") no-repeat center right';
    mytalk.style.paddingRight = '16px';
  }
}