<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.endmyopia.org/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-friendlytalkback.js</id>
	<title>MediaWiki:Gadget-friendlytalkback.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.endmyopia.org/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-friendlytalkback.js"/>
	<link rel="alternate" type="text/html" href="https://wiki.endmyopia.org/index.php?title=MediaWiki:Gadget-friendlytalkback.js&amp;action=history"/>
	<updated>2026-05-06T20:41:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.endmyopia.org/index.php?title=MediaWiki:Gadget-friendlytalkback.js&amp;diff=8613&amp;oldid=prev</id>
		<title>NottNott: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://wiki.endmyopia.org/index.php?title=MediaWiki:Gadget-friendlytalkback.js&amp;diff=8613&amp;oldid=prev"/>
		<updated>2020-06-12T10:46:07Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:46, 12 June 2020&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key jakeendmy_mw1720-mwnr_:diff::1.12:old-8612:rev-8613 --&gt;
&lt;/table&gt;</summary>
		<author><name>NottNott</name></author>
	</entry>
	<entry>
		<id>https://wiki.endmyopia.org/index.php?title=MediaWiki:Gadget-friendlytalkback.js&amp;diff=8612&amp;oldid=prev</id>
		<title>en&gt;Amorymeltzer: Repo at ffe5bbed: Add preview</title>
		<link rel="alternate" type="text/html" href="https://wiki.endmyopia.org/index.php?title=MediaWiki:Gadget-friendlytalkback.js&amp;diff=8612&amp;oldid=prev"/>
		<updated>2020-04-25T17:31:04Z</updated>

		<summary type="html">&lt;p&gt;Repo at ffe5bbed: Add preview&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;// &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(function($) {&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 ****************************************&lt;br /&gt;
 *** friendlytalkback.js: Talkback module&lt;br /&gt;
 ****************************************&lt;br /&gt;
 * Mode of invocation:     Tab (&amp;quot;TB&amp;quot;)&lt;br /&gt;
 * Active on:              Any page with relevant user name (userspace, contribs, etc.)&lt;br /&gt;
 * Config directives in:   FriendlyConfig&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
