(Translated by https://www.hiragana.jp/)
Wikisłownikarz:Peter Bowman/prevent-save.js – Wikisłownik, wolny słownik wielojęzyczny Przejdź do zawartości

Wikisłownikarz:Peter Bowman/prevent-save.js

Z Wikisłownika – wolnego słownika wielojęzycznego

Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.

  • Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
  • Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
  • Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5.
  • Opera: Naciśnij klawisze Ctrl+F5.
// Uniemożliwia zapisanie zmian (za pierwszym razem), jeżeli wikikod spełnia
// wyrażenie regularne; zob. [[Specjalna:Diff/7682658/7683070]]. Sposób użycia:
//
// window.pb$preventSavePatterns = [ /* wyrażenia regularne */ ];
// importScript( 'Wikisłownikarz:Peter Bowman/prevent-save.js' );

mw.hook( 'wikipage.editform' ).add( function ( $editForm ) {
	mw.loader.using( 'jquery.textSelection' ).done( function () {
		var $wpTextbox1 = $editForm.find( '#wpTextbox1' ),
			contents = $wpTextbox1.textSelection( 'getContents' ),
			firstMatch = window.pb$preventSavePatterns.flatMap( function ( pattern ) {
				return contents.match( pattern ) || [];
			} )[ 0 ];
		
		if ( firstMatch !== undefined ) {
			$editForm.find( '#wpSave' ).one( 'click', function ( e ) {
				alert( 'Do poprawienia: ' + firstMatch );
				
				$wpTextbox1.textSelection( 'setSelection', {
					start: contents.indexOf( firstMatch ),
					end: contents.indexOf( firstMatch ) + firstMatch.length
				} );
				
				e.preventDefault();
			} );
		}
	} );
} );