Wikipedia:Administradores de interfaz/Tablón de solicitudes

Esta página es archivada automáticamente.

Parámetros del archivado:

Lugar: Wikipedia:Administradores de interfaz/Tablón de solicitudes/Archivos/AAAA/MM
Días a mantener: 30
Avisar al archivar: No
Estrategia: Firma del último párrafo
Mantener caja de archivos: No

Añadir Twinkle Lite a la lista de accesorios que se pueden activar desde la configuración editar

Asunto

Hola. Hace aproximadamente siete meses lancé Twinkle Lite. Después de haber comprobado su funcionamiento durante más de medio año y ver que una gran cantidad de usuarios lo emplean diariamente sin problema, me gustaría que la herramienta se pudiese activar desde la página de preferencias. Para ello, habría que crear la página MediaWiki:Gadget-twinkle-lite.js con el siguiente código:

mw.loader.load("https://es.wikipedia.org/w/index.php?title=Usuario:Nacaru/twinkle-lite.js&action=raw&ctype=text/javascript");

También habría que crear la correspondiente página de descripción en MediaWiki:Gadget-twinkle-lite y pegar el siguiente texto (puede modificarse ad libitum si se considera necesario):

[[WP:TL|Twinkle Lite]] habilita opciones en el menú de herramientas que permiten realizar diversas tareas de mantenimiento de forma rápida.

Después habría que modificar MediaWiki:Gadgets-definition y añadir, en la sección de «edición», el siguiente código:

* twinkle-lite [ResourceLoader] | twinkle-lite.js

Con esas tres acciones debería bastar para que el usuario pueda activar la herramienta desde la opción «accesorios» de su página de preferencias. Quedo a vuestra disposición para cualquier pregunta o duda que podáis tener. Gracias de antemano y felices fiestas.

Usuario que lo solicita
Hola, @Nacaru. Por razones de seguridad, no resulta adecuado un mw.loader.load en una página del espacio de nombres MediaWiki, de contenido de una subpágina de usuario. Si no hubiese inconvenientes, sería mejor trasladar Usuario:Nacaru/twinkle-lite.js a MediaWiki:Gadget-twinkle-lite. Un saludo. —MA 17:35 11 feb 2024 (UTC)[responder]
  Comentario: @MarcoAurelio, entonces «por razones de seguridad» deberías desactivar o trasladar también otros accesorios:
Para no discriminar a Nacaru. -- Leoncastro (discusión) 19:33 11 feb 2024 (UTC)[responder]
@MarcoAurelio, lo pensé antes de realizar la solicitud, pero me preocupaba que al no poseer permisos para editar esa página, me vería obligado a tener que realizar una petición a través de este tablón cada vez que quisiera introducir una actualización de WP:TL. Teniendo en cuenta que estas suelen tardar meses o años en resolverse y que llevo actualizando la herramienta con aproximadamente 2-3 meses de frecuencia (sin contar hotfixes) desde que la publiqué (téngase en cuenta que la herramienta ya es frecuentemente utilizada por multitud de usuarios que realizan tareas mantenimiento y que hasta ahora no ha habido problema con ello), y que, como ha indicado @Leoncastro, observé que ya existen múltiples herramientas que enlazan a subpáginas de usuario, decidí hacerlo así. Si no existe alguna forma de acelerar el trámite burocrático o de que yo pueda editar MediaWiki:Gadget-twinkle-lite directamente desde esa página (no lo veo posible), entonces creo que lo óptimo es que se encuentre en mi subpágina de usuario. Si aún así se considera que el código debe mantenerse en MediaWiki:Gadget-twinkle-lite, el traslado lo debe de realizar algún administrador de interfaz. Un saludo. Nacaru   · Discusión ✉ · 20:51 11 feb 2024 (UTC)[responder]
PD: téngase en cuenta, además, que las subpáginas de usuario .js solo pueden ser editadas por administradores de interfaz y el propio usuario. Nacaru   · Discusión ✉ · 20:55 11 feb 2024 (UTC)[responder]
Respuesta

(a rellenar por un administrador de interfaz)

Modificar las tablas plegables en MediaWiki:Common.js editar

Asunto

Desde hace años existe la clase mw-collapsible en el código de MediaWiki para permitir la creación de tablas plegables; sin embargo, en el common.js local se utiliza un pequeño script que no hace uso de ella. Además, existe el problema de que se ejecuta dos veces, apareciendo más botones, cuando se combina con accesorios como XTools. Por tanto, propongo sustituir el código entre las líneas 163 y 261 por el siguiente, tomado de en.wiki. De esta forma se sustituirán los usos de collapsible por mw-collapsible.

