mirror of
https://github.com/moodle/moodle.git
synced 2025-08-07 01:46:45 +02:00
navigation-dock MDL-22560 Major changes to he way the dock works
* Themes can now check if a region is completely docked * Dock now delegates events to improve performance * Dock now completely YUI3 * No longer uses YUI overlay instead has custom control
This commit is contained in:
parent
8cb4148657
commit
7e4617f7a6
12 changed files with 766 additions and 711 deletions
|
@ -44,6 +44,7 @@ $THEME->sheets = array(
|
|||
'blocks',
|
||||
'calendar',
|
||||
'course',
|
||||
'dock',
|
||||
'grade',
|
||||
'message',
|
||||
'question',
|
||||
|
|
|
@ -2,16 +2,18 @@
|
|||
|
||||
$hassidepre = $PAGE->blocks->region_has_content('side-pre', $OUTPUT);
|
||||
$hassidepost = $PAGE->blocks->region_has_content('side-post', $OUTPUT);
|
||||
$showsidepre = $hassidepre && !$PAGE->blocks->region_completely_docked('side-pre', $OUTPUT);
|
||||
$showsidepost = $hassidepost && !$PAGE->blocks->region_completely_docked('side-post', $OUTPUT);
|
||||
|
||||
$custommenu = $OUTPUT->custom_menu();
|
||||
$hascustommenu = (empty($PAGE->layout_options['nocustommenu']) && !empty($custommenu));
|
||||
|
||||
$bodyclasses = array();
|
||||
if ($hassidepre && !$hassidepost) {
|
||||
if ($showsidepre && !$showsidepost) {
|
||||
$bodyclasses[] = 'side-pre-only';
|
||||
} else if ($hassidepost && !$hassidepre) {
|
||||
} else if ($showsidepost && !$showsidepre) {
|
||||
$bodyclasses[] = 'side-post-only';
|
||||
} else if (!$hassidepost && !$hassidepre) {
|
||||
} else if (!$showsidepost && !$showsidepre) {
|
||||
$bodyclasses[] = 'content-only';
|
||||
}
|
||||
if ($hascustommenu) {
|
||||
|
|
|
@ -6,15 +6,18 @@ $hasfooter = (empty($PAGE->layout_options['nofooter']));
|
|||
$hassidepre = (empty($PAGE->layout_options['noblocks']) && $PAGE->blocks->region_has_content('side-pre', $OUTPUT));
|
||||
$hassidepost = (empty($PAGE->layout_options['noblocks']) && $PAGE->blocks->region_has_content('side-post', $OUTPUT));
|
||||
|
||||
$showsidepre = ($hassidepre && !$PAGE->blocks->region_completely_docked('side-pre', $OUTPUT));
|
||||
$showsidepost = ($hassidepost && !$PAGE->blocks->region_completely_docked('side-post', $OUTPUT));
|
||||
|
||||
$custommenu = $OUTPUT->custom_menu();
|
||||
$hascustommenu = (empty($PAGE->layout_options['nocustommenu']) && !empty($custommenu));
|
||||
|
||||
$bodyclasses = array();
|
||||
if ($hassidepre && !$hassidepost) {
|
||||
if ($showsidepre && !$showsidepost) {
|
||||
$bodyclasses[] = 'side-pre-only';
|
||||
} else if ($hassidepost && !$hassidepre) {
|
||||
} else if ($showsidepost && !$showsidepre) {
|
||||
$bodyclasses[] = 'side-post-only';
|
||||
} else if (!$hassidepost && !$hassidepre) {
|
||||
} else if (!$showsidepost && !$showsidepre) {
|
||||
$bodyclasses[] = 'content-only';
|
||||
}
|
||||
if ($hascustommenu) {
|
||||
|
@ -82,7 +85,6 @@ echo $OUTPUT->doctype() ?>
|
|||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
28
theme/base/style/dock.css
Normal file
28
theme/base/style/dock.css
Normal file
|
@ -0,0 +1,28 @@
|
|||
/**
|
||||
* Whilst the dock isn't supported by the base theme this CSS is here so that those
|
||||
* themes that do want to use the dock will have a starting point at least
|
||||
*/
|
||||
|
||||
/* Put a margin on the body if the dock is shown */
|
||||
body.has_dock {margin-left:30px;}
|
||||
|
||||
/** For the dock itself */
|
||||
#dock {width:30px;position:fixed;top:0px;left:0px;height:100%;background-color:#FFF;border-right:1px solid #000;z-index:11000;}
|
||||
#dock.nothingdocked {visibility: hidden;display:none;}
|
||||
#dock .dockeditem .firstdockitem {margin-top:1em;}
|
||||
#dock .dockeditem .dockedtitle {border-bottom:1px solid #000;border-top:1px solid #000;cursor:pointer;}
|
||||
#dock .dockeditem .dockedtitle h2 {font-size:0.8em;line-height:100%;text-align:center;}
|
||||
#dock .dockeditem .dockedtitle .filterrotate {margin-left:8px;}
|
||||
#dock .controls {position:absolute;bottom:1em;text-align:center;width:100%;}
|
||||
#dock .controls img {cursor:pointer;}
|
||||
|
||||
/** For the panel the docked blocks are shown in */
|
||||
#dockeditempanel {min-width:200px;position:relative;z-index:12000;left:100%;}
|
||||
#dockeditempanel.dockitempanel_hidden {display:none;}
|
||||
#dockeditempanel .dockeditempanel_content {background-color:#fff;border:1px solid #000;z-index:12050;}
|
||||
#dockeditempanel .dockeditempanel_bd {overflow:auto;width:auto;}
|
||||
#dockeditempanel .dockeditempanel_bd .block_docked {margin:10px;}
|
||||
#dockeditempanel .dockeditempanel_hd {border-bottom:1px solid #000;text-align:right;}
|
||||
#dockeditempanel .dockeditempanel_hd h2 {display:inline;margin:0;padding-right:1em;}
|
||||
#dockeditempanel .dockeditempanel_hd .commands {display:inline;}
|
||||
#dockeditempanel .dockeditempanel_hd .commands img {margin-right:2px;vertical-align:middle;}
|
Loading…
Add table
Add a link
Reference in a new issue