diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-05-01 15:12:12 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-05-01 15:12:12 -0400 |
commit | c9aa36da061816dee256a979c2ff8d2ee41824d9 (patch) | |
tree | 29f7002b80ee984b488bd047dbbd80b36bf892e9 /resources/src/mediawiki/mediawiki.toc.js | |
parent | b4274e0e33eafb5e9ead9d949ebf031a9fb8363b (diff) | |
parent | d1ba966140d7a60cd5ae4e8667ceb27c1a138592 (diff) |
Merge branch 'archwiki'
# Conflicts:
# skins/ArchLinux.php
# skins/ArchLinux/archlogo.gif
Diffstat (limited to 'resources/src/mediawiki/mediawiki.toc.js')
-rw-r--r-- | resources/src/mediawiki/mediawiki.toc.js | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/resources/src/mediawiki/mediawiki.toc.js b/resources/src/mediawiki/mediawiki.toc.js new file mode 100644 index 00000000..45338ea7 --- /dev/null +++ b/resources/src/mediawiki/mediawiki.toc.js @@ -0,0 +1,60 @@ +( function ( mw, $ ) { + 'use strict'; + + // Table of contents toggle + mw.hook( 'wikipage.content' ).add( function ( $content ) { + 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 + function toggleToc() { + if ( $tocList.is( ':hidden' ) ) { + $tocList.slideDown( 'fast' ); + $tocToggleLink.text( mw.msg( 'hidetoc' ) ); + $toc.removeClass( 'tochidden' ); + $.cookie( 'mw_hidetoc', null, { + expires: 30, + path: '/' + } ); + } else { + $tocList.slideUp( 'fast' ); + $tocToggleLink.text( mw.msg( 'showtoc' ) ); + $toc.addClass( 'tochidden' ); + $.cookie( 'mw_hidetoc', '1', { + expires: 30, + path: '/' + } ); + } + } + + // 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 = $.cookie( 'mw_hidetoc' ) === '1'; + + $tocToggleLink = $( '<a href="#" id="togglelink"></a>' ) + .text( hideToc ? mw.msg( 'showtoc' ) : mw.msg( 'hidetoc' ) ) + .click( function ( e ) { + e.preventDefault(); + toggleToc(); + } ); + + $tocTitle.append( + $tocToggleLink + .wrap( '<span class="toctoggle"></span>' ) + .parent() + .prepend( ' [' ) + .append( '] ' ) + ); + + if ( hideToc ) { + $tocList.hide(); + $toc.addClass( 'tochidden' ); + } + } + } ); + +}( mediaWiki, jQuery ) ); |