From 5bb4cbf299825b5e2ce0da5f31211f6d83d7ff27 Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Thu, 5 Mar 2009 23:43:50 +0000 Subject: [PATCH] change names of loops to be _loop vs Loop. Added keyword loop variable. Change subtitle to a textarea. Add tests for Story template variables. --- .../root_import_storymanager.wgpkg | Bin 2153 -> 2109 bytes lib/WebGUI/Asset/Story.pm | 22 ++++++++--- t/Asset/Story.t | 36 +++++++++++++++++- 3 files changed, 52 insertions(+), 6 deletions(-) diff --git a/docs/upgrades/packages-7.7.0/root_import_storymanager.wgpkg b/docs/upgrades/packages-7.7.0/root_import_storymanager.wgpkg index 48c1d0eb6761d05cf4a7f28765277be6e2c6b4f9..f63fed1af7b8bb2b2035b7ccd05c8695d8a6d7ac 100644 GIT binary patch literal 2109 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 diff --git a/lib/WebGUI/Asset/Story.pm b/lib/WebGUI/Asset/Story.pm index f231470ec..645b6fc95 100644 --- a/lib/WebGUI/Asset/Story.pm +++ b/lib/WebGUI/Asset/Story.pm @@ -110,7 +110,7 @@ sub definition { defaultValue => '', }, subtitle => { - fieldType => 'text', + fieldType => 'textarea', #label => $i18n->get('subtitle'), #hoverHelp => $i18n->get('subtitle help'), defaultValue => '', @@ -223,7 +223,7 @@ sub getEditForm { name => 'title', value => $form->get('title') || $self->get('title'), } ), - subTitleForm => WebGUI::Form::text($session, { + subTitleForm => WebGUI::Form::textarea($session, { name => 'subtitle', value => $form->get('subtitle') || $self->get('subtitle') } ), @@ -546,13 +546,25 @@ Template variables will be added onto this hash ref. sub viewTemplateVariables { my ($self) = @_; my $session = $self->session; - my $var = $self->get; + my $archive = $self->getArchive; + my $var = $self->get; + if ($var->{highlights}) { - my @highlights = split "\n", $var->{highlights}; + my @highlights = split "\n+", $var->{highlights}; foreach my $highlight (@highlights) { - push @{ $var->{highlightsLoop} }, { highlight => $highlight }; + push @{ $var->{highlights_loop} }, { highlight => $highlight }; } } + + my $key = WebGUI::Keyword->new($session); + my $keywords = $key->getKeywordsForAsset( { asArrayRef => 1, asset => $self }); + $var->{keyword_loop} = []; + foreach my $keyword (@{ $keywords }) { + push @{ $var->{keyword_loop} }, { + keyword => $keyword, + url => $archive->getUrl("func=search;submit=1;keywords=".$session->url->escape($keyword)), + }; + } ##TODO: publish time, calculated from revisionDate return $var; } diff --git a/t/Asset/Story.t b/t/Asset/Story.t index 08a79f80b..20bb7390c 100644 --- a/t/Asset/Story.t +++ b/t/Asset/Story.t @@ -18,9 +18,10 @@ use WebGUI::Storage; use Test::More; # increment this value for each test you create use Test::Deep; +use Data::Dumper; my $tests = 1; -plan tests => 13 +plan tests => 16 + $tests ; @@ -123,6 +124,39 @@ cmp_deeply( 'setPhotoData: wipes the stored data if nothing is passed' ); +############################################################ +# +# viewTemplateVariables +# +############################################################ + +$story->update({ + highlights => "one\ntwo\nthree", + keywords => "foxtrot tango whiskey", +}); +is($story->get('highlights'), "one\ntwo\nthree", 'highlights set correctly for template var check'); +my $viewVariables = $story->viewTemplateVariables; +#diag Dumper $viewVariables; +cmp_deeply( + $viewVariables->{highlights_loop}, + [ + { highlight => "one", }, + { highlight => "two", }, + { highlight => "three", }, + ], + 'viewTemplateVariables: highlights_loop is okay' +); + +cmp_bag( + $viewVariables->{keyword_loop}, + [ + { keyword => "foxtrot", url => '/home/test-archive?func=search;submit=1;keywords=foxtrot', }, + { keyword => "tango", url => '/home/test-archive?func=search;submit=1;keywords=tango', }, + { keyword => "whiskey", url => '/home/test-archive?func=search;submit=1;keywords=whiskey', }, + ], + 'viewTemplateVariables: keywords_loop is okay' +); + } END {