Koha/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/acqui-home.tt
Galen Charlton 2e3c821564 Bug 10792: fix sorting of funds table on acquisitions home page
This patch introduces a DataTables sorting plugin, title-numeric,
for sorting cells based on a decimal number embedded in a span title
attribute.  This allows currency amounts to be formatted properly
for display without having to writing a sorting plugin that's
super-smart about removing the formatting, particularly for locales
that use a comma as the decimal mark.

The sorter plugin can be used like this:

- In the DataTables config:

"aoColumns": [
   { "sType": "title-numeric" },
]

- In the table data

<td><span title="[% decimal_number_that_JS_parseFloat_accepts %]">
    [% formatted currency %]
</span></td>

To test:

[1] Ensure that there is at least one active budget and at least
    one inactive one.
[2] Go to the acquisitions home page.  Note that changing the sort order
    on the amount, ordered, spent, or avail columns results in incorrect
    sorting that is either ASCII-betical or which ignores any component
    of large numbers that occur after the thousands separator.
[3] Apply the patch.
[4] Verify that the sorting now works correctly and that no JavaScript
    errors appear in the JS debug console of your choice.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Sorting now works correctly, for active and inactive funds.
Passes all tests and QA script.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
2013-09-16 15:30:33 +00:00

198 lines
8 KiB
Text

