diff --git a/Template.php b/Template.php index 7eae3ae..df7ef52 100644 --- a/Template.php +++ b/Template.php @@ -181,7 +181,7 @@ class Template { 'img', array( 'class' => 'mobile-hide', - 'src' => array(tpl_getConf('logo'), 'wiki:logo-wide.png', 'wiki:logo.png'), + 'src' => array('wiki:logo-wide.png', 'wiki:logo.png'), 'alt' => $title, ), 0, 0 @@ -190,7 +190,7 @@ class Template { 'img', array( 'class' => 'mobile-only', - 'src' => array('wiki:logo-32x32.png', 'wiki:favicon.png', 'wiki:logo-square.png', 'wiki:logo.png', tpl_getConf('logo')), + 'src' => array('wiki:logo-32x32.png', 'wiki:favicon.png', 'wiki:logo-square.png', 'wiki:logo.png'), 'alt' => $title, ), 32, 32 diff --git a/conf/default.php b/conf/default.php index 108f53a..9f1418e 100755 --- a/conf/default.php +++ b/conf/default.php @@ -4,13 +4,5 @@ * */ -$conf['logo'] = 'wiki:logo.png'; -$conf['mobile_logo'] = 'images/fav/favicon-32x32.png'; +$conf['sidebar_sections'] = 'h1,h2,h3,h4,h5'; -$conf['logo_spacer'] = 'logo_spacer.png'; - -$conf['discussionPage'] = 'discussion:@ID@'; -$conf['userPage'] = 'user:@USER@:'; -$conf['user_ns'] = 'user'; -$conf['hideTools'] = 0; -$conf['tasks_page'] = 'dashboard'; diff --git a/conf/metadata.php b/conf/metadata.php index f0f0808..274f7c5 100755 --- a/conf/metadata.php +++ b/conf/metadata.php @@ -1,14 +1,11 @@ array( + 'h1', + 'h1,h2', + 'h1,h2,h3,h4,h5', + 'li.level1 > .li', + ), + ); diff --git a/css/area_main-sidebar-nav.less b/css/area_main-sidebar-nav.less index b01ce83..34e2dac 100755 --- a/css/area_main-sidebar-nav.less +++ b/css/area_main-sidebar-nav.less @@ -31,6 +31,11 @@ > div { color: @ini_text_webframe; } + + &.toggler { + list-style: none; + margin-left: 0; + } } } diff --git a/js/sidebar.js b/js/sidebar.js index c7d1104..56bd928 100644 --- a/js/sidebar.js +++ b/js/sidebar.js @@ -11,6 +11,20 @@ jQuery(function () { var setWideContent = function () { $nav.find('div.nav-panel').hide(); // close all panels jQuery('body').addClass('wide-content'); + removeToggleStorage(); + }, + + /** + * removes information about the toggle-state + */ + removeToggleStorage = function () { + for (var index=0; index <= sessionStorage.length; index += 1) { + var item = sessionStorage.getItem('sidebar-section-' + index + '-open'); + if (!item) { + break; + } + sessionStorage.removeItem('sidebar-section-' + index + '-open'); + } }, /** @@ -46,6 +60,7 @@ jQuery(function () { focusFirstSubLink($panel); } }); + sessionStorage.setItem('sidebar-section-' + $toggler.data('index') + '-open', !isOpen); }, /** @@ -57,9 +72,13 @@ jQuery(function () { var $main = $nav.find('nav.nav-main'); if (!$main.length) return; - var ELEMENT = 'h1,h2,h3,h4,h5'; // FIXME move to config + if(jQuery('body').hasClass('wide-content')) { + removeToggleStorage(); + } + + var ELEMENT = JSINFO.template.sprintdoc.sidebar_toggle_elements; var $elements = $main.find(ELEMENT); - $elements.each(function () { + $elements.each(function (index) { var $me = jQuery(this), // prepare text and the optional icon @@ -83,6 +102,7 @@ jQuery(function () { .text(text) .wrapInner('') .prepend($icon) + .data('index', index) ; // wrap all following siblings til the next element in a wrapper @@ -98,6 +118,15 @@ jQuery(function () { // replace element with toggler $me.replaceWith($toggler); + + if ($toggler.parent('li').length) { + $toggler.parent('li').addClass('toggler'); + } + + if (sessionStorage.getItem('sidebar-section-' + index + '-open') === 'true') { + $wrap.css('display', 'block'); + } + }); }, diff --git a/lang/de/settings.php b/lang/de/settings.php index e6430be..3b4981c 100755 --- a/lang/de/settings.php +++ b/lang/de/settings.php @@ -4,7 +4,3 @@ * */ -$lang['discussionPage'] = 'Diskussion-Seite (leer lassen, um Funktion zu deaktivieren)'; -$lang['userPage'] = 'Benutzer seite (leer lassen, um Funktion zu deaktivieren)'; -$lang['hideTools'] = 'Tools abschalten, wenn der Benutzer nicht angemeldet ist?'; -$lang['user_ns'] = 'Ort an dem Nutzerseiten gespeichert werden'; diff --git a/lang/en/settings.php b/lang/en/settings.php index 4e9d810..ebd2e4f 100755 --- a/lang/en/settings.php +++ b/lang/en/settings.php @@ -4,7 +4,8 @@ * */ -$lang['discussionPage'] = 'Discussion page (leave empty to disable discussions)'; -$lang['userPage'] = 'User page (leave empty to disable user pages)'; -$lang['hideTools'] = 'Hide tools when not logged in?'; -$lang['user_ns'] = 'Where to store user pages.'; +$lang['sidebar_sections'] = 'Auto-toggle the sidebar into sections on these elements:'; +$lang['sidebar_sections_o_h1'] = '1st order headings'; +$lang['sidebar_sections_o_h1,h2'] = '1st and 2nd order headings'; +$lang['sidebar_sections_o_h1,h2,h3,h4,h5'] = 'All headings'; +$lang['sidebar_sections_o_li.level1 > .li'] = 'Top-level list items'; diff --git a/main.php b/main.php index 9f6936f..ea4794e 100755 --- a/main.php +++ b/main.php @@ -14,7 +14,13 @@ use dokuwiki\template\sprintdoc\Template; if (!defined('DOKU_INC')) die(); /* must be run from within DokuWiki */ header('X-UA-Compatible: IE=edge,chrome=1'); -$showTools = !tpl_getConf('hideTools') || ( tpl_getConf('hideTools') && !empty($_SERVER['REMOTE_USER']) ); +global $JSINFO; +if (empty($JSINFO['template'])) { + $JSINFO['template'] = array(); +} +$JSINFO['template']['sprintdoc'] = array('sidebar_toggle_elements' => tpl_getConf('sidebar_sections')); + +$showTools = true; $showSidebar = true; /* */ ?> @@ -112,7 +118,7 @@ $classWideContent = ($ACT === "show") ? "": "wide-content "; - + ?>
'shortcut icon', - 'href' => array('wiki:favicon.ico', 'wiki:favicon.png', tpl_getConf('logo')) + 'href' => array('wiki:favicon.ico', 'wiki:favicon.png') ), 0, 0 // no scaling ); @@ -29,7 +29,7 @@ foreach(array(57, 60, 72, 76, 114, 120, 144, 152, 180) as $size) { array( 'rel' => 'apple-touch-icon', 'sizes' => $size . 'x' . $size, - 'href' => array('wiki:logo-' . $size . 'x' . $size . '.png', 'wiki:logo-square.png', 'wiki:logo.png', tpl_getConf('logo')) + 'href' => array('wiki:logo-' . $size . 'x' . $size . '.png', 'wiki:logo-square.png', 'wiki:logo.png') ), $size, $size ); @@ -42,7 +42,7 @@ foreach(array(32, 96, 192) as $size) { array( 'rel' => 'icon', 'sizes' => $size . 'x' . $size, - 'href' => array('wiki:logo-' . $size . 'x' . $size . '.png', 'wiki:logo-square.png', 'wiki:logo.png', tpl_getConf('logo')) + 'href' => array('wiki:logo-' . $size . 'x' . $size . '.png', 'wiki:logo-square.png', 'wiki:logo.png') ), $size, $size ); @@ -54,7 +54,7 @@ foreach(array(70, 310) as $size) { 'meta', array( 'name' => 'msapplication-square' . $size . 'x' . $size . 'logo', - 'content' => array('wiki:logo-' . $size . 'x' . $size . '.png', 'wiki:logo-square.png', 'wiki:logo.png', tpl_getConf('logo')) + 'content' => array('wiki:logo-' . $size . 'x' . $size . '.png', 'wiki:logo-square.png', 'wiki:logo.png') ), $size, $size ); @@ -66,7 +66,7 @@ foreach(array(array(310, 150)) as $size) { 'meta', array( 'name' => 'msapplication-wide' . $size[0] . 'x' . $size[1] . 'logo', - 'content' => array('wiki:logo-' . $size[0] . 'x' . $size[1] . '.png', 'wiki:logo-wide.png', 'wiki:logo.png', tpl_getConf('logo')) + 'content' => array('wiki:logo-' . $size[0] . 'x' . $size[1] . '.png', 'wiki:logo-wide.png', 'wiki:logo.png') ), $size[0], $size[1] ); diff --git a/tpl/nav-page-tools.php b/tpl/nav-page-tools.php index 1cd38a8..c261be0 100755 --- a/tpl/nav-page-tools.php +++ b/tpl/nav-page-tools.php @@ -1,24 +1,23 @@ - - - + ?> + +
+ diff --git a/tpl/nav-usertools-buttons.php b/tpl/nav-usertools-buttons.php index 1caff4c..7c99099 100755 --- a/tpl/nav-usertools-buttons.php +++ b/tpl/nav-usertools-buttons.php @@ -1,7 +1,7 @@ + if ($conf['useacl']): ?>