Jump to content

User:Chicocvenancio/HelpDeskTBLinks.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Chicocvenancio (talk | contribs) at 21:43, 17 June 2012 (JSlint). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
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.
function HDTalkbackLink() {
	"use strict";
	if ($("#mw-content-text").length > 0) {
		var $nodeList = $('a[title^="User talk:"]'), pdne = ' (page does not exist)', i, $link, $newLink;
		if ($nodeList !== null) {
			for (i = 0; i < $nodeList.length; i += 1) {
				$link = $($nodeList[i]);
				$newLink = $('<a href="#' + $link[0].title.replace(pdne, "") + '" style="font-size:x-small; display:inline-block;" title="Send a talkback!" noPopup=1 id="TBsubmit' + i + '">TB</a>');
				$($link).after($newLink);
			}
		}
		$('a[title="Send a talkback!"]').tipsy({html: true}).before("|").after("|").click(function (e) {
			sendTalkback($(this).attr('href').substr(1), this.id);
		});
	}
}
function sendTalkback(page, id) {
	"use strict";
	var questionTitle = prompt("Please enter the title of the question you're replying to (or just leave it blank):", ""), sectionTitle = "{{Talkback|" + mw.config.get('wgPageName') + "|", data;
	if (questionTitle === null) {
		$("#" + id).attr("title", 'You canceled the talkback!').tipsy("show");
		return;
	}
	if (questionTitle === "") {
		sectionTitle += "ts=~~" + "~~}}";
	} else {
		sectionTitle += questionTitle + "|ts=~~" + "~~}}";
		}
	data = {
		format : 'json',
		action : 'edit',
		minor : false,
		title : page,
		text : sectionTitle,
		section : 'new',
		summary : "Talkback: you've got messages!",
		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') {
				window.location = mw.util.wikiGetlink(page);
			} else {
				$("#" + id).attr("title", 'There was an error requesting the page edit. Code: ' + data.error.code + '": ' + data.error.info).tipsy("show");
			}
		},
		error : function () {
			$("#" + id).attr("title", 'There was an error using AJAX to edit the page.').tipsy("show");
		}
	});
}
if ((mw.config.get('wgPageName') === "Wikipedia:Help_desk") || (mw.config.get('wgPageName') === "Wikipedia:Media_copyright_questions") || (mw.config.get('wgPageName') === "Wikipedia:New_contributors'_help_page/questions") || (mw.config.get('wgPageName') === "Wikipedia:Editor_assistance/Requests")) {
	mw.loader.using('jquery.tipsy', function () {$(HDTalkbackLink);
		});
}