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:
parent
be12aa9609
commit
4b312b141a
2 changed files with 175 additions and 76 deletions
|
@ -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;
|
||||
|
|
|
@ -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> [% 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>
|
||||
<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 %]
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue