diff --git a/lib/WebGUI/Wobject/WSClient.pm b/lib/WebGUI/Wobject/WSClient.pm index 27ff765e7..96cc874a3 100644 --- a/lib/WebGUI/Wobject/WSClient.pm +++ b/lib/WebGUI/Wobject/WSClient.pm @@ -368,8 +368,8 @@ sub www_view { # this case hasn't ever happened running against my dev SOAP::Lite # services, but let's assume it might. If our results array has # more than one element, let's hope if contains scalars - $p = WebGUI::Paginator->new($url, \@result, - $self->get('paginateAfter')); + $p = WebGUI::Paginator->new($url, $self->get('paginateAfter')); + $p->setDataByArrayRef(\@result); @result = (); @result = @$p; @@ -380,8 +380,8 @@ sub www_view { if (my $aref = $result[0]->{$self->get('paginateVar')}) { $var{'numResults'} = scalar @$aref; - $p = WebGUI::Paginator->new($url, $aref, - $self->get('paginateAfter')); + $p = WebGUI::Paginator->new($url, $self->get('paginateAfter')); + $p->setDataByArrayRef($aref); $result[0]->{$self->get('paginateVar')} = $p->getPageData; } else { @@ -392,22 +392,22 @@ sub www_view { # prevent the wobject from dying for (keys %{$result[0]}) { if ((ref $result[0]->{$_}) =~ /ARRAY/) { - $p = WebGUI::Paginator->new($url, $result[0]->{$_}, - $self->get('paginateAfter')); + $p = WebGUI::Paginator->new($url, $self->get('paginateAfter')); + $p->setDataByArrayRef($result[0]->{$_}); last; } } - $p ||= WebGUI::Paginator->new($url, []); + $p ||= WebGUI::Paginator->new($url); $result[0]->{$_} = $p->getPageData; } elsif ((ref $result[0]) =~ /ARRAY/) { - $p = WebGUI::Paginator->new($url, $result[0], - $self->get('paginateAfter')); + $p = WebGUI::Paginator->new($url, $self->get('paginateAfter')); + $p->setDataByArrayRef($result[0]); $result[0] = $p->getPageData; } else { - $p = WebGUI::Paginator->new($url, [$result[0]], - $self->get('paginateAfter')); + $p = WebGUI::Paginator->new($url, $self->get('paginateAfter')); + $p->setDataByArrayRef([$result[0]]); $result[0] = $p->getPageData; } } @@ -415,16 +415,9 @@ sub www_view { # set pagination links if ($p) { - $var{"firstPage"} = $p->getFirstPageLink; - $var{"lastPage"} = $p->getLastPageLink; - $var{"nextPage"} = $p->getNextPageLink; - $var{"pageList"} = $p->getPageLinks; - $var{"previousPage"} = $p->getPreviousPageLink; - $var{"multiplePages"} = ($p->getNumberOfPages > 1); - $var{'numberOfPages'} = $p->getNumberOfPages; - $var{'pageNumber'} = $p->getPageNumber; - - for ('firstPage','lastPage','nextPage','pageList','previousPage') { + $p->appendTemplateVars(\%var); + for ('pagination.firstPage','pagination.lastPage','pagination.nextPage','pagination.pageList', + 'pagination.previousPage', 'pagination.pageList.upTo20', 'pagination.pageList.upTo10') { $var{$_} =~ s/\?/\?cache=$cache_key\&/g; } }