Javascript examples/DefaultSummaries
From Linkwiki
| tbd @ |
|---|
/** ============================================================
* START Defaultsummaries
* adds selection boxes for default edit summaries
*
* @source https://en.wikipedia.org/wiki/MediaWiki:Gadget-defaultsummaries.js
* @version 01.08.2024, adapted for Wiki Aventurica
* @author [[wpen:User:ErrantX]], [[wpen:User:MC10]] on https://en.wikipedia.org
*/
( function () { // Wrap with anonymous function
var $summaryBox = $( '#wpSummary' ),
minorSummaries = [
'Interne Links korrigiert',
'Rechtschreibung/Grammatik/Zeichensetzung korrigiert',
'Formatfehler korrigiert',
'Inhaltlicher Fehler korrigiert',
'Unbegründete Inhaltsentfernung zurückgesetzt',
'Spam/Vandalismus/Test zurückgesetzt'
],
articleSummaries = [
'Inhalt hinzugefügt',
'Quellen hinzugefügt',
'Kategorien überarbeitet',
'Externe Links überarbeitet',
'Format überarbeitet',
'Artikel überarbeitet',
'[[Hilfe:Quellen|Unbelegte]] Spielweltinformationen entfernt'
],
nonArticleSummaries = [
'Seite überarbeitet',
'Fehler korrigiert'
],
talkPageSummaries = [
'Frage',
'Antwort',
'Meinung',
'Kommentar',
'Vorschlag',
'Hinweis',
'Zustimmung',
'Dank'
];
function addOptionsToDropdown( dropdown, optionTexts ) {
dropdown.menu.addItems( optionTexts.map( function ( optionText ) {
return new OO.ui.MenuOptionWidget( { label: optionText } );
} ) );
}
function onSummarySelect( option ) {
// Save the original value of the edit summary field
var editsummOriginalSummary = $summaryBox.val(),
canned = option.getLabel(),
newSummary = editsummOriginalSummary;
// Append old edit summary with space, if exists,
// and last character != space
if ( newSummary.length !== 0 && newSummary.charAt( newSummary.length - 1 ) !== ' ' ) {
newSummary += ' ';
}
newSummary += canned;
$summaryBox.val( newSummary ).trigger( 'change' );
}
function getSummaryDropdowns() {
// For convenience, add a dropdown box with some canned edit
// summaries to the form.
var namespace = mw.config.get( 'wgNamespaceNumber' ),
dropdown = new OO.ui.DropdownWidget( {
label: 'Übliche Bearbeitungszusammenfassungen - bitte nutzen'
} ),
minorDropdown = new OO.ui.DropdownWidget( {
label: 'Zusammenfassungen für kleine Änderungen'
} );
dropdown.menu.on( 'select', onSummarySelect );
minorDropdown.menu.on( 'select', onSummarySelect );
addOptionsToDropdown( minorDropdown, minorSummaries );
if ( namespace === 0 ) {
addOptionsToDropdown( dropdown, articleSummaries );
} else {
addOptionsToDropdown( dropdown, nonArticleSummaries );
if ( namespace % 2 !== 0 ) {
addOptionsToDropdown( dropdown, talkPageSummaries );
} else if (namespace === 118 ) {
addOptionsToDropdown( dropdown, articleSummaries );
}
}
return dropdown.$element.add( minorDropdown.$element );
}
// VisualEditor
mw.hook( 've.saveDialog.stateChanged' ).add( function () {
var target, $saveOptions, $dropdowns;
// .ve-init-mw-viewPageTarget-saveDialog-checkboxes
if ( $( 'body' ).data( 'wppresent' ) ) {
return;
}
$( 'body' ).data( 'wppresent', 'true' );
target = ve.init.target;
$saveOptions = target.saveDialog.$saveOptions;
$summaryBox = target.saveDialog.editSummaryInput.$input;
if ( !$saveOptions.length ) {
return;
}
$dropdowns = getSummaryDropdowns();
$saveOptions.before( $dropdowns );
} );
// WikiEditor
$.when( mw.loader.using( 'oojs-ui-core' ), $.ready ).then( function () {
var $dropdowns,
$editCheckboxes = $( '.editCheckboxes' );
// If we failed to find the editCheckboxes class
if ( !$editCheckboxes.length ) {
return;
}
$dropdowns = getSummaryDropdowns();
$dropdowns.css( {
width: '48%',
'padding-bottom': '1em'
} );
$editCheckboxes.before( $dropdowns );
} );
}() );
/*
* END Defaultsummaries
* ============================================================
*/