[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Acquisitions</title>
<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
[% INCLUDE 'doc-head-close.inc' %]
[% INCLUDE 'datatables.inc' %]
<script type="text/javascript">
//<![CDATA[
dt_overwrite_html_sorting_localeCompare();
$(document).ready(function() {
var inactive = $(".b_inactive,.bu_active");
var active = $(".bu_inactive");
inactive.hide();
active.show();
$('#showallbudgets').click(function() {
if ( $('#showallbudgets:checked').val() !== undefined) {
inactive.show();
active.hide();
}
else {
inactive.hide();
active.show();
}
});
var srlt = $("#accounts").dataTable($.extend(true, {}, dataTablesDefaults, {
"aoColumns": [
null,
null,
null,
null,
null,
{ "sType": "title-numeric" },
{ "sType": "title-numeric" },
{ "sType": "title-numeric" },
{ "sType": "title-numeric" }
],
'sDom': 't',
'bPaginate': false,
'bFilter': false,
'bInfo': false
} ) );
});
//]]>
</script>
</head>
<body id="acq_acqui-home" class="acq">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'acquisitions-search.inc' %]
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/acqui/acqui-home.pl">Acquisitions</a> &rsaquo; </div>
<div id="doc3" class="yui-t2">
<div id="bd">
<div id="yui-main">
<div class="yui-b">
[% INCLUDE 'acquisitions-toolbar.inc' %]
<h1>Acquisitions</h1>
[% UNLESS ( loop_budget ) %]
[% IF ( CAN_user_acquisition_period_manage ) %]
<div class="dialog alert">You must <a href="/cgi-bin/koha/admin/aqbudgetperiods.pl">define a budget</a> in Administration</div>
[% ELSE %]
<div class="dialog alert">Your administrator must define a budget in Administration</div>
[% END %]
[% END %]
<div class="yui-g">
<div class="yui-u first">
<div id="acqui_acqui_home_order">
<fieldset>
<legend>Manage orders</legend>
<form name="findsupplier" action="/cgi-bin/koha/acqui/booksellers.pl" method="post">
<p><label for="supplierpage">Vendor: </label><input type="text" size="25" name="supplier" id="supplierpage" class="focus" />
<input type="submit" value="Search" />
</p>
</form>
</fieldset>
</div>
</div>
[% IF ( suggestion && suggestions_count ) %]
<div class="yui-u">
<div id="acqui_acqui_home_suggestions">
<fieldset>
<legend>Pending suggestions</legend>
<p>[% suggestions_count %] suggestions waiting. <a href="/cgi-bin/koha/suggestion/suggestion.pl">Manage suggestions</a>.</p>
</fieldset>
</div>
</div>
[% END %]
</div>
[% IF ( loop_budget ) %]
<h3>All available funds[% IF ( branchname ) %] for [% branchname %] library[% END %]</h3>
<!-- <a href="/cgi-bin/koha/admin/aqbookfund.pl" title="[ Manage funds ]">[ Manage ]</a>
<a href="/cgi-bin/koha/admin/budgetperiods.pl">manage budgets</a><br><br> -->
<div id="BudgetsAndFunds">
<p><label for="showallbudgets">Show active and inactive:</label> <input type="checkbox" id="showallbudgets" /></p>
<table id="accounts">
<thead>
<tr>
<th>Fund</th>
<th>Fund name</th>
<th class="b_inactive">Active</th>
<th>Owner</th>
<th>Library</th>
<th>Amount</th>
<th>Ordered</th>
<th>Spent</th>
<th>Avail</th>
</tr>
</thead>
<tfoot id="funds_total">
<tr>
<th>Total</th>
<th>&nbsp;</th>
<th class="b_inactive">&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th class="data"><span class="bu_active">[% total %]</span><span class="bu_inactive" >[% total_active %]</span></th>
<th class="data"><span class="bu_active">[% totordered %]</span><span class="bu_inactive" >[% totordered_active %]</span></th>
<th class="data"><span class="bu_active">[% totspent %]</span><span class="bu_inactive" >[% totspent_active %]</span></th>
<th class="data"><span class="bu_active">[% totavail %]</span><span class="bu_inactive" >[% totavail_active %]</span></th>
</tr>
</tfoot>
<tbody>
[% FOREACH loop_budge IN loop_budget %]
[% IF ( loop_budge.budget_period_active ) %]
<tr>
<td>
[% IF ( CAN_user_acquisition_budget_manage ) %]
<a href="/cgi-bin/koha/admin/aqbudgets.pl?budget_period_id=[% loop_budge.budget_period_id %]">[% loop_budge.budget_code %]</a>
[% ELSE %]
[% loop_budge.budget_code %]
[% END %]
</td>
<td>[% loop_budge.budget_name %]</td>
<td class="b_inactive">Active</td>
<td>[% IF ( loop_budge.budget_owner_borrowernumber ) %]
<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% loop_budge.budget_owner_borrowernumber %]">[% loop_budge.budget_owner_surname %], [% loop_budge.budget_owner_firstname %]</a>
[% ELSE %]
&nbsp;
[% END %]
</td>
<td>[% loop_budge.budget_branchname %]</td>
<td class="data"><span title="[% loop_budge.budget_amount %]">[% loop_budge.formatted_budget_amount %]</span></td>
<td class="data"><span title="[% loop_budge.budget_ordered %]"><a href="ordered.pl?fund=[% loop_budge.budget_id %]&amp;fund_code=[% loop_budge.budget_code %]">[% loop_budge.formatted_budget_ordered %]</a></span></td>
<td class="data"><span title="[% loop_budge.budget_spent %]"><a href="spent.pl?fund=[% loop_budge.budget_id %]&amp;fund_code=[% loop_budge.budget_code %]">[% loop_budge.formatted_budget_spent %]</span></a></td>
<td class="data"><span title="[% loop_budge.budget_avail %]">[% loop_budge.formatted_budget_avail %]</td>
</tr>
[% ELSE %]
<tr class="b_inactive">
<td>
[% IF ( CAN_user_acquisition_budget_manage ) %]
<a href="/cgi-bin/koha/admin/aqbudgets.pl?budget_period_id=[% loop_budge.budget_period_id %]">[% loop_budge.budget_code %]</a>
[% ELSE %]
[% loop_budge.budget_code %]
[% END %]
</td>
<td>[% loop_budge.budget_name %]</td>
<td class="b_inactive">Inactive</td>
<td>[% IF ( loop_budge.budget_owner_borrowernumber ) %]
<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% loop_budge.budget_owner_borrowernumber %]">[% loop_budge.budget_owner_surname %], [% loop_budge.budget_owner_firstname %]</a>
[% ELSE %]
&nbsp;
[% END %]
</td>
<td>[% loop_budge.budget_branchname %]</td>
<td class="data"><span title="[% loop_budge.budget_amount %]">[% loop_budge.formatted_budget_amount %]</span></td>
<td class="data"><span title="[% loop_budge.budget_ordered %]"><a href="ordered.pl?fund=[% loop_budge.budget_id %]&amp;fund_code=[% loop_budge.budget_code %]">[% loop_budge.formatted_budget_ordered %]</a></span></td>
<td class="data"><span title="[% loop_budge.budget_spent %]"><a href="spent.pl?fund=[% loop_budge.budget_id %]&amp;fund_code=[% loop_budge.budget_code %]">[% loop_budge.formatted_budget_spent %]</span></a></td>
<td class="data"><span title="[% loop_budge.budget_avail %]">[% loop_budge.formatted_budget_avail %]</td>
</tr>
[% END %]
[% END %]
</tbody>
</table>
</div>
[% END %]
</div>
</div>
<div class="yui-b">
[% INCLUDE 'acquisitions-menu.inc' %]
</div>
</div>
[% INCLUDE 'intranet-bottom.inc' %]