MediaWiki:Gadget-SmartEdittools.js

/**<nowiki>  * Aggiunge un combobox a [[MediaWiki:Edittools]] per selezionare un gruppo di caratteri speciali  * lo posiziona proprio sotto il riquadro di edit e nasconde i link che non servono in una determinata tipologia di pagina.  */ function SmartEdittools() { 	const action = mw.config.get('wgAction'); 	if ( action === 'edit' || action === 'submit' ) { 		const ns = mw.config.get("wgCanonicalNamespace"); 		$( '.editOptions' ).before( $( '#editpage-specialchars' )); 		$( '#editpage-specialchars p' ).css( 'display', 'inline' ); 		$( '#editpage-specialchars p a' ).each(function(){ 			$(this).html( '&nbsp;'+$(this).html()+'&nbsp;' ); 		});  		// Rimuovo i link che non servono in accordo alla pagina attuale 		$("#edittools_purge").remove(); 		$("#edittools_purge_line").remove(); 		if(ns!='Template'){ 			$("#editpage-specialchars p a[data-mw-charinsert-start*='include']").remove(); 			$("#editpage-specialchars p a[data-mw-charinsert-start*='{{{']").remove(); 		} 		if((ns.indexOf('_talk') <= 0) 		  && (ns.indexOf('Discussion_') <= 0) 		  && (ns != 'Talk') 		  && (ns != 'User') 		  && (ns != 'Project') ){ //Wikivoyage 			$("#edittools_name").remove(); 			$("#edittools_name_line").remove(); 			$("#editpage-specialchars p a[data-mw-charinsert-start*='~~~~']").remove(); 		} 		if(ns!='User_talk'){ 			$("#edittools_banner").remove(); 		} 		var $specialChars = $( '#editpage-specialchars' ), $select; 		if ( $specialChars.length ) { 			$select = $( '<select>' ).change( function () { 				$specialChars.find( 'p' ).hide(); 				var target = $specialChars.find('option:selected').data('target'); 				if (target) target.show(); 			} ); 			$specialChars.find( 'p' ).each( function () { 				var id = $(this).attr('id'); 				if (!id) return; 				$( '<option>' ) 					.html( id.replace( /edittools_/g, '').replace( /_/g, ' ' ) ) 					.data( 'target', $( this ) ) 					.appendTo( $select ); 			} ); 			$specialChars.prepend( $select ); 			$select.change(); 		} 	} }  $(SmartEdittools); //</nowiki>