/*Here is my user Global.css page,please don't put any of articles or discussion in it*/
/*Any JavaScript here will be loaded for my account on every page load*/
importArticles({
type: 'script',
articles: [
'u:dev:ShowHide/code.js',
'u:dev:DisplayTimer/code.js',
'w:c:dev:ReferencePopups/code.js'
]
});
//********************************************
//Experimental javascript countdown timer (Splarka)
//Version:0.0.3
// <span class="countdown" style="display:none;">
// Only <span class="countdowndate">January 01 2007 00:00:00 PST</span> until New years.
// </span>
// <span class="nocountdown">Javascript disabled.</span>
function updatetimer(i) {
var now = new Date();
var then = timers[i].eventdate;
var diff = count = Math.floor((then.getTime() - now.getTime()) / 1000);
// catch bad date strings
if (isNaN(diff)) {
timers[i].firstChild.nodeValue = '** ' + timers[i].eventdate + ' **';
return;
}
// determine plus/minus
if (diff < 0) {
diff = -diff;
var tpm = ' ';
} else {
var tpm = ' ';
}
// calcuate the diff
var left = (diff % 60) + ' seconds';
diff = Math.floor(diff / 60);
if (diff > 0) left = (diff % 60) + ' minutes ' + left;
diff = Math.floor(diff / 60);
if (diff > 0) left = (diff % 24) + ' hours ' + left;
diff = Math.floor(diff / 24);
if (diff > 0) left = diff + ' days ' + left;
timers[i].firstChild.nodeValue = tpm + left;
// a setInterval() is more efficient, but calling setTimeout()
// makes errors break the script rather than infinitely recurse
timeouts[i] = setTimeout('updatetimer(' + i + ')', 1000);
}
function checktimers() {
//hide 'nocountdown' and show 'countdown'
var nocountdowns = getElementsByClassName(document, 'span', 'nocountdown');
for (var i in nocountdowns) nocountdowns[i].style.display = 'none';
var countdowns = getElementsByClassName(document, 'span', 'countdown');
for (var i in countdowns) countdowns[i].style.display = 'inline';
//set up global objects timers and timeouts.
timers = getElementsByClassName(document, 'span', 'countdowndate'); //global
timeouts = new Array(); // generic holder for the timeouts, global
if (timers.length === 0) return;
for (var i in timers) {
timers[i].eventdate = new Date(timers[i].firstChild.nodeValue);
updatetimer(i); //start it up
}
}
$(checktimers);
// **************************************************
// - end - Experimental javascript countdown timer
// **************************************************
/*Clearsandbox*/
var content = window.clearSandboxContent || '{{sandbox}}';
var summary = window.clearSandboxSummary || 'Cleanup';
if ( wgPageName.indexOf("/sandbox") >= 0 || wgPageName.indexOf("/Sandbox") >= 0 ) {
$('.page-header__contribution-buttons .wds-list').append('<li><a id="clear-sandbox">Clear sandbox</a></li>');
}
$('#clear-sandbox').click(function(){
$.post(mw.util.wikiScript( 'api' ), {
format: 'json',
action: 'edit',
title: wgPageName,
text: content,
minor: false,
bot: true,
summary: summary,
token: mw.user.tokens.get("editToken")
}, function( data ) {
if (!data.error) {
console.log('Sandbox cleaned successfully.');
location.reload(true);
} else {
alert('Cannot into cleanings!\n' + data.error.info);
console.log('Failed:' + data.error.info);
}
});
});