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