User:Joshua Scott/Scripts/pendingchanges.js: Difference between revisions

Content deleted Content added
fix refresh rate to 5 seconds
<maintenance> more info TypeError: Cannot read properties of null (reading 'parentNode')
Tags: Mobile edit Mobile web edit Advanced mobile edit
 
(28 intermediate revisions by 5 users not shown)
Line 5:
var pendch_num_idle_req;
var pendch_curr_idle_req;
var pendch_diffonly;
 
var pendch_str_no_ajax = "There seems to be a problem using the PendingChangespendingchanges script. Your browser is not supported. God Bless!";
var pendch_str_box_title = "Pending changes";
var pendch_str_box_title_updating = "Pending changes (updating)";
Line 13 ⟶ 14:
var pendch_str_disable = "Disable this box";
 
addOnloadHook$(document).ready( pendch_init );
/* initalise */
function pendch_init() {
if (window.___location.toString().search(/diffonly=1/) != -1) {
var currURL = window.___location.toString();
var newURL=currURL.replace(/diffonly=1/,diffonly=0);
console.log(document.getElementById("difference").innerHTML);
if (document.getElementById("difference").innerHTML.search(/Show page below diff/) == -1) {
document.getElementById("difference").innerHTML += '&nbsp;(<a href="' + newURL + '">Show page below diff</a>)';
}
}
 
// allow user settings through
if (pendch_enabled == null) {
Line 26 ⟶ 36:
}
if (pendch_refresh == null) {
pendch_refresh = 510;
}
if (pendch_num_idle_req == null) {
pendch_num_idle_req = 60;
}
if(pendch_diffonly == null) {
 
pendch_diffonly = 1;
}
// A few limits to be nice to the servers
if (pendch_num_pages > 50) {
Line 53 ⟶ 65:
var c_start = document.cookie.indexOf("pendch_show_box=");
if (c_start != -1) {
c_start = c_start + 1316;
var c_end = document.cookie.indexOf(";", c_start);
if (c_end == -1) {
Line 80 ⟶ 92:
try {
pendch_http = new XMLHttpRequest();
} catch (e) {
try {
Line 112 ⟶ 123:
 
// firstly, inform the user
var cur_box = document.getElementById('p-newpagespendingchanges');
if (cur_box != null) {
cur_box.firstChild.firstChild.data = pendch_str_box_title_updating;
}
 
if (pendch_create_request () == false) {
if (cur_box != null) {
Line 124 ⟶ 135:
}
}
 
// Get the current time
var dateobj = new Date();
var now = Math.floor(dateobj.getTime() / 1000.0);
 
// Go back 5 mins in time
//now -= (60 * 5);
 
// Then make the request
pendch_http.open("GET", "/w/api.php?action=query&format=xmljson&list=oldreviewedpages&ornamespace=0|4&orstart=" + now + "&orlimit=" + pendch_num_pages, true);
pendch_http.send(null);
}
 
function pendch_draw_disabled_box() {
if (mw.config.get('skin') == 'vector') {
pendch_draw_disabled_box_vector();
} else {
Line 146 ⟶ 154:
 
function pendch_ajax_response() {
if (mw.config.get('skin') == 'vector') {
pendch_ajax_response_vector();
} else {
Line 176 ⟶ 184:
link_div.className = 'pBody';
var div = document.createElement('div');
div.setAttribute('id', 'p-newpagespendingchanges');
div.className = 'portletportal';
var heading = document.createElement('h5h3');
heading.appendChild(document.createTextNode(pendch_str_box_title));
div.appendChild(heading);
Line 194 ⟶ 202:
// now replace the div
var old_div = document.getElementById('p-newpagespendingchanges');
var side_col = document.getElementById('column-one');
if (old_div != null) {
Line 200 ⟶ 208:
} else {
var node = document.getElementById('p-search');
if ( node && node.parentNode === side_col ) {
side_col.insertBefore(div, node);
}
}
}
Line 206 ⟶ 216:
/* Draw response (monobook) */
function pendch_ajax_response_monobook() {
 
var resp = JSON.parse(pendch_http.responseText);
var items = pendch_http.responseXML.getElementsByTagName('p');
var items = resp.query.oldreviewedpages;
 
// create the div that holds all the newpage links
var link_div = document.createElement('div');
Line 217 ⟶ 228:
// populate the list with 10 links.
for (var i = 0; i < items.length; i++) {
var item_nameitem = items[i].getAttribute('title');
var old_iditem_name = items[i]item.getAttribute('stable_revid')title;
var old_id = item.stable_revid;
 
item_name = item_name.replace(/&/, "%26");
var item_url = 'http://en.wikipedia.org/w/index.php?title=' + item_name + '&diff=cur&oldid=' + old_id + '&diffonly=0' + pendch_diffonly;
a = document.createElement('a');
Line 234 ⟶ 246:
// Container div
var div = document.createElement('div');
div.setAttribute('id', 'p-newpagespendingchanges');
div.className = 'portletportal';
var heading = document.createElement('h5h3');
heading.appendChild(document.createTextNode(pendch_str_box_title));
div.appendChild(heading);
Line 253 ⟶ 265:
// now replace the div
var old_div = document.getElementById('p-newpagespendingchanges');
var side_col = document.getElementById('column-one');
if (old_div != null) {
Line 271 ⟶ 283:
link_div.style.display = "block";
var div = document.createElement('div');
div.setAttribute('id', 'p-newpagespendingchanges');
div.className = 'portal collapsed';
var heading = document.createElement('h5h3');
heading.appendChild(document.createTextNode(pendch_str_box_title));
div.appendChild(heading);
Line 289 ⟶ 301:
// now replace the div
var old_div = document.getElementById('p-newpagespendingchanges');
var side_col = document.getElementById('mw-panel');
if (old_div != null) {
Line 298 ⟶ 310:
}
 
if( typeof $j != 'undefined' && wgVectorEnabledModules.collapsiblenav ) {
$j('#p-newpagespendingchanges > h5h3').keydown( function( event ) {
if ( event.which == 13 /* Enter */ || event.which == 32 /* Space */ ) {
pendch_toggle( $j(this) );
}
} )
.mousedown( function() {
pendch_toggle( $j(this) );
$j(this).blur();
return false;
} );
Line 317 ⟶ 329:
function pendch_ajax_response_vector() {
var resp = JSON.parse(pendch_http.responseText);
var items = pendch_http.responseXML.getElementsByTagName('p');
var items = resp.query.oldreviewedpages;
 
// create the div that holds all the newpage links
var link_div = document.createElement('div');
Line 328 ⟶ 341:
// populate the list with 10 links.
for (var i = 0; i < items.length; i++) {
var item_nameitem = items[i].getAttribute('title');
var old_iditem_name = items[i]item.getAttribute('stable_revid')title;
var old_id = item.stable_revid;
 
item_name = item_name.replace(/&/, "%26");
var item_url = 'http://en.wikipedia.org/w/index.php?title=' + item_name + '&diff=cur&oldid=' + old_id + '&diffonly=0' + pendch_diffonly;
a = document.createElement('a');
Line 346 ⟶ 360:
// Container div
var div = document.createElement('div');
div.setAttribute('id', 'p-newpagespendingchanges');
div.className = 'portal expanded';
var heading = document.createElement('h5h3');
heading.appendChild(document.createTextNode(pendch_str_box_title));
div.appendChild(heading);
Line 365 ⟶ 379:
 
// now replace the div
var old_div = document.getElementById('p-newpagespendingchanges');
var side_col = document.getElementById('mw-panel');
if (old_div != null) {
Line 374 ⟶ 388:
}
 
if( typeof $j != 'undefined' && wgVectorEnabledModules.collapsiblenav ) {
$j('#p-newpagespendingchanges > h5h3').keydown( function( event ) {
if ( event.which == 13 /* Enter */ || event.which == 32 /* Space */ ) {
pendch_toggle( $j(this) );
}
} )
.mousedown( function() {
pendch_toggle( $j(this) );
$j(this).blur();
return false;
} );
Line 391 ⟶ 405:
 
function pendch_toggle( $element ) {
$j.cookie( 'vector-nav-' + $element.parent().attr( 'id' ), $element.parent().is( '.collapsed' ) );
if( $element.parent().is('.collapsed') ) {
pendch_enable_box();