User:Plastikspork/date.js
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.
// --------------------------------------- --------------------------------------- //
// ----------------------------------- Credits ------------------------------------ //
//
// This script was created by modifying the following scripts:
// [[User:Lightmouse/monobook.js/script.js]]
// [[Wikipedia:WikiProject User scripts/Scripts/Formatter]]
//
// This script is intended to be complimentary to these scripts with very little
// to no duplication of function.
// ---------------------------------- Disclaimer ---------------------------------- //
//
// Use at your own risk and make sure you check the edit changes before you save
//
// Let me know [[User_Talk:Plastikspork]] if you find bugs!
// ----------------------------- Installing the Script ---------------------------- //
//
// (1) Open/Create your USERNAME/monobook.js page, where USERNAME is your username.
// A quick way to get there is to go to your user page, then append
// '/monobook.js' to the end of the URL.
//
// (2) Put the following command on your monobook.js page:
// importScript('User:Plastikspork/date.js');
//
// (3) Save the page and reload it by following the instructions at the top of your
// monobook.js page. For example, Ctrl+Shift+R in Firefox.
// ------------------------------- Using the Script ------------------------------- //
//
// (1) Open an article which you would like to edit, and you should see a bunch of
// 'Spork' buttons in your 'toolbox' on the left side of your browser.
//
// (2) Click on one of the Spork buttons and the script will run, performing edits
// by pattern matches. When it is finished, it will show you the changes and
// add some comments to the edit summary. It is up to you to accept these
// changes as is by clicking 'Save page', modify the changes by further editing
// the edit form, or reject by leaving the page.
//
// Note: The script will run very slowly on very large pages, but it does always
// eventually complete in my experience.
// ----------------------------- Current Functionality ---------------------------- //
//
// [Sprk: cite date to mdy] Changes date = YYYY-MM-DD to date = Month DD, YYYY
//
// [Sprk: cite date to dmy] Changes date = YYYY-MM-DD to date = DD Month YYYY
//
// [UnSprk: cite date] Reverses prior two commands
// Set Default Button Names
if( typeof( SporkConfig ) == 'undefined' ) SporkConfig = {};
if( typeof( SporkConfig.cmdy ) == 'undefined' ) SporkConfig.cmdy = "Sprk: cite date mdy";
if( typeof( SporkConfig.cdmy ) == 'undefined' ) SporkConfig.cdmy = "Sprk: cite date dmy";
if( typeof( SporkConfig.unc ) == 'undefined' ) SporkConfig.unc = "UnSprk: cite date";
// --------------------------------------- --------------------------------------- //
// Import Spork-Tools scripts
importScript('User:Plastikspork/datetools.js');
// --------------------------------------- --------------------------------------- //
// Spork: cite date mdy
function spork_cite_to_mdy(clk) {
var txt = document.editform.wpTextbox1;
txt.value = spork_yyyymmdd_to_mdy(txt.value); // See User:Plastikspork/datetools.js
txt.value = spork_dmy_to_mdy(txt.value); // See User:Plastikspork/datetools.js
spork_edit_summary_date();
if(clk) document.editform.wpDiff.click();
}
// Spork: cite date dmy
function spork_cite_to_dmy(clk) {
var txt = document.editform.wpTextbox1;
txt.value = spork_yyyymmdd_to_dmy(txt.value); // See User:Plastikspork/datetools.js
txt.value = spork_mdy_to_dmy(txt.value); // See User:Plastikspork/datetools.js
spork_edit_summary_date();
if(clk) document.editform.wpDiff.click();
}
// Unspork: cite date
function spork_cite_to_yyyymmdd(clk) {
var txt = document.editform.wpTextbox1;
txt.value = spork_mdy_to_yyyymmdd(txt.value); // See User:Plastikspork/datetools.js
txt.value = spork_dmy_to_yyyymmdd(txt.value); // See User:Plastikspork/datetools.js
spork_edit_summary_date();
if(clk) document.editform.wpDiff.click();
}
// ----------------------------- interface Functions ----------------------------- //
function spork_edit_summary_date() {
// Add a tag to the summary box
var summary = "date formatting";
var txt = document.editform.wpSummary;
var fullsummary = "Script assisted " + summary;
if (txt.value.indexOf(summary) == -1) {
if (txt.value.match( /Script assisted [A-Za-z]/ )) {
txt.value = txt.value.replace( /Script assisted /, fullsummary + "/");
} else if (txt.value.match(/[^\*\/\s][^\/\s]?\s*$/)) {
txt.value += " | " + fullsummary;
} else {
txt.value += fullsummary;
}
}
}
$(function () {
if(document.forms.editform) {
if( SporkConfig.cmdy != "" )
mw.util.addPortletLink('p-tb', 'javascript:spork_cite_to_mdy(1)', SporkConfig.cmdy);
if( SporkConfig.cdmy != "" )
mw.util.addPortletLink('p-tb', 'javascript:spork_cite_to_dmy(1)', SporkConfig.cdmy);
if( SporkConfig.unc != "" )
mw.util.addPortletLink('p-tb', 'javascript:spork_cite_to_yyyymmdd(1)', SporkConfig.unc);
}
});
// [[Category:Wikipedia scripts]]