MediaWiki:Gadget-ErroriLint.js

Da Wikisource.

Nota: dopo aver pubblicato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti.

  • Firefox / Safari: tieni premuto il tasto delle maiuscole Shift e fai clic su Ricarica, oppure premi Ctrl-F5 o Ctrl-R (⌘-R su Mac)
  • Google Chrome: premi Ctrl-Shift-R (⌘-Shift-R su un Mac)
  • Internet Explorer / Edge: tieni premuto il tasto Ctrl e fai clic su Aggiorna, oppure premi Ctrl-F5
  • Opera: premi Ctrl-F5.
$(function() {
	function getLintErrors() {
		if (mw.config.get('wgAction') == 'view') {
			$.ajax({
				url: "/w/index.php?&title=" + mw.config.get('wgPageName') + "&action=info"
			}).done(function(response) {
				content = $('#mw-content-text', response);
				h2 = content.find('#mw-pageinfo-linter');
				if (h2) {
					var errorCount = h2.next().find('tr').length;
					$('#option-get-errori-lint a').text('Errori nel wikitesto (' + errorCount + ')');
					if (errorCount > 0)
						$('#option-get-errori-lint a').css('color', 'red').css('font-weight', 'bold');
					
					$('#mw-content-text').prepend('<div id="box-errori-lint"></div>');
					$('#box-errori-lint').append(h2.next());
					$('#box-errori-lint table').prepend('<tr><th colspan="2">Errori di validazione Lint'
					+ '<span class="icon-close" id="box-errori-lint-close"></span>'
					+ '</th></tr>');
					
					$('#box-errori-lint-close').click(function(e) {
						localStorage.getErroriLint = "false";
						$('#box-errori-lint').remove();
					});
					
					$('#box-errori-lint').draggable({
					    create: function( event, ui ) {
					    	if (mw.config.get("wgCanonicalNamespace") == "Page") {
						        $(this).css({
						            float: "none",
						            position: "absolute",
						            top: $(this).position().top,
						            left: $(this).position().left
						        });
					    	} else {
						        $(this).css({
						            right: "auto",
						            bottom: "auto",
						            top: $(this).position().top,
						            left: $(this).position().left
						        });
					    	}
					    }
					});
				}
			});
		}
	}
	
	if (mw.config.get('wgAction') == 'view' && mw.config.get('wgNamespaceNumber') > 0 && mw.config.get('wgNamespaceNumber') != 110) {
		mw.util.addPortletLink('p-tb', '#', 'Errori nel wikitesto', 'option-get-errori-lint', 
			'Mostra gli errori di validazione del codice wiki trovati da Lint (tag annidati male, tag non chiusi ecc.) per questa pagina');
		isActive = localStorage.getErroriLint;
		
		// enable by default
		if (isActive == undefined) {
			isActive = "true";
			localStorage.getErroriLint = "true";
		}
			
		if (isActive == "true") {
			getLintErrors();
		}
		
		$('#option-get-errori-lint a').click(function(e) {
			e.preventDefault();
			isActive = localStorage.getErroriLint;
			if (isActive != undefined && isActive == "true") {
				$('#box-errori-lint-close').click();
			} else {
				localStorage.getErroriLint = "true";
				getLintErrors();
			}
		});
	}
});