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.

// <nowiki>

/*

	This script adds entries for posting Teahouse talkbacks and invites into the page action menu (and adds the page action menu itself, if it's not present) 

 */

 

//standard onloadhook

$(document).ready(teahouseMenu);

 

//add menu if it's not there; populate it with new buttons 

function teahouseMenu()

{

	if(mw.config.get("wgCanonicalNamespace") == "User" || mw.config.get("wgCanonicalNamespace") == "User_talk")//Only if we're on a user or user talk page

	{

		var inviteLink = mw.util.addPortletLink("p-cactions", "#", "THInvite", "th-invite", "Add a Teahouse invite template", null, "#ca-move");

		var afcLink = mw.util.addPortletLink("p-cactions", "#", "THInvite (AfC)", "th-afc", "Add a Teahouse invite template", null, "#ca-move");

		var talkbackLink = mw.util.addPortletLink("p-cactions", "#", "THTalkback", "th-talkback", "Add a Teahouse talkback template", null, "#ca-move");

		$(inviteLink).click(postTHInvite);

		$(afcLink).click(postTHafc);

		$(talkbackLink).click(postTHTalkback);

	}

}

 

function getURL()

{

	var url;

	var slashLocation = mw.config.get("wgTitle").indexOf("/");

	if(slashLocation > 0)

	{

		url = "User_talk:" + mw.config.get("wgTitle").substring(0, mw.config.get("wgTitle").indexOf("/"));

	}

	else

	{

		url = "User_talk:" + mw.config.get("wgTitle");

	}

	return url;

}

 

function postTHInvite()

{	

    invitationBody = "{{su" + "bst:#ife" + "xist: User:" + mw.config.get("wgUserName") + "/Teahouse invite | {{su"+"bst:User:" + mw.config.get("wgUserName") + "/Teahouse invite}} | {{su"+"bst:Wikipedia:Teahouse/Invitation|sign=~~"+"~~}} }}";

  

    //If you want to change what the invitation section is titled, edit the words below within the doublequote (but don't take out the doublequote!)

    invitationSectionTitle = "Welcome to Wikipedia: check out the Teahouse!";

	

	var linkArray = document.getElementById("mw-content-text").getElementsByTagName("a");

	var i;

	for(i = 0; i < linkArray.length; i++)

	{

		if(linkArrayi].href.search("Wikipedia:Teahouse") > -1)

		{

			if(confirm("Someone may have already invited this person to the Teahouse!\n\nAre you sure you want to continue?"))

			{

				break;

			}

			else return;

		}

	}



	var data = {

		format : 'json',

		action : 'edit',

		minor : false,

		title : getURL(),

		text : invitationBody,

		section : 'new',

		summary : invitationSectionTitle,

		token : mw.user.tokens.get('csrfToken')

	};

	$.ajax({

		url : mw.util.wikiScript('api'),

		type : 'POST',

		dataType : 'json',

		data : data,

		success : function(data) {

			if(data && data. && data..result && data..result === 'Success') {

				//window.location = mw.util.getUrl(page);

                                mw.notify("Talkback posted!");

			} 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");

		}

	});

}



function postTHafc()