Código
	/**
	 * Collapsible tables; reimplemented with mw-collapsible
	 * Styling is also in place to avoid FOUC
	 *
	 * Allows tables to be collapsed, showing only the header. See [[Help:Collapsing]].
	 * @version 3.0.0 (2018-05-20)
	 * @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-collapsibleTables.js
	 * @author [[User:R. Koot]]
	 * @author [[User:Krinkle]]
	 * @author [[User:TheDJ]]
	 * @deprecated Since MediaWiki 1.20: Use class="mw-collapsible" instead which
	 * is supported in MediaWiki core. Shimmable since MediaWiki 1.32
	 *
	 * @param {jQuery} $content
	 */
	function makeCollapsibleMwCollapsible( $content ) {
		var $tables = $content
			.find( 'table.collapsible:not(.mw-collapsible)' )
			.addClass( 'mw-collapsible' );

		$.each( $tables, function ( index, table ) {
			if ( $( table ).hasClass( 'collapsed' ) ) {
				$( table ).addClass( 'mw-collapsed' );
			}
		} );
		if ( $tables.length > 0 ) {
			mw.loader.using( 'jquery.makeCollapsible' ).then( function () {
				$tables.makeCollapsible();
			} );
		}
	}
	mw.hook( 'wikipage.content' ).add( makeCollapsibleMwCollapsible );

	/**
	 * Add support to mw-collapsible for autocollapse, innercollapse and outercollapse
	 *
	 * Maintainers: TheDJ
	 */
	function mwCollapsibleSetup( $collapsibleContent ) {
		var $element,
			$toggle,
			autoCollapseThreshold = 2;
		$.each( $collapsibleContent, function ( index, element ) {
			$element = $( element );
			if ( $element.hasClass( 'collapsible' ) ) {
				$element.find( 'tr:first > th:first' ).prepend( $element.find( 'tr:first > * > .mw-collapsible-toggle' ) );
			}
			if ( $collapsibleContent.length >= autoCollapseThreshold && $element.hasClass( 'autocollapse' ) ) {
				$element.data( 'mw-collapsible' ).collapse();
			} else if ( $element.hasClass( 'innercollapse' ) ) {
				if ( $element.parents( '.outercollapse' ).length > 0 ) {
					$element.data( 'mw-collapsible' ).collapse();
				}
			}
			// because of colored backgrounds, style the link in the text color
			// to ensure accessible contrast
			$toggle = $element.find( '.mw-collapsible-toggle' );
			if ( $toggle.length ) {
				// Make the toggle inherit text color (Updated for T333357 2023-04-29)
				if ( $toggle.parent()[ 0 ].style.color ) {
					$toggle.css( 'color', 'inherit' );
					$toggle.find( '.mw-collapsible-text' ).css( 'color', 'inherit' );
				}
			}
		} );
	}

	mw.hook( 'wikipage.collapsibleContent' ).add( mwCollapsibleSetup );

Como pequeño detalle, así se añadiría también la posibilidad de usar las clases innercollapse y outercollapse.

Usuario que lo solicita
Comentarios
  • @-sasha-, @Ezarate, parece que os ha faltado el estilo CSS, porque los textos «[mostrar]» y «[ocultar]» ahora en ciertos casos se ven en negrita (podéis ver un ejemplo en el código plegado de este mismo hilo). Además se ve con el mismo tamaño de texto que el elemento que oculta, que en algunos casos será demasiado grande y en otros demasiado pequeño, por lo que sugiero agregar el estilo font-size: small; para uniformar su tamaño en cualquier caso. -- Leoncastro (discusión) 13:25 27 mar 2024 (UTC)[responder]
@Leoncastro: Me indicas bien donde agregar esa línea y lo hago en breve. Gracias!!! Esteban (discusión) 15:28 27 mar 2024 (UTC)[responder]
@Ezarate: Sería añadir esto a Common.css:
/* Styling for jQuery makeCollapsible, matching that of collapseButton */
.mw-parser-output .mw-collapsible-toggle:not(.mw-ui-button) {
	font-weight: normal;
    font-size: small;
	padding-right: 0.2em;
	padding-left: 0.2em;
}

.mw-collapsible-leftside-toggle .mw-collapsible-toggle {
	/* @noflip */
	float: left;
}
sasha 16:25 27 mar 2024 (UTC)[responder]
Por cierto, @-sasha- y @Ezarate, se ha perdido la retrocompatibilidad con la antigua clase collapsed, por lo que sus usos directos o mediante plantillas como {{Ocultar}} ya no funcionan correctamente. Me temo que pueden ser miles de casos. El antiguo código funcionaba en cualquier elemento (según mw:Manual:Collapsible_elements#Simple), mientras que el nuevo está restringido al uso de tablas (que por cierto, no es lo más óptimo). -- Leoncastro (discusión) 19:04 27 mar 2024 (UTC)[responder]
@Ezarate, por favor, restaura estas dos líneas borradas, collapseCaption y expandCaption, justo antes de la línea 232 (NavigationBarHide) del actual Common.js para que no cause error. Gracias. -- Leoncastro (discusión) 19:15 27 mar 2024 (UTC)[responder]
@Ezarate, fíjate que las dos líneas que agregaste a Commons.css, te pedí agregarlas a MediaWiki:Common.js; así es normal que esté dando errores. -- Leoncastro (discusión) 01:18 28 mar 2024 (UTC)[responder]
Respuesta

  Hecho Fijate si quedo ok Esteban (discusión) 23:31 26 mar 2024 (UTC)[responder]

  Hecho Está dando errores el código, posiblemente haya que revertir todo Esteban (discusión) 23:05 27 mar 2024 (UTC)[responder]