Twinkle.talkback = function() {&lt;br /&gt;
&lt;br /&gt;
	if (!mw.config.get('wgRelevantUserName')) {&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	Twinkle.addPortletLink(Twinkle.talkback.callback, 'TB', 'friendly-talkback', 'Easy talkback');&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Twinkle.talkback.callback = function() {&lt;br /&gt;
	if (mw.config.get('wgRelevantUserName') === mw.config.get('wgUserName') &amp;amp;&amp;amp; !confirm(&amp;quot;Is it really so bad that you're talking back to yourself?&amp;quot;)) {&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var Window = new Morebits.simpleWindow(600, 350);&lt;br /&gt;
	Window.setTitle('Talkback');&lt;br /&gt;
	Window.setScriptName('Twinkle');&lt;br /&gt;
	Window.addFooterLink('About {{talkback}}', 'Template:Talkback');&lt;br /&gt;
	Window.addFooterLink('Twinkle help', 'WP:TW/DOC#talkback');&lt;br /&gt;
&lt;br /&gt;
	var form = new Morebits.quickForm(Twinkle.talkback.evaluate);&lt;br /&gt;
&lt;br /&gt;
	form.append({ type: 'radio', name: 'tbtarget',&lt;br /&gt;
		list: [&lt;br /&gt;
			{&lt;br /&gt;
				label: 'Talkback: my talk page',&lt;br /&gt;
				value: 'mytalk',&lt;br /&gt;
				checked: 'true'&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				label: 'Talkback: other user talk page',&lt;br /&gt;
				value: 'usertalk'&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				label: 'Talkback: other page',&lt;br /&gt;
				value: 'other'&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				label: '&amp;quot;Please see&amp;quot;',&lt;br /&gt;
				value: 'see'&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				label: 'Noticeboard notification',&lt;br /&gt;
				value: 'notice'&lt;br /&gt;
			},&lt;br /&gt;
			{&lt;br /&gt;
				label: &amp;quot;\&amp;quot;You've got mail\&amp;quot;&amp;quot;,&lt;br /&gt;
				value: 'mail'&lt;br /&gt;
			}&lt;br /&gt;
		],&lt;br /&gt;
		event: Twinkle.talkback.changeTarget&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
	form.append({&lt;br /&gt;
		type: 'field',&lt;br /&gt;
		label: 'Work area',&lt;br /&gt;
		name: 'work_area'&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
	var previewlink = document.createElement('a');&lt;br /&gt;
	$(previewlink).click(function() {&lt;br /&gt;
		Twinkle.talkback.preview(result);  // |result| is defined below&lt;br /&gt;
	});&lt;br /&gt;
	previewlink.style.cursor = 'pointer';&lt;br /&gt;
	previewlink.textContent = 'Preview';&lt;br /&gt;
	form.append({ type: 'div', id: 'talkbackpreview', label: [ previewlink ] });&lt;br /&gt;
	form.append({ type: 'div', id: 'friendlytalkback-previewbox', style: 'display: none' });&lt;br /&gt;
&lt;br /&gt;
	form.append({ type: 'submit' });&lt;br /&gt;
&lt;br /&gt;
	var result = form.render();&lt;br /&gt;
	Window.setContent(result);&lt;br /&gt;
	Window.display();&lt;br /&gt;
	result.previewer = new Morebits.wiki.preview($(result).find('div#friendlytalkback-previewbox').last()[0]);&lt;br /&gt;
&lt;br /&gt;
	// We must init the&lt;br /&gt;
	var evt = document.createEvent('Event');&lt;br /&gt;
	evt.initEvent('change', true, true);&lt;br /&gt;
	result.tbtarget[0].dispatchEvent(evt);&lt;br /&gt;
&lt;br /&gt;
	// Check whether the user has opted out from talkback&lt;br /&gt;
	var query = {&lt;br /&gt;
		action: 'query',&lt;br /&gt;
		prop: 'extlinks',&lt;br /&gt;
		titles: 'User talk:' + mw.config.get('wgRelevantUserName'),&lt;br /&gt;
		elquery: 'userjs.invalid/noTalkback',&lt;br /&gt;
		ellimit: '1'&lt;br /&gt;
	};&lt;br /&gt;
	var wpapi = new Morebits.wiki.api('Fetching talkback opt-out status', query, Twinkle.talkback.callback.optoutStatus);&lt;br /&gt;
	wpapi.post();&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Twinkle.talkback.optout = '';&lt;br /&gt;
&lt;br /&gt;
Twinkle.talkback.callback.optoutStatus = function(apiobj) {&lt;br /&gt;
	var $el = $(apiobj.getXML()).find('el');&lt;br /&gt;
	if ($el.length) {&lt;br /&gt;
		Twinkle.talkback.optout = mw.config.get('wgRelevantUserName') + ' prefers not to receive talkbacks';&lt;br /&gt;
		var url = $el.text();&lt;br /&gt;
		var reason = mw.util.getParamValue('reason', url);&lt;br /&gt;
		Twinkle.talkback.optout += reason ? ': ' + reason : '.';&lt;br /&gt;
	}&lt;br /&gt;
	$('#twinkle-talkback-optout-message').text(Twinkle.talkback.optout);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
var prev_page = '';&lt;br /&gt;
var prev_section = '';&lt;br /&gt;
var prev_message = '';&lt;br /&gt;
&lt;br /&gt;
Twinkle.talkback.changeTarget = function(e) {&lt;br /&gt;
	var value = e.target.values;&lt;br /&gt;
	var root = e.target.form;&lt;br /&gt;
	var old_area = Morebits.quickForm.getElements(root, 'work_area')[0];&lt;br /&gt;
&lt;br /&gt;
	if (root.section) {&lt;br /&gt;
		prev_section = root.section.value;&lt;br /&gt;
	}&lt;br /&gt;
	if (root.message) {&lt;br /&gt;
		prev_message = root.message.value;&lt;br /&gt;
	}&lt;br /&gt;
	if (root.page) {&lt;br /&gt;
		prev_page = root.page.value;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var work_area = new Morebits.quickForm.element({&lt;br /&gt;
		type: 'field',&lt;br /&gt;
		label: 'Talkback information',&lt;br /&gt;
		name: 'work_area'&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
	root.previewer.closePreview();&lt;br /&gt;
&lt;br /&gt;
	switch (value) {&lt;br /&gt;
		case 'mytalk':&lt;br /&gt;
			/* falls through */&lt;br /&gt;
		default:&lt;br /&gt;
			work_area.append({&lt;br /&gt;
				type: 'div',&lt;br /&gt;
				label: '',&lt;br /&gt;
				style: 'color: red',&lt;br /&gt;
				id: 'twinkle-talkback-optout-message'&lt;br /&gt;
			});&lt;br /&gt;
			work_area.append({&lt;br /&gt;
				type: 'input',&lt;br /&gt;
				name: 'section',&lt;br /&gt;
				label: 'Linked section (optional)',&lt;br /&gt;
				tooltip: 'The section heading on your talk page where you left a message. Leave empty for no section to be linked.',&lt;br /&gt;
				value: prev_section&lt;br /&gt;
			});&lt;br /&gt;
			break;&lt;br /&gt;
&lt;br /&gt;
		case 'usertalk':&lt;br /&gt;
			work_area.append({&lt;br /&gt;
				type: 'div',&lt;br /&gt;
				label: '',&lt;br /&gt;
				style: 'color: red',&lt;br /&gt;
				id: 'twinkle-talkback-optout-message'&lt;br /&gt;
			});&lt;br /&gt;
			work_area.append({&lt;br /&gt;
				type: 'input',&lt;br /&gt;
				name: 'page',&lt;br /&gt;
				label: 'User (required)',&lt;br /&gt;
				tooltip: 'The username of the user on whose talk page you left a message. Required.',&lt;br /&gt;
				value: prev_page,&lt;br /&gt;
				required: true&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			work_area.append({&lt;br /&gt;
				type: 'input',&lt;br /&gt;
				name: 'section',&lt;br /&gt;
				label: 'Linked section (optional)',&lt;br /&gt;
				tooltip: 'The section heading on the page where you left a message. Leave empty for no section to be linked.',&lt;br /&gt;
				value: prev_section&lt;br /&gt;
			});&lt;br /&gt;
			break;&lt;br /&gt;
&lt;br /&gt;
		case 'notice':&lt;br /&gt;
			var noticeboard = work_area.append({&lt;br /&gt;
				type: 'select',&lt;br /&gt;
				name: 'noticeboard',&lt;br /&gt;
				label: 'Noticeboard:',&lt;br /&gt;
				event: function(e) {&lt;br /&gt;
					if (e.target.value === 'afchd') {&lt;br /&gt;
						Morebits.quickForm.overrideElementLabel(e.target.form.section, 'Title of draft (excluding the prefix): ');&lt;br /&gt;
						Morebits.quickForm.setElementTooltipVisibility(e.target.form.section, false);&lt;br /&gt;
					} else {&lt;br /&gt;
						Morebits.quickForm.resetElementLabel(e.target.form.section);&lt;br /&gt;
						Morebits.quickForm.setElementTooltipVisibility(e.target.form.section, true);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			$.each(Twinkle.talkback.noticeboards, function(value, data) {&lt;br /&gt;
				noticeboard.append({&lt;br /&gt;
					type: 'option',&lt;br /&gt;
					label: data.label,&lt;br /&gt;
					value: value,&lt;br /&gt;
					selected: !!data.defaultSelected&lt;br /&gt;
				});&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			work_area.append({&lt;br /&gt;
				type: 'input',&lt;br /&gt;
				name: 'section',&lt;br /&gt;
				label: 'Linked thread',&lt;br /&gt;
				tooltip: 'The heading of the relevant thread on the noticeboard page.',&lt;br /&gt;
				value: prev_section&lt;br /&gt;
			});&lt;br /&gt;
			break;&lt;br /&gt;
&lt;br /&gt;
		case 'other':&lt;br /&gt;
			work_area.append({&lt;br /&gt;
				type: 'div',&lt;br /&gt;
				label: '',&lt;br /&gt;
				style: 'color: red',&lt;br /&gt;
				id: 'twinkle-talkback-optout-message'&lt;br /&gt;
			});&lt;br /&gt;
			work_area.append({&lt;br /&gt;
				type: 'input',&lt;br /&gt;
				name: 'page',&lt;br /&gt;
				label: 'Full page name (required)',&lt;br /&gt;
				tooltip: &amp;quot;The full page name where you left the message. For example: 'Wikipedia talk:Twinkle'. Required.&amp;quot;,&lt;br /&gt;
				value: prev_page,&lt;br /&gt;
				required: true&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			work_area.append({&lt;br /&gt;
				type: 'input',&lt;br /&gt;
				name: 'section',&lt;br /&gt;
				label: 'Linked section (optional)',&lt;br /&gt;
				tooltip: 'The section heading on the page where you left a message. Leave empty for no section to be linked.',&lt;br /&gt;
				value: prev_section&lt;br /&gt;
			});&lt;br /&gt;
			break;&lt;br /&gt;
&lt;br /&gt;
		case 'mail':&lt;br /&gt;
			work_area.append({&lt;br /&gt;
				type: 'input',&lt;br /&gt;
				name: 'section',&lt;br /&gt;
				label: 'Subject of email (optional)',&lt;br /&gt;
				tooltip: 'The subject line of the email you sent.'&lt;br /&gt;
			});&lt;br /&gt;
			break;&lt;br /&gt;
&lt;br /&gt;
		case 'see':&lt;br /&gt;
			work_area.append({&lt;br /&gt;
				type: 'input',&lt;br /&gt;
				name: 'page',&lt;br /&gt;
				label: 'Full page name (required)',&lt;br /&gt;
				tooltip: &amp;quot;The full page name of where the discussion is being held. For example: 'Wikipedia talk:Twinkle'. Required.&amp;quot;,&lt;br /&gt;
				value: prev_page,&lt;br /&gt;
				required: true&lt;br /&gt;
			});&lt;br /&gt;
			work_area.append({&lt;br /&gt;
				type: 'input',&lt;br /&gt;
				name: 'section',&lt;br /&gt;
				label: 'Linked section (optional)',&lt;br /&gt;
				tooltip: &amp;quot;The section heading where the discussion is being held. For example: 'Merge proposal'.&amp;quot;,&lt;br /&gt;
				value: prev_section&lt;br /&gt;
			});&lt;br /&gt;
			break;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if (value !== 'notice') {&lt;br /&gt;
		work_area.append({ type: 'textarea', label: 'Additional message (optional):', name: 'message', tooltip: 'An additional message that you would like to leave below the talkback template. Your signature will be added to the end of the message if you leave one.' });&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	work_area = work_area.render();&lt;br /&gt;
	root.replaceChild(work_area, old_area);&lt;br /&gt;
	if (root.message) {&lt;br /&gt;
		root.message.value = prev_message;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$('#twinkle-talkback-optout-message').text(Twinkle.talkback.optout);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Twinkle.talkback.noticeboards = {&lt;br /&gt;
	'an': {&lt;br /&gt;
		label: &amp;quot;WP:AN (Administrators' noticeboard)&amp;quot;,&lt;br /&gt;
		text: '== ' + Twinkle.getPref('adminNoticeHeading') + ' ==\n' +&lt;br /&gt;
		&amp;quot;{{subst:ANI-notice|thread=$SECTION|noticeboard=Wikipedia:Administrators' noticeboard}} ~~~~&amp;quot;,&lt;br /&gt;
		editSummary: 'Notice of discussion at [[Wikipedia:Administrators\' noticeboard]]'&lt;br /&gt;
	},&lt;br /&gt;
	'an3': {&lt;br /&gt;
		label: &amp;quot;WP:AN3 (Administrators' noticeboard/Edit warring)&amp;quot;,&lt;br /&gt;
		text: '{{subst:An3-notice|$SECTION}} ~~~~',&lt;br /&gt;
		editSummary: &amp;quot;Notice of discussion at [[Wikipedia:Administrators' noticeboard/Edit warring]]&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	'ani': {&lt;br /&gt;
		label: &amp;quot;WP:ANI (Administrators' noticeboard/Incidents)&amp;quot;,&lt;br /&gt;
		text: '== ' + Twinkle.getPref('adminNoticeHeading') + ' ==\n' +&lt;br /&gt;
		&amp;quot;{{subst:ANI-notice|thread=$SECTION|noticeboard=Wikipedia:Administrators' noticeboard/Incidents}} ~~~~&amp;quot;,&lt;br /&gt;
		editSummary: 'Notice of discussion at [[Wikipedia:Administrators\' noticeboard/Incidents]]',&lt;br /&gt;
		defaultSelected: true&lt;br /&gt;
	},&lt;br /&gt;
	// let's keep AN and its cousins at the top&lt;br /&gt;
	'afchd': {&lt;br /&gt;
		label: 'WP:AFCHD (Articles for creation/Help desk)',&lt;br /&gt;
		text: '{{subst:AFCHD/u|$SECTION}} ~~~~',&lt;br /&gt;
		editSummary: 'You have replies at the [[Wikipedia:AFCHD|Articles for Creation Help Desk]]'&lt;br /&gt;
	},&lt;br /&gt;
	'coin': {&lt;br /&gt;
		label: 'WP:COIN (Conflict of interest noticeboard)',&lt;br /&gt;
		text: '{{subst:Coin-notice|thread=$SECTION}} ~~~~',&lt;br /&gt;
		editSummary: 'Notice of discussion at [[Wikipedia:Conflict of interest noticeboard]]'&lt;br /&gt;
	},&lt;br /&gt;
	'drn': {&lt;br /&gt;
		label: 'WP:DRN (Dispute resolution noticeboard)',&lt;br /&gt;
		text: '{{subst:DRN-notice|thread=$SECTION}} ~~~~',&lt;br /&gt;
		editSummary: 'Notice of discussion at [[Wikipedia:Dispute resolution noticeboard]]'&lt;br /&gt;
	},&lt;br /&gt;
	'hd': {&lt;br /&gt;
		label: 'WP:HD (Help desk)',&lt;br /&gt;
		text: '== Your question at the Help desk ==\n' + '{{helpdeskreply|1=$SECTION|ts=~~~~~}}',&lt;br /&gt;
		editSummary: 'You have replies at the [[Wikipedia:Help desk|Wikipedia help desk]]'&lt;br /&gt;
	},&lt;br /&gt;
	'th': {&lt;br /&gt;
		label: 'WP:THQ (Teahouse question forum)',&lt;br /&gt;
		text: &amp;quot;== Teahouse talkback: you've got messages! ==\n{{WP:Teahouse/Teahouse talkback|WP:Teahouse/Questions|$SECTION|ts=~~~~}}&amp;quot;,&lt;br /&gt;
		editSummary: 'You have replies at the [[Wikipedia:Teahouse/Questions|Teahouse question board]]'&lt;br /&gt;
	},&lt;br /&gt;
	'otrs': {&lt;br /&gt;
		label: 'WP:OTRS/N (OTRS noticeboard)',&lt;br /&gt;
		text: '{{OTRSreply|1=$SECTION|2=~~~~}}',&lt;br /&gt;
		editSummary: 'You have replies at the [[Wikipedia:OTRS noticeboard|OTRS noticeboard]]'&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Twinkle.talkback.evaluate = function(e) {&lt;br /&gt;
	var form = e.target;&lt;br /&gt;
	var tbtarget = form.getChecked('tbtarget')[0];&lt;br /&gt;
	var page, message;&lt;br /&gt;
	var section = form.section.value;&lt;br /&gt;
&lt;br /&gt;
	var editSummary;&lt;br /&gt;
	if (tbtarget === 'notice') {&lt;br /&gt;
		page = form.noticeboard.value;&lt;br /&gt;
		editSummary = Twinkle.talkback.noticeboards[page].editSummary;&lt;br /&gt;
	} else {&lt;br /&gt;
&lt;br /&gt;
		// usertalk, other, see&lt;br /&gt;
		page = form.page ? form.page.value : mw.config.get('wgUserName');&lt;br /&gt;
		if (form.message) {&lt;br /&gt;
			message = form.message.value.trim();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (tbtarget === 'mail') {&lt;br /&gt;
			editSummary = &amp;quot;Notification: You've got mail&amp;quot;;&lt;br /&gt;
		} else if (tbtarget === 'see') {&lt;br /&gt;
			editSummary = 'Please check the discussion at [[:' + page + (section ? '#' + section : '') + ']]';&lt;br /&gt;
		} else {  // tbtarget one of mytalk, usertalk, other&lt;br /&gt;
			editSummary = 'Talkback ([[:';&lt;br /&gt;
			if (tbtarget !== 'other' &amp;amp;&amp;amp; !/^\s*user talk:/i.test(page)) {&lt;br /&gt;
				editSummary += 'User talk:';&lt;br /&gt;
			}&lt;br /&gt;
			editSummary += page + (section ? '#' + section : '') + ']])';&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	var text = '\n\n' + Twinkle.talkback.getNoticeWikitext(tbtarget, page, section, message);&lt;br /&gt;
&lt;br /&gt;
	Morebits.simpleWindow.setButtonsEnabled(false);&lt;br /&gt;
	Morebits.status.init(form);&lt;br /&gt;
&lt;br /&gt;
	var fullUserTalkPageName = mw.config.get('wgFormattedNamespaces')[mw.config.get('wgNamespaceIds').user_talk] + ':' + mw.config.get('wgRelevantUserName');&lt;br /&gt;
&lt;br /&gt;
	Morebits.wiki.actionCompleted.redirect = fullUserTalkPageName;&lt;br /&gt;
	Morebits.wiki.actionCompleted.notice = 'Talkback complete; reloading talk page in a few seconds';&lt;br /&gt;
&lt;br /&gt;
	var talkpage = new Morebits.wiki.page(fullUserTalkPageName, 'Adding talkback');&lt;br /&gt;
&lt;br /&gt;
	talkpage.setAppendText(text);&lt;br /&gt;
	talkpage.setEditSummary(editSummary + Twinkle.getPref('summaryAd'));&lt;br /&gt;
	talkpage.setCreateOption('recreate');&lt;br /&gt;
	talkpage.setMinorEdit(Twinkle.getPref('markTalkbackAsMinor'));&lt;br /&gt;
	talkpage.setFollowRedirect(true);&lt;br /&gt;
	talkpage.append();&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Twinkle.talkback.preview = function(form) {&lt;br /&gt;
	var tbtarget = form.getChecked('tbtarget')[0];&lt;br /&gt;
	var section = form.section.value;&lt;br /&gt;
	var page, message;&lt;br /&gt;
&lt;br /&gt;
	if (tbtarget === 'notice') {&lt;br /&gt;
		page = form.noticeboard.value;&lt;br /&gt;
	} else {&lt;br /&gt;
		// usertalk, other, see&lt;br /&gt;
		page = form.page ? form.page.value : mw.config.get('wgUserName');&lt;br /&gt;
		if (form.message) {&lt;br /&gt;
			message = form.message.value.trim();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var noticetext = Twinkle.talkback.getNoticeWikitext(tbtarget, page, section, message);&lt;br /&gt;
	form.previewer.beginRender(noticetext, 'User_talk:' + mw.config.get('wgRelevantUserName')); // Force wikitext/correct username&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Twinkle.talkback.getNoticeWikitext = function(tbtarget, page, section, message) {&lt;br /&gt;
	var text;&lt;br /&gt;
	if (tbtarget === 'notice') {&lt;br /&gt;
		text = Morebits.string.safeReplace(Twinkle.talkback.noticeboards[page].text, '$SECTION', section);&lt;br /&gt;
	} else if (tbtarget === 'see') {&lt;br /&gt;
		text = '{{subst:Please see|location=' + page + (section ? '#' + section : '') + '|more=' + message.trim() + '}}';&lt;br /&gt;
	} else {&lt;br /&gt;
		text = '==';&lt;br /&gt;
		if (tbtarget === 'mail') {&lt;br /&gt;
			text += Twinkle.getPref('mailHeading') + '==\n' + &amp;quot;{{You've got mail|subject=&amp;quot; + section;&lt;br /&gt;
		} else {  // tbtarget one of mytalk, usertalk, other&lt;br /&gt;
			// clean talkback heading: strip section header markers that were erroneously suggested in the documentation&lt;br /&gt;
			text += Twinkle.getPref('talkbackHeading').replace(/^\s*=+\s*(.*?)\s*=+$\s*/, '$1') +&lt;br /&gt;
				'==\n' + '{{talkback|' + page + (section ? '|' + section : '');&lt;br /&gt;
		}&lt;br /&gt;
		text += '|ts=~~~~~}}';&lt;br /&gt;
&lt;br /&gt;
		if (message) {&lt;br /&gt;
			text += '\n' + message + '  ~~~~';&lt;br /&gt;
		} else if (Twinkle.getPref('insertTalkbackSignature')) {&lt;br /&gt;
			text += '\n~~~~';&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	return text;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
})(jQuery);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>en&gt;Amorymeltzer</name></author>
	</entry>
</feed>