From 1186aa54171303c4e9979d0af96a60429e920738 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Fri, 18 May 2012 12:02:25 +0200 Subject: [PATCH 1/1] Bug 8117: Divide budget periods into two tabs Budget periods are now divided into two tabs : active and inactive budget periods. The original author of this patch is Julian Maurice --- admin/aqbudgetperiods.pl | 73 ++++++--- .../prog/en/modules/admin/aqbudgetperiods.tt | 171 ++++++++++++++------ 2 files changed, 172 insertions(+), 72 deletions(-) diff --git a/admin/aqbudgetperiods.pl b/admin/aqbudgetperiods.pl index 64b333a..c2d2441 100755 --- a/admin/aqbudgetperiods.pl +++ b/admin/aqbudgetperiods.pl @@ -72,7 +72,8 @@ my $budget_period_hashref= $input->Vars; #my $sort1_authcat = $input->param('sort1_authcat'); #my $sort2_authcat = $input->param('sort2_authcat'); -my $pagesize = 20; +my $activepagesize = 20; +my $inactivepagesize = 20; $searchfield =~ s/\,//g; my ($template, $borrowernumber, $cookie, $staff_flags ) = get_template_and_user( @@ -245,27 +246,57 @@ elsif ( $op eq 'duplicate_budget' ){ # DEFAULT - DISPLAY AQPERIODS TABLE # ------------------------------------------------------------------- # display the list of budget periods - my $results = GetBudgetPeriods(); - $template->param( period_button_only => 1 ) unless (@$results) ; - my $page = $input->param('page') || 1; - my $first = ( $page - 1 ) * $pagesize; - # if we are on the last page, the number of the last word to display - # must not exceed the length of the results array - my $last = min( $first + $pagesize - 1, scalar @{$results} - 1, ); - my $toggle = 0; - my @period_loop; - foreach my $result ( @{$results}[ $first .. $last ] ) { - my $budgetperiod = $result; - FormatData($budgetperiod); - $budgetperiod->{'budget_period_total'} = $num->format_price( $budgetperiod->{'budget_period_total'} ); - $budgetperiod->{budget_active} = 1; - push( @period_loop, $budgetperiod ); - } - $template->param( - period_loop => \@period_loop, - pagination_bar => pagination_bar("aqbudgetperiods.pl",getnbpages(scalar(@$results),$pagesize),$page), - ); +my $activepage = $input->param('apage') || 1; +my $inactivepage = $input->param('ipage') || 1; +# Get active budget periods +my $results = GetBudgetPeriods( + {budget_period_active => 1}, + [{budget_period_description => 0}] +); +my $first = ( $activepage - 1 ) * $activepagesize; +my $last = min( $first + $activepagesize - 1, scalar @{$results} - 1, ); +my @period_active_loop; + +foreach my $result ( @{$results}[ $first .. $last ] ) { + my $budgetperiod = $result; + FormatData($budgetperiod); + $budgetperiod->{'budget_period_total'} = $num->format_price( $budgetperiod->{'budget_period_total'} ); + $budgetperiod->{budget_active} = 1; + push( @period_active_loop, $budgetperiod ); +} +my $url = "aqbudgetperiods.pl"; +$url .= "?ipage=$inactivepage" if($inactivepage != 1); +my $active_pagination_bar = pagination_bar ($url, getnbpages( scalar(@$results), $activepagesize), $activepage, "apage"); + +# Get inactive budget periods +$results = GetBudgetPeriods( + {budget_period_active => 0}, + [{budget_period_enddate => 1}] +); +my $first = ( $inactivepage - 1 ) * $inactivepagesize; +my $last = min( $first + $inactivepagesize - 1, scalar @{$results} - 1, ); +my @period_inactive_loop; +foreach my $result ( @{$results}[ $first .. $last ] ) { + my $budgetperiod = $result; + FormatData($budgetperiod); + $budgetperiod->{'budget_period_total'} = $num->format_price( $budgetperiod->{'budget_period_total'} ); + $budgetperiod->{budget_active} = 1; + push( @period_inactive_loop, $budgetperiod ); +} +$url = "aqbudgetperiods.pl?tab=2"; +$url .= "&apage=$activepage" if($activepage != 1); +my $inactive_pagination_bar = pagination_bar ($url, getnbpages( scalar(@$results), $inactivepagesize), $inactivepage, "ipage"); + +my $tab = $input->param('tab') ? $input->param('tab') - 1 : 0; +$template->param( + period_active_loop => \@period_active_loop, + period_inactive_loop => \@period_inactive_loop, + active_pagination_bar => $active_pagination_bar, + inactive_pagination_bar => $inactive_pagination_bar, + tab => $tab, + dateformat => C4::Context->preference('dateformat'), +); $template->param($op=>1); output_html_with_http_headers $input, $cookie, $template->output; diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt index aae5925..81d860f 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt @@ -1,9 +1,11 @@ [% INCLUDE 'doc-head-open.inc' %] + [% INCLUDE 'doc-head-close.inc' %] [% INCLUDE 'calendar.inc' %] - + +[% INCLUDE 'datatables-strings.inc' %] + - @@ -327,48 +349,95 @@ [% END %] <!-- DEFAULT display budget periods list --> [% IF ( else ) %] - <h2>Budgets administration</h2> - - [% INCLUDE 'budgets-active-currency.inc' %] - - <table id="periodsh"> - <thead> - <tr> - <th>Budget name</th> - <th>Start date</th> - <th>End date</th> - <th>Active</th> - <th>Locked</th> - <th>Total</th> - <th>Actions</th> - </tr> - </thead> - <tbody> - [% FOREACH period_loo IN period_loop %] - [% IF ( loop.odd ) %] - <tr> - [% ELSE %] - <tr class="highlight"> - [% END %] - <td><a href="/cgi-bin/koha/admin/aqbudgets.pl?budget_period_id=[% period_loo.budget_period_id %]" title="View funds for [% period_loo.budget_period_description %]">[% period_loo.budget_period_description %]</a></td> - <td>[% period_loo.budget_period_startdate %]</td> - <td>[% period_loo.budget_period_enddate %]</td> - <td>[% IF ( period_loo.budget_period_active ) %]<span style="color:green;">Active</span> [% ELSE %][% END %] </td> - <td> [% IF ( period_loo.budget_period_locked ) %]<span style="color:green;">Locked</span> [% ELSE %][% END %] </td> - <td align='right'>[% period_loo.budget_period_total %]</td> - <td> - <a href="[% period_loo.script_name %]?op=add_form&budget_period_id=[% period_loo.budget_period_id |html %]">Edit</a> - <a href="[% period_loo.script_name %]?op=delete_confirm&budget_period_id=[% period_loo.budget_period_id %]">Delete</a> - <a href="/cgi-bin/koha/admin/aqbudgets.pl?op=add_form&budget_period_id=[% period_loo.budget_period_id %]">Add fund</a> - </td> - </tr> - [% END %] - [% UNLESS ( period_loop ) %] - <tr><td colspan="7">No budget</td></tr> - [% END %] - </tbody> - </table> - <div class="pages">[% pagination_bar %]</div> + <h2>Budgets administration</h2> + + [% INCLUDE 'budgets-active-currency.inc' %] + + <div id="budgetsTabs" class="toptabs"> + <ul> + <li><a href="/cgi-bin/koha/admin/aqbudgetperiods.pl#active">Active Budgets</a></li> + <li><a href="/cgi-bin/koha/admin/aqbudgetperiods.pl#inactive">Inactive Budgets</a></li> + </ul> + + <div id="active"> + <h3>Active Budgets</h3> + <table id="activeperiodst"> + <thead> + <tr> + <th>Budget Name</th> + <th>Start Date</th> + <th>End Date</th> + <th>Locked</th> + <th>Total</th> + <th>Actions</th> + </tr> + </thead> + <tbody> + [% FOREACH period_active IN period_active_loop %] + <tr> + <td><a href="/cgi-bin/koha/admin/aqbudgets.pl?budget_period_id=[% period_active.budget_period_id %]" title="View funds for [% period_active.budget_period_description %]">[% period_active.budget_period_description %]</a></td> + <td>[% period_active.budget_period_startdate %]</td> + <td>[% period_active.budget_period_enddate %]</td> + <td> + [% IF ( period_active.budget_period_locked ) %] + <span style="color:green;">Locked</span>  + [% END %] + </td> + <td align='right'>[% period_active.budget_period_total %]</td> + <td> + <a href="[% script_name %]?op=add_form&budget_period_id=[% period_active.budget_period_id |html %]">Edit</a> + <a href="[% script_name %]?op=delete_confirm&budget_period_id=[% period_active.budget_period_id %]">Delete</a> + <a href="/cgi-bin/koha/admin/aqbudgets.pl?op=add_form&budget_period_id=[% period_active.budget_period_id %]">Add Fund</a> + </td> + </tr> + [% END %] + [% UNLESS ( period_active_loop ) %] + <tr><td colspan="7">No budget</td></tr> + [% END %] + </tbody> + </table> + <div class="paginationBar">[% active_pagination_bar %]</div> + </div> + <div id="inactive"> + <h3>Inactive Budgets</h3> + <table id="inactiveperiodst"> + <thead> + <tr> + <th>Budget name</th> + <th>Start date</th> + <th>End date</th> + <th>Locked</th> + <th>Total</th> + <th>Actions</th> + </tr> + </thead> + <tbody> + [% FOREACH period_loo IN period_inactive_loop %] + [% IF ( loop.odd ) %] + <tr> + [% ELSE %] + <tr class="highlight"> + [% END %] + <td><a href="/cgi-bin/koha/admin/aqbudgets.pl?budget_period_id=[% period_loo.budget_period_id %]" title="View funds for [% period_loo.budget_period_description %]">[% period_loo.budget_period_description %]</a></td> + <td>[% period_loo.budget_period_startdate %]</td> + <td>[% period_loo.budget_period_enddate %]</td> + <td> [% IF ( period_loo.budget_period_locked ) %]<span style="color:green;">Locked</span> [% ELSE %][% END %] </td> + <td align='right'>[% period_loo.budget_period_total %]</td> + <td> + <a href="[% period_loo.script_name %]?op=add_form&budget_period_id=[% period_loo.budget_period_id |html %]">Edit</a> + <a href="[% period_loo.script_name %]?op=delete_confirm&budget_period_id=[% period_loo.budget_period_id %]">Delete</a> + <a href="/cgi-bin/koha/admin/aqbudgets.pl?op=add_form&budget_period_id=[% period_loo.budget_period_id %]">Add fund</a> + </td> + </tr> + [% END %] + [% UNLESS ( period_inactive_loop ) %] + <tr><td colspan="7">No budget</td></tr> + [% END %] + </tbody> + </table> + <div class="pages">[% inactive_pagination_bar %]</div> + </div> + </div> [% END %] -- 1.7.7.3