Jump to content

User:Mattflaschen/Compare link.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Mattflaschen (talk | contribs) at 04:47, 22 May 2010 (cleanup, fix bug due to new buttons). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
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.
//<pre>
// Compare link
/*

To install Compare link, put:
 
// [[User:Superm401/Compare link.js]]
importScript("User:Superm401/Compare link.js");

in your monobook.

In addition to the GFDL:
 
This function (compare link) is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This function is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

A copy of the GPL is available at http://www.prism.gatech.edu/~mflaschen3/gpl.txt .

By modifying "Wikipedia:WikiProject User scripts/Scripts/Compare link":
You agree to dual-license your contributions under both the GFDL (http://en.wikipedia.org/wiki/WP:GFDL)
and version 2 of the GPL (http://www.prism.gatech.edu/~mflaschen3/gpl.txt) or any later version
of the GPL published by the FSF.

*/

function fixCompare()
{
    var histForm=document.getElementById("mw-history-compare");
    var diffList=document.getElementById("pagehistory");
    var finalButton=diffList.getElementsByClassName("historysubmit")[0];
    if(!finalButton)
      return null;
    var firstButton=histForm.getElementsByClassName("historysubmit")[0];
    histForm.removeChild(finalButton);
    histForm.removeChild(firstButton);
    var compareLink=document.createElement("a");
    var genLink = wgServer + wgScript + "?title=" + histForm.title.value + "&diff=" + histForm.diff[0].value + "&oldid=" + histForm.oldid[1].value;
    compareLink.setAttribute("href", genLink);
    compareLink.appendChild(document.createTextNode("Compare selected versions"));
    histForm.insertBefore(compareLink, document.getElementById("pagehistory"));
    var endLink=compareLink.cloneNode(true);
    histForm.appendChild(endLink);
    addHandler(diffList, "change", updateCompare); // wikibits

    function updateCompare()
    {
        var oldInd=-1;
        var i=0;
        while(oldInd==-1 & i<histForm.oldid.length)
        {
            if(histForm.oldid[i].checked)
                oldInd=i;
            i++;
        }
        var diffInd=-1;
        var j=0;
        while(diffInd==-1 & j<histForm.diff.length)
        {
            if(histForm.diff[j].checked)
                diffInd=j;
            j++;
        }
        var genLink = wgServer + wgScript + "?title=" + histForm.title.value + "&diff=" + histForm.diff[diffInd].value + "&oldid=" + histForm.oldid[oldInd].value;
        compareLink.setAttribute("href", genLink);
        endLink.setAttribute("href", genLink);
    }
}

if(window.location.href.indexOf("action=history")!=-1)
    addOnloadHook(fixCompare);
//</pre>