{	

    invitationBody = "{{su" + "bst:#ife" + "xist: User:" + mw.config.get("wgUserName") + "/Teahouse AfC invite | {{su"+"bst:User:" + mw.config.get("wgUserName") + "/Teahouse AfC invite}} | {{su"+"bst:Wikipedia:Teahouse/AfC Invitation|sign=~~"+"~~}} }}";

  

    //If you want to change what the invitation section is titled, edit the words below within the doublequote (but don't take out the doublequote!)

    invitationSectionTitle = "Welcome to Wikipedia! Need a hand?";

 

        var linkArray = document.getElementById("mw-content-text").getElementsByTagName("a");

	var i;

	for(i = 0; i < linkArray.length; i++)

	{

		if(linkArrayi].href.search("Wikipedia:Teahouse") > -1)

		{

			if(confirm("Someone may have already invited this person to the Teahouse!\n\nAre you sure you want to continue?"))

			{

				break;

			}

			else return;

		}

	}

	var data = {

		format : 'json',

		action : 'edit',

		minor : false,

		title : getURL(),

		text : invitationBody,

		section : 'new',

		summary : invitationSectionTitle,

		token : mw.user.tokens.get('csrfToken')

	};

	$.ajax({

		url : mw.util.wikiScript('api'),

		type : 'POST',

		dataType : 'json',

		data : data,

		success : function(data) {

			if(data && data. && data..result && data..result === 'Success') {

				//window.location = mw.util.getUrl(page);

                                mw.notify("Talkback posted!");

			} 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");

		}

	});

}

 

function postTHTalkback()

{

	var questionTitle = prompt("Please enter the title of the question you're replying to (or just leave it blank):","");

	var sectionTitle = "{{Wikipedia:Teahouse/Teahouse talkback|WP:Teahouse|";

	if(questionTitle == null)

	{

		return;

	}

	else if(questionTitle == "")

	{

		sectionTitle +=	"ts=~~"+"~~}}";

	}

	else

	{

		sectionTitle += questionTitle +"|ts=~~"+"~~}}";

	}

	var data = {

		format : 'json',

		action : 'edit',

		minor : false,

		title : getURL(),

		text : sectionTitle,

		section : 'new',

		summary : "Teahouse talkback: you've got messages!",

		token : mw.user.tokens.get('csrfToken')

	};

	$.ajax({

		url : mw.util.wikiScript('api'),

		type : 'POST',

		dataType : 'json',

		data : data,

		success : function(data) {

			if(data && data. && data..result && data..result === 'Success') {

				//window.location = mw.util.getUrl(page);

                mw.notify("Talkback posted!");

			} 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");

		}

	});

}

//  </nowiki>
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.

// <nowiki>

/*

	This script adds entries for posting Teahouse talkbacks and invites into the page action menu (and adds the page action menu itself, if it's not present) 

 */

 

//standard onloadhook

$(document).ready(teahouseMenu);

 

//add menu if it's not there; populate it with new buttons 

function teahouseMenu()

{

	if(mw.config.get("wgCanonicalNamespace") == "User" || mw.config.get("wgCanonicalNamespace") == "User_talk")//Only if we're on a user or user talk page

	{

		var inviteLink = mw.util.addPortletLink("p-cactions", "#", "THInvite", "th-invite", "Add a Teahouse invite template", null, "#ca-move");

		var afcLink = mw.util.addPortletLink("p-cactions", "#", "THInvite (AfC)", "th-afc", "Add a Teahouse invite template", null, "#ca-move");

		var talkbackLink = mw.util.addPortletLink("p-cactions", "#", "THTalkback", "th-talkback", "Add a Teahouse talkback template", null, "#ca-move");

		$(inviteLink).click(postTHInvite);

		$(afcLink).click(postTHafc);

		$(talkbackLink).click(postTHTalkback);

	}

}

 

function getURL()

{

	var url;

	var slashLocation = mw.config.get("wgTitle").indexOf("/");

	if(slashLocation > 0)

	{

		url = "User_talk:" + mw.config.get("wgTitle").substring(0, mw.config.get("wgTitle").indexOf("/"));

	}

	else

	{

		url = "User_talk:" + mw.config.get("wgTitle");

	}

	return url;

}

 

function postTHInvite()

