From Wikipedia, the free encyclopedia
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.

// [[User:Quarl/watchlist.js]] - adds buttons to watchlist: "unwatch", "diff

// since"



//  UNWATCH button asynchronously unwatches and crosses the entry off the

//  watchlist.

//

//  DIFF SINCE button shows differences since last edited.



// quarl 2006-01-09 added asynchronous feature.

// quarl 2006-02-03 factored; added diff since.



// requires: wikipage.js, util.js, wikiwatch.js, diffsince.js



// originally based on http://en.wikipedia.org/wiki/User:Omegatron/monobook.js

// see also http://en.wikipedia.org/wiki/User:Matthewmayer/monobook.js



// see also Bug 424 http://bugzilla.wikipedia.org/show_bug.cgi?id=424



// <pre><nowiki>



var watchlist = new Object();

watchlist.wp = {};



watchlist.unwatchAsync = function(pagename) {

    var wp = watchlist.wppagename];

    if (!wp) { alert("## internal error 72192d74-ab57-4a98-917f-8c6ca03b0559"); return; }

    wikiwatch.unwatchAsync(wp, watchlist._unwatchSuccess, wp.unwatchSpan);

    return false;

}



watchlist.watchAsync = function(pagename) {

    var wp = watchlist.wppagename];

    if (!wp) { alert("## internal error 72192d74-ab57-4a98-917f-8c6ca03b0559"); return; }

    wikiwatch.watchAsync(wp, watchlist._watchSuccess, wp.unwatchSpan);

    return false;

}



watchlist.diffSince = function(pagename) {

    var wp = watchlist.wppagename];

    if (!wp) { alert("## internal error 72192d74-ab57-4a98-917f-8c6ca03b0559"); return; }

    return diffsince.diffPageAsync(wp, wp.diffsinceSpan);

}



watchlist._addStrikeThrough = function(node) {

    // return node && insertNode(node, document.createElement('s'));

    if (!node) return 0;



    addClass(ensureSpan(node), 'history-deleted');

    return 1;

}



watchlist._removeStrikeThrough = function(node) {

    if (!node) return 0;



    removeClass(ensureSpan(node), 'history-deleted');

    return 1;

}



watchlist._unwatchSuccess = function(wp) {

    var wpNT = wp.notalkPage();

    var wpT = wp.talkPage();



    if (0 == (watchlist._addStrikeThrough(findHref(wpNT.url)) +

              watchlist._addStrikeThrough(findHref(wpT.url))))

    {

        alert("Unwatched article '"+wp.page+"', but couldn't annotate current page.");

        return;

    }



    watchlist._updateWuwLink(wpT, 'watch');

    watchlist._updateWuwLink(wpNT, 'watch');

}



watchlist._watchSuccess = function(wp) {

    var wpNT = wp.notalkPage();

    var wpT = wp.talkPage();



    if (0 == (watchlist._removeStrikeThrough(findHref(wpNT.url)) +

              watchlist._removeStrikeThrough(findHref(wpT.url))))

    {

        alert("Watched article '"+wp.page+"', but couldn't annotate current page.");

        return;

    }



    watchlist._updateWuwLink(wpT, 'unwatch');

    watchlist._updateWuwLink(wpNT, 'unwatch');

}



// Update a watch/unwatch link.  Returns 1 on success, 0 if not found.

//

// wuw must be 'watch' or 'unwatch'

watchlist._updateWuwLink = function(wpX, wuw) {

    wp = watchlist.wpwpX.page];

    if (!wp) return 0;

    var link = "javascript:return watchlist."+wuw+"Async("+string_quote_escape(wp.page)+")";

    var url = wp.qurl+'&action='+wuw;

    wp.unwatchSpan.innerHTML = '<a onclick="'+link+'" href="' + url + '">'+wuw+'</a>';

    return 1;

}





watchlist._load = function()

{

    if (wikiPage.page == "Special:Watchlist") watchlist._annotatePage();

}



watchlist._annotatePage = function() {

    var links = copyArray(document.getElementById('bodyContent').getElementsByTagName('a'));

    for (i in links) {

        var link = linksi];

        if (link.href && link.href.match(/action=history$/)) {

            var wp = new WikiPage(link.href);

            watchlist.wpwp.page = wp;



            wp.unwatchSpan = document.createElement('span');

            var unwatchLink = "javascript:return watchlist.unwatchAsync("+string_quote_escape(wp.page)+")";

            var unwatchUrl = wp.qurl+'&action=unwatch';

            wp.unwatchSpan.innerHTML = '<a onclick="'+unwatchLink+'" href="' + unwatchUrl + '">unwatch</a>';

            add_after(link, wp.unwatchSpan);

            add_after(link, document.createTextNode('; '));



            wp.diffsinceSpan = document.createElement('span');

            diffsinceLink = "javascript:return watchlist.diffSince("+string_quote_escape(wp.page)+")";

            var diffsinceUrl = diffsince.makeUrl(wp);

            wp.diffsinceSpan.innerHTML = '<a onclick="'+diffsinceLink+'" href="' + diffsinceUrl + '">since</a>';

            add_before(link, wp.diffsinceSpan);

            add_before(link, document.createTextNode('; '));

        }

    }

}



$(watchlist._load);



