Merge "Remove unused 'XMPGetInfo' and 'XMPGetResults' hooks"
[lhc/web/wiklou.git] / resources / src / mediawiki / mediawiki.toc.js
index dfdedb6..78627fc 100644 (file)
@@ -1,57 +1,41 @@
-/**
- * @private
- * @singleton
- * @class mw.toc
- */
 ( function ( mw, $ ) {
        'use strict';
 
        // Table of contents toggle
        mw.hook( 'wikipage.content' ).add( function ( $content ) {
-               var $toc, $tocTitle, $tocToggleLink, hideToc;
+               var $toc, $tocTitle, $tocToggleLink, $tocList, hideToc;
                $toc = $content.find( '#toc' );
                $tocTitle = $content.find( '#toctitle' );
                $tocToggleLink = $content.find( '#togglelink' );
+               $tocList = $toc.find( 'ul' ).eq( 0 );
 
-               /**
-                * Hide/show the table of contents element
-                *
-                * @param {jQuery} $toggleLink A jQuery object of the toggle link.
-                */
-               function toggleToc( $toggleLink ) {
-                       var $tocList = $toc.find( 'ul:first' );
-
-                       // This function shouldn't be called if there's no TOC,
-                       // but just in case...
-                       if ( $tocList.length ) {
-                               if ( $tocList.is( ':hidden' ) ) {
-                                       $tocList.slideDown( 'fast' );
-                                       $toggleLink.text( mw.msg( 'hidetoc' ) );
-                                       $toc.removeClass( 'tochidden' );
-                                       $.cookie( 'mw_hidetoc', null, {
-                                               expires: 30,
-                                               path: '/'
-                                       } );
-                               } else {
-                                       $tocList.slideUp( 'fast' );
-                                       $toggleLink.text( mw.msg( 'showtoc' ) );
-                                       $toc.addClass( 'tochidden' );
-                                       $.cookie( 'mw_hidetoc', '1', {
-                                               expires: 30,
-                                               path: '/'
-                                       } );
-                               }
+               // Hide/show the table of contents element
+               function toggleToc() {
+                       if ( $tocList.is( ':hidden' ) ) {
+                               $tocList.slideDown( 'fast' );
+                               $tocToggleLink.text( mw.msg( 'hidetoc' ) );
+                               $toc.removeClass( 'tochidden' );
+                               mw.cookie.set( 'hidetoc', null );
+                       } else {
+                               $tocList.slideUp( 'fast' );
+                               $tocToggleLink.text( mw.msg( 'showtoc' ) );
+                               $toc.addClass( 'tochidden' );
+                               mw.cookie.set( 'hidetoc', '1' );
                        }
                }
-               // Only add it if there is a TOC and there is no toggle added already
-               if ( $toc.length && $tocTitle.length && !$tocToggleLink.length ) {
-                       hideToc = $.cookie( 'mw_hidetoc' ) === '1';
-                       $tocToggleLink = $( '<a href="#" class="internal" id="togglelink"></a>' )
+
+               // Only add it if there is a complete TOC and it doesn't
+               // have a toggle added already
+               if ( $toc.length && $tocTitle.length && $tocList.length && !$tocToggleLink.length ) {
+                       hideToc = mw.cookie.get( 'hidetoc' ) === '1';
+
+                       $tocToggleLink = $( '<a href="#" id="togglelink"></a>' )
                                .text( hideToc ? mw.msg( 'showtoc' ) : mw.msg( 'hidetoc' ) )
                                .click( function ( e ) {
                                        e.preventDefault();
-                                       toggleToc( $( this ) );
+                                       toggleToc();
                                } );
+
                        $tocTitle.append(
                                $tocToggleLink
                                        .wrap( '<span class="toctoggle"></span>' )
@@ -61,7 +45,7 @@
                        );
 
                        if ( hideToc ) {
-                               $toc.find( 'ul:first' ).hide();
+                               $tocList.hide();
                                $toc.addClass( 'tochidden' );
                        }
                }