{	

    invitationBody = "{{su" + "bst:#ife" + "xist: User:" + mw.config.get("wgUserName") + "/Teahouse invite | {{su"+"bst:User:" + mw.config.get("wgUserName") + "/Teahouse invite}} | {{su"+"bst:Wikipedia:Teahouse/Invitation|sign=~~"+"~~}} }}";

  

    //If you want to change what the invitation section is titled, edit the words below within the doublequote (but don't take out the doublequote!)

    invitationSectionTitle = "Welcome to Wikipedia: check out the Teahouse!";

	

	var linkArray = document.getElementById("mw-content-text").getElementsByTagName("a");

	var i;

	for(i = 0; i < linkArray.length; i++)

	{

		if(linkArrayi].href.search("Wikipedia:Teahouse") > -1)

		{

			if(confirm("Someone may have already invited this person to the Teahouse!\n\nAre you sure you want to continue?"))

			{

				break;

			}

			else return;

		}

	}



	var data = {

		format : 'json',

		action : 'edit',

		minor : false,

		title : getURL(),

		text : invitationBody,

		section : 'new',

		summary : invitationSectionTitle,

		token : mw.user.tokens.get('csrfToken')

	};

	$.ajax({

		url : mw.util.wikiScript('api'),

		type : 'POST',

		dataType : 'json',

		data : data,

		success : function(data) {

			if(data && data. && data..result && data..result === 'Success') {

				//window.location = mw.util.getUrl(page);

                                mw.notify("Talkback posted!");

			} 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");

		}

	});

}



function postTHafc()

{	

    invitationBody = "{{su" + "bst:#ife" + "xist: User:" + mw.config.get("wgUserName") + "/Teahouse AfC invite | {{su"+"bst:User:" + mw.config.get("wgUserName") + "/Teahouse AfC invite}} | {{su"+"bst:Wikipedia:Teahouse/AfC Invitation|sign=~~"+"~~}} }}";

  

    //If you want to change what the invitation section is titled, edit the words below within the doublequote (but don't take out the doublequote!)

    invitationSectionTitle = "Welcome to Wikipedia! Need a hand?";

 

        var linkArray = document.getElementById("mw-content-text").getElementsByTagName("a");

	var i;

	for(i = 0; i < linkArray.length; i++)

	{

		if(linkArrayi].href.search("Wikipedia:Teahouse") > -1)

		{

			if(confirm("Someone may have already invited this person to the Teahouse!\n\nAre you sure you want to continue?"))

			{

				break;

			}

			else return;

		}

	}

	var data = {

		format : 'json',

		action : 'edit',

		minor : false,

		title : getURL(),

		text : invitationBody,

		section : 'new',

		summary : invitationSectionTitle,

		token : mw.user.tokens.get('csrfToken')

	};

	$.ajax({

		url : mw.util.wikiScript('api'),

		type : 'POST',

		dataType : 'json',

		data : data,

		success : function(data) {

			if(data && data. && data..result && data..result === 'Success') {

				//window.location = mw.util.getUrl(page);

                                mw.notify("Talkback posted!");

			} 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");

		}

	});

}

 

function postTHTalkback()

{

	var questionTitle = prompt("Please enter the title of the question you're replying to (or just leave it blank):","");

	var sectionTitle = "{{Wikipedia:Teahouse/Teahouse talkback|WP:Teahouse|";

	if(questionTitle == null)

	{

		return;

	}

	else if(questionTitle == "")

	{

		sectionTitle +=	"ts=~~"+"~~}}";

	}

	else

	{

		sectionTitle += questionTitle +"|ts=~~"+"~~}}";

	}

	var data = {

		format : 'json',

		action : 'edit',

		minor : false,

		title : getURL(),

		text : sectionTitle,

		section : 'new',

		summary : "Teahouse talkback: you've got messages!",

		token : mw.user.tokens.get('csrfToken')

	};

	$.ajax({

		url : mw.util.wikiScript('api'),

		type : 'POST',

		dataType : 'json',

		data : data,

		success : function(data) {

			if(data && data. && data..result && data..result === 'Success') {

				//window.location = mw.util.getUrl(page);

                mw.notify("Talkback posted!");

			} 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");

		}

	});

}

//  </nowiki>

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook