6150d48d9a5cfcac6bc0a445f191e5d9fae70caa

Author: Mark Story

Date: 2009-06-28 21:16:58 -0400

Adding basic JS for packages.

diff --git a/vendors/css/base.css b/vendors/css/base.css index 30d4d6f..94f8e2c 100644 --- a/vendors/css/base.css +++ b/vendors/css/base.css @@ -209,7 +209,7 @@ File Browser Styles } /* files and folders in sidebar */ -#sidebar .package a, +#sidebar .package span, #sidebar .file a, #sidebar .folder a, #sidebar #classIndex li a { @@ -508,7 +508,7 @@ Sidebar list-style:none; margin: 2px 0px; } -#sidebar .package-tree a { +#sidebar .package-tree span { display:block; } #sidebar .package-tree .package-tree { @@ -532,7 +532,7 @@ Package Index margin:3px 0; list-style: none; } -.package-tree li a{ +.package-tree li span { padding: 8px 8px 8px 40px; display: block; border-top: 2px solid #fff; diff --git a/vendors/js/api_generator.js b/vendors/js/api_generator.js index 643f029..94eff77 100644 --- a/vendors/js/api_generator.js +++ b/vendors/js/api_generator.js @@ -81,6 +81,27 @@ ApiGenerator.docBlocks = { } } +ApiGenerator.packageTree = { + init: function () { + var trees = $$('ul.package-tree.depth-0'); + + trees.getElements('li').each(function (element) { + element.addEvent('click', function (event) { + event.stopPropagation(); + if (event.target.nodeName.toUpperCase() == 'A') { + return; + } + var ul = this.getChildren('ul'); + if (ul) { + ul.toggle(); + } + }); + }); + trees.getElements('ul').each(function (element) { + element.hide(); + }) + } +} /** * Javascript used on Api doc Pages diff --git a/views/helpers/api_doc.php b/views/helpers/api_doc.php index 348cd7b..a7b7ff6 100644 --- a/views/helpers/api_doc.php +++ b/views/helpers/api_doc.php @@ -247,15 +247,16 @@ class ApiDocHelper extends AppHelper { * @param array $packageTree Array of package tree from find(threaded) * @return string Formatted HTML **/ - public function generatePackageTree($packageTree) { - $out = '<ul class="package-tree">' . "\n"; + public function generatePackageTree($packageTree, $depth = 0) { + $out = '<ul class="package-tree depth-'. $depth . '">' . "\n"; foreach ($packageTree as $branch) { $children = null; $link = $this->packageLink($branch['ApiPackage']['name']); if (!empty($branch['children'])) { - $children = $this->generatePackageTree($branch['children']); + $depth++; + $children = $this->generatePackageTree($branch['children'], $depth); } - $out .= sprintf("\t<li class=\"package\">%s %s</li>\n", $link, $children); + $out .= sprintf("\t<li class=\"package\"><span>%s</span> %s</li>\n", $link, $children); } $out .= "</ul>\n"; return $out;