MediaWiki:Gadget-Twinkle.js: Difference between revisions

Jump to navigation Jump to search
m
Undo revision 36803 by Abhidevananda (talk)
m (Testing new twinkle.js)
 
m (Undo revision 36803 by Abhidevananda (talk))
Line 15: Line 15:
  *
  *
  * This is AzaToth's Twinkle, the popular script sidekick for newbies, admins, and
  * This is AzaToth's Twinkle, the popular script sidekick for newbies, admins, and
  * every Wikipedian in between. Visit [[WP:TW]] for more information.
  * every Wikipedian in between. Visit [[SV:TW]] for more information.
  */
  */


Line 45: Line 45:
Twinkle.defaultConfig.twinkle = {
Twinkle.defaultConfig.twinkle = {
// General
// General
summaryAd: " ([[WP:TW|TW]])",
summaryAd: " ([[SV:TW|TW]])",
deletionSummaryAd: " ([[WP:TW|TW]])",
deletionSummaryAd: " ([[SV:TW|TW]])",
protectionSummaryAd: " ([[WP:TW|TW]])",
protectionSummaryAd: " ([[SV:TW|TW]])",
userTalkPageMode: "window",
userTalkPageMode: "window",
dialogLargeFont: false,
dialogLargeFont: false,
// ARV
spiWatchReport: "yes",
// Block
blankTalkpageOnIndefBlock: false,
// Fluff (revert and rollback)
// Fluff (revert and rollback)
openTalkPage: [ "agf", "norm", "vand" ],
openTalkPage: [ "agf", "norm", "vand" ],
Line 73: Line 69:
// CSD
// CSD
speedySelectionStyle: "buttonClick",
speedySelectionStyle: "buttonClick",
speedyPromptOnG7: false,
watchSpeedyPages: [ "g3", "g5", "g10", "g11", "g12" ],
watchSpeedyPages: [ "g3", "g5", "g10", "g11", "g12" ],
markSpeedyPagesAsPatrolled: true,
markSpeedyPagesAsPatrolled: true,
// these next two should probably be identical by default
// these next two should probably be identical by default
notifyUserOnSpeedyDeletionNomination:    [ "db", "g1", "g2", "g3", "g4", "g6", "g10", "g11", "g12", "g13", "a1", "a2", "a3", "a5", "a7", "a9", "a10", "a11", "f1", "f2", "f3", "f7", "f9", "f10", "u3", "u5", "t2", "t3", "p1", "p2" ],
notifyUserOnSpeedyDeletionNomination:    [ "db", "g1", "g2", "g3", "g4", "g6", "g10", "g11", "g12", "g13", "a1", "a2", "a3", "a5", "a7", "a9", "a10", "a11", "f1", "f2", "f3", "f7", "f9", "f10", "u3", "t2", "t3", "p1", "p2" ],
welcomeUserOnSpeedyDeletionNotification: [ "db", "g1", "g2", "g3", "g4", "g6", "g10", "g11", "g12", "g13", "a1", "a2", "a3", "a5", "a7", "a9", "a10", "a11", "f1", "f2", "f3", "f7", "f9", "f10", "u3", "u5", "t2", "t3", "p1", "p2" ],
welcomeUserOnSpeedyDeletionNotification: [ "db", "g1", "g2", "g3", "g4", "g6", "g10", "g11", "g12", "g13", "a1", "a2", "a3", "a5", "a7", "a9", "a10", "a11", "f1", "f2", "f3", "f7", "f9", "f10", "u3", "t2", "t3", "p1", "p2" ],
promptForSpeedyDeletionSummary: [ "db", "g1", "g2", "g3", "g4", "g6", "g7", "g8", "g10", "g11", "g12", "a1", "a2", "a3", "a5", "a7", "a9", "a10", "a11", "f2", "f4", "f7", "f8", "f10", "u5", "t2", "t3", "p1", "p2" ],
promptForSpeedyDeletionSummary: [ "db", "g1", "g2", "g3", "g4", "g6", "g7", "g8", "g10", "g11", "g12", "a1", "a2", "a3", "a5", "a7", "a9", "a10", "a11", "f2", "f4", "f7", "f8", "f10", "t2", "t3", "p1", "p2" ],
openUserTalkPageOnSpeedyDelete: [ "db", "g1", "g2", "g3", "g4", "g5", "g10", "g11", "g12", "a1", "a3", "a7", "a9", "a10", "a11", "f3", "f7", "f9", "u3", "u5", "t2", "p1" ],
openUserTalkPageOnSpeedyDelete: [ "db", "g1", "g2", "g3", "g4", "g5", "g10", "g11", "g12", "a1", "a3", "a7", "a9", "a10", "a11", "f3", "f7", "f9", "u3", "t2", "p1" ],
deleteTalkPageOnDelete: false,
deleteTalkPageOnDelete: false,
deleteRedirectsOnDelete: true,
deleteRedirectsOnDelete: true,
Line 89: Line 86:
noLogOnSpeedyNomination: [ "u1" ],
noLogOnSpeedyNomination: [ "u1" ],
// Unlink
// Unlink
unlinkNamespaces: [ "0", "10", "100", "118" ],
unlinkNamespaces: [ "0", "100" ],
// Warn
// Warn
defaultWarningGroup: "1",
defaultWarningGroup: "1",
showSharedIPNotice: true,
showSharedIPNotice: true,
watchWarnings: true,
watchWarnings: true,
blankTalkpageOnIndefBlock: false,
customWarningList: [],
customWarningList: [],
// XfD
// XfD
Line 103: Line 101:
revertMaxRevisions: 50,
revertMaxRevisions: 50,
batchdeleteChunks: 50,
batchdeleteChunks: 50,
batchDeleteMinCutOff: 5,
batchMax: 5000,
batchMax: 5000,
batchProtectChunks: 50,
batchProtectChunks: 50,
batchProtectMinCutOff: 5,
batchundeleteChunks: 50,
batchundeleteChunks: 50,
batchUndeleteMinCutOff: 5,
deliChunks: 500,
deliChunks: 500,
deliMax: 5000,
deliMax: 5000,
Line 240: Line 241:


//verify/normalize input
//verify/normalize input
var skin = mw.config.get("skin");
type = ( skin === "vector" && type === "menu" && ( navigation === "left-navigation" || navigation === "right-navigation" )) ? "menu" : "";
type = ( skin === "vector" && type === "menu" && ( navigation === "left-navigation" || navigation === "right-navigation" )) ? "menu" : "";
var outerDivClass;
var outerDivClass;
Line 250: Line 250:
navigation = "mw-panel";
navigation = "mw-panel";
}
}
outerDivClass = ( navigation === "mw-panel" ) ? "portal" : ( type === "menu" ? "vectorMenu" : "vectorTabs" );
outerDivClass = ( navigation === "mw-panel" ) ? "portal" : ( type === "menu" ? "vectorMenu extraMenu" : "vectorTabs extraMenu" );
innerDivClass = ( navigation === "mw-panel" ) ? "body" : ( type === "menu" ? "menu" : "" );
innerDivClass = ( navigation === "mw-panel" ) ? "body" : ( type === "menu" ? "menu" : "" );
break;
break;
Line 271: Line 271:
outerDiv.className = outerDivClass + " emptyPortlet";
outerDiv.className = outerDivClass + " emptyPortlet";
outerDiv.id = id;
outerDiv.id = id;
if ( type === "menu" ) {
// Fix drop-down arrow image in Vector skin
outerDiv.style.backgroundImage = 'url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAQCAMAAAAlM38UAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA9QTFRFsbGxmpqa3d3deXl58/n79CzHcQAAAAV0Uk5T/////wD7tg5TAAAAMklEQVR42mJgwQoYBkqYiZEZAhiZUFRDxWGicEPA4nBRhNlAcYQokpVMDEwD6kuAAAMAyGMFQVv5ldcAAAAASUVORK5CYII=")';
outerDiv.style.backgroundPosition = "right 60%";
}
if ( nextnode && nextnode.parentNode === root ) {
if ( nextnode && nextnode.parentNode === root ) {
root.insertBefore( outerDiv, nextnode );
root.insertBefore( outerDiv, nextnode );
Line 294: Line 299:
});
});


