1jQuery(function () { 2 'use strict'; 3 4 var $sitemapNavi = jQuery('#plugin__sitemapnavi'); 5 if ($sitemapNavi.length === 0) return; 6 7 var $mediaToggle = jQuery( 8 '<label><input type="checkbox"> ' + 9 LANG.plugins.sitemapnavi.medialabel + 10 '</label>' 11 ); 12 13 $mediaToggle.find('input').prop('checked', !$sitemapNavi.hasClass('hide-media-links')); 14 15 $mediaToggle.change(function (event) { 16 $sitemapNavi.toggleClass('hide-media-links'); 17 DokuCookie.setValue('plugin_sitemapnavi_showmedia', Number(event.target.checked)); 18 }); 19 20 // update initially rendered default state if it does not match the value stored in cookie 21 if ( 22 typeof (DokuCookie.getValue('plugin_sitemapnavi_showmedia')) !== 'undefined' && 23 (Number(DokuCookie.getValue('plugin_sitemapnavi_showmedia')) === 1) === $sitemapNavi.hasClass('hide-media-links') 24 ) { 25 $mediaToggle.find('input').prop('checked', !$mediaToggle.find('input').prop('checked')); 26 $sitemapNavi.toggleClass('hide-media-links'); 27 } 28 29 $sitemapNavi.prepend($mediaToggle); 30 31 jQuery(document).on('click', '#plugin__sitemapnavi button', function () { 32 var $li = jQuery(this).closest('li'); 33 var liState = $li.hasClass('closed') ? 'closed' : 'open'; 34 var $sublist = $li.find('> ul'); 35 36 if (liState === 'open' || $sublist.length) { 37 $li.toggleClass('closed open'); 38 $sublist.find('li.media').toggle($mediaToggle.checked); 39 $sublist.slideToggle(150); 40 return; 41 } 42 43 jQuery.get(DOKU_BASE + 'lib/exe/ajax.php', { 44 'call': 'plugin__sitemapnavi', 45 'namespace': $li.data('ns') 46 }).done(function (sublistHTML) { 47 $li.toggleClass('closed open'); 48 jQuery(sublistHTML).hide().appendTo($li).slideDown(150); 49 }); 50 }); 51 52 53}); 54