make /contacts use datatables

agranig/1_0_subfix
Gerhard Jungwirth 13 years ago
parent ac9d981aa9
commit d8f05dc1a3

@ -117,6 +117,55 @@ sub delete :Chained('base') :PathPart('delete') :Args(0) {
$c->response->redirect($c->uri_for());
}
sub ajax :Chained('list') :PathPart('ajax') :Args(0) {
my ($self, $c) = @_;
#TODO: when user is not logged in, this gets forwarded to login page
#Process Arguments
my $sEcho = $c->request->params->{sEcho};
my $sSearch = $c->request->params->{sSearch};
my $iDisplayStart = $c->request->params->{iDisplayStart};
my $iDisplayLength = $c->request->params->{iDisplayLength};
if(! $sEcho ) {
$sEcho = "1";
}
if(! $sSearch ) {
$sSearch = "";
}
$c->stash(sEcho => $sEcho);
#Parse contacts into aaData (for datatables)
my $data = $c->stash->{contacts};
my $aaData = [];
for my $row (@$data) {
if (index($row->{firstname}, $sSearch) >= 0 ||
index($row->{lastname}, $sSearch) >= 0 ||
index($row->{email}, $sSearch) >= 0) {
push @$aaData, [$row->{id},
$row->{firstname},
$row->{lastname},
$row->{email}];
}
}
my $totalRecords = scalar(@$aaData);
#Pagination
if($iDisplayStart || $iDisplayLength ) {
my $endIndex = $iDisplayLength+$iDisplayStart-1;
$endIndex = $#$aaData if $endIndex > $#$aaData;
@$aaData = @$aaData[$iDisplayStart .. $endIndex];
}
$c->stash(aaData => $aaData,
iTotalRecords => $totalRecords,
iTotalDisplayRecords => $totalRecords);
$c->detach( $c->view("JSON") );
}
=head1 AUTHOR

@ -131,7 +131,6 @@ sub delete :Chained('base') :PathPart('delete') :Args(0) {
sub ajax :Chained('list') :PathPart('ajax') :Args(0) {
my ($self, $c) = @_;
#TODO: pagination
#TODO: when user is not logged in, this gets forwarded to login page
#Process Arguments

@ -11,6 +11,6 @@
helper.edit_object = contact;
helper.form_object = form;
PROCESS 'helpers/table_form.tt';
PROCESS 'helpers/datatables.tt';
-%]
[% # vim: set tabstop=4 syntax=html expandtab: -%]

Loading…
Cancel
Save