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 <Katrin.Fischer.83@web.de>
Signed-off-by: Michael Davis <m.r.davis@cranfield.ac.uk>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
This commit is contained in:
Jonathan Druart 2012-07-20 16:21:17 +02:00 committed by Paul Poulain
parent be12aa9609
commit 4b312b141a
2 changed files with 175 additions and 76 deletions

View file

@ -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;

View file

@ -1,8 +1,12 @@
[% USE KohaDates %]
[% INCLUDE 'doc-head-open.inc' %]
<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
[% INCLUDE 'doc-head-close.inc' %]
[% INCLUDE 'calendar.inc' %]
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.dataTables.min.js"></script>
[% INCLUDE 'datatables-strings.inc' %]
<script type="text/javascript" src="[% themelang %]/js/datatables.js"></script>
<script type="text/javascript" src="[% themelang %]/js/acq.js"></script>
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.tablesorter.min.js"></script>
<script type="text/javascript">
// #################################################################################
// Javascript
@ -69,13 +73,33 @@
alert(alertString2);
}
}
$(document).ready(function() {
$("#periodsh").tablesorter({
widgets : ['zebra'],
sortList: [[0,0]],
headers: {6:{sorter:false}}
});
});
[% IF ( dateformat == 'metric' ) %]
dt_add_type_uk_date();
[% END %]
$(document).ready(function() {
var tabs = $('#budgetsTabs').tabs();
[% IF ( tab ) %]
tabs.tabs('select', [% tab %]);
[% END %]
$("table").dataTable($.extend(true, {}, dataTablesDefaults, {
"aoColumnDefs": [
{
[% IF ( dateformat == 'metric' ) %]
"aTargets": [ 1, 2 ], "sType": "uk_date",
[% END %]
"bSortable": false, 'aTargets':['_all'],
},
],
"sPaginationType": "four_button",
"bAutoWidth": false,
"bPaginate": false,
"bInfo": false,
"bFilter": false,
} ) );
});
</script>
<title>
@ -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>
<h2>Budgets administration</h2>
[% INCLUDE 'budgets-active-currency.inc' %]
[% 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>&nbsp;[% ELSE %][% END %] </td>
<td> [% IF ( period_loo.budget_period_locked ) %]<span style="color:green;">Locked</span>&nbsp;[% ELSE %][% END %] </td>
<td align='right'>[% period_loo.budget_period_total %]</td>
<td>
<a href="[% period_loo.script_name %]?op=add_form&amp;budget_period_id=[% period_loo.budget_period_id |html %]">Edit</a>
<a href="[% period_loo.script_name %]?op=delete_confirm&amp;budget_period_id=[% period_loo.budget_period_id %]">Delete</a>
<a href="/cgi-bin/koha/admin/aqbudgets.pl?op=add_form&amp;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>
<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>&nbsp;
[% END %]
</td>
<td align='right'>[% period_active.budget_period_total %]</td>
<td>
<a href="[% script_name %]?op=add_form&amp;budget_period_id=[% period_active.budget_period_id |html %]">Edit</a>
<a href="[% script_name %]?op=delete_confirm&amp;budget_period_id=[% period_active.budget_period_id %]">Delete</a>
<a href="/cgi-bin/koha/admin/aqbudgets.pl?op=add_form&amp;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>&nbsp;[% ELSE %][% END %] </td>
<td align='right'>[% period_loo.budget_period_total %]</td>
<td>
<a href="[% period_loo.script_name %]?op=add_form&amp;budget_period_id=[% period_loo.budget_period_id |html %]">Edit</a>
<a href="[% period_loo.script_name %]?op=delete_confirm&amp;budget_period_id=[% period_loo.budget_period_id %]">Delete</a>
<a href="/cgi-bin/koha/admin/aqbudgets.pl?op=add_form&amp;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 %]