ব্যবহারকারী:Jack who built the house/common.js

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে

লক্ষ্য করুন: প্রকাশ করার পর, পরিবর্তনগুলো দেখতে আপনাকে আপনার ব্রাউজারের ক্যাশে পরিষ্কার করার প্রয়োজন হতে পারে।

  • ফায়ারফক্স / সাফারি: পুনরায় লোড-এ ক্লিক করার সময় শিফট টিপে ধরে রাখুন, অথবা হয় Ctrl-F5 বা Ctrl-R টিপুন (ম্যাকে ⌘-R টিপুন)
  • গুগল ক্রোম: Ctrl-Shift-R (ম্যাকে ⌘-Shift-R) টিপুন
  • ইন্টারনেট এক্সপ্লোরার / এজ: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 টিপুন
  • অপেরা: Ctrl-F5 টিপুন।
function go() {
	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.util.escapeRegExp( 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 = $( '<div>' )
			.addClass( 'summaryButtons' )
			.insertAfter( $summaryWrapper );
		var $groups = $( '<div>' )
			.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 = $( '<div>' )
					.addClass( 'mw-ui-button-group summaryButtons-group summaryButtons-group-' + group )
					.appendTo( $groups );
			}
			
			$( '<a>' )
				.attr( 'role', 'button' )
				.attr( 'title', text )
				.addClass( 'mw-ui-button summaryButtons-button' )
				.html( label )
				.click( insertSummary )
				.appendTo( $group );
		};
		
		var buttons = mode !== 'visual' ?
			// সাধারণ সম্পাদনা মোডের জন্য বোতাম
			[
				'সংশোধন', 'সম্প্রসারণ', 'তথ্যসূত্র| যোগ/সংশোধন', 'পরিষ্কার|করণ', 'অনুবাদ',
				'রচনাশৈলী', 'বিষয়শ্রেণী', 'চিত্র', 'বিষয়বস্তু| যোগ', 'বানান| সংশোধন',
				'হালনাগাদ| করা হল', 'ট্যাগ| যোগ/বাতিল', 'অনুলিপি| সম্পাদনা', 'উত্তর| প্রদান', 'মন্তব্য| যোগ'
			] :
			// দৃশ্যমান সম্পাদনার জন্য বোতাম - আলোচনার জন্য কোনও বোতাম নেই
			// (দৃশ্যমান সম্পাদনা আলোচনার পৃষ্ঠাগুলিতে ব্যবহারের উদ্দেশ্যে নয়)
			[
				'সংশোধন', 'সম্প্রসারণ', 'তথ্যসূত্র| যোগ/সংশোধন', 'পরিষ্কার|করণ', 'অনুবাদ',
				'রচনাশৈলী', 'বিষয়শ্রেণী', 'চিত্র', 'বিষয়বস্তু| যোগ', 'বানান| সংশোধন',
				'হালনাগাদ| করা হল', 'ট্যাগ| যোগ/বাতিল', 'অনুলিপি| সম্পাদনা'
			];
		
		if ( !summaryButtons.hideDefaultButtons ) {
			$.each(
				buttons,
				function ( i, s ) {
					addSummaryButton( s.replace( /\|.*/, '' ), s.replace( /\|/, '' ), 'default' );
				}
			);
		}
		$( '<a>' )
			.attr( 'href', 'https://bn.wikipedia.org/wiki/উইকিপিডিয়া:গ্যাজেট/সম্পাদনা_সারাংশ_বোতাম' )
			.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' );
		} );
	}
}

if ( !( window.ve && ve.init && ve.init.target && ve.init.target.active || $( '.ve-loading' ).length ) ) {
	go();
}
mw.hook( 've.activationComplete' ).add( function () {
	go();
} );