Մասնակից:ԱշոտՏՆՂ/Климат местности-Եղանակի աղյուսակ.js

Ծանուցում. Հիշելուց հետո կատարված փոփոխությունները տեսնելու համար մաքրեք ձեր զննարկիչի հիշապահեստը. Mozilla / Firefox / Safari՝ Ctrl+Shift+R (Cmd+Shift+R Mac OS X-ում) Konqueror՝ F5 Opera՝ Tools→Preferences ընտրացանկից։ Internet Explorer՝ Ctrl+F5

/**
 * from https://de.wikipedia.org/w/index.php?title=Benutzer:TMg/autoFormatter.js&oldid=146288094
 */
( function( $, mw ) {
	if ( typeof $ !== 'function' || typeof mw !== 'object'
		|| ( mw.config.get( 'wgAction' ) !== 'edit' && mw.config.get( 'wgAction' ) !== 'submit' )
	) {
		return;
	}
	if ( !mw.libs ) {
		mw.libs = {};
	}

	mw.libs.autoFormatter = {
		click: function( a ) {
			var e = document.forms['editform'].elements,
				textbox = e['wpTextbox1'],
				summary = e['wpSummary'];
			if ( !textbox ) {
				return false;
			}

			if ( window.wikEd && window.wikEd.useWikEd ) {
				wikEd.UpdateTextarea();
			}

			if ( !a || !a.nodeType || a.nodeName === 'IMG' ) {
				$( a && a.nodeType ? a : 'img[rel=autoFormatter]' ).css( {
					backgroundColor: '',
					opacity: ''
				} );
			}

			this.clickedElement = a;
			this.isAll = false;
			this.isDisambiguation = /\{\{\s*[Bb]egriffsklärung\s*[|}]/.test( textbox.value );
			this.lang = mw.config.get( 'wgContentLanguage' );
			this.localisation = typeof window.autoFormatLocalisation === 'undefined' ||
				window.autoFormatLocalisation === true ? this.lang : window.autoFormatLocalisation;

			this.cleanElement( textbox );
			summary.value = this.cleanInternalLinks( summary.value );

			if ( window.wikEd && window.wikEd.useWikEd ) {
				wikEd.UpdateFrame();
			}

			return false;
		},
		isChanged: function( oldValue, newValue ) {
			/* Entfernte Leerräume am Textende zählen nie als Änderung */
			oldValue = oldValue.replace( /\s+$/, '' );
			newValue = newValue.replace( /\s+$/, '' );
			/* Entfernte Leerräume am Zeilenende nicht als Änderung anzeigen, aber trotzdem ersetzen */
			var changed = oldValue.replace( /[\r ]+\n/g, '\n' ) !== newValue.replace( /[\r ]+\n/g, '\n' );

			var a = this.clickedElement;
			if ( !a || !a.nodeType || a.nodeName === 'IMG' ) {
				$( a && a.nodeType ? a : 'img[rel=autoFormatter]' ).css( {
					backgroundColor: changed ? '#DEF740' : '',
					borderRadius: changed ? '3px' : '',
					opacity: changed ? '' : '.4'
				} );
			} else if ( a && a.style ) {
				a.style.color = changed ? 'green' : 'silver';
			}
			/* Normalisierte Zeilenumbrüche nie als Änderung werten, das vermeidet Flackern */
			return changed || oldValue.replace( /\r+$/gm, '' ) !== newValue;
		},
		cleanElement: function( e ) {
			var t;

			e.focus();
			if ( typeof e.selectionStart === 'number' ) {
				var scroll = e.scrollTop,
					s1 = e.selectionStart,
					s2 = e.selectionEnd;

				if ( s2 > s1 && ( s1 > 0 || s2 < e.value.length ) ) {
					t = this.cleanText( e.value.substring( s1, s2 ) );
					if ( t === false ) {
						return;
					}
					var newValue = e.value.substr( 0, s1 ) + t + e.value.substr( s2 );
					e.value = newValue;
					/* Fix for Opera */
					s2 = s1 + t.length + ( e.value.length - newValue.length );
				} else if ( !this.cleanAll( e ) ) {
					return;
				}
				e.selectionStart = s1;
				e.selectionEnd = s2;
				e.scrollTop = scroll;
			} else if ( typeof document.selection === 'object' ) {
				var range = document.selection.createRange();
				if ( range.text.length ) {
					t = this.cleanText( range.text );
					if ( t !== false ) {
						range.text = t;
					}
				} else {
					this.cleanAll( e );
				}
			} else {
				this.cleanAll( e );
			}
		},
		cleanAll: function( e ) {
			this.isAll = true;
			var t = this.cleanText( e.value );
			if ( t !== false ) {
				e.value = t.replace( /^\s*\n/, '' );
			}
			return t !== false;
		},
		cleanText: function( t ) {
			var oldValue = t;
			t = t.replace("Янв_ср", "հունվ_միջ");
			t = t.replace("Фев_ср", "փետ_միջ");
			t = t.replace("Мар_ср", "մարտ_միջ");
			t = t.replace("Апр_ср", "ապր_միջ");
			t = t.replace("Май_ср", "մայ_միջ");
			t = t.replace("Июн_ср", "հուն_միջ");
			t = t.replace("Июл_ср", "հուլ_միջ");
			t = t.replace("Авг_ср", "օգոս_միջ");
			t = t.replace("Сен_ср", "սեպ_միջ");
			t = t.replace("Окт_ср", "հոկ_միջ");
			t = t.replace("Ноя_ср", "նոյ_միջ");
			t = t.replace("Дек_ср", "դեկ_միջ");
			t = t.replace("Янв_ср_осад", "հունվ_միջ_տեղ");
			t = t.replace("Фев_ср_осад", "փետ_միջ_տեղ");
			t = t.replace("Мар_ср_осад", "մարտ_միջ_տեղ");
			t = t.replace("Апр_ср_осад", "ապր_միջ_տեղ");
			t = t.replace("Май_ср_осад", "մայ_միջ_տեղ");
			t = t.replace("Июн_ср_осад", "հուն_միջ_տեղ");
			t = t.replace("Июл_ср_осад", "հուլ_միջ_տեղ");
			t = t.replace("Авг_ср_осад", "օգոս_միջ_տեղ");
			t = t.replace("Сен_ср_осад", "սեպ_միջ_տեղ");
			t = t.replace("Окт_ср_осад", "հոկ_միջ_տեղ");
			t = t.replace("Ноя_ср_осад", "նոյ_միջ_տեղ");
			t = t.replace("Дек_ср_осад", "դեկ_միջ_տեղ");
			t = t.replace("Янв_ср_мин", "հունվ_միջ_նվազ");
			t = t.replace("Фев_ср_мин", "փետ_միջ_նվազ");
			t = t.replace("Мар_ср_мин", "մարտ_միջ_նվազ");
			t = t.replace("Апр_ср_мин", "ապր_միջ_նվազ");
			t = t.replace("Май_ср_мин", "մայ_միջ_նվազ");
			t = t.replace("Июн_ср_мин", "հուն_միջ_նվազ");
			t = t.replace("Июл_ср_мин", "հուլ_միջ_նվազ");
			t = t.replace("Авг_ср_мин", "օգոս_միջ_նվազ");
			t = t.replace("Сен_ср_мин", "սեպ_միջ_նվազ");
			t = t.replace("Окт_ср_мин", "հոկ_միջ_նվազ");
			t = t.replace("Ноя_ср_мин", "նոյ_միջ_նվազ");
			t = t.replace("Дек_ср_мин", "դեկ_միջ_նվազ");
			t = t.replace("Янв_ср_макс", "հունվ_միջ_առավ");
			t = t.replace("Фев_ср_макс", "փետ_միջ_առավ");
			t = t.replace("Мар_ср_макс", "մարտ_միջ_առավ");
			t = t.replace("Апр_ср_макс", "ապր_միջ_առավ");
			t = t.replace("Май_ср_макс", "մայ_միջ_առավ");
			t = t.replace("Июн_ср_макс", "հուն_միջ_առավ");
			t = t.replace("Июл_ср_макс", "հուլ_միջ_առավ");
			t = t.replace("Авг_ср_макс", "օգոս_միջ_առավ");
			t = t.replace("Сен_ср_макс", "սեպ_միջ_առավ");
			t = t.replace("Окт_ср_макс", "հոկ_միջ_առավ");
			t = t.replace("Ноя_ср_макс", "նոյ_միջ_առավ");
			t = t.replace("Дек_ср_макс", "դեկ_միջ_առավ");
			t = t.replace("Янв_а_мин", "հունվ_բ_նվազ");
			t = t.replace("Фев_а_мин", "փետ_բ_նվազ");
			t = t.replace("Мар_а_мин", "մարտ_բ_նվազ");
			t = t.replace("Апр_а_мин", "ապր_բ_նվազ");
			t = t.replace("Май_а_мин", "մայ_բ_նվազ");
			t = t.replace("Июн_а_мин", "հուն_բ_նվազ");
			t = t.replace("Июл_а_мин", "հուլ_բ_նվազ");
			t = t.replace("Авг_а_мин", "օգոս_բ_նվազ");
			t = t.replace("Сен_а_мин", "սեպ_բ_նվազ");
			t = t.replace("Окт_а_мин", "հոկ_բ_նվազ");
			t = t.replace("Ноя_а_мин", "նոյ_բ_նվազ");
			t = t.replace("Дек_а_мин", "դեկ_բ_նվազ");
			t = t.replace("Янв_а_макс", "հունվ_բ_առավ");
			t = t.replace("Фев_а_макс", "փետ_բ_առավ");
			t = t.replace("Мар_а_макс", "մարտ_բ_առավ");
			t = t.replace("Апр_а_макс", "ապր_բ_առավ");
			t = t.replace("Май_а_макс", "մայ_բ_առավ");
			t = t.replace("Июн_а_макс", "հուն_բ_առավ");
			t = t.replace("Июл_а_макс", "հուլ_բ_առավ");
			t = t.replace("Авг_а_макс", "օգոս_բ_առավ");
			t = t.replace("Сен_а_макс", "սեպ_բ_առավ");
			t = t.replace("Окт_а_макс", "հոկ_բ_առավ");
			t = t.replace("Ноя_а_макс", "նոյ_բ_առավ");
			t = t.replace("Дек_а_макс", "դեկ_բ_առավ");
			t = t.replace("Год_ср", "տարի_միջ");
			t = t.replace("Год_ср_осад", "տարի_միջ_տեղ");
			t = t.replace("Год_ср_мин", "տարի_միջ_նվազ");
			t = t.replace("Год_ср_макс", "տարի_միջ_առավ");
			t = t.replace("Год_а_мин", "տարի_բ_նվազ");
			t = t.replace("Год_а_макс", "տարի_բ_առավ");
			t = t.replace("Место_род", "վայր");
			t = t.replace("Источник", "աղբյուր");
			t = t.replace("Климат местности", "Եղանակի աղյուսակ");
			t = t.replace("Город_род", "վայր");
			t = t.replace("Климат города", "Եղանակի աղյուսակ");
			return this.isChanged( oldValue, t ) ? t : false;
		},
	};

	/* mw.loader.using( 'user.options' ) notwendig? */
	if ( mw.user.options.get( 'usebetatoolbar' ) ) {
		mw.loader.using( 'ext.wikiEditor', function() {
			$( document ).ready( function() {
				$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
					'section': 'main',
					'group': 'format',
					'tools': {
						'autoFormatter': {
							'label': 'Auto-Format',
							'type': 'button',
							'icon': '//upload.wikimedia.org/wikipedia/commons/thumb/2/2c/Broom_icon.svg/22px-Broom_icon.svg.png',
							'action': {
								'type': 'callback',
								'execute': function() { return mw.libs.autoFormatter.click( this ); }
							}
						}
					}
				} );
			} );
		} );
	} else if ( mw.user.options.get( 'showtoolbar' ) ) {
		mw.loader.using( 'mediawiki.action.edit', function() {
			mw.toolbar.addButton( '//upload.wikimedia.org/wikipedia/commons/2/2e/Button_broom.png',
				'Auto-Format', '', '', '', 'mw-customeditbutton-autoFormatter' );
			$( document ).ready( function() {
				$( '#mw-customeditbutton-autoFormatter' ).click(
					function() { return mw.libs.autoFormatter.click( this ); }
				);
			} );
		} );
	} else {
		$( document ).ready( function() {
			/* Notfalls als Link unter dem Bearbeitungsfenster */
			var b = $( '.editButtons' ),
				c = b.children().last();

			( c.is( 'span' ) ? c : b ).append( $( '.mw-editButtons-pipe-separator', b ).first().clone() );
			var a = $( '<a href="#">Auto-Format<\/a>' );
			a.click( function() { return mw.libs.autoFormatter.click( this ); } );
			b.append( a );
		} );
	}
} )( jQuery, mediaWiki );