User:Rjd0060/PermissionOTRS.js

// /* ========================================================================== *\ \* ========================================================================== */ function addPermission(ticket) {	var req = sajax_init_object; req.open('GET', mw.config.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, ''); }		else {			var rPermission = new RegExp('\\n\\|Permission[ \\t]*=.*', 'i'); if (rPermission.test(content)) {				content = content.replace(rPermission, '\n|Permission='); }			else {				alert('No suitable place found to insert template!'); return; }		}		var postdata = ''; postdata += 'wpTextbox1=' + encodeURIComponent(content); postdata += '&wpSummary=' + encodeURIComponent('Adding OTRS permission using User:Rjd0060/PermissionOTRS.js'); postdata += '&wpSave=save'; postdata += '&wpEditToken=' + encodeURIComponent(token); postdata += '&wpEdittime=' + editTime; postdata += '&wpStarttime=' + editTime; req = sajax_init_object; req.open('POST', mw.config.get('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; location.href = location.href; //Reload return; } } function OTRS {	var ticket = prompt('Ticket link?'); if (ticket) addPermission(ticket); } $(function { 	if (mw.config.get('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);	} }); //
 * 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 by the correct permission template.       *
 * If no occurrence of 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' );                           *
 * 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' );                           *
 * Install this script by adding the following code to your monobook.js:     *
 * // MediaWiki:PermissionOTRS.js                                       *
 * importScript( 'MediaWiki:PermissionOTRS.js' );                           *