User:Nixeagle/monobook.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.
The accompanying .css page for this skin can be added at User:Nixeagle/monobook.css. |
- Report page listing warnings and errors.
// <nowiki>
/* ========================================================================== *\
* *
* MediaWiki:PermissionOTRS.js *
* Maintainer: [[User:Bryan]] *
* Copyright (c) 2007 Bryan Tong Minh. *
* Licensed under the terms of the MIT license *
* *
* ========================================================================== *
* *
* This scripts allows you to add OTRS permission links in an easy manner. *
* It will replace {{OTRS pending}} by the correct permission template. *
* If no occurrence of {{OTRS pending}} can be found, it will OVERWRITE *
* the permission field of the information template. If the information *
* template is not available, the script will fail. *
* *
* ========================================================================== *
* *
* Tested with: Mozilla Firefox 2.0.0.6 *
* Install this script by adding the following code to your monobook.js: *
* // [[MediaWiki:PermissionOTRS.js]] *
* importScript( 'MediaWiki:PermissionOTRS.js' ); *
* *
\* ========================================================================== */
/* Modified by myself */
function addPermission(ticket)
{
var req = sajax_init_object();
req.open('GET', wgScriptPath + '/api.php?action=query&prop=info|revisions&' +
'format=json&intoken=edit&rvprop=content|timestamp&titles=' +
encodeURIComponent(mw.config.get('wgPageName')), false);
req.send(null);
var info = eval('(' + req.responseText + ')');
for (var key in info['query']['pages'])
{
var page = info['query']['pages'][key];
var token = page['edittoken'];
var content = page['revisions'][0]['*'];
var editTime = page['revisions'][0]['timestamp'].replace(/[^0-9]/g, '');
var rOTRS = new RegExp('\\{\\{Otrs[_ ]pending\\}\\}', 'i');
if (rOTRS.test(content))
{
content = content.replace(rOTRS, '{{PermissionOTRS|id=' + ticket + '}}');
}
else
{
var rPermission = new RegExp('\\n\\|Permission[ \\t]*=.*', 'i');
if (rPermission.test(content))
{
content = content.replace(rPermission, '\n|Permission={{PermissionOTRS|id=' +
ticket + '}}');
}
else
{
alert('No suitable place found to insert template!');
return;
}
}
var rNPD = new RegExp('\\{\\{no permission since.+\n', 'i');
if (rNPD.test(content))
content = content.replace(rNPD, '');
var postdata = '';
postdata += 'wpTextbox1=' + encodeURIComponent(content);
postdata += '&wpSummary=' + encodeURIComponent('Adding [[Commons:OTRS|OTRS]] permission using modified [[MediaWiki:PermissionOTRS.js|PermissionOTRS.js]]');
postdata += '&wpSave=save';
postdata += '&wpEditToken=' + encodeURIComponent(token);
postdata += '&wpEdittime=' + editTime;
postdata += '&wpStarttime=' + editTime;
req = sajax_init_object();
req.open('POST', wgScriptPath + '/index.php?action=submit&title=' + encodeURIComponent(mw.config.get('wgPageName')), false);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.setRequestHeader('Content-Length', postdata.length);
req.send(postdata);
document.close();
document.open();
document.write(req.responseText);
return;
}
}
function OTRS()
{
var ticket = prompt('Ticket link?');
if (ticket) addPermission(ticket);
}
$(function () {
if (wgNamespaceNumber == 6) { //NS_IMAGE
var t = document.getElementById('t-whatlinkshere');
if (!t) return;
var li = document.createElement('li');
var a = document.createElement('a');
a.setAttribute('href', 'javascript:void(OTRS())');
a.appendChild(document.createTextNode('PermissionOTRS'));
li.appendChild(a);
t.parentNode.appendChild(li);
}
});
// </nowiki>