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