fixed pagination

This commit is contained in:
JT Smith 2004-02-26 02:32:32 +00:00
parent 2246b11904
commit 196d31cdf1

View file

@ -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;
}
}