MediaWiki:Gadget-defaultsummaries.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/* _____________________________________________________________________________ * | | * | === WARNING: GLOBAL GADGET FILE === | * | Changes to this page affect many users. | * | Please discuss changes on the talk page or on [[WT:Gadget]] before editing. | * |_____________________________________________________________________________| * * Imported as of 09/06/2011 from [[User:ErrantX/defaultsummaries.js]] * Edited version from [[User:MC10/defaultsummaries.js]] * Implements default edit summary dropdown boxes */ /* global mw, ve */ /* eslint-disable no-jquery/no-global-selector */ ( function () { // Wrap with anonymous function var $summaryBox = $( '#wpSummary' ), minorSummaries = [ 'Spelling/grammar/punctuation/typographical correction', 'Fixing style/layout errors', '[[Help:Reverting|Reverting]] [[Wikipedia:Vandalism|vandalism]] or test edit', '[[Help:Reverting|Reverting]] unexplained content removal', 'Copyedit (minor)' ], articleSummaries = [ 'Expanding article', 'Adding/improving reference(s)', 'Adding/removing wikilink(s)', 'Clean up/copyedit', 'Adding/removing category/ies', 'Adding/removing external link(s)', 'Removing unsourced content' ], nonArticleSummaries = [ 'Reply', 'Comment', 'Suggestion' ], talkPageSummaries = [ '[[Wikipedia:WikiProject|WikiProject]] tagging', '[[Wikipedia:WikiProject|WikiProject]] assessment' ]; 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: 'Common edit summaries – click to use' } ), minorDropdown = new OO.ui.DropdownWidget( { label: 'Common minor edit summaries – click to use' } ); 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 && namespace !== 3 ) { 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 ); } ); }() );