@@ -, +, @@ overdues report - The list of overdues should look correct, with no new columns shown. - Test the column visibility button, showing the columns which are hidden by default. Confirm that the data in these columns displays correctly. - Show or hide columns in such a way that it doesn't match the default configuration. - Navigate away from this page. - Return to the page. The same set of columns should be visible. --- admin/columns_settings.yml | 31 ++++++++++++++++++ circ/overdue.pl | 8 +++-- .../intranet-tmpl/prog/en/modules/circ/overdue.tt | 37 +++++++++++++++++----- koha-tmpl/intranet-tmpl/prog/js/datatables.js | 28 ++++++++++++++++ 4 files changed, 93 insertions(+), 11 deletions(-) --- a/admin/columns_settings.yml +++ a/admin/columns_settings.yml @@ -765,6 +765,37 @@ modules: - columnname: items_needed + overdues: + circ-overdues: + - + columname: due_date + - + columname: patron + - + columname: patron_category + is_hidden: 1 + - + columname: patron_library + - + columname: title + - + columname: home_library + is_hidden: 1 + - + columname: holding_library + is_hidden: 1 + - + columname: barcode + - + columname: call_number + - + columname: item_type + is_hidden: 1 + - + columname: price + - + columname: non-public_note + opac: biblio-detail: holdingst: --- a/circ/overdue.pl +++ a/circ/overdue.pl @@ -239,7 +239,8 @@ if ($noreport) { items.itemcallnumber, items.replacementprice, items.enumchron, - items.itemnotes_nonpublic + items.itemnotes_nonpublic, + items.itype FROM issues LEFT JOIN borrowers ON (issues.borrowernumber=borrowers.borrowernumber ) LEFT JOIN items ON (issues.itemnumber=items.itemnumber) @@ -322,12 +323,13 @@ if ($noreport) { biblionumber => $data->{biblionumber}, title => $data->{title}, author => $data->{author}, - homebranchcode => $data->{homebranchcode}, - holdingbranchcode => $data->{holdingbranchcode}, + homebranchcode => $data->{homebranch}, + holdingbranchcode => $data->{holdingbranch}, itemcallnumber => $data->{itemcallnumber}, replacementprice => $data->{replacementprice}, itemnotes_nonpublic => $data->{itemnotes_nonpublic}, enumchron => $data->{enumchron}, + itemtype => $data->{itype}, patron_attr_value_loop => \@patron_attr_value_loop, }; } --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/overdue.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/overdue.tt @@ -3,6 +3,9 @@ [% USE KohaDates %] [%- USE Branches -%] [%- USE Price -%] +[%- USE ItemTypes -%] +[%- USE Categories -%] +[%- USE ColumnsSettings -%] [% SET footerjs = 1 %] [% INCLUDE 'doc-head-open.inc' %] Koha › Circulation › Items overdue as of [% todaysdate | html %] @@ -48,10 +51,14 @@ Due date Patron - Library - Title + Patron category + Patron library + Title + Home library + Holding library Barcode Call number + Item type Price Non-public note @@ -67,10 +74,15 @@ [% IF ( overdueloo.email ) %][email][% END %] [% IF ( overdueloo.phone ) %]([% overdueloo.phone | html %])[% ELSIF ( overdueloo.mobile ) %]([% overdueloo.mobile | html %])[% ELSIF ( overdueloo.phonepro ) %]([% overdueloo.phonepro | html %])[% END %] [% END %] - [% Branches.GetName( overdueloo.patron.branchcode ) | html %] + [% Categories.GetName( overdueloo.patron.categorycode ) | html %] + [% Branches.GetName( overdueloo.homebranchcode ) | html %] [% INCLUDE 'biblio-default-view.inc' biblionumber = overdueloo.biblionumber %][% overdueloo.title | html %] [% overdueloo.subtitle | html %] [% IF ( overdueloo.author ) %], by [% overdueloo.author | html %][% END %][% IF ( overdueloo.enumchron ) %], [% overdueloo.enumchron | html %][% END %] + + [% Branches.GetName( overdueloo.holdingbranchcode ) | html %] + [% Branches.GetName( overdueloo.patron.branchcode ) | html %] [% overdueloo.barcode | html %] [% overdueloo.itemcallnumber | html %] + [% ItemTypes.GetDescription( overdueloo.itemtype ) | html %] [% overdueloo.replacementprice | $Price %] [% overdueloo.itemnotes_nonpublic | html %] @@ -210,7 +222,8 @@ [% MACRO jsinclude BLOCK %] [% INCLUDE 'calendar.inc' %] [% INCLUDE 'datatables.inc' %] - [% END %] --- a/koha-tmpl/intranet-tmpl/prog/js/datatables.js +++ a/koha-tmpl/intranet-tmpl/prog/js/datatables.js @@ -567,3 +567,31 @@ function footer_column_sum( api, column_numbers ) { $( api.column( column_number ).footer() ).html(total.format_price()); }; } + +/* get_columns_saved_state checks for a DataTables configuration saved + * in the browser's local storage. If it is present, the columns + * configuration supplied by Koha is overwritten + * + * It takes two parameters: + * - localstorage_config, the DataTables saved state object from local storage + * - columns_settings, the columns settings object supplied by the template + */ + +function get_columns_saved_state( localstorage_config, columns_settings ){ + var tables = JSON.parse( localstorage_config ); + // if a table configuration was found in local storage, parse it + if( tables ){ + var stateSave_column_visibility = []; + $(tables.columns).each(function(){ + stateSave_column_visibility.push( this.visible === true ? 0 : 1 ); + }); + $.each( columns_settings, function( index, key ){ + if( stateSave_column_visibility[ index ] !== columns_settings[key] ){ + columns_settings[ index ].is_hidden = stateSave_column_visibility[ index ]; + } + }); + return columns_settings; + } else { + return columns_settings; + } +} --