fixed pagination
This commit is contained in:
parent
2246b11904
commit
196d31cdf1
1 changed files with 14 additions and 21 deletions
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue