From cc370e180f9ac3ac3c401a9becd91a9569235093 Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Sat, 14 Jan 2006 00:28:58 +0000 Subject: [PATCH] automatically generated documentation has to get a session var, too --- lib/WebGUI/Help/Asset.pm | 32 +++++++++++++++++--------------- lib/WebGUI/Help/Macros.pm | 7 ++++--- lib/WebGUI/Operation/Help.pm | 14 +++++++++++++- 3 files changed, 34 insertions(+), 19 deletions(-) diff --git a/lib/WebGUI/Help/Asset.pm b/lib/WebGUI/Help/Asset.pm index a2cfba322..7884dfd4b 100644 --- a/lib/WebGUI/Help/Asset.pm +++ b/lib/WebGUI/Help/Asset.pm @@ -227,21 +227,23 @@ our $HELP = { body => 'asset list body', fields => [ ], - related => [ map { - my ($namespace) = /::(\w+)$/; - my $tag = $namespace; - $tag =~ s/([a-z])([A-Z])/$1 $2/g; #Separate studly caps - $tag =~ s/([A-Z]+(?![a-z]))/$1 /g; #Separate acronyms - $tag = lc $tag; - $namespace = join '', 'Asset_', $namespace; - { tag => "$tag add/edit", - namespace => $namespace } - } - grep { $_ } ##Filter out empty entries - @{ $self->session->config->get("assets") }, - @{ $self->session->config->get("assetContainers") }, - @{ $self->session->config->get("utilityAssets") }, - ], + related => sub { + my ($session) = @_; + map { + my ($namespace) = /::(\w+)$/; + my $tag = $namespace; + $tag =~ s/([a-z])([A-Z])/$1 $2/g; #Separate studly caps + $tag =~ s/([A-Z]+(?![a-z]))/$1 /g; #Separate acronyms + $tag = lc $tag; + $namespace = join '', 'Asset_', $namespace; + { tag => "$tag add/edit", + namespace => $namespace } + } + grep { $_ } ##Filter out empty entries + @{ $session->config->get("assets") }, + @{ $session->config->get("assetContainers") }, + @{ $session->config->get("utilityAssets") }, + }, }, }; diff --git a/lib/WebGUI/Help/Macros.pm b/lib/WebGUI/Help/Macros.pm index a50a5fbc0..9024ac5ca 100644 --- a/lib/WebGUI/Help/Macros.pm +++ b/lib/WebGUI/Help/Macros.pm @@ -21,7 +21,8 @@ our $HELP = { body => 'macros list body', fields => [ ], - related => [ + related => sub { ##Hey, you gotta pass in the session var, right? + my $session = shift; sort { $a->{tag} cmp $b->{tag} } map { $tag = $_; @@ -33,8 +34,8 @@ our $HELP = { { tag => $tag, namespace => $namespace } } - values %{ $self->session->config->get("macros") } - ], + values %{ $session->config->get("macros") } + }, }, }; diff --git a/lib/WebGUI/Operation/Help.pm b/lib/WebGUI/Operation/Help.pm index b389b1fc4..70a9323f0 100644 --- a/lib/WebGUI/Operation/Help.pm +++ b/lib/WebGUI/Operation/Help.pm @@ -95,6 +95,17 @@ sub _getHelpName { return $i18n->get($helpName,$file); } +#------------------------------------------------------------------- +sub _related { + my ($session, $related) = @_; + if (ref $related eq 'CODE') { + return $related->($session); + } + else { + return @{ $related }; + } +} + #------------------------------------------------------------------- sub www_viewHelp { my $session = shift; @@ -103,7 +114,8 @@ sub www_viewHelp { my $namespace = $session->form->process("namespace") || "WebGUI"; my $i18n = WebGUI::International->new($session, $namespace); my $help = _get($session->form->process("hid"),$namespace); - foreach my $row (@{$help->{related}}) { + my @related = _related($session, $help->{related}); + foreach my $row (@related) { my $relatedHelp = _get($row->{tag},$row->{namespace}); $ac->addSubmenuItem(_link($row->{tag},$row->{namespace}),$i18n->get($relatedHelp->{title},$row->{namespace})); }