MediaWiki:Gadget-sk-loader.js

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.
(function() {
	var loaded = false;
	var logTag = '[wp_sk_loader]';
	mw.hook('userjs.wp_sk.loaded').add(function(wp_sk){
		console.log(logTag, 'wp_sk.loaded');
		loaded = true;
	});
	mw.hook('userjs.wp_sk.ready').add(function(wp_sk){
		console.log(logTag, 'wp_sk.ready');
	});
	
	function load_wp_sk() {
		if (loaded) {
			return;
		}
		console.log(logTag, 'load_wp_sk deps start');
		mw.loader.using("ext.gadget.lib-toolbar, ext.gadget.lib-sel_t, mediawiki.util".split(/, ?/)).then(function() {
			console.log(logTag, 'load_wp_sk deps done');
			if (loaded) {
				return;
			}
			console.log(logTag, 'load_wp_sk sk start');
			mw.loader.load('https://pl.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-sk-local.js');
			mw.loader.load('https://pl.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-sk.js');
		});
	}
	function load_wp_sk_ve() {
		if (loaded) {
			return;
		}
		mw.loader.load('https://pl.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-sk-ve.js');
		mw.hook('userjs.wp_sk.ve_sk.loaded').add((WpSkVisualCode) => {
			var ve_sk = new WpSkVisualCode();
			if (typeof wp_sk != 'object') {
				mw.loader.load('https://pl.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-sk-local.js');
				mw.loader.load('https://pl.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-sk.js');
			}
			mw.hook('userjs.wp_sk.loaded').add((wp_sk) => {
				ve_sk.init(wp_sk);
			});
		});
	}
	
	// load on standard edit
	var mwwgAction = mw.config.get('wgAction');
	if (mwwgAction == 'edit' || mwwgAction == 'submit') {
		var mwwgModel = mw.config.get('wgPageContentModel');
		console.log(logTag, 'action trigger:', mwwgAction, mwwgModel);
		if (mwwgModel === 'wikitext') {
			load_wp_sk();
		}
	}
	// load on VE edit (VE code editor)
	// mw.hook( 've.activationComplete' ).add( function (a,b,c) {
	// 	console.log(logTag, 'activationComplete trigger', {a,b,c});
	// 	load_wp_sk();
	// });
	mw.hook( 've.activationComplete' ).add( () => {
		var surface = ve.init.target.getSurface();
	    // Source mode
		if ( surface.getMode() === 'source' ) {
			load_wp_sk_ve();
		}
	});
})();