BUGFIX: Submissions could not be paginated.

This commit is contained in:
Stig Lindqvist 2012-05-14 14:16:07 +12:00
parent e2a5fb5ecf
commit 0bbfb720ca
3 changed files with 36 additions and 27 deletions

View File

@ -18,23 +18,20 @@ class SubmittedFormReportField extends FormField {
* *
* @return PaginatedList * @return PaginatedList
*/ */
public function getSubmissions($start = 0) { public function getSubmissions($page = 1) {
$record = $this->form->getRecord(); $record = $this->form->getRecord();
$submissions = $record->getComponents('Submissions', null, "\"Created\" DESC"); $submissions = $record->getComponents('Submissions', null, "\"Created\" DESC");
$query = DB::query(sprintf(" $query = DB::query(sprintf("SELECT COUNT(*) AS \"CountRows\" FROM \"SubmittedForm\" WHERE \"ParentID\" = '%d'", $record->ID));
SELECT COUNT(*) AS \"CountRows\" $totalCount = 0;
FROM \"SubmittedForm\" foreach($query as $r) {
WHERE \"ParentID\" = '%d'", $record->ID $totalCount = $r['CountRows'];
)); }
foreach($query as $r) $totalCount = $r['CountRows'];
$list = new PaginatedList($submissions); $list = new PaginatedList($submissions);
$list->setPageStart($start); $list->setCurrentPage($page);
$list->setPageLength(10); $list->setPageLength(10);
$list->setTotalItems($totalCount); $list->setTotalItems($totalCount);
return $list; return $list;
} }
@ -42,10 +39,9 @@ class SubmittedFormReportField extends FormField {
* @return string * @return string
*/ */
public function getMoreSubmissions() { public function getMoreSubmissions() {
$start = ($start = $this->request->getVar('start')) ? (int) $start : 0; $page = ($page = $this->request->getVar('page')) ? (int)$page : 1;
return $this->customise(new ArrayData(array( return $this->customise(new ArrayData(array(
'Submissions' => $this->getSubmissions($start) 'Submissions' => $this->getSubmissions($page)
)))->renderWith(array('SubmittedFormReportField')); )))->renderWith(array('SubmittedFormReportField'));
} }

View File

@ -357,6 +357,16 @@
currentRules.append(newRule); currentRules.append(newRule);
} }
}); });
$('.userforms-submissions-pagination a').entwine({
onclick: function(e) {
e.preventDefault();
$.get($(this).attr('href'), function(data) {
$('#userforms-submissions').replaceWith(data);
});
this._super();
}
})
}); });
}); });
})(jQuery); })(jQuery);

View File

@ -23,18 +23,21 @@
<% if Submissions.MoreThanOnePage %> <% if Submissions.MoreThanOnePage %>
<div class="userforms-submissions-pagination"> <div class="userforms-submissions-pagination">
<span>Pages: </span>
<% if Submissions.NotFirstPage %> <% loop Submissions.Pages() %>
<a class="prev" href="javascript:void(0)" onclick="jQuery('#userforms-submissions').parent().load(jQuery('base').get(0).href+'/{$Top.Link}/getMoreSubmissions/?start={$Submissions.PrevStart}');" title="View the previous page">Previous page</a> <% if CurrentBool %>
$PageNum
<% else %>
<% if Link %>
<a href="{$Top.Link(getMoreSubmissions)}?page=$PageNum">$PageNum</a>
<% else %>
...
<% end_if %> <% end_if %>
<span>Viewing rows $Submissions.Start - $Submissions.StartPlusOffset of $Submissions.TotalCount rows</span>
<% if Submissions.NotLastPage %>
<a class="next" href="javascript:void(0)" onclick="jQuery('#userforms-submissions').parent().load(jQuery('base').get(0).href+'/{$Top.Link}/getMoreSubmissions/?start={$Submissions.NextStart}');" title="View the next page">Next page</a>
<% end_if %> <% end_if %>
<% end_loop %>
</div> </div>
<% end_if %> <% end_if %>
<% else %> <% else %>
<p class="userforms-nosubmissions" <% if Submissions %>style="display: none"<% end_if %>><% _t('NOSUBMISSIONS', 'No Submissions') %></p> <p class="userforms-nosubmissions" <% if Submissions %>style="display: none"<% end_if %>><% _t('NOSUBMISSIONS', 'No Submissions') %></p>
<% end_if %> <% end_if %>