User:Rezonansowy/EasyTalkback.js

function TalkbackLink { if($("#mw-content-text").length > 0) { var $nodeList = $('#bodyContent a[href^="/wiki/User:"]'), pdne = ' (page does not exist)'; if($nodeList !== null) { for( var i = 0; i < $nodeList.length; i++ ) { var $link = $($nodeList[i]); $newLink = $("[TB]"); $newLink.click(function(e) {talkbackSubmit($(this).attr('href').substr(1), $link[0].title.replace(pdne, "").tostring)}); $($link).after($newLink); }		}	} }

function talkbackSubmit(page, user) { var questionTitle = confirm('Send a talkback?'); var sectionContent = '{{talkback|' + mw.config.get('wgPageName') + '|'; if (questionTitle) { sectionContent += "ts= }}"; sectionContent += '\n ~ '; }	else { $("#"+id).attr("title", 'You canceled the talkback!').tipsy("show"); return; };	var data = { format : 'json', action : 'edit', minor : false, title : page, text : sectionContent, section : 'new', summary : 'Talkback', token : mw.user.tokens.get('editToken') };	$.ajax({		url : mw.util.wikiScript('api'),		type : 'POST',		dataType : 'json',		data : data,		success : function(data) {			if(data && data.edit && data.edit.result && data.edit.result === 'Success') {                               mw.util.jsMessage( 'Talkback on ' + user + ' posted!' );			} else {				alert('There was an error requesting the page edit. Code: ' + data.error.code + '": ' + data.error.info);			}		},		error : function {			alert('There was an error using AJAX to edit the page.');		}	}); }  addOnloadHook(TalkbackLink);