From 4b312b141ab2dddfac5da1034338a1634cb504e4 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Fri, 20 Jul 2012 16:21:17 +0200 Subject: [PATCH] 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 Signed-off-by: Katrin Fischer Signed-off-by: Michael Davis Signed-off-by: Owen Leonard --- admin/aqbudgetperiods.pl | 74 ++++--- .../prog/en/modules/admin/aqbudgetperiods.tt | 181 ++++++++++++------ 2 files changed, 177 insertions(+), 78 deletions(-) diff --git a/admin/aqbudgetperiods.pl b/admin/aqbudgetperiods.pl index 64b333a485..9e2f3940ca 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( @@ -116,11 +117,9 @@ if ( $op eq 'add_form' ) { ## add or modify a budget period (preparation) ## get information about the budget period that must be modified - if ($budget_period_id) { # MOD my $budgetperiod_hash=GetBudgetPeriod($budget_period_id); # get dropboxes - FormatData($budgetperiod_hash); my $editnum = new Number::Format( 'int_curr_symbol' => '', @@ -159,7 +158,6 @@ elsif ( $op eq 'delete_confirm' ) { my $total = 0; my $data = GetBudgetPeriod( $budget_period_id); - FormatData($data); $$data{'budget_period_total'}=$num->format_price( $data->{'budget_period_total'}); $template->param( %$data @@ -245,27 +243,55 @@ 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; + $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; + $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 deb54428df..9135f2910e 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt @@ -1,8 +1,12 @@ +[% USE KohaDates %] [% INCLUDE 'doc-head-open.inc' %] + [% INCLUDE 'doc-head-close.inc' %] [% INCLUDE 'calendar.inc' %] + +[% INCLUDE 'datatables-strings.inc' %] + - @@ -164,13 +188,13 @@ <li> <label class="required" for="from">Start date</label> - <input type="text" size="10" id="from" name="budget_period_startdate" value="[% budget_period_startdate %]" class="datepickerfrom" /> + <input type="text" size="10" id="from" name="budget_period_startdate" value="[% budget_period_startdate | $KohaDates %]" class="datepickerfrom" /> <div class="hint">[% INCLUDE 'date-format.inc' %]</div> </li> <li> <label class="required" for="to">End date</label> - <input type="text" size="10" id="to" name="budget_period_enddate" value="[% budget_period_enddate %]" class="datepickerto" /> + <input type="text" size="10" id="to" name="budget_period_enddate" value="[% budget_period_enddate | $KohaDates %]" class="datepickerto" /> <div class="hint">[% INCLUDE 'date-format.inc' %]</div> </li> @@ -203,13 +227,13 @@ <ol> <li> <label class="required" for="from">Start date</label> - <input type="text" size="10" id="from" name="budget_period_startdate" value="[% budget_period_startdate %]" class="datepickerfrom" /> + <input type="text" size="10" id="from" name="budget_period_startdate" value="[% budget_period_startdate | $KohaDates %]" class="datepickerfrom" /> <div class="hint">[% INCLUDE 'date-format.inc' %]</div> </li> <li> <label class="required" for="to">End date</label> - <input type="text" size="10" id="to" name="budget_period_enddate" value="[% budget_period_enddate %]" class="datepickerto" /> + <input type="text" size="10" id="to" name="budget_period_enddate" value="[% budget_period_enddate | $KohaDates %]" class="datepickerto" /> <div class="hint">[% INCLUDE 'date-format.inc' %]</div> </li> @@ -290,48 +314,97 @@ [% 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="#active">Active Budgets</a></li> + <li><a href="#inactive">Inactive Budgets</a></li> + </ul> + + <div id="active"> + <h3>Active Budgets</h3> + [% IF ( period_active_loop ) %] + <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 | $KohaDates %]</td> + <td>[% period_active.budget_period_enddate | $KohaDates %]</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 %] + </tbody> + </table> + [% ELSE %] + No active budgets + [% END %] + <div class="paginationBar">[% active_pagination_bar %]</div> + </div> + <div id="inactive"> + <h3>Inactive Budgets</h3> + [% IF ( period_inactive_loop ) %] + <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 | $KohaDates %]</td> + <td>[% period_loo.budget_period_enddate | $KohaDates %]</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 %] + </tbody> + </table> + [% ELSE %] + No inactive budgets + [% END %] + <div class="pages">[% inactive_pagination_bar %]</div> + </div> + </div> [% END %] -- 2.39.5