User:MoneyCyborg/summaryButtons.js

// // [ru.wikipedia.org/w/index.php?title=MediaWiki:Gadget-summaryButtons.js]

function initSummaryButtons( mode ) { function insertSummary( txt ) { if ( typeof txt !== 'string' ) { txt = this.title; }		if ( typeof summaryItemsSeparator === 'undefined' ) { window.summaryItemsSeparator = ','; }		var val = $summary.val; var regExp = new RegExp( '(^|[,;.?!/]) ?' + mw.RegExp.escape( txt ) ); if ( regExp.test( val ) ) { return; }		if ( /[^,; \/]$/.test( val ) ) { val += summaryItemsSeparator; }		if ( /[^ ]$/.test( val ) ) { val += ' '; }		$summary.val( val + txt ).focus.change; }	mode = mode || 'classic'; if ( typeof summaryButtons === 'undefined' ) { window.summaryButtons = { hideDefaultButtons: false };	}	var veSaveDialog, $summaryWrapper, $summary; if ( mode === 'classic' ) { $summaryWrapper = $( '#wpSummaryWidget' ); $summary = $( '#wpSummary' ); } else { veSaveDialog = ve.init.target.saveDialog; $summaryWrapper = veSaveDialog.editSummaryInput.$element; $summary = veSaveDialog.editSummaryInput.$input; }	var $summaryButtons = $( ' ' ) .addClass( 'summaryButtons' ) .insertAfter( $summaryWrapper ); var $groups = $( ' ' ) .addClass( 'summaryButtons-groups' ) .appendTo( $summaryButtons ); window.addSumButton = window.addSummaryButton = function ( label, text, group ) { group = group || 'custom'; // default is 'default' var $group = $( '.summaryButtons-group-' + group ); if ( !$group.length ) { $group = $( ' ' ) .addClass( 'mw-ui-button-group summaryButtons-group summaryButtons-group-' + group ) .appendTo( $groups ); }		$( '' ) .attr( 'role', 'button' ) .attr( 'title', text ) .addClass( 'mw-ui-button summaryButtons-button' ) .html( label ) .click( insertSummary ) .appendTo( $group ); };	var buttons = mode !== 'visual' ? // Buttons for normal editing mode [			'सुधार| किया गया', 'सफाई| की गयी', 'विस्तार| किया गया', 'अनुवाद| किया गया', 'अद्यतन| किया गया', 'विकिफाई| किया गया', 'वर्तनी| सुधार', 'भाषा/व्याकरण| संबंधी सुधार किया गया', '+विकिकड़ी| जोड़ी गयी', '-विकिकड़ी| हटाई गयी', 'संदर्भ| जोड़ा/सुधारा गया', 'बाहरी कड़ी| जोड़ी गयी', 'स्पैम/फालतू | कड़ी हटाई गयी', 'चित्र| जोड़ा गया', 'ज्ञानसंदूक| जोड़ा गया', '+श्रेणी| जोड़ी गयी', '-श्रेणी| हटाई गयी', '±श्रेणी| सुधार किया गया' ] :		// Buttons for the visual editor - without buttons //for discussions (visual editor is not intended for use on discussion pages) [			'सुधार| किया गया', 'सफाई| की गयी', 'विस्तार| किया गया', 'अनुवाद| किया गया', 'अद्यतन| किया गया', 'विकिफाई| किया गया', 'वर्तनी| सुधार', 'भाषा/व्याकरण| संबंधी सुधार किया गया', '+विकिकड़ी| जोड़ी गयी', '-विकिकड़ी| हटाई गयी', 'संदर्भ| जोड़ा/सुधारा गया', 'बाहरी कड़ी| जोड़ी गयी', 'स्पैम/फालतू | कड़ी हटाई गयी', 'चित्र| जोड़ा गया', 'ज्ञानसंदूक| जोड़ा गया', '+श्रेणी| जोड़ी गयी', '-श्रेणी| हटाई गयी', '±श्रेणी| सुधार किया गया' ];	if ( !summaryButtons.hideDefaultButtons ) { $.each(			buttons,			function ( i, s ) {				addSummaryButton( s.replace( /\|.*/,  ), s.replace( /\|/,  ), 'default' );			}		); }	$( '' ) .attr( 'href', 'https://en.wikipedia.org/wiki/User:MoneyCyborg/summaryButtons' ) .attr( 'target', '_blank' ) .attr( 'title', 'संपादन सारांश बटन गैजेट' ) .attr( 'tabindex', '-1' ) .addClass( 'mw-ui-button mw-ui-quiet summaryButtons-info-link' ) .text( '?' ) .appendTo( $summaryButtons ); // Эти стили находятся здесь, а не в отдельном CSS, потому что на страницах, где кнопок нет, // они вредны, а за тем, где запускается CSS, мы не можем проследить. mw.util.addCSS( '\		.mw-editform #wpSummaryWidget {\			margin-bottom: 0;\		}\		\		.mw-editform .editCheckboxes {\			margin-top: .85714em;\		}\	' ); if ( mode !== 'classic' && !additionalCSS ) { additionalCSS = mw.util.addCSS( '\			.ve-ui-mwSaveDialog-savePanel .summaryButtons {\				margin-top: 2px;\			}\			\			.ve-ui-mwSaveDialog-savePanel .ve-ui-mwSaveDialog-options {\				border-top: 1px solid #c8ccd1;\				border-radius: 2px;\			}\		' ); veSaveDialog.updateSize; }	mw.hook( 'summaryButtons' ).fire; }

var additionalCSS; if ( window.ve && ve.init && ve.init.target && ve.init.target.active || $( '.ve-loading' ).length ) { mw.hook( 've.saveDialog.stateChanged' ).add( function {		if ( !mw.config.get( 'wgArticleId' ) || $( '.summaryButtons' ).length ) return;		initSummaryButtons( ve.init.target.getSurface.getMode );	} ); } else if ( [ 'edit', 'submit' ].indexOf( mw.config.get( 'wgAction' ) ) !== -1 ) { $( function {		var frm = document.getElementById( 'editform' );		if ( !mw.config.get( 'wgArticleId' ) || !frm || $( frm.wpSection ).val === 'new' ) return;		initSummaryButtons( 'classic' );	} ); } //