From d24016944f72262899fccc40b91e92c9e9dfdff7 Mon Sep 17 00:00:00 2001 From: Sam Hemelryk Date: Thu, 22 Apr 2010 07:51:52 +0000 Subject: [PATCH] block-navigation MDL-22044 Level 1 branches are no longer indented, and home/myhome link is no longer collapsible. Also fixed the everything bold issue --- blocks/navigation/navigation.js | 9 +++++++-- blocks/navigation/renderer.php | 7 ++++--- blocks/navigation/styles.css | 5 ++++- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/blocks/navigation/navigation.js b/blocks/navigation/navigation.js index b8c53c0b0dd..b7a38f0cff7 100644 --- a/blocks/navigation/navigation.js +++ b/blocks/navigation/navigation.js @@ -225,10 +225,15 @@ M.block_navigation.classes.tree.prototype.toggleexpansion = function(e) { } if (e.target.get('nodeName').toUpperCase() == 'LI') { - e.target.toggleClass('collapsed'); + var target = e.target; } else if (e.target.ancestor('LI')) { - e.target.ancestor('LI').toggleClass('collapsed'); + var target = e.target.ancestor('LI'); } + + if (target && !target.hasClass('depth_1')) { + target.toggleClass('collapsed'); + } + if (this.candock) { M.core_dock.resize(); } diff --git a/blocks/navigation/renderer.php b/blocks/navigation/renderer.php index 56b80c6c87f..d2162102900 100644 --- a/blocks/navigation/renderer.php +++ b/blocks/navigation/renderer.php @@ -3,6 +3,7 @@ class block_navigation_renderer extends plugin_renderer_base { public function navigation_tree(global_navigation $navigation, $expansionlimit) { + $navigation->add_class('navigation_node'); $content = $this->navigation_node(array($navigation), array('class'=>'block_tree list'), $expansionlimit); if (isset($navigation->id) && !is_numeric($navigation->id) && !empty($content)) { $content = $this->output->box($content, 'block_tree_box', $navigation->id); @@ -10,7 +11,7 @@ class block_navigation_renderer extends plugin_renderer_base { return $content; } - protected function navigation_node($items, $attrs=array(), $expansionlimit=null) { + protected function navigation_node($items, $attrs=array(), $expansionlimit=null, $depth=1) { // exit if empty, we don't want an empty ul element if (count($items)==0) { @@ -66,7 +67,7 @@ class block_navigation_renderer extends plugin_renderer_base { } // this applies to the li item which contains all child lists too - $liclasses = array($item->get_css_type()); + $liclasses = array($item->get_css_type(), 'depth_'.$depth); if ($item->has_children() && (!$item->forceopen || $item->collapse)) { $liclasses[] = 'collapsed'; } @@ -88,7 +89,7 @@ class block_navigation_renderer extends plugin_renderer_base { if (!empty($item->id)) { $divattr['id'] = $item->id; } - $content = html_writer::tag('p', $content, $divattr) . $this->navigation_node($item->children, array(), $expansionlimit); + $content = html_writer::tag('p', $content, $divattr) . $this->navigation_node($item->children, array(), $expansionlimit, $depth+1); if (!empty($item->preceedwithhr) && $item->preceedwithhr===true) { $content = html_writer::empty_tag('hr') . $content; } diff --git a/blocks/navigation/styles.css b/blocks/navigation/styles.css index bd3e9dc9353..128be285b3e 100644 --- a/blocks/navigation/styles.css +++ b/blocks/navigation/styles.css @@ -6,11 +6,14 @@ /** General display rules **/ .block_navigation .block_tree {margin:5px;padding-left:0px;overflow:visible;} .block_navigation .block_tree li {margin:0;list-style: none;} -.block_navigation .block_tree li ul {padding-left:16px;margin:0;} +.block_navigation .block_tree li ul {padding-left:0;margin:0;} +.block_navigation .block_tree li.depth_2 ul {padding-left:16px;margin:0;} .block_navigation .block_tree .tree_item {padding-left: 16px;margin:3px 0px;text-align:left;} .block_navigation .block_tree .tree_item.branch {background-image: url([[pix:t/expanded]]);background-position: center left;background-repeat: no-repeat;} +.block_navigation .block_tree .navigation_node.tree_item.branch {background-image:none;padding-left:0;} .block_navigation .block_tree .root_node.leaf {padding-left:0px;} .block_navigation .block_tree .current_branch {font-weight:bold;} +.block_navigation .block_tree .depth_1.current_branch ul {font-weight:normal;} .jsenabled .block_navigation .block_tree .tree_item.branch {cursor:pointer;} .jsenabled .block_navigation .block_tree .tree_item.emptybranch {background-image: url([[pix:t/collapsed_empty]]);background-position: center left;background-repeat: no-repeat;} .jsenabled .block_navigation .block_tree .collapsed ul {display: none;}