Jump to content

User:Magnus Manske/sifter.js

From Wikipedia, the free encyclopedia
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
/*

To install:

* Get account on en.wikipedia.org
* Go to http://en.wikipedia.org/wiki/Special:Mypage/vector.js
* Add the line importScript('User:Magnus Manske/sifter.js');
to the page
* Go to (for example) http://en.wikipedia.org/wiki/Gulf_Snapping_Turtle
* Behold the "Reviews" tab next to "Read" (on the right; you may have
to force-reload the page once to activate the JavaScript)
* Click on the "Reviews" tab to get a list of all reviewed revisions,
and links to the partner (here: EOL) page, as well as the reviewer
page

Known issues: See http://en.wikipedia.org/wiki/User:Magnus Manske/sifter


*/

var sifter_html ;
var sifter_old_content ;
var sifter_active = false;

$(document).ready( function(){
  if ( mw.config.get('wgNamespaceNumber') != 0 ) return ; // Nevermind...
  var url = "http://toolserver.org/~magnus/sifter_api.php?query=wikipage&page=" + mw.config.get('wgPageName') + "&format=json&callback=?" ;
  $.getJSON ( url , function (data) {
    if ( data.length > 0 ) create_sifter_menu ( data ) ;
  } ) ;
}) ;

function create_sifter_menu ( data ) {
  var html = "<li id='sifter_menu'><a href='#' onclick='show_sifter_dialog(1);return false'><span>Reviews</span></a></li>" ;
  $('#p-views ul').prepend ( html ) ;

  sifter_html = "<h1>Reviews</h1><table border='1' class='wikitable'>" ;
  sifter_html += "<tr><th>Partner</th><th>Partner page</th><th>Wikipedia revision</th><th>Reviewer</th><th>Reviewed</th></tr>" ;
  $.each ( data , function ( k , v ) {
    sifter_html += "<tr>" ;
    sifter_html += "<td>" + v.partner_name + "</td>" ;
    sifter_html += "<td><a href='" + v.partner_url + "'>" + v.partner_id + "</a></td>" ;
    sifter_html += "<td><a href='" + mw.config.get('wgScript')  + "?title=" + escape(mw.config.get('wgPageName')) + "&oldid=" + v.revision + "'>" + v.revision + "</a> <a href='" + mw.config.get('wgScript')  + "?title=" + escape(mw.config.get('wgPageName')) + "&oldid=" + v.revision + "&diff=0'>(show latest changes)</a></td>" ;
    sifter_html += "<td><a href='" + v.reviewer_url + "'>" + v.reviewer + "</a></td>" ;
    sifter_html += "<td>" + v.partner_ts + "</td>" ;
    sifter_html += "</tr>" ;
  } ) ;
  sifter_html += "</table>" ;
  sifter_html += "<div><a href='#' onclick='show_sifter_dialog(2);return false'>Restore page</a></div>" ;
}

function show_sifter_dialog ( mode ) {
  if ( mode == 1 && !sifter_active ) {
    sifter_old_content = $('#content').html();
    $('#content').html(sifter_html);
	$('#p-views li').removeClass ( 'selected' ) ;
	$('#sifter_menu').addClass ( 'selected' ) ;
    sifter_active = true;
  }
  if ( mode == 2 ) {
    $('#content').html(sifter_old_content);
	$('#sifter_menu').removeClass ( 'selected' ) ;
	$('#ca-view').addClass ( 'selected' ) ;
    sifter_active = false;
  }
  return false ;
}