r73273 - in /branches/upstream/libhtml-widgets-navmenu-perl/current: ./ lib/HTML/Widgets/ lib/HTML/Widgets/NavMenu/ lib/HTML/Widgets/NavMenu/Iterator/ t/
gregoa at users.alioth.debian.org
gregoa at users.alioth.debian.org
Sat Apr 23 17:46:27 UTC 2011
Author: gregoa
Date: Sat Apr 23 17:46:03 2011
New Revision: 73273
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=73273
Log:
[svn-upgrade] new version libhtml-widgets-navmenu-perl (1.0600)
Added:
branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu/Iterator/JQTreeView.pm
branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu/JQueryTreeView.pm
Modified:
branches/upstream/libhtml-widgets-navmenu-perl/current/Changes
branches/upstream/libhtml-widgets-navmenu-perl/current/MANIFEST
branches/upstream/libhtml-widgets-navmenu-perl/current/META.yml
branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu.pm
branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu/Iterator/SiteMap.pm
branches/upstream/libhtml-widgets-navmenu-perl/current/t/04nav-menu.t
Modified: branches/upstream/libhtml-widgets-navmenu-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libhtml-widgets-navmenu-perl/current/Changes?rev=73273&op=diff
==============================================================================
--- branches/upstream/libhtml-widgets-navmenu-perl/current/Changes (original)
+++ branches/upstream/libhtml-widgets-navmenu-perl/current/Changes Sat Apr 23 17:46:03 2011
@@ -1,4 +1,9 @@
Revision history for Perl extension Shlomif::NavMenu.
+
+1.0600 Sat Apr 16 19:05:23 IDT 2011
+ - Add HTML::Widgets::NavMenu::JQueryTreeView for generating navigation
+ menu that this jQuery plugin can handle well:
+ - http://bassistance.de/jquery-plugins/jquery-plugin-treeview/
1.0501 Sun Nov 14 12:11:19 IST 2010
- Now generating the Makefile.PL from the Build.PL using
Modified: branches/upstream/libhtml-widgets-navmenu-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libhtml-widgets-navmenu-perl/current/MANIFEST?rev=73273&op=diff
==============================================================================
--- branches/upstream/libhtml-widgets-navmenu-perl/current/MANIFEST (original)
+++ branches/upstream/libhtml-widgets-navmenu-perl/current/MANIFEST Sat Apr 23 17:46:03 2011
@@ -13,9 +13,11 @@
lib/HTML/Widgets/NavMenu/HeaderRole.pm
lib/HTML/Widgets/NavMenu/Iterator/Base.pm
lib/HTML/Widgets/NavMenu/Iterator/Html.pm
+lib/HTML/Widgets/NavMenu/Iterator/JQTreeView.pm
lib/HTML/Widgets/NavMenu/Iterator/NavMenu/HeaderRole.pm
lib/HTML/Widgets/NavMenu/Iterator/NavMenu.pm
lib/HTML/Widgets/NavMenu/Iterator/SiteMap.pm
+lib/HTML/Widgets/NavMenu/JQueryTreeView.pm
lib/HTML/Widgets/NavMenu/Object.pm
lib/HTML/Widgets/NavMenu.pm
lib/HTML/Widgets/NavMenu/Predicate.pm
Modified: branches/upstream/libhtml-widgets-navmenu-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libhtml-widgets-navmenu-perl/current/META.yml?rev=73273&op=diff
==============================================================================
--- branches/upstream/libhtml-widgets-navmenu-perl/current/META.yml (original)
+++ branches/upstream/libhtml-widgets-navmenu-perl/current/META.yml Sat Apr 23 17:46:03 2011
@@ -42,7 +42,7 @@
provides:
HTML::Widgets::NavMenu:
file: lib/HTML/Widgets/NavMenu.pm
- version: 1.0501
+ version: 1.0600
HTML::Widgets::NavMenu::Error:
file: lib/HTML/Widgets/NavMenu.pm
HTML::Widgets::NavMenu::Error::Redirect:
@@ -61,12 +61,16 @@
file: lib/HTML/Widgets/NavMenu/Iterator/Html.pm
HTML::Widgets::NavMenu::Iterator::Html::Item:
file: lib/HTML/Widgets/NavMenu/Iterator/Html.pm
+ HTML::Widgets::NavMenu::Iterator::JQTreeView:
+ file: lib/HTML/Widgets/NavMenu/Iterator/JQTreeView.pm
HTML::Widgets::NavMenu::Iterator::NavMenu:
file: lib/HTML/Widgets/NavMenu/Iterator/NavMenu.pm
HTML::Widgets::NavMenu::Iterator::NavMenu::HeaderRole:
file: lib/HTML/Widgets/NavMenu/Iterator/NavMenu/HeaderRole.pm
HTML::Widgets::NavMenu::Iterator::SiteMap:
file: lib/HTML/Widgets/NavMenu/Iterator/SiteMap.pm
+ HTML::Widgets::NavMenu::JQueryTreeView:
+ file: lib/HTML/Widgets/NavMenu/JQueryTreeView.pm
HTML::Widgets::NavMenu::LeadingPath::Component:
file: lib/HTML/Widgets/NavMenu.pm
HTML::Widgets::NavMenu::NodeDescription:
@@ -96,4 +100,4 @@
homepage: http://web-cpan.berlios.de/modules/HTML-Widgets-NavMenu/
license: http://www.opensource.org/licenses/mit-license.php
repository: http://svn.berlios.de/svnroot/repos/web-cpan/nav-menu/
-version: 1.0501
+version: 1.0600
Modified: branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu.pm?rev=73273&op=diff
==============================================================================
--- branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu.pm (original)
+++ branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu.pm Sat Apr 23 17:46:03 2011
@@ -3,7 +3,7 @@
package HTML::Widgets::NavMenu;
-our $VERSION = '1.0501';
+our $VERSION = '1.0600';
package HTML::Widgets::NavMenu::Error;
@@ -792,10 +792,21 @@
sub render
{
my $self = shift;
-
my %args = (@_);
- my $iterator = $self->_get_nav_menu_traverser();
+ return $self->_render_generic(
+ { %args , _iter_method => '_get_nav_menu_traverser',}
+ );
+}
+
+sub _render_generic
+{
+ my $self = shift;
+ my $args = shift;
+
+ my $method = $args->{_iter_method};
+
+ my $iterator = $self->$method();
$iterator->traverse();
my $html = $iterator->get_results();
@@ -1069,6 +1080,12 @@
=back
+=head2 $results = $nav_menu->render_jquery_treeview()
+
+Renders a fully expanded tree suitable for input to JQuery's treeview plugin:
+L<http://bassistance.de/jquery-plugins/jquery-plugin-treeview/> - otherwise
+the same as render() .
+
=head2 $text = $nav_menu->gen_site_map()
This function can be called to generate a site map based on the tree of
Added: branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu/Iterator/JQTreeView.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu/Iterator/JQTreeView.pm?rev=73273&op=file
==============================================================================
--- branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu/Iterator/JQTreeView.pm (added)
+++ branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu/Iterator/JQTreeView.pm Sat Apr 23 17:46:03 2011
@@ -1,0 +1,103 @@
+package HTML::Widgets::NavMenu::Iterator::JQTreeView;
+
+use strict;
+use warnings;
+
+# For escape_html().
+use HTML::Widgets::NavMenu::EscapeHtml;
+
+use base qw(HTML::Widgets::NavMenu::Iterator::NavMenu);
+
+sub _init
+{
+ my $self = shift;
+ my $args = shift;
+
+ $self->SUPER::_init($args);
+
+ # Make a fresh copy just to be on the safe side.
+ $self->_ul_classes([ @{$args->{'ul_classes'}} ]);
+
+ return 0;
+}
+
+=head1 NAME
+
+HTML::Widgets::NavMenu::Iterator::JQTreeView - an iterator for JQuery
+TreeView's navigation menus.
+
+=head1 SYNOPSIS
+
+See L<http://bassistance.de/jquery-plugins/jquery-plugin-treeview/> .
+
+For internal use only.
+
+=head1 METHODS
+
+=cut
+
+sub _calc_open_li_tag
+{
+ my $self = shift;
+
+ return
+ (
+ $self->_is_expanded_for_treeview()
+ ? (qq{<li class="open">})
+ : ("<li>")
+ );
+
+ return;
+}
+
+=head2 get_currently_active_text ( $node )
+
+Calculates the highlighted text for the node C<$node>. Normally surrounds it
+with C<<< <b> ... </b> >>> tags.
+
+=cut
+
+sub _start_handle_non_role
+{
+ my $self = shift;
+ my $top_item = $self->top;
+ my @tags_to_add = ($self->_calc_open_li_tag(), $self->get_link_tag());
+ if ($top_item->_num_subs_to_go() && $self->_is_expanded())
+ {
+ push @tags_to_add, ($self->get_open_sub_menu_tags());
+ }
+ $self->_add_tags(@tags_to_add);
+
+ return;
+}
+
+sub _start_handle_role
+{
+ my $self = shift;
+
+ return $self->_start_handle_non_role();
+}
+
+sub _is_expanded
+{
+ return 1;
+}
+
+sub _is_expanded_for_treeview
+{
+ my $self = shift;
+
+ my $node = $self->top->_node();
+
+ return ($node->expanded() || $self->top->_accum_state->{'show_always'});
+}
+
+=head1 COPYRIGHT & LICENSE
+
+Copyright 2006 Shlomi Fish, all rights reserved.
+
+This program is released under the following license: MIT X11.
+
+=cut
+
+1;
Modified: branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu/Iterator/SiteMap.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu/Iterator/SiteMap.pm?rev=73273&op=diff
==============================================================================
--- branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu/Iterator/SiteMap.pm (original)
+++ branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu/Iterator/SiteMap.pm Sat Apr 23 17:46:03 2011
@@ -7,13 +7,14 @@
=head1 NAME
-HTML::Widgets::NavMenu::Iterator::Html - an iterator for HTML.
+HTML::Widgets::NavMenu::Iterator::SiteMap - a site-map iterator.
=head1 SYNOPSIS
For internal use only.
=head1 METHODS
+
=cut
sub _start_root
Added: branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu/JQueryTreeView.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu/JQueryTreeView.pm?rev=73273&op=file
==============================================================================
--- branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu/JQueryTreeView.pm (added)
+++ branches/upstream/libhtml-widgets-navmenu-perl/current/lib/HTML/Widgets/NavMenu/JQueryTreeView.pm Sat Apr 23 17:46:03 2011
@@ -1,0 +1,58 @@
+package HTML::Widgets::NavMenu::JQueryTreeView;
+
+use strict;
+use warnings;
+
+use base 'HTML::Widgets::NavMenu';
+
+require HTML::Widgets::NavMenu::Iterator::JQTreeView;
+
+sub _get_nav_menu_traverser
+{
+ my $self = shift;
+
+ return
+ HTML::Widgets::NavMenu::Iterator::JQTreeView->new(
+ $self->_get_nav_menu_traverser_args()
+ );
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+HTML::Widgets::NavMenu::JQueryTreeView - A Specialized HTML::Widgets::NavMenu
+sub-class
+
+=head1 SYNOPOSIS
+
+Mostly the same as L<HTML::Widgets::NavMenu> execpt that it renders a fully
+expanded tree suitable for input to JQuery's treeview plugin
+
+=head1 DESCRIPTION
+
+This module renders all nodes but places C< class="open" >
+and C< class="close" > attributes in the opening C<< <li> >> tags.
+
+An example of this use can be found in Shlomi Fish's Homepage
+( L<http://www.shlomifish.org/> ).
+
+=head1 SEE ALSO
+
+L<HTML::Widgets::NavMenu> for the complete documentation of the super-class.
+
+=head1 AUTHORS
+
+Shlomi Fish ( L<http://www.shlomifish.org/> ).
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright 2004, Shlomi Fish. All rights reserved.
+
+You can use, modify and distribute this module under the terms of the MIT X11
+license. ( L<http://www.opensource.org/licenses/mit-license.php> ).
+
+=cut
+
Modified: branches/upstream/libhtml-widgets-navmenu-perl/current/t/04nav-menu.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libhtml-widgets-navmenu-perl/current/t/04nav-menu.t?rev=73273&op=diff
==============================================================================
--- branches/upstream/libhtml-widgets-navmenu-perl/current/t/04nav-menu.t (original)
+++ branches/upstream/libhtml-widgets-navmenu-perl/current/t/04nav-menu.t Sat Apr 23 17:46:03 2011
@@ -4,10 +4,11 @@
use lib './t/lib';
-use Test::More tests => 26;
+use Test::More tests => 28;
use HTML::Widgets::NavMenu;
use HTML::Widgets::NavMenu::HeaderRole;
+use HTML::Widgets::NavMenu::JQueryTreeView;
use HTML::Widgets::NavMenu::Test::Data;
@@ -983,3 +984,91 @@
test_nav_menu($rendered, $expected_string,
"Nav Menu with an empty header role.");
}
+
+# Test HTML::Widgets::NavMenu::JQueryTreeView .
+{
+ my $nav_menu = HTML::Widgets::NavMenu::JQueryTreeView->new(
+ 'path_info' => "/me/bio/test.html",
+ @{$test_data->{'selective_expand'}},
+ 'ul_classes' => [ "one", "two", "three" ],
+ );
+
+ my $rendered =
+ $nav_menu->render();
+
+ my $expected_string = <<"EOF";
+<ul class="one">
+<li>
+<a href="./../../">Home</a>
+</li>
+<li class="open">
+<a href="./../" title="About Myself">About Me</a>
+<br />
+<ul class="two">
+<li>
+<a href="./../group-hug/">Group Hug</a>
+</li>
+<li>
+<a href="./../cool-io/">Cool I/O</a>
+</li>
+<li>
+<a href="./../../resume.html">Resume</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="./../../halifax/">Halifax</a>
+</li>
+<li>
+<a href="./../../open-source/" title="Open Source Software I Wrote">Software</a>
+<br />
+<ul class="two">
+<li>
+<a href="./../../open-source/fooware/">Fooware</a>
+</li>
+<li>
+<a href="./../../open-source/condor-man/" title="Kwalitee">Condor-Man</a>
+</li>
+</ul>
+</li>
+</ul>
+EOF
+
+ # TEST
+ test_nav_menu($rendered, $expected_string, "HTML::Widgets::NavMenu::JQueryTreeView #1");
+}
+
+# Test HTML::Widgets::NavMenu::JQueryTreeView with hidden.
+{
+ my $nav_menu = HTML::Widgets::NavMenu::JQueryTreeView->new(
+ 'path_info' => "/me/",
+ @{$test_data->{'hidden_item'}},
+ 'ul_classes' => [ "one", "two", "three" ],
+ );
+
+ my $rendered =
+ $nav_menu->render();
+
+ my $expected_string = <<"EOF";
+<ul class="one">
+<li>
+<a href="../">Home</a>
+</li>
+<li class="open">
+<b>About Me</b>
+<br />
+<ul class="two">
+<li>
+<a href="visible/">Visible</a>
+</li>
+<li>
+<a href="visible-too/">Visible Too</a>
+</li>
+</ul>
+</li>
+</ul>
+EOF
+
+ # TEST
+ test_nav_menu($rendered, $expected_string, "JQTreeView Nav Menu with Hidden Item");
+}
More information about the Pkg-perl-cvs-commits
mailing list