User:Seddon/responseHelper.js

// This script is a modification of User:MusikAnimal/responseHelper.js

//

(function() {

var responses = {}, responseHelperAdd = false, inline = false, indentation = ":", templateName = "", defaultPrompt = "", anew = false, spi = false, unresolved;

function sleep(milliseconds) {

const date = Date.now();

let currentDate = null;

do {

currentDate = Date.now();

} while (currentDate - date < milliseconds);

}

$(document).ready(function() {

mw.loader.using( ['mediawiki.util'], function() {

// show shortcuts if not editing

if ( $( ".ext-discussiontools-replytool-enabled" )[ 0 ] && !mw.config.get('wgEditMessage')) {

$(".ext-discussiontools-init-replylink-reply").on('click', function() {

if(!responseHelperAdd){

setResponses();

for (var response in responses) {

var id = responses[response].id || responses[response].code.replace(/\W/g, '');

mw.util.addPortletLink('p-navigation', 'javascript:', "(" + response + ")", "rh-" + id, responses[response].summary);

$("#rh-"+id).click({

response : responses[response]

}, respondFn);

}

}

console.log('Attempt to set responseHelperAdd')

responseHelperAdd = true;

console.log('responseHelperAdd is set to ' + responseHelperAdd)

});

mw.util.addPortletLink('p-navigation', mw.config.get( 'wgServer' ) + '/wiki/Template:Admin dashboard', 'DASHBOARD', 'rh-dashboard');

mw.util.addPortletLink('p-navigation', mw.config.get( 'wgServer' ) + '/wiki/Wikipedia:Administrator intervention against vandalism', "WP:AIV");

mw.util.addPortletLink('p-navigation', mw.config.get( 'wgServer' ) + '/wiki/Wikipedia:Administrators%27 noticeboard/Edit warring', "WP:ANEW");

mw.util.addPortletLink('p-navigation', mw.config.get( 'wgServer' ) + '/wiki/Wikipedia:Requests for permissions', "WP:PERM");

mw.util.addPortletLink('p-navigation', mw.config.get( 'wgServer' ) + '/wiki/Wikipedia:Requests for page protection', "WP:RFPP");

mw.util.addPortletLink('p-navigation', mw.config.get( 'wgServer' ) + '/wiki/Wikipedia:Usernames for administrator attention', "WP:UAA");

mw.util.addPortletLink('p-navigation', mw.config.get( 'wgServer' ) + '/wiki/Wikipedia:Sockpuppet investigations', "WP:SPI");

addDashboardListener();

return;

} else if (!mw.config.get('wgEditMessage')) {

mw.util.addPortletLink('p-navigation', mw.config.get( 'wgServer' ) + '/wiki/Template:Admin dashboard', 'DASHBOARD', 'rh-dashboard');

mw.util.addPortletLink('p-navigation', mw.config.get( 'wgServer' ) + '/wiki/Wikipedia:Administrator intervention against vandalism', "WP:AIV");

mw.util.addPortletLink('p-navigation', mw.config.get( 'wgServer' ) + '/wiki/Wikipedia:Administrators%27 noticeboard/Edit warring', "WP:ANEW");

mw.util.addPortletLink('p-navigation', mw.config.get( 'wgServer' ) + '/wiki/Wikipedia:Requests for permissions', "WP:PERM");

mw.util.addPortletLink('p-navigation', mw.config.get( 'wgServer' ) + '/wiki/Wikipedia:Requests for page protection', "WP:RFPP");

mw.util.addPortletLink('p-navigation', mw.config.get( 'wgServer' ) + '/wiki/Wikipedia:Usernames for administrator attention', "WP:UAA");

mw.util.addPortletLink('p-navigation', mw.config.get( 'wgServer' ) + '/wiki/Wikipedia:Sockpuppet investigations', "WP:SPI");

addDashboardListener();

return;

}

setResponses();

for (var response in responses) {

var id = responses[response].id || responses[response].code.replace(/\W/g, '');

mw.util.addPortletLink('p-navigation', 'javascript:', "(" + response + ")", "rh-" + id, responses[response].summary);

$("#rh-"+id).click({

response : responses[response]

}, respondFn);

}

});

});

function addDashboardListener() {

$('#rh-dashboard').on('click', function (e) {

e.preventDefault();

// Use user-customized User:Foo/Dashboard if it exists, otherwise Template:Admin dashboard

var api = new mw.Api(),

userDashboardPage = 'User:' + mw.config.get('wgUserName') + '/Dashboard';

api.get({

action: 'query',

titles: userDashboardPage,

formatversion: 2

}).done(function (data) {

var pageExists = !data.query.pages[0].missing;

window.location.href = '/wiki/' + (pageExists ? userDashboardPage : 'Template:Admin_dashboard');

});

});

}

function setResponses() {

if (/Wikipedia:Administrator_intervention_against_vandalism/.test(mw.config.get('wgPageName'))) {

indentation = "::";

templateName = "AIV";

inline = true;

responses = {

"Checking" : {

code : "chk",

summary : "Checking"

},

"Warned user" : {

code : "w",

summary : "Warned user"

},

"Insufficient activity" : {

code : "i",

summary : "Insufficient recent activity to warrant a block"

},

"No vand since final" : {

code : "f",

summary : "No vandalism since final warning"

},

"No edits since warn" : {

code : "nesw",

summary : "No edits since being warned"

},

"Stale warning" : {

code : "ow|$1",

summary : "Stale warning. ",

prompt : "The last warning issued how long ago?"

},

"Monitoring" : {

code : "m",

summary : "Actively monitoring user"

},

"Question" : {

code : "q",

summary : "Question. ",

prompt : "Question:"

},

"WP:ANEW" : {

code : "3rr",

summary : "Consider reporting to WP:ANEW"

},

"WP:AN/I" : {

code : "a",

summary : "Consider reporting to WP:AN/I"

},

"WP:UAA" : {

code : "u",

summary : "Consider reporting to WP:UAA"

},

"WP:RFPP" : {

code : "r",

summary : "Consider reporting to WP:RFPP"

},

"WP:SPI" : {

code : "sp",

summary : "Consider reporting to WP:SPI"

},

"Note" : {

code : "n",

summary : "Note. ",

prompt : "Note:"

},

"IP not indef'd" : {

code : "in",

summary : "IPs are generally not blocked indefinitely"

},

"Shared IP" : {

code : "s",

summary : "Appears to be a shared IP"

},

"Declined" : {

code : "dc",

summary : "Declined. ",

prompt : "Reason?"

},

"4im inappropriate" : {

code : "4im",

summary : "User inappropriately warned with 4im"

},

"Content dispute" : {

code : "c",

summary : "Content dispute"

},

"Insufficient warn." : {

code : "ns",

summary : "User insufficiently warned"

},

"Not punitive" : {

code : "np",

summary : "Blocks are preventive, not punitive"

},

"Not vandalism" : {

code : "nv",

summary : "Edits are not vandalism"

},

"False positive" : {

code : "fp",

summary : "False positive"

},

"Page protected" : {

code : "p",

summary : "Page protected"

},

"Page deleted" : {

code : "d",

summary : "Page deleted"

},

"Stale report" : {

code : "e|$1",

summary : "Stale report. ",

prompt : "How long since the user last edited?"

},

"Stale (was good)" : {

code : "sn|$1",

summary : "Report was good but is now stale. ",

prompt : "How long since the user last edited?"

}

};

} else if (/Wikipedia:Usernames_for_administrator_attention/.test(mw.config.get('wgPageName'))) {

indentation = "::";

templateName = "UAA";

defaultPrompt = "Reason?";

inline = true;

responses = {

"Checking" : {

code : "chk",

summary : "Checking"

},

"Note" : {

code : "n",

summary : "Note. ",

prompt : "Note:"

},

"Question" : {

code : "q",

summary : "Question. ",

prompt : "Question: "

},

"Comment" : {

code : "c",

summary : "Comment. ",

prompt : "Comment:"

},

"Wait" : {

code : "w",

summary : "Wait until the user edits"

},

"Monitor" : {

code : "m",

summary : "Keep monitoring the user, until their username is more clear"

},

"Being discussed" : {

code : "d",

summary : "Being discussed with the user"

},

"Discussed, const. edits" : {

code : "dc",

summary : "Being discussed with the user, since they have edited constructively"

},

"Requested change" : {

code : "rc",

summary : "User has requested a username change"

},

"Changed username" : {

code : "ch",

summary : "User has changed their username"

},

"Problem" : {

code : "p",

summary : "Problem: This account does not exist or may be hidden"

},

"Stale" : {

code : "s",

summary : "Stale: Account has not been used in the last 2-3 weeks"

},

"Not violation" : {

code : "not",

summary : "Not a blatant violation of the username policy"

},

"Not vio, real name" : {

code : "real",

summary : "Not a violation of the username policy as real name, consider WP:COI/N"

},

"Not vio, watch edits" : {

code : "e",

summary : "Not a blatant violation of the username policy, but worth keeping an eye on their edits"

},

"Not vio, COI" : {

code : "coi",

summary : "Not a blatant violation of the username policy. Consider filing a report at the WP:COI/N"

},

"Not vio, RFCN" : {

code : "r",

summary : "Not a blatant violation of the username policy. Please discuss this with the user or at WP:RFCN if necessary"

},

"False positive" : {

code: "fp",

summary: "False positive by bot. Username is not a blatant violation of the username policy"

}

};

} else if (/Wikipedia:Requests_for_undeletion/.test(mw.config.get('wgPageName'))) {

indentation = "*";

templateName = "subst:UND";

responses = {

"Done" : {

code : "d",

summary : "Done. ",

prompt : "Additional comment?"

},

"Done (PROD)" : {

code : "prod",

summary : "Done: Contested proposed deletion, the article has been restored upon request."

},

"Done (G13)" : {

code : "g13",

summary : "Done: Draft or AfC submission deleted under CSD G13."

},

"Done (G13 draft)" : {

code : "g13-draft",

summary : "Done: Draft deleted under CSD G13. Please continue to improve and submit for review."

},

"Done (AfC)" : {

code : "afc",

summary : "Done: AfC submission deleted under CSD G13. Please edit to address any issues and re-submit."

},

"Done (AfC no review)" : {

code : "afc-ns",

summary : "Done: AfC submission deleted under CSD G13. Please remember to submit the draft for review."

},

"Userfied" : {

code : "u|$1",

summary : "Userfied at $1",

prompt : "Full title of userspace page?",

valueRequired : true

},

"Userfied (notability)" : {

code : "userA7|$1|$2",

summary : "Userfied at $1",

prompt : "Full title of userspace page?",

prompt2 : "Username of admin who deleted the original page?",

valueRequired : true

},

"Not done" : {

code : "nd",

summary : "Not Done. ",

prompt : "Reason?"

},

"Not done (permanent)" : {

code : "nd2",

summary : "Not done and will not be done.",

prompt : "Additional comment?"

},

"Not done (company)" : {

code : "ndc",

summary : "Not done: does not meet notability guideline on companies"

},

"Not done (person)" : {

code : "ndp",

summary : "Not done: does not meet notability guideline on people"

},

"Not done (music)" : {

code : "ndb",

summary : "Not done: does not meet notability guideline on music"

},

"Not done (G11)" : {

code : "g11",

summary : "Not done: blatant advertising"

},

"Not done (A7)" : {

code : "c|a7",

summary : "Not done: page was deleted as giving no indication of importance"

},

"Not done (copyvio)" : {

code : "copy|$1",

summary : "Not done: page is a copyright violation ",

prompt : "Source URL?"

},

"Not done (unsuitable)" : {

code : "in",

summary : "Not done: inappropriate topic for Wikipedia"

},

"Not done (live)" : {

code : "nyd",

summary : "Not done: page has not yet been deleted"

},

"Not done (live, PROD)" : {

code : "nydp",

summary : "Not done: page has not yet been deleted; See WP:PROD for responding to proposed deletion."

},

"Not done (live, BLP)" : {

code : "nydb",

summary : "Not done: page has not yet been deleted; See WP:BLPPROD for responding to proposed deletion."

},

"Not done (nonexistent)" : {

code : "dne",

summary : "Not done: a deleted page with this title does not appear to exist"

},

"Not done (AfD)" : {

code : "afd|$1|$2",

summary : "Not done: page was deleted following a deletion discussion",

prompt : "Full title of deletion discussion page?",

prompt2 : "Username of admin who closed the discussion?",

valueRequired : true,

value2Required : true

},

"Blocked" : {

code : "blocked",

summary : "Not done: user blocked ",

prompt : "Additional comment?"

},

"Malformed report" : {

code : "malformed",

summary : "Not done: Please repair your request"

},

"Declined (need info)" : {

code : "2nd",

summary : "Declined pending further information"

}

};

} else if (/Wikipedia:Sockpuppet_investigations/.test(mw.config.get('wgPageName'))) {

spi = true;

indentation = "*";

templateName = "";

responses = {

"Admin note" : {

code : "administrator note",

summary : "Admin note. ",

prompt : "Administrator note:"

},

"Clerk needed" : {

code : "Clerk Request",

summary : "Clerk assistance requested. ",

prompt : "Additional comment?"

},

"Blocked and tagged" : {

code : "bnt",

summary : "Blocked and tagged. ",

prompt : "Additional comment?"

},

"Blocked, need tags" : {

code : "Sblock",

summary : "Blocked but awaiting tags. ",

prompt : "Additional comment?"

},

"IP blocked" : {

code : "IPblock",

summary : "IP blocked. ",

prompt : "Additional comment?"

},

"Looks like duck" : {

code : "Duck",

summary : "It looks like a duck to me. ",

prompt : "Additional comment?"

},

"Sounds like duck" : {

code : "Megaphoneduck",

summary : "It sounds like a duck quacking into a megaphone to me",

prompt : "Additional comment?"

},

"Need more info" : {

code : "MoreInfo",

summary : "Additional information needed. ",

prompt : "Additional comment?"

},

"Relisted" : {

code: "Relisted",

summary : "Relisted. ",

prompt : "Additional comment?"

},

"Clerk note" : {

code : "Clerknote",

summary : "Clerk note. ",

prompt : "Additional comment?"

},

"Clerk declined" : {

code : "Decline",

summary : "Clerk declined",

prompt : "Additional comment?"

},

"Clerk endorsed" : {

code : "Clerk endorsed",

summary : "Clerk endorsed. ",

prompt : "Additional comment?"

},

"Clerk self-endorsed" : {

code : "selfendorse",

summary : "Self-endorsed by clerk for Checkuser attention. ",

prompt : "Additional comment?"

},

"Completed" : {

code : "Completed",

summary : "Completed. ",

prompt : "Additional comment?"

},

"Not possible" : {

code : "Impossible",

summary : "Not possible. ",

prompt : "Additional comment?"

},

"CU in progress" : {

code : "Inprogress",

summary : "In progress. ",

prompt : "Additional comment?"

},

"CU confirmed" : {

code : "Confirmed",

summary : "Confirmed. ",

prompt : "Additional comment?"

},

"CU confirmed-nc" : {

code : "Confirmed-nc",

summary : "Confirmed with respect to the named user(s), No comment with respect to IP address(es). ",

prompt : "Additional comment?"

},

"CU likely" : {

code : "Likely",

summary : "Likely. ",

prompt : "Additional comment?"

},

"CU unlikely" : {

code : "Unlikely",

summary : "Unlikely. ",

prompt : "Additional comment?"

},

"CU possible" : {

code : "Possible",

summary : "Possible. ",

prompt : "Additional comment?"

},

"CU indistingish" : {

code : "Tallyho",

summary : "Technically indistinguishable. ",

prompt : "Additional comment?"

},

"CU inconclusive" : {

code : "Inconclusive",

summary : "Inconclusive. ",

prompt : "Additional comment?"

},

"CU no sleepers" : {

code : "Nosleepers",

summary : "No sleepers immediately visible. ",

prompt : "Additional comment?"

},

"CU declined" : {

code : "Declined",

summary : "Declined. ",

prompt : "Additional comment?"

},

"CU unnecessary" : {

code : "Unnecessary",

summary : "Unnecessary. ",

prompt : "Additional comment?"

},

"CU behave" : {

code : "behav",

summary : "Behavioural evidence needs evaluation. ",

prompt : "Additional comment?"

},

"CU no comment" : {

code : "nc",

summary : "No comment with respect to IP address(es). ",

prompt : "Additional comment?"

},

"CU no comment X" : {

code : "nc|$1",

summary : "No comment regarding ",

prompt: "No comment regarding...?"

},

"CU stale" : {

code : "StaleIP",

summary : "Stale (too old). ",

prompt : "Additional comment?"

},

"CU crystal ball" : {

code : "Crystalball",

summary : "CheckUser is not a crystal ball. ",

prompt : "Additional comment?"

},

"CU pixie dust" : {

code : "Pixiedust",

summary : "CheckUser is not magic pixie dust. ",

prompt : "Additional comment?"

},

"CU fishing" : {

code : "Fishing",

summary : "CheckUser is not for fishing. ",

prompt : "Additional comment?"

},

"CU 8-ball" : {

code : "8ball",

summary : "The CheckUser Magic 8-Ball says: ",

prompt : "The CheckUser Magic 8-Ball says...?"

}

};

} else if (/Wikipedia:Requests_for_permissions\/(?!Rollback|Confirmed|Page_mover)/.test(mw.config.get('wgPageName'))) {

// base responses for permission pages

indentation = "::";

templateName = "";

defaultPrompt = "Reason?";

responses = {

"Done" : {

code : "done",

summary : "Done"

},

"Not done" : {

code : "not done",

summary : "Not done. ",

prompt : "Reason?"

},

"Revoked" : {

code : "revoked",

summary : "Revoked. "

},

"Comment" : {

code : "comment",

summary : "Comment. ",

prompt : "Comment:"

},

"Admin note" : {

code : "administrator note",

summary : "Admin note. ",

prompt : "Administrator note:"

}

};

} else switch (mw.config.get('wgPageName')) {

case 'Wikipedia:Requests_for_permissions/Rollback':

indentation = "::";

templateName = "subst:RFPR";

defaultPrompt = "Admin's name?";

responses = {

"Done" : {

code : "d",

summary : "Done"

},

"Already done" : {

code : "ad|$1",

summary : "Already done "

},

"Revoked" : {

code : "r",

summary : "Revoked"

},

"Not done" : {

code : "nd",

summary : "Not done ",

prompt : "Reason?"

},

"Not done (exp)" : {

code : "exp|$1",

summary : "Not done: mainspace edit count too low ",

prompt : "Number of mainspace edits?"

},

"Not done (rvw)" : {

code : "rvw",

summary : "Not done: recently requested pending changes reviewer"

},

"Not done (nrb)" : {

code : "nrb",

summary : "Not done: not what rollback is for"

}

};

break;

case 'Wikipedia:Requests_for_permissions/Confirmed':

indentation = "::";

templateName = "subst:RFPC";

responses = {

"Done" : {

code : "d",

summary : "Done"

},

"Already done" : {

code : "ad",

summary : "Already done",

id : "adc"

},

"Revoked" : {

code : "r",

summary : "Revoked"

},

"Not done" : {

code : "nd",

summary : "Not done ",

prompt : "Reason?"

},

"Not done (no reason)" : {

code : "ndng",

summary : "Not done: No reason given."

},

"Not done (95%)" : {

code : "nd95",

summary : "Not done: please wait, 95% of articles are unprotected"

},

"Not done (file)" : {

code : "ndf",

summary : "Not done: you should upload to commons or request at WP:FFU"

},

"Not done (promoblock)" : {

code : "ndpromou",

summary : "Not done: blocked for having a promotional username"

},

"Not done (no reply)" : {

code : "ndnr",

summary : "Not done: no response to inquiry"

},

"Not done (per above)" : {

code : "ndpa",

summary : "Not done: as explained by others"

},

"Not done (IP)" : {

code : "ip",

summary : "Not done: anonymous users cannot be granted additional rights"

},

"Question - why?" : {

code : "why",

summary : "Question: why do you think you are not confirmed?"

}

};

break;

case 'Wikipedia:Requests_for_permissions/Page_mover':

indentation = "::";

templateName = "subst:RFPPM";

responses = {

"Done" : {

code : "d",

summary : "Done"

},

"Already done" : {

code : "ad",

summary : "Already done",

id : "adc"

},

"Revoked" : {

code : "r",

summary : "Revoked"

},

"Not done" : {

code : "nd",

summary : "Not done ",

prompt : "Reason?"

},

"Not done (exp)" : {

code : "exp|$1",

summary : "Not done: edit count too low ",

prompt : "Number of total edits?"

},

"Not done (npm)" : {

code : "npm",

summary : "Not done: not what page mover is for"

}

};

break;

case 'Wikipedia:Requests_for_page_protection':

case 'Wikipedia:Requests_for_page_protection/Increase':

case 'Wikipedia:Requests_for_page_protection/Decrease':

templateName = "RFPP";

defaultPrompt = "Duration?";

responses = {

"Checking" : {

code : "ch",

summary : "Checking"

},

"Semi-protected" : {

code : "s|$1",

summary : "Semi-protected "

},

"Pending protected" : {

code : "pd|$1",

summary : "Pending-changes protected "

},

"Fully protected" : {

code : "p|$1",

summary : "Fully protected "

},

"Move protected" : {

code : "m|$1",

summary : "Move protected "

},

"Creation protected" : {

code : "t|$1",

summary : "Creation protected "

},

"Template protected" : {

code : "tp|$1",

summary : "Template protected "

},

"EC protected" : {

code : "ec|$1",

summary : "Extended confirmed protected "

},

"Done" : {

code : "do",

summary : "Done"

},

"Not done" : {

code : "no",

summary : "Not done"

},

"Declined" : {

code : "d",

summary : "Declined. ",

prompt : "Reason?"

},

"Declined nea" : {

code : "nea",

summary : "Declined – not enough recent disruptive activity"

},

"Declined aiv" : {

code : "aiv",

summary : "Declined – warn user and report to WP:AIV"

},

"Declined np" : {

code : "np",

summary : "Declined – pages are not protected preemptively"

},

"Declined nhr" : {

code : "nhr",

summary : "Declined – not a high-risk template"

},

"Declined dr" : {

code : "dr",

summary : "Declined – consider dispute resolution"

},

"Declined ut" : {

code : "ut",

summary : "Declined – user talk pages not subject to severe vandalism"

},

"Declined her" : {

code : "her",

summary : "Declined – edit rate too high for pending changes"

},

"Users blocked" : {

code : "b",

summary : "User(s) blocked"

},

"Users reblocked" : {

code : "tb",

summary : "User(s) re-blocked with talk page editing disallowed"

},

"Unprotected" : {

code : "u",

summary : "Unprotected"

},

"Not unprotected" : {

code : "nu",

summary : "Not unprotected"

},

"Already unprot'd" : {

code : "au|$1",

summary : "Already unprotected by ",

prompt : "Admin's name?"

},

"Already prot'd" : {

code : "ap|$1",

summary : "Already protected by ",

prompt : "Admin's name?"

},

"Already done" : {

code : "ad|$1",

summary : "Already done by ",

prompt : "Admin's name?"

},

"Question" : {

code : "q",

summary : "Question ",

prompt : "Question:"

},

"Note" : {

code : "n",

summary : "Note ",

prompt : "Note:"

},

"Archive" : {

code : "ar",

summary : "Request immediate archiving"

},

"Withdrawn" : {

code : "w",

summary : "Withdrawn by requestor"

},

"Edit warring" : {

code : "ew",

summary : "Consider the edit warring noticeboard"

}

};

break;

case "Wikipedia:Administrators'_noticeboard/Edit_warring":

anew = true;

indentation = "*";

templateName = "AN3";

defaultPrompt = "Duration?";

responses = {

"Blocked" : {

code : "b|$1",

summary : "Blocked "

},

"Nom. blocked" : {

code : "nb|$1",

summary : "Nominator blocked "

},

"Both blocked" : {

code : "bb|$1",

summary : "Both blocked "

},

"Already blocked" : {

code : "ab",

summary : "Already blocked"

},

"No violation" : {

code : "nv",

summary : "No violation"

},

"No 3RR vio" : {

code : "nve",

summary : "Three-revert rule not applicable"

},

"Stale" : {

code : "s",

summary : "Stale"

},

"Declined" : {

code : "d",

summary : "Declined ",

prompt : "Reason?"

},

"Malformed report" : {

code : "mr",

summary : "Declined – malformed report"

},

"Not blocked" : {

code : "not",

summary : "Not blocked"

},

"Page protected" : {

code : "p",

summary : "Page protected"

},

"Page prot'd dr" : {

code : "pe",

summary : "Page protected – consider dispute resolution"

},

"Warned" : {

code : "w",

summary : "Warned user(s)"

},

"Note" : {

code : "n",

summary : "Note. ",

prompt : "Note:",

unresolved : true

},

"Comment" : {

code : "c",

summary : "Comment. ",

prompt : "Comment:",

unresolved : true

}

};

break;

}

if ( $( ".ext-discussiontools-replytool-enabled" )[ 0 ] && !mw.config.get('wgEditMessage') ) {

inline = false;

}

}

function respondFn(e) {

var response = e.data.response;

var code = response.code, comment = "", value = "", value2 = "";

if (code.indexOf("$1") !== -1) {

value = prompt((response.prompt ? response.prompt : defaultPrompt) +

(response.valueRequired ? '' : " (optional, hit OK to omit)"));

if (value === null) return false;

code = code.replace('$1', value);

if (code.indexOf("$2") !== -1) {

value2 = prompt(response.prompt2 + (response.value2Required ? '' : " (optional, hit OK to omit)"));

if (value2 === null) return false;

code = code.replace('$2', value2);

}

} else if (response.prompt) {

value = prompt(response.prompt + " (optional, hit OK to omit)");

if (value === null) return false;

if (value.length) comment = " " + value;

}

//var $textarea = $(".oo-ui-inputWidget-input");

var responseStr = "{{" + (templateName ? templateName + "|" : "") + code.replace(/\|$/, '') + "}}" + comment + " ~~~~";

ve.init.target.replyWidget.focus();

var surface = ve.init.target.getSurface();

var startPostion = new ve.Range( 1 );

var surfaceModel = ve.init.target.getSurface().getModel();

var fragment = surfaceModel.getLinearFragment( startPostion );

fragment.insertContent( responseStr );

if (anew && !unresolved) {

var textArray = $textarea.val().split("\n");

$textarea.val(

textArray[0].replace('(Result: )','(Result: ' + (response.summary[0].toUpperCase() + response.summary.slice(1) + value).trim() + ')') +

'\n' + $textarea.val().split("\n").splice(1).join("\n")

);

}

if (response.summary.indexOf('$1') !== -1) {

response.summary = response.summary.replace('$1', value.trim());

if (response.summary.indexOf('$2') !== -1) {

response.summary = response.summary.replace('$2', value2.trim());

}

} else {

response.summary = response.summary + value.trim();

}

$("#wpSummary").val($("#wpSummary").val() + response.summary + " (using responseHelper)");

}

}());

//