This patch updates the OPAC and staff interface to use Bootstrap 5. Bootstrap CSS assets are now pulled from node_modules and compiled into staff-global.css and opac.css at build time. This update lays the foundations of some other chnages, especially the addition of a dark mode in the future. Hundreds of templates have been updated, mostly with updates to the grid markup. Most of the responsive behavior is still the same with the exception of improved flexibility of headers and footers in both the OPAC and staff interface. The other most common change is to add a new "namespace" to data attributes used by Bootstrap, e.g. "data-bs-target" or "data-bs-toggle". Modal markup has also been updated everywhere. Other common changes: dropdown button markup, alert markup (we now use Bootstrap's "alert alert-warning" and "alert alert-info" instead of our old "dialog alert" and "dialog info"). Bootstrap 5 now uses CSS variables which we can override in our own '_variables.scss' (in both the OPAC and staff) to accomplish a lot of the style overrides which we previously put in staff-global.scss. Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
170 lines
5.9 KiB
Text
170 lines
5.9 KiB
Text
[% USE raw %]
|
|
[% USE Asset %]
|
|
[% USE KohaDates %]
|
|
[% USE ItemTypes %]
|
|
[% USE Price %]
|
|
[% PROCESS 'i18n.inc' %]
|
|
[% SET footerjs = 1 %]
|
|
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>[% FILTER collapse %]
|
|
[% t("Spent") | html %] ›
|
|
[% t("Acquisitions") | html %] ›
|
|
[% t("Koha") | html %]
|
|
[% END %]</title>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
</head>
|
|
|
|
<body id="acq_spent" class="acq">
|
|
[% WRAPPER 'header.inc' %]
|
|
[% INCLUDE 'acquisitions-search.inc' %]
|
|
[% END %]
|
|
|
|
[% WRAPPER 'sub-header.inc' %]
|
|
[% WRAPPER breadcrumbs %]
|
|
[% WRAPPER breadcrumb_item %]
|
|
<a href="/cgi-bin/koha/acqui/acqui-home.pl">Acquisitions</a>
|
|
[% END %]
|
|
[% WRAPPER breadcrumb_item bc_active= 1 %]
|
|
<span>Spent - [% fund_code | html %]</span>
|
|
[% END %]
|
|
[% END #/ WRAPPER breadcrumbs %]
|
|
[% END #/ WRAPPER sub-header.inc %]
|
|
|
|
<div class="main container-fluid">
|
|
<div class="row">
|
|
<div class="col-md-10 order-sm-1 order-md-2">
|
|
<main>
|
|
[% INCLUDE 'messages.inc' %]
|
|
|
|
<h1>Spent - Fund: [% fund_code | html %]</h1>
|
|
|
|
<div class="page-section">
|
|
|
|
<table id="spent">
|
|
<thead>
|
|
<tr>
|
|
<th class="anti-the">Title</th>
|
|
<th>[% tp('noun', 'Order') | html %]</th>
|
|
<th>Vendor</th>
|
|
<th>Invoice</th>
|
|
<th>Item types</th>
|
|
<th>Received</th>
|
|
<th>Unit price</th>
|
|
<th>Date ordered</th>
|
|
<th>Date received</th>
|
|
<th>Subtotal</th>
|
|
</tr>
|
|
</thead>
|
|
|
|
[% FOREACH order IN spent %]
|
|
<tr>
|
|
<td class="cell">
|
|
<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% order.biblionumber | uri %]">
|
|
[% order.title | html %]
|
|
</a>
|
|
</td>
|
|
<td class="cell">
|
|
[% order.ordernumber | html %]
|
|
</td>
|
|
<td class="cell">
|
|
<a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% order.booksellerid | uri %]">[% order.vendorname | html %]</a>
|
|
</td>
|
|
<td class="cell">
|
|
<a href="/cgi-bin/koha/acqui/invoice.pl?invoiceid=[% order.invoiceid | uri %]">[% order.invoicenumber | html %]</a>
|
|
</td>
|
|
<td class="cell">
|
|
[% FOREACH itemtype IN order.itemtypes %]
|
|
[% ItemTypes.GetDescription( itemtype ) | html %]
|
|
[% IF !loop.last() %] | [% END %]
|
|
[% END %]
|
|
</td>
|
|
<td class="cell">
|
|
[% order.quantityreceived | html %]
|
|
</td>
|
|
<td class="cell">
|
|
[% IF Koha.Preference('CalculateFundValuesIncludingTax') %]
|
|
[% order.unitprice_tax_included | $Price %]
|
|
[% ELSE %]
|
|
[% order.unitprice_tax_excluded | $Price %]
|
|
[% END %]
|
|
</td>
|
|
<td class="cell" data-order="[% order.entrydate | html %]">
|
|
[% order.entrydate | $KohaDates %]
|
|
</td>
|
|
<td class="cell" data-order="[% order.datereceived | html %]">
|
|
[% order.datereceived | $KohaDates %]
|
|
</td>
|
|
<td class="data cell">
|
|
[% order.rowtotal | $Price %]
|
|
</td>
|
|
</tr>
|
|
[% END %]
|
|
|
|
<tfoot>
|
|
[% IF shipmentcosts.size || ( adjustments && adjustments.count > 0 ) %]
|
|
<tr>
|
|
<td colspan="9"> Sub total </td>
|
|
<td class="data"> [% subtotal | $Price %] </td>
|
|
</tr>
|
|
[% END %]
|
|
[% IF shipmentcosts.size %]
|
|
[% FOREACH shipmentcost IN shipmentcosts %]
|
|
<tr>
|
|
<td></td>
|
|
<td colspan="8">Shipping cost for invoice
|
|
<a href="/cgi-bin/koha/acqui/invoice.pl?invoiceid=[% shipmentcost.invoiceid | uri %]">
|
|
[% shipmentcost.invoicenumber | html %]
|
|
</a>
|
|
</td>
|
|
<td class="data total">[% shipmentcost.shipmentcost | $Price %]</td>
|
|
</tr>
|
|
[% END %]
|
|
[% END %]
|
|
[% IF ( adjustments && adjustments.count > 0 ) %]
|
|
[% FOREACH adjustment IN adjustments %]
|
|
<tr>
|
|
<td></td>
|
|
<td colspan="8">Adjustment cost for invoice
|
|
<a href="/cgi-bin/koha/acqui/invoice.pl?invoiceid=[% adjustment.invoiceid | uri %]">
|
|
[% adjustment.invoice.invoicenumber | html %]
|
|
</a>
|
|
</td>
|
|
<td class="data total">[% adjustment.adjustment | $Price %]</td>
|
|
</tr>
|
|
[% END %]
|
|
[% END %]
|
|
<tr>
|
|
<td colspan="9">TOTAL</td>
|
|
<td class="data total">[% total | $Price %]</td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
|
|
</div> <!-- /.page-section -->
|
|
|
|
</main>
|
|
</div> <!-- /.col-md-10.order-md-2 -->
|
|
|
|
<div class="col-md-2 order-sm-2 order-md-1">
|
|
<aside>
|
|
[% INCLUDE 'acquisitions-menu.inc' %]
|
|
</aside>
|
|
</div> <!-- /.col-md-2.order-md-1 -->
|
|
</div> <!-- /.row -->
|
|
|
|
[% MACRO jsinclude BLOCK %]
|
|
[% Asset.js("js/acquisitions-menu.js") | $raw %]
|
|
[% INCLUDE 'datatables.inc' %]
|
|
<script>
|
|
$(document).ready(function() {
|
|
$("#spent").dataTable($.extend(true, {}, dataTablesDefaults, {
|
|
"columnDefs": [
|
|
{ "type": "anti-the", "targets": [ "anti-the" ] }
|
|
],
|
|
"pagingType": "full"
|
|
} ) );
|
|
});
|
|
</script>
|
|
[% END %]
|
|
|
|
[% INCLUDE 'intranet-bottom.inc' %]
|