+
+ [% IF ( itemdata_bundles ) %]
+ [% IF ITEM_RESULT.is_bundle %]
+
+
+
+ [% ELSE %]
+
+ [% END %]
+ [% END %]
[% IF Koha.Preference('OPACLocalCoverImages') && ( tab == 'holdings' && itemloop_has_images || tab == 'otherholdings' && otheritemloop_has_images ) %]
@@ -1419,6 +1431,82 @@
"autoWidth": false
}, columns_settings);
+ function createChild ( row, itemnumber ) {
+ // This is the table we'll convert into a DataTable
+ var bundles_table = $('');
+
+ // Display it the child row
+ row.child( bundles_table ).show();
+
+ // Initialise as a DataTable
+ var bundle_table_url = "/api/v1/items/" + itemnumber + "/bundled_items?";
+ var bundle_table = bundles_table.api({
+ "ajax": {
+ "url": bundle_table_url
+ },
+ "header_filter": false,
+ "embed": [
+ "biblio",
+ "checkout"
+ ],
+ "order": [[ 0, "asc" ]],
+ "columns": [
+ {
+ "data": "item_type",
+ "title": "Item Type",
+ "searchable": false,
+ "orderable": true,
+ },
+ {
+ "data": "biblio.title",
+ "title": "Title",
+ "searchable": true,
+ "orderable": true,
+ },
+ {
+ "data": "damaged_status",
+ "title": "Status",
+ "searchable": false,
+ "orderable": true,
+ },
+ {
+ "data": "external_id",
+ "title": "Barcode",
+ "searchable": true,
+ "orderable": true,
+ },
+ {
+ "data": "callnumber",
+ "title": "Callnumber",
+ "searchable": true,
+ "orderable": true,
+ },
+ ]
+ }, [], 1);
+
+ return;
+ }
+
+ // Add event listener for opening and closing details
+ $('#holdingst tbody').on('click', 'td.details-control', function () {
+ var tr = $(this).closest('tr');
+ var dTable = $(this).closest('table').DataTable({ 'retrieve': true });
+
+ var itemnumber = tr.data('itemnumber');
+ var row = dTable.row( tr );
+
+ if ( row.child.isShown() ) {
+ // This row is already open - close it
+ row.child.hide();
+ tr.removeClass('shown');
+ }
+ else {
+ // Open this row
+ createChild(row, itemnumber);
+ tr.addClass('shown');
+ }
+ } );
+
var serial_column_settings = [% TablesSettings.GetColumns( 'opac', 'biblio-detail', 'subscriptionst', 'json' ) | $raw %];
KohaTable("#subscriptionst", {
--- a/opac/opac-detail.pl
+++ a/opac/opac-detail.pl
@@ -752,6 +752,15 @@ if ( not $viewallitems and @items > $max_items_to_display ) {
$itm->{cover_images} = $item->cover_images;
}
+ if ($item->is_bundle) {
+ $itemfields{bundles} = 1;
+ $itm->{is_bundle} = 1;
+ }
+
+ if ($item->in_bundle) {
+ $itm->{bundle_host} = $item->bundle_host;
+ }
+
my $itembranch = $itm->{$separatebranch};
if ($currentbranch and C4::Context->preference('OpacSeparateHoldings')) {
if ($itembranch and $itembranch eq $currentbranch) {
@@ -802,6 +811,7 @@ if( C4::Context->preference('ArticleRequests') ) {
MARCNOTES => $marcnotesarray,
norequests => $norequests,
RequestOnOpac => C4::Context->preference("RequestOnOpac"),
+ itemdata_bundles => $itemfields{bundles},
itemdata_ccode => $itemfields{ccode},
itemdata_materials => $itemfields{materials},
itemdata_enumchron => $itemfields{enumchron},
--