Línea 1: |
Línea 1: |
− | /**
| |
− | * Collapsible navigation for Vector
| |
− | */
| |
− | ( function ( mw, $ ) {
| |
− | 'use strict';
| |
− | var map;
| |
− |
| |
− | // Use the same function for all navigation headings - don't repeat
| |
− | function toggle( $element ) {
| |
− | var isCollapsed = $element.parent().is( '.collapsed' );
| |
− |
| |
− | $.cookie(
| |
− | 'vector-nav-' + $element.parent().attr( 'id' ),
| |
− | isCollapsed,
| |
− | { 'expires': 30, 'path': '/' }
| |
− | );
| |
− |
| |
− | $element
| |
− | .parent()
| |
− | .toggleClass( 'expanded' )
| |
− | .toggleClass( 'collapsed' )
| |
− | .find( '.body' )
| |
− | .slideToggle( 'fast' );
| |
− | isCollapsed = !isCollapsed;
| |
− |
| |
− | $element
| |
− | .find( '> a' )
| |
− | .attr( {
| |
− | 'aria-pressed': isCollapsed ? 'false' : 'true',
| |
− | 'aria-expanded': isCollapsed ? 'false' : 'true'
| |
− | } );
| |
− | }
| |
− |
| |
− | /* Browser Support */
| |
− |
| |
− | map = {
| |
− | // Left-to-right languages
| |
− | ltr: {
| |
− | // Collapsible Nav is broken in Opera < 9.6 and Konqueror < 4
| |
− | opera: [['>=', 9.6]],
| |
− | konqueror: [['>=', 4.0]],
| |
− | blackberry: false,
| |
− | ipod: [['>=', 6]],
| |
− | iphone: [['>=', 6]],
| |
− | ps3: false
| |
− | },
| |
− | // Right-to-left languages
| |
− | rtl: {
| |
− | opera: [['>=', 9.6]],
| |
− | konqueror: [['>=', 4.0]],
| |
− | blackberry: false,
| |
− | ipod: [['>=', 6]],
| |
− | iphone: [['>=', 6]],
| |
− | ps3: false
| |
− | }
| |
− | };
| |
− | if ( !$.client.test( map ) ) {
| |
− | return true;
| |
− | }
| |
− |
| |
− | $( function ( $ ) {
| |
− | var $headings;
| |
− |
| |
− | /* General Portal Modification */
| |
− |
| |
− | // Always show the first portal
| |
− | $( '#mw-panel > .portal:first' ).addClass( 'first persistent' );
| |
− | // Apply a class to the entire panel to activate styles
| |
− | $( '#mw-panel' ).addClass( 'collapsible-nav' );
| |
− | // Use cookie data to restore preferences of what to show and hide
| |
− | $( '#mw-panel > .portal:not(.persistent)' )
| |
− | .each( function ( i ) {
| |
− | var id = $(this).attr( 'id' ),
| |
− | state = $.cookie( 'vector-nav-' + id );
| |
− | $(this).find( 'ul:first' ).attr( 'id', id + '-list' );
| |
− | // Add anchor tag to heading for better accessibility
| |
− | $( this ).find( 'h3' ).wrapInner(
| |
− | $( '<a>' )
| |
− | .attr( {
| |
− | href: '#',
| |
− | 'aria-haspopup': 'true',
| |
− | 'aria-controls': id + '-list',
| |
− | role: 'button'
| |
− | } )
| |
− | .click( false )
| |
− | );
| |
− | // In the case that we are not showing the new version, let's show the languages by default
| |
− | if (
| |
− | state === 'true' ||
| |
− | ( state === null && i < 1 ) ||
| |
− | ( state === null && id === 'p-lang' )
| |
− | ) {
| |
− | $(this)
| |
− | .addClass( 'expanded' )
| |
− | .removeClass( 'collapsed' )
| |
− | .find( '.body' )
| |
− | .hide() // bug 34450
| |
− | .show();
| |
− | $(this).find( 'h3 > a' )
| |
− | .attr( {
| |
− | 'aria-pressed': 'true',
| |
− | 'aria-expanded': 'true'
| |
− | } );
| |
− | } else {
| |
− | $(this)
| |
− | .addClass( 'collapsed' )
| |
− | .removeClass( 'expanded' );
| |
− | $(this).find( 'h3 > a' )
| |
− | .attr( {
| |
− | 'aria-pressed': 'false',
| |
− | 'aria-expanded': 'false'
| |
− | } );
| |
− | }
| |
− | // Re-save cookie
| |
− | if ( state !== null ) {
| |
− | $.cookie( 'vector-nav-' + $(this).attr( 'id' ), state, { 'expires': 30, 'path': '/' } );
| |
− | }
| |
− | } );
| |
− |
| |
− | /* Tab Indexing */
| |
− |
| |
− | $headings = $( '#mw-panel > .portal:not(.persistent) > h3' );
| |
− |
| |
− | // Make it keyboard accessible
| |
− | $headings.attr( 'tabindex', '0' );
| |
− |
| |
− | // Toggle the selected menu's class and expand or collapse the menu
| |
− | $( '#mw-panel' )
| |
− | .delegate( '.portal:not(.persistent) > h3', 'keydown', function ( e ) {
| |
− | // Make the space and enter keys act as a click
| |
− | if ( e.which === 13 /* Enter */ || e.which === 32 /* Space */ ) {
| |
− | toggle( $(this) );
| |
− | }
| |
− | } )
| |
− | .delegate( '.portal:not(.persistent) > h3', 'mousedown', function ( e ) {
| |
− | if ( e.which !== 3 ) { // Right mouse click
| |
− | toggle( $(this) );
| |
− | $(this).blur();
| |
− | }
| |
− | return false;
| |
− | } );
| |
− | });
| |
− |
| |
− | }( mediaWiki, jQuery ) );
| |
− |
| |
− |
| |
| /* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios en cada carga de página */ | | /* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios en cada carga de página */ |
| | | |
| /* Activa instrumento para definir coordenadas de imágenes como vínculos bajo ImageMap | | /* Activa instrumento para definir coordenadas de imágenes como vínculos bajo ImageMap |
− | //importScriptURI('//tools.wmflabs.org/imagemapedit/ime.js');
| + | importScriptURI('//tools.wmflabs.org/imagemapedit/ime.js'); |