מדיה ויקי:FixHistPage.js

מתוך ויקיפדיה, האנציקלופדיה החופשית

הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
  • אופרה: ללחוץ על Ctrl-F5.
( function () {
	
	'use strict';
	
	var isHist =
		mw.config.get( 'wgAction' ) === 'history' &&
		mw.config.get( 'wgArticleId' );
	
	if ( !isHist && mw.config.get( 'wgCanonicalSpecialPageName' ) !== 'Log' ) {
		return;
	}
	
	$( fixHistPage );
	
	function fixHistPage() {
		
		var selectors = {
			toggleControls: '.mw-checkbox-toggle-controls',
			editTagsBtn: isHist
				? '.mw-history-editchangetags-button'
				: '.mw-log-editchangetags-button',
			deleteRevBtn: isHist
				? '.mw-history-revisiondelete-button'
				: '.mw-log-deleterevision-button',
			checkBoxes: isHist
				? 'li[ data-mw-revid ] > input[ name^="ids" ][ type="checkbox" ]'
				: 'li[ data-mw-logid ] > input[ name^="ids" ][ type="checkbox" ]'
		};
		
		var $advancedControls = $(
			selectors.toggleControls + ', ' +
			selectors.editTagsBtn + ', ' +
			selectors.deleteRevBtn + ', ' +
			selectors.checkBoxes
		);
		
		if ( !$advancedControls.length ) {
			return;
		}
		
		$advancedControls.hide();
		
		var $topButtonsArea;
		
		if ( isHist ) {
			
			$topButtonsArea = $( '.mw-history-compareselectedversions' ).eq( 0 )
				.css( 'margin-bottom', '6.5px' );
			
		}
		
		var advancedOptionsBtnClass = isHist
			? 'history-show-advanced-btn'
			: 'log-show-advanced-btn';
		
		var advancedOptionsBtnText = mw.config.get( 'wgUserLanguage' ) === 'he'
			? 'הצגת אפשרויות מתקדמות'
			: 'Show advanced options';
		
		var $advancedOptionsBtn = $( '<button>' )
			.addClass( [ 'cdx-button', advancedOptionsBtnClass ] )
			.attr( 'type', 'button' )
			.text( advancedOptionsBtnText );
		
		$advancedOptionsBtn.on( 'click', function () {
			
			$( '.' + advancedOptionsBtnClass ).hide();
			
			$advancedControls.fadeIn();
			
			if ( $topButtonsArea ) {
				$topButtonsArea.css( 'margin-bottom', '0' );
			}
			
		} );
		
		$( selectors.editTagsBtn ).after( $advancedOptionsBtn );
		
	}
	
} )();