청구 목록 페이지
List Controller - Query option
등록 날짜 역순 출력을 위한 내림 차수 옵션을 준다.
my %attr = ( 'order_by' => { -desc => 'me.id' } );
my $total_charge;
my %cond = ();
현재 가르켜야 할 페이지 정보가 없다면 1페이지로 하게 한다.
my $page = $c->req->params->{page};
$attr{page} = $page || 1;
status 옵션이 정의 되지 않았다면 전체(대기/승인/거부) 검색을 할수 있게 한다.
my $status = $c->req->param("status") || $c->stash->{"status"} || '0'; #수정 필요
status 옵션 없으면 전체 있으면 상태 검색 할수 있게 한다.
%cond = ( status => $status ) if $status;
$total_charge = $c->model('DonDB')->resultset('Charge')->search(\%cond, \%attr);
Data::Pageset활용 하여 페이징 할수 있다.
my $page_info =
Data::Pageset->new(
{
( map { $_ => $total_charge->pager->$_ } qw/entries_per_page total_entries current_page/ ),
mode => "slide",
pages_per_set => 10,
}
);
$c->stash(
lists => [ $total_charge->all ],
status => $status,
pageset => $page_info,
);
}
List - View
성공 혹은 실패 메세지 출력을 할수 있게 한다.
[% IF messages %]
<div class="alert fade in">
<button class="close" data-dismiss="alert">×</button>
[% messages %]
</div>
[% END %]
탭 등록으로 원하는 상태의 값들만 보여 줄수 있게 한다.
<div class="container-fluid">
<div class="row-fluid">
<div class="span2">
<ul class="nav nav-tabs nav-stacked">
<li class="active"><a href="/list">전체</a></li>
<li><a href="/list?status=1">대기</a></li>
<li><a href="/list?status=2">승인</a></li>
<li><a href="/list?status=3">거부</a></li>
</ul>
</div>
현재 경로가 어떻게 되는지 확인 할수 있도록 한다.
<div class="span10">
<ul class="breadcrumb">
<li>목록
<span class="divider">/</span>
</li>
<li class="active">
[% IF status == "1" %]
<b> 대기 </b>
[% ELSIF status == "2" %]
<b> 승인 </b>
[% ELSIF status == "3" %]
<b> 거부 </b>
[% ELSE %]
<b> 전체 </b>
[% END %]
</li>
</ul>