Jump to content

User:TheTVExpert/submitRMTR.js

From Wikipedia, the free encyclopedia
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.
//submitRMTR
//<nowiki>
$(function() {
	function submitRMTR() {
		var oldTitle = $('input[name=wpOldTitle]').val();
		var newNamespace = mw.config.get('wgFormattedNamespaces')[$('select[name=wpNewTitleNs]').val()];
		var newTitle = $('input[name=wpNewTitleMain]').val();
		var newTitleFull = (newNamespace === '' ? newTitle : newNamespace + ':' + newTitle); 
		var reason = $('input[name=wpReason]').val();
		var rmtrText = '{{subst:RMassist|1=' + oldTitle + '|2=' + newTitleFull + '|reason=' + reason + '}}';
		var textToFind = /---- and enter on a new line.* -->/;
		var result;
		var api = new mw.Api();
		var params = {
			action: 'query',
			prop: 'revisions',
			rvprop: 'content',
			rvlimit: 1,
			titles: 'Wikipedia:Requested moves/Technical requests'
		};
		api.get(params).done(function(data) {
			var page;
			for (page in data.query.pages){
				result = data.query.pages[page].revisions[0]['*'];
				var newResult = result.replace(textToFind, '$&\n' + rmtrText);
				var params2 = {
					action: 'edit',
					title: 'Wikipedia:Requested moves/Technical requests',
					text: newResult,
					summary: "Add request using [[User:TheTVExpert/submitRMTR|submitRMTR]]"
				},
				api2 = new mw.Api();
				
				api2.postWithToken('csrf',params2).done(function(data){
					console.log(data);
					alert("Success.");
					window.location = mw.util.getUrl('Wikipedia:Requested moves/Technical requests');
				});
			}
		});
	}
	
	if (window.location.href.match('Special:MovePage')) {
		var $rmtrButton = new OO.ui.ButtonWidget({
			label:'Submit Technical Request',
			flags: ['primary','progressive']
		}).$element
			.on('click',submitRMTR)
			.appendTo($('button[name=wpMove]').parent().parent())
		;
	}
});
//</nowiki>