// </nowiki></pre>
From Wikipedia, the free encyclopedia
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.

// [[User:Quarl/watchlist.js]] - adds buttons to watchlist: "unwatch", "diff

// since"



//  UNWATCH button asynchronously unwatches and crosses the entry off the

//  watchlist.

//

//  DIFF SINCE button shows differences since last edited.



// quarl 2006-01-09 added asynchronous feature.

// quarl 2006-02-03 factored; added diff since.



// requires: wikipage.js, util.js, wikiwatch.js, diffsince.js



// originally based on http://en.wikipedia.org/wiki/User:Omegatron/monobook.js

// see also http://en.wikipedia.org/wiki/User:Matthewmayer/monobook.js



// see also Bug 424 http://bugzilla.wikipedia.org/show_bug.cgi?id=424



// <pre><nowiki>



var watchlist = new Object();

watchlist.wp = {};



watchlist.unwatchAsync = function(pagename) {

    var wp = watchlist.wppagename];

    if (!wp) { alert("## internal error 72192d74-ab57-4a98-917f-8c6ca03b0559"); return; }

    wikiwatch.unwatchAsync(wp, watchlist._unwatchSuccess, wp.unwatchSpan);

    return false;

}



watchlist.watchAsync = function(pagename) {

    var wp = watchlist.wppagename];

    if (!wp) { alert("## internal error 72192d74-ab57-4a98-917f-8c6ca03b0559"); return; }

    wikiwatch.watchAsync(wp, watchlist._watchSuccess, wp.unwatchSpan);

    return false;

}



watchlist.diffSince = function(pagename) {

    var wp = watchlist.wppagename];

    if (!wp) { alert("## internal error 72192d74-ab57-4a98-917f-8c6ca03b0559"); return; }

    return diffsince.diffPageAsync(wp, wp.diffsinceSpan);

}



watchlist._addStrikeThrough = function(node) {

    // return node && insertNode(node, document.createElement('s'));

    if (!node) return 0;



    addClass(ensureSpan(node), 'history-deleted');

    return 1;

}



watchlist._removeStrikeThrough = function(node) {

    if (!node) return 0;



    removeClass(ensureSpan(node), 'history-deleted');

    return 1;

}



watchlist._unwatchSuccess = function(wp) {

    var wpNT = wp.notalkPage();

    var wpT = wp.talkPage();



    if (0 == (watchlist._addStrikeThrough(findHref(wpNT.url)) +

              watchlist._addStrikeThrough(findHref(wpT.url))))

    {

        alert("Unwatched article '"+wp.page+"', but couldn't annotate current page.");

        return;

    }



    watchlist._updateWuwLink(wpT, 'watch');

    watchlist._updateWuwLink(wpNT, 'watch');

}



watchlist._watchSuccess = function(wp) {

    var wpNT = wp.notalkPage();

    var wpT = wp.talkPage();



    if (0 == (watchlist._removeStrikeThrough(findHref(wpNT.url)) +

              watchlist._removeStrikeThrough(findHref(wpT.url))))

    {

        alert("Watched article '"+wp.page+"', but couldn't annotate current page.");

        return;

    }



    watchlist._updateWuwLink(wpT, 'unwatch');

    watchlist._updateWuwLink(wpNT, 'unwatch');

}



// Update a watch/unwatch link.  Returns 1 on success, 0 if not found.

//

// wuw must be 'watch' or 'unwatch'

watchlist._updateWuwLink = function(wpX, wuw) {

    wp = watchlist.wpwpX.page];

    if (!wp) return 0;

    var link = "javascript:return watchlist."+wuw+"Async("+string_quote_escape(wp.page)+")";

    var url = wp.qurl+'&action='+wuw;

    wp.unwatchSpan.innerHTML = '<a onclick="'+link+'" href="' + url + '">'+wuw+'</a>';

    return 1;

}





watchlist._load = function()

{

    if (wikiPage.page == "Special:Watchlist") watchlist._annotatePage();

}



watchlist._annotatePage = function() {

    var links = copyArray(document.getElementById('bodyContent').getElementsByTagName('a'));

    for (i in links) {

        var link = linksi];

        if (link.href && link.href.match(/action=history$/)) {

            var wp = new WikiPage(link.href);

            watchlist.wpwp.page = wp;



            wp.unwatchSpan = document.createElement('span');

            var unwatchLink = "javascript:return watchlist.unwatchAsync("+string_quote_escape(wp.page)+")";

            var unwatchUrl = wp.qurl+'&action=unwatch';

            wp.unwatchSpan.innerHTML = '<a onclick="'+unwatchLink+'" href="' + unwatchUrl + '">unwatch</a>';

            add_after(link, wp.unwatchSpan);

            add_after(link, document.createTextNode('; '));



            wp.diffsinceSpan = document.createElement('span');

            diffsinceLink = "javascript:return watchlist.diffSince("+string_quote_escape(wp.page)+")";

            var diffsinceUrl = diffsince.makeUrl(wp);

            wp.diffsinceSpan.innerHTML = '<a onclick="'+diffsinceLink+'" href="' + diffsinceUrl + '">since</a>';

            add_before(link, wp.diffsinceSpan);

            add_before(link, document.createTextNode('; '));

        }

    }

}



$(watchlist._load);



// </nowiki></pre>

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook