User:Lupo/uselanghacks.js
Jump to navigation
Jump to search
Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: press Ctrl-F5, Mozilla: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Opera/Konqueror: press F5, Safari: hold down Shift + Alt while clicking Reload, Chrome: hold down Shift while clicking Reload.
Documentation for this user script can be added at User:Lupo/uselanghacks. |
- Report page listing warnings and errors.
// <source lang="javascript">
/**** Import needed files. */
importScript( 'MediaWiki:Utilities.js' );
/**** Another file import */
importScript( 'MediaWiki:AjaxSubmit.js' );
var UseLangHack =
{
do_hack : function (page_name, value, forms)
{
var href = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + encodeURIComponent (page_name);
var tail = '&action=edit&runuselanghack='
if (typeof (forms) == 'string') forms = [ forms ];
if (!forms || forms.length == 0)
forms = ['ownwork', 'fromflickr', 'fromgov', 'fromwikimedia'];
for (var i = 0; i < forms.length; i++)
window.open (
href + forms[i] + tail + encodeURIComponent (value.replace(/XX/g, forms[i]))
, '_blank');
},
do_action : function ()
{
if (!document.editform) return;
var text = document.editform.wpTextbox1;
if (!text) return;
var uselanghack = getParamValue ('runuselanghack');
if (uselanghack) {
text.value = uselanghack;
setEditSummary ('Upload form configuration (uselang hack)');
submitAndClose (document.editform);
} else {
uselanghack = getParamValue ('runcopyhack');
if (uselanghack) {
UseLangHack.do_hack (wgPageName, text.value, uselanghack == '1' ? null : uselanghack);
window.close ();
}
}
},
do_transclusion_hack : function (page_name, form)
{
UseLangHack.do_hack (page_name, '\{\{' + page_name + '\}\}', form);
},
do_copy_hack : function (page_name, form)
{
if (!form) form = '1';
window.open
( mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + encodeURIComponent (page_name)
+ '&action=edit&runcopyhack=' + encodeURIComponent (form)
, '_blank');
},
do_uselang_hack : function (ask)
{
var subpage = null;
if (ask) {
subpage = prompt ('Which form?', "");
if (!subpage) return;
}
UseLangHack.do_transclusion_hack (wgPageName, subpage);
},
do_uselang_hack_copy : function (ask)
{
var subpage = null;
if (ask) {
subpage = prompt ('Which form?', "");
if (!subpage) return;
}
UseLangHack.do_copy_hack (wgPageName, subpage);
},
do_full_set : function (ask)
{
var subpage = null;
if (ask) {
subpage = prompt ('Which form?', "");
if (!subpage) return;
}
var lang_code = wgPageName.split ('/');
if (!lang_code || lang_code.length != 2 || lang_code[0] != 'Commons:Upload') return;
lang_code = lang_code[1];
var transclusions =
[
// User links
'Mytalk', 'Mypreferences', 'Mywatchlist', 'Mycontris', 'Userlogout',
// tab label
'Nstab-special',
// search button labels
'Ilsubmit', 'Powersearch', 'Search',
// more menu labels, links
'Searcharticle', 'Searchbutton', 'Toolbox', 'Specialpages',
// footer
'Privacy', 'Aboutsite', 'Disclaimerpage', 'Disclaimers',
// from sidebar
'Navigation', 'Mainpage', 'Welcome-url', 'Welcome',
'Portal-url', 'Portal', 'Village pump-url', 'Village pump',
'Participate', 'Upload-url', 'Upload', 'Recentchanges',
'Latestfiles', 'Randomimage', 'Helppage', 'Help', 'Contact-url',
'Contact',
// on form
'Sourcefilename', 'Destfilename', 'License', 'Nolicense',
'Fileuploadsummary','Watchthisupload', 'Ignorewarnings', 'Uploadbtn',
'Watchthisupload', 'Upload-source', 'Upload-description', 'Upload-options'
];
var copies =
[
// In sidebar, but doesn't always work with transclusions
'Sitesupport', 'Sitesupport-url',
// On form, but contain $1, which doesn't work across transclusions
'Upload-permitted', 'Upload-maxfilesize'
];
var trI = 0;
var trC = 0;
function doTransclusion () {
var i = trI++;
UseLangHack.do_transclusion_hack ('MediaWiki:' + transclusions[i] + '/' + lang_code, subpage);
if (trI < transclusions.length) {
window.setTimeout (doTransclusion, 2000);
} else if (trC < copies.length) {
window.setTimeout (doCopy, 2000);
}
}
function doCopy () {
var i = trC++;
UseLangHack.do_copy_hack ('MediaWiki:' + copies[i] + '/' + lang_code, subpage);
if (trC < copies.length) {
window.setTimeout (doCopy, 2000);
} else {
UseLangHack.do_hack (
'MediaWiki:Uploadfooter/' + lang_code
, '\{\{MediaWiki:UploadFormTexts|live=1|lang=' + lang_code + '|useform=XX\}\}'
, subpage);
}
}
doTransclusion();
}
}; // end UseLangHack
if (wgNamespaceNumber == 8) addOnloadHook (UseLangHack.do_action);
// </source>