span = document.createElement( "span" );
span.appendChild( document.createTextNode( text ) );
a.appendChild( span );
h5.appendChild( a );
h5.appendChild( a );
} else {
} else {
Line 300: Line 308:
outerDiv.appendChild( h5 );
outerDiv.appendChild( h5 );


if ( type === "menu" ) {
var innerDiv = document.createElement( "div" ); // Not strictly necessary with type vectorTabs, or other skins.
var innerDiv = document.createElement( "div" );
innerDiv.className = innerDivClass;
innerDiv.className = innerDivClass;
outerDiv.appendChild(innerDiv);
outerDiv.appendChild(innerDiv);
}


var ul = document.createElement( "ul" );
var ul = document.createElement( "ul" );
(innerDiv || outerDiv).appendChild( ul );
innerDiv.appendChild( ul );


return outerDiv;
return outerDiv;
Line 329: Line 335:
ev.preventDefault();
ev.preventDefault();
});
});
}
if ( $.collapsibleTabs ) {
$.collapsibleTabs.handleResize();
}
}
return link;
return link;
Line 403: Line 406:
    isOldIE = ( $.client.profile().name === 'msie' && $.client.profile().versionNumber < 9 );
    isOldIE = ( $.client.profile().name === 'msie' && $.client.profile().versionNumber < 9 );


// Prevent users that are not autoconfirmed from loading Twinkle as well.
    // Prevent users that are not autoconfirmed from loading Twinkle as well.
if ( isSpecialPage || isOldIE || !Twinkle.userAuthorized ) {
if ( isSpecialPage || isOldIE || !Twinkle.userAuthorized ) {
return;
return;
}
}
// Set custom Api-User-Agent header, for server-side logging purposes
Morebits.wiki.api.setApiUserAgent( 'Twinkle/2.0 (' + mw.config.get( 'wgDBname' ) + ')' );


// Load the modules in the order that the tabs should appears
// Load the modules in the order that the tabs should appears
Line 418: Line 418:
Twinkle.shared();
Twinkle.shared();
Twinkle.talkback();
Twinkle.talkback();
if ( Morebits.userIsInGroup('sysop') ) {
Twinkle.block();
}
// Deletion
// Deletion
Twinkle.speedy();
Twinkle.speedy();

Navigation menu