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',
|
||||
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
|
||||
|
|
|
@ -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';
|
||||
|
|
|
@ -1,14 +1,11 @@
|
|||
<?php
|
||||
/*
|
||||
* configuration metadata
|
||||
*
|
||||
*/
|
||||
|
||||
$meta['logo'] = array('string');
|
||||
$conf['logo_spacer'] = array('string');
|
||||
|
||||
$meta['discussionPage'] = array('string');
|
||||
$meta['userPage'] = array('string');
|
||||
$conf['user_ns'] = array('string');
|
||||
$meta['hideTools'] = array('onoff');
|
||||
$meta['tasks_page'] = array('string');
|
||||
$meta['sidebar_sections'] = array(
|
||||
'multichoice',
|
||||
'_choices' => array(
|
||||
'h1',
|
||||
'h1,h2',
|
||||
'h1,h2,h3,h4,h5',
|
||||
'li.level1 > .li',
|
||||
),
|
||||
);
|
||||
|
|
|
@ -31,6 +31,11 @@
|
|||
> div {
|
||||
color: @ini_text_webframe;
|
||||
}
|
||||
|
||||
&.toggler {
|
||||
list-style: none;
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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('<span class="lbl">')
|
||||
.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');
|
||||
}
|
||||
|
||||
});
|
||||
},
|
||||
|
||||
|
|
|
@ -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['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';
|
||||
|
|
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 */
|
||||
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; /* */
|
||||
?>
|
||||
<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>
|
||||
</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: */
|
||||
include('tpl/main-sidebar-logo.php');
|
||||
} ?>
|
||||
?>
|
||||
<div class="main-title">
|
||||
<?php if ($conf['title']):
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ echo Template::getResizedImgTag(
|
|||
'link',
|
||||
array(
|
||||
'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
|
||||
);
|
||||
|
@ -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]
|
||||
);
|
||||
|
|
|
@ -1,24 +1,23 @@
|
|||
<?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');?>
|
||||
<ul>
|
||||
<?php
|
||||
$data = dokuwiki\template\sprintdoc\tpl::assemblePageTools();
|
||||
<nav id="dokuwiki__pagetools">
|
||||
<div class="tools">
|
||||
|
||||
foreach ($data['items'] as $k => $html) {
|
||||
echo $html;
|
||||
}
|
||||
<?php include('nav-status.php'); ?>
|
||||
<ul>
|
||||
<?php
|
||||
$data = dokuwiki\template\sprintdoc\tpl::assemblePageTools();
|
||||
|
||||
foreach ($data['items'] as $k => $html) {
|
||||
echo $html;
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
<?php endif; ?>
|
||||
?>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
if (!defined('DOKU_INC')) die();
|
||||
|
||||
if ($conf['useacl'] && $showTools): ?>
|
||||
if ($conf['useacl']): ?>
|
||||
|
||||
<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>
|
||||
|
@ -32,11 +32,11 @@
|
|||
$class = 'opentask opentasks';
|
||||
break;
|
||||
}
|
||||
$linktarget = tpl_getConf('tasks_page');
|
||||
|
||||
$doInner = "<span class=\"prefix\">".tpl_getLang('prefix_tasks_user')." </span><span class=\"num\">".count($tasks)."</span>";
|
||||
if($linktarget){
|
||||
if (substr($linktarget, 0, 1) !== ':') {
|
||||
$linktarget = tpl_getConf('user_ns'). $_SERVER['REMOTE_USER'] .':' . $linktarget;
|
||||
$linktarget = 'user:' . $_SERVER['REMOTE_USER'] .':' . 'dashboard';
|
||||
}
|
||||
if($num == 0){
|
||||
echo '<li class="user-task '.$class.'"><strong>'.$doInner.'</strong></li>';
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue