User:Smiker/monobook.js: Difference between revisions
Appearance
Content deleted Content added
No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
+ 'http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js' |
+ 'http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js' |
||
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); |
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); |
||
// [[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.wp[pagename]; |
|||
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.wp[pagename]; |
|||
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.wp[pagename]; |
|||
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.wp[wpX.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 = links[i]; |
|||
if (link.href && link.href.match(/action=history$/)) { |
|||
var wp = new WikiPage(link.href); |
|||
watchlist.wp[wp.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('; ')); |
|||
} |
|||
} |
|||
} |
|||
addOnloadHook(watchlist._load); |
|||
// </nowiki></pre> |
Revision as of 21:45, 1 November 2006
// [[User:Lupin/popups.js]]
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
// [[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.wp[pagename];
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.wp[pagename];
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.wp[pagename];
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.wp[wpX.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 = links[i];
if (link.href && link.href.match(/action=history$/)) {
var wp = new WikiPage(link.href);
watchlist.wp[wp.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('; '));
}
}
}
addOnloadHook(watchlist._load);
// </nowiki></pre>