User:MusikAnimal/responseHelper.js: Difference between revisions

Content deleted Content added
fix default DASHBOARD link
use jQuery.textSelection on #wpTextbox1
 
(13 intermediate revisions by the same user not shown)
Line 6:
mw.loader.using( ['mediawiki.util'], function() {
// show shortcuts if not editing
if (!mw.config.get('wgEditMessage') && window.responseHelperNavLinks !== false) {
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");
Line 51:
function setResponses() {
if (/Wikipedia:Administrator_intervention_against_vandalism/.test(mw.config.get('wgPageName'))) {
indentation = ":*:";
templateName = "AIV";
inline = true;
Line 76:
},
"Stale warning" : {
code : "ow|X$1",
summary : "Stale warning. ",
prompt : "The last warning issued how long ago?"
Line 160:
},
"Stale report" : {
code : "e|X$1",
summary : "Stale report. ",
prompt : "How long since the user last edited?"
},
"Stale (was good)" : {
code : "sn|X$1",
summary : "Report was good but is now stale. ",
prompt : "How long since the user last edited?"
},
"Partially blocked" : {
code : "pb|$1",
summary : "User partially blocked. ",
prompt : "Which page(s) or namespaces was the user blocked from? (accepts wikitext)"
}
};
} 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",
Line 246 ⟶ 255:
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 [[WP:PROD|proposed deletion]], the article has been restored upon request."
},
"Done (G13)" : {
code : "g13",
summary : "Done: [[WP:DRAFTS|Draft]] or [[WP:AfC|AfC]] submission deleted under [[WP:G13|CSD G13]]."
},
"Done (G13 draft)" : {
code : "g13-draft",
summary : "Done: [[WP:DRAFTS|Draft]] deleted under [[WP:G13|CSD G13]]. Please continue to improve and submit for review."
},
"Done (AfC)" : {
code : "afc",
summary : "Done: [[WP:AfC|AfC]] submission deleted under [[WP:G13|CSD G13]]. Please edit to address any issues and re-submit."
},
"Done (AfC no review)" : {
code : "afc-ns",
summary : "Done: [[WP:AfC|AfC]] submission deleted under [[WP:G13|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 [[WP:CORP|notability guideline on companies]]"
},
"Not done (person)" : {
code : "ndp",
summary : "Not done: does not meet [[WP:BIO|notability guideline on people]]"
},
"Not done (music)" : {
code : "ndb",
summary : "Not done: does not meet [[WP:NMUSIC|notability guideline on music]]"
},
"Not done (G11)" : {
code : "g11",
summary : "Not done: [[WP:G11|blatant advertising]]"
},
"Not done (A7)" : {
code : "c|a7",
summary : "Not done: page was deleted as giving [[WP:A7|no indication of importance]]"
},
"Not done (copyvio)" : {
code : "copy|$1",
summary : "Not done: page is a [[WP:COPYVIO|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 [[$1|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"
}
};
Line 394 ⟶ 522:
},
"CU no comment X" : {
code : "nc|X$1",
summary : "No comment regarding ",
prompt: "No comment regarding...?"
Line 427 ⟶ 555:
if (/Wikipedia:Requests_for_permissions\/(?!Rollback|Confirmed|Page_mover)/.test(mw.config.get('wgPageName'))) {
// base responses for permission pages
indentation = "::";
templateName = "";
defaultPrompt = "Reason?";
Line 457 ⟶ 585:
} else switch (mw.config.get('wgPageName')) {
case 'Wikipedia:Requests_for_permissions/Rollback':
indentation = "::";
templateName = "subst:RFPR";
defaultPrompt = "Admin's name?";
Line 466 ⟶ 594:
},
"Already done" : {
code : "ad|X$1",
summary : "Already done "
},
Line 479 ⟶ 607:
},
"Not done (exp)" : {
code : "exp|X$1",
summary : "Not done: mainspace edit count too low ",
prompt : "Number of mainspace edits?"
Line 494 ⟶ 622:
break;
case 'Wikipedia:Requests_for_permissions/Confirmed':
indentation = "::";
templateName = "subst:RFPC";
responses = {
Line 514 ⟶ 642:
summary : "Not done ",
prompt : "Reason?"
},
"Not done (no reason)" : {
code : "ndng",
summary : "Not done: No reason given."
},
"Not done (95%)" : {
Line 546 ⟶ 678:
break;
case 'Wikipedia:Requests_for_permissions/Page_mover':
indentation = "::";
templateName = "subst:RFPPM";
responses = {
Line 568 ⟶ 700:
},
"Not done (exp)" : {
code : "exp|X$1",
summary : "Not done: edit count too low ",
prompt : "Number of total edits?"
Line 579 ⟶ 711:
break;
case 'Wikipedia:Requests_for_page_protection':
case 'Wikipedia:Requests_for_page_protection/Increase':
templateName = "RFPP";
case 'Wikipedia:Requests_for_page_protection/Decrease':
templateName = "subst:RFPP";
defaultPrompt = "Duration?";
responses = {
Line 587 ⟶ 721:
},
"Semi-protected" : {
code : "s|X$1",
summary : "Semi-protected "
},
"Pending protected" : {
code : "pd|X$1",
summary : "Pending-changes protected "
},
"Fully protected" : {
code : "p|X$1",
summary : "Fully protected "
},
"Move protected" : {
code : "m|X$1",
summary : "Move protected "
},
"Creation protected" : {
code : "t|X$1",
summary : "Creation protected "
},
"Template protected" : {
code : "tp|X$1",
summary : "Template protected "
},
"EC protected" : {
code : "ec|X$1",
summary : "Extended confirmed protected "
},
Line 626 ⟶ 760:
summary : "Declined. ",
prompt : "Reason?"
},
"Declined co" : {
code : "co",
summary : "Declined – likely will cause collateral damage"
},
"Declined nea" : {
Line 672 ⟶ 810:
},
"Already unprot'd" : {
code : "au|X$1",
summary : "Already unprotected by ",
prompt : "Admin's name?"
},
"Already prot'd" : {
code : "ap|X$1",
summary : "Already protected by ",
prompt : "Admin's name?"
},
"Already done" : {
code : "ad|X$1",
summary : "Already done by ",
prompt : "Admin's name?"
Line 717 ⟶ 855:
responses = {
"Blocked" : {
code : "b|X$1",
summary : "Blocked "
},
"Nom. blocked" : {
code : "nb|X$1",
summary : "Nominator blocked "
},
"Both blocked" : {
code : "bb|X$1",
summary : "Both blocked "
},
Line 789 ⟶ 927:
function respondFn(e) {
var response = e.data.response;
var code = response.code, comment = "", value = "", value2 = "";
 
if (code.indexOf("|X$1") !== -1) {
value = prompt((response.prompt ? response.prompt : defaultPrompt) +
(response.valueRequired ? '' : " (optional, hit OK to omit)"));
if (value === null) return false;
code = code.slicereplace(0'$1',( value.length ? -1 : -2)) + 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)");
Line 802 ⟶ 947:
 
var $textarea = $("#wpTextbox1");
var currentText = $textarea.valtextSelection( 'getContents' );
var responseStr = indentation + "{{" + (templateName ? templateName + "|" : "") + code.replace(/\|$/, '') + "}}" + comment + " ~~~~";
 
if (inline) {
var caretPos = $textarea[0].selectionStarttextSelection('getCaretPosition');
$textarea.valtextSelection( 'setContents', currentText.substring(0, caretPos) + responseStr + currentText.substring(caretPos) );
} else if (spi) {
$textarea.valtextSelection(
'setContents',
currentText.replace(/(\n----<\!---|$)/, responseStr + "\n$&")
);
} else {
$textarea.valtextSelection( 'setContents', currentText + responseStr );
}
 
if (anew && !unresolved) {
var textArray = $textarea.valtextSelection( 'getContents' ).split("\n");
$textarea.valtextSelection(
'setContents',
textArray[0].replace('(Result: )','(Result: ' + (response.summary[0].toUpperCase() + response.summary.slice(1) + value).trim() + ')') +
'\n' + $textarea.valtextSelection( 'getContents' ).split("\n").splice(1).join("\n")
);
}
 
if (response.summary.indexOf('$1') !== -1) {
$("#wpSummary").val($("#wpSummary").val() + (response.summary + value).trim() + " (using [[User:MusikAnimal/responseHelper|responseHelper]])");
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 [[User:MusikAnimal/responseHelper|responseHelper]])");
}
}());