Merge branch 'toggleConf' into 'master'
Make toggle elements configurable and remember toggle state See merge request !31
This commit is contained in:
commit
58370f0332
11 changed files with 86 additions and 61 deletions
|
@ -181,7 +181,7 @@ class Template {
|
||||||
'img',
|
'img',
|
||||||
array(
|
array(
|
||||||
'class' => 'mobile-hide',
|
'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,
|
'alt' => $title,
|
||||||
),
|
),
|
||||||
0, 0
|
0, 0
|
||||||
|
@ -190,7 +190,7 @@ class Template {
|
||||||
'img',
|
'img',
|
||||||
array(
|
array(
|
||||||
'class' => 'mobile-only',
|
'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,
|
'alt' => $title,
|
||||||
),
|
),
|
||||||
32, 32
|
32, 32
|
||||||
|
|
|
@ -4,13 +4,5 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$conf['logo'] = 'wiki:logo.png';
|
$conf['sidebar_sections'] = 'h1,h2,h3,h4,h5';
|
||||||
$conf['mobile_logo'] = 'images/fav/favicon-32x32.png';
|
|
||||||
|
|
||||||
$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';
|
|
||||||
|
|
|
@ -1,14 +1,11 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
|
||||||
* configuration metadata
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
$meta['logo'] = array('string');
|
$meta['sidebar_sections'] = array(
|
||||||
$conf['logo_spacer'] = array('string');
|
'multichoice',
|
||||||
|
'_choices' => array(
|
||||||
$meta['discussionPage'] = array('string');
|
'h1',
|
||||||
$meta['userPage'] = array('string');
|
'h1,h2',
|
||||||
$conf['user_ns'] = array('string');
|
'h1,h2,h3,h4,h5',
|
||||||
$meta['hideTools'] = array('onoff');
|
'li.level1 > .li',
|
||||||
$meta['tasks_page'] = array('string');
|
),
|
||||||
|
);
|
||||||
|
|
|
@ -31,6 +31,11 @@
|
||||||
> div {
|
> div {
|
||||||
color: @ini_text_webframe;
|
color: @ini_text_webframe;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.toggler {
|
||||||
|
list-style: none;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,20 @@ jQuery(function () {
|
||||||
var setWideContent = function () {
|
var setWideContent = function () {
|
||||||
$nav.find('div.nav-panel').hide(); // close all panels
|
$nav.find('div.nav-panel').hide(); // close all panels
|
||||||
jQuery('body').addClass('wide-content');
|
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);
|
focusFirstSubLink($panel);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
sessionStorage.setItem('sidebar-section-' + $toggler.data('index') + '-open', !isOpen);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -57,9 +72,13 @@ jQuery(function () {
|
||||||
var $main = $nav.find('nav.nav-main');
|
var $main = $nav.find('nav.nav-main');
|
||||||
if (!$main.length) return;
|
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);
|
var $elements = $main.find(ELEMENT);
|
||||||
$elements.each(function () {
|
$elements.each(function (index) {
|
||||||
var $me = jQuery(this),
|
var $me = jQuery(this),
|
||||||
|
|
||||||
// prepare text and the optional icon
|
// prepare text and the optional icon
|
||||||
|
@ -83,6 +102,7 @@ jQuery(function () {
|
||||||
.text(text)
|
.text(text)
|
||||||
.wrapInner('<span class="lbl">')
|
.wrapInner('<span class="lbl">')
|
||||||
.prepend($icon)
|
.prepend($icon)
|
||||||
|
.data('index', index)
|
||||||
;
|
;
|
||||||
|
|
||||||
// wrap all following siblings til the next element in a wrapper
|
// wrap all following siblings til the next element in a wrapper
|
||||||
|
@ -98,6 +118,15 @@ jQuery(function () {
|
||||||
|
|
||||||
// replace element with toggler
|
// replace element with toggler
|
||||||
$me.replaceWith($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');
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -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';
|
|
||||||
|
|
|
@ -4,7 +4,8 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$lang['discussionPage'] = 'Discussion page (leave empty to disable discussions)';
|
$lang['sidebar_sections'] = 'Auto-toggle the sidebar into sections on these elements:';
|
||||||
$lang['userPage'] = 'User page (leave empty to disable user pages)';
|
$lang['sidebar_sections_o_h1'] = '1st order headings';
|
||||||
$lang['hideTools'] = 'Hide tools when not logged in?';
|
$lang['sidebar_sections_o_h1,h2'] = '1st and 2nd order headings';
|
||||||
$lang['user_ns'] = 'Where to store user pages.';
|
$lang['sidebar_sections_o_h1,h2,h3,h4,h5'] = 'All headings';
|
||||||
|
$lang['sidebar_sections_o_li.level1 > .li'] = 'Top-level list items';
|
||||||
|
|
12
main.php
12
main.php
|
@ -14,7 +14,13 @@ use dokuwiki\template\sprintdoc\Template;
|
||||||
if (!defined('DOKU_INC')) die(); /* must be run from within DokuWiki */
|
if (!defined('DOKU_INC')) die(); /* must be run from within DokuWiki */
|
||||||
header('X-UA-Compatible: IE=edge,chrome=1');
|
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; /* */
|
$showSidebar = true; /* */
|
||||||
?>
|
?>
|
||||||
<html class="edge no-js" lang="<?php echo $conf['lang'] ?>" dir="<?php echo $lang['direction'] ?>">
|
<html class="edge no-js" lang="<?php echo $conf['lang'] ?>" dir="<?php echo $lang['direction'] ?>">
|
||||||
|
@ -112,7 +118,7 @@ $classWideContent = ($ACT === "show") ? "": "wide-content ";
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php if (tpl_getConf('logo') && file_exists(mediaFN(tpl_getConf('logo')))){
|
<?php
|
||||||
|
|
||||||
|
|
||||||
/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */
|
/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */
|
||||||
|
@ -120,7 +126,7 @@ $classWideContent = ($ACT === "show") ? "": "wide-content ";
|
||||||
/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */
|
/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */
|
||||||
/* upload your logo into the data/media folder (root of the media manager) and replace 'logo.png' in der template config accordingly: */
|
/* upload your logo into the data/media folder (root of the media manager) and replace 'logo.png' in der template config accordingly: */
|
||||||
include('tpl/main-sidebar-logo.php');
|
include('tpl/main-sidebar-logo.php');
|
||||||
} ?>
|
?>
|
||||||
<div class="main-title">
|
<div class="main-title">
|
||||||
<?php if ($conf['title']):
|
<?php if ($conf['title']):
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ echo Template::getResizedImgTag(
|
||||||
'link',
|
'link',
|
||||||
array(
|
array(
|
||||||
'rel' => 'shortcut icon',
|
'rel' => '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
|
0, 0 // no scaling
|
||||||
);
|
);
|
||||||
|
@ -29,7 +29,7 @@ foreach(array(57, 60, 72, 76, 114, 120, 144, 152, 180) as $size) {
|
||||||
array(
|
array(
|
||||||
'rel' => 'apple-touch-icon',
|
'rel' => 'apple-touch-icon',
|
||||||
'sizes' => $size . 'x' . $size,
|
'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
|
$size, $size
|
||||||
);
|
);
|
||||||
|
@ -42,7 +42,7 @@ foreach(array(32, 96, 192) as $size) {
|
||||||
array(
|
array(
|
||||||
'rel' => 'icon',
|
'rel' => 'icon',
|
||||||
'sizes' => $size . 'x' . $size,
|
'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
|
$size, $size
|
||||||
);
|
);
|
||||||
|
@ -54,7 +54,7 @@ foreach(array(70, 310) as $size) {
|
||||||
'meta',
|
'meta',
|
||||||
array(
|
array(
|
||||||
'name' => 'msapplication-square' . $size . 'x' . $size . 'logo',
|
'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
|
$size, $size
|
||||||
);
|
);
|
||||||
|
@ -66,7 +66,7 @@ foreach(array(array(310, 150)) as $size) {
|
||||||
'meta',
|
'meta',
|
||||||
array(
|
array(
|
||||||
'name' => 'msapplication-wide' . $size[0] . 'x' . $size[1] . 'logo',
|
'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]
|
$size[0], $size[1]
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,24 +1,23 @@
|
||||||
<?php
|
<?php
|
||||||
if (!defined('DOKU_INC')) die();
|
if (!defined('DOKU_INC')) {
|
||||||
|
die();
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<?php if ($showTools): ?>
|
|
||||||
<nav id="dokuwiki__pagetools">
|
|
||||||
<div class="tools">
|
|
||||||
|
|
||||||
<?php include('nav-status.php');?>
|
<nav id="dokuwiki__pagetools">
|
||||||
<ul>
|
<div class="tools">
|
||||||
<?php
|
|
||||||
$data = dokuwiki\template\sprintdoc\tpl::assemblePageTools();
|
|
||||||
|
|
||||||
foreach ($data['items'] as $k => $html) {
|
<?php include('nav-status.php'); ?>
|
||||||
echo $html;
|
<ul>
|
||||||
}
|
<?php
|
||||||
|
$data = dokuwiki\template\sprintdoc\tpl::assemblePageTools();
|
||||||
|
|
||||||
|
foreach ($data['items'] as $k => $html) {
|
||||||
|
echo $html;
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
?>
|
</ul>
|
||||||
</ul>
|
</div>
|
||||||
</div>
|
</nav>
|
||||||
</nav>
|
|
||||||
<?php endif; ?>
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
if (!defined('DOKU_INC')) die();
|
if (!defined('DOKU_INC')) die();
|
||||||
|
|
||||||
if ($conf['useacl'] && $showTools): ?>
|
if ($conf['useacl']): ?>
|
||||||
|
|
||||||
<nav id="dokuwiki__usertools" class="nav-usertools <?php echo $navClass?>">
|
<nav id="dokuwiki__usertools" class="nav-usertools <?php echo $navClass?>">
|
||||||
<h6 class="sr-only" role="heading" aria-level="2"><?php echo $lang['user_tools']; ?></h6>
|
<h6 class="sr-only" role="heading" aria-level="2"><?php echo $lang['user_tools']; ?></h6>
|
||||||
|
@ -32,11 +32,11 @@
|
||||||
$class = 'opentask opentasks';
|
$class = 'opentask opentasks';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$linktarget = tpl_getConf('tasks_page');
|
|
||||||
$doInner = "<span class=\"prefix\">".tpl_getLang('prefix_tasks_user')." </span><span class=\"num\">".count($tasks)."</span>";
|
$doInner = "<span class=\"prefix\">".tpl_getLang('prefix_tasks_user')." </span><span class=\"num\">".count($tasks)."</span>";
|
||||||
if($linktarget){
|
if($linktarget){
|
||||||
if (substr($linktarget, 0, 1) !== ':') {
|
if (substr($linktarget, 0, 1) !== ':') {
|
||||||
$linktarget = tpl_getConf('user_ns'). $_SERVER['REMOTE_USER'] .':' . $linktarget;
|
$linktarget = 'user:' . $_SERVER['REMOTE_USER'] .':' . 'dashboard';
|
||||||
}
|
}
|
||||||
if($num == 0){
|
if($num == 0){
|
||||||
echo '<li class="user-task '.$class.'"><strong>'.$doInner.'</strong></li>';
|
echo '<li class="user-task '.$class.'"><strong>'.$doInner.'</strong></li>';
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue