@@ -, +, @@ customized 1. Open item editor on a record, and verify that all columns are visible. 2. Apply patch. 3. Reload editor, and verify that column visibility hasn't changed. 4. Open "Hide/show columns," and verify that you can add and remove columns. 5. Change the visibility and togglability of some columns in columns_settings.pl, and verify that these correctly apply to additem.pl. --- admin/columns_settings.yml | 76 ++++++++++++++++++++++ cataloguing/additem.pl | 7 ++ .../prog/en/includes/columns_settings.inc | 7 +- .../prog/en/modules/admin/columns_settings.tt | 5 ++ .../prog/en/modules/cataloguing/additem.tt | 21 ++++-- 5 files changed, 109 insertions(+), 7 deletions(-) --- a/admin/columns_settings.yml +++ a/admin/columns_settings.yml @@ -83,6 +83,82 @@ modules: - columnname: actions + cataloguing: + additem: + itemst: + # NOTE: These columns are selected from the non-hidden columns that have mappings to MARC + # subfields in the default MARC21 framework (and can thus be displayed in the item editor). + - + columnname: withdrawn + - + columnname: itemlost + - + columnname: cn_source + - + columnname: materials + - + columnname: damaged + - + columnname: restricted + - + columnname: cn_sort + - + columnname: notforloan + - + columnname: ccode + - + columnname: itemnumber + - + columnname: homebranch + - + columnname: holdingbranch + - + columnname: location + - + columnname: dateaccessioned + - + columnname: booksellerid + - + columnname: coded_location_qualifier + - + columnname: price + - + columnname: enumchron + - + columnname: stocknumber + - + columnname: stack + - + columnname: issues + - + columnname: renewals + - + columnname: reserves + - + columnname: itemcallnumber + - + columnname: barcode + - + columnname: onloan + - + columnname: datelastseen + - + columnname: datelastborrowed + - + columnname: copynumber + - + columnname: uri + - + columnname: replacementprice + - + columnname: replacementpricedate + - + columnname: itemnotes_nonpublic + - + columnname: itype + - + columnname: itemnotes + members: member: memberresultst: --- a/cataloguing/additem.pl +++ a/cataloguing/additem.pl @@ -803,6 +803,13 @@ for my $row ( @big_array ) { foreach my $subfield_code (sort keys(%witness)) { my %header_value; $header_value{header_value} = $witness{$subfield_code}; + + my $subfieldlib = $tagslib->{$itemtagfield}->{$subfield_code}; + my $kohafield = $subfieldlib->{kohafield}; + if ( $kohafield && $kohafield =~ /items.(.+)/ ) { + $header_value{column_name} = $1; + } + push(@header_value_loop, \%header_value); } --- a/koha-tmpl/intranet-tmpl/prog/en/includes/columns_settings.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/columns_settings.inc @@ -9,11 +9,14 @@ function KohaTable(selector, dt_parameters, columns_settings) { var hidden_ids = []; var excluded_ids = []; $(columns_settings).each( function() { + var named_id = $( 'thead th[data-colname="' + this.columnname + '"]', selector ).index( 'th' ); + var used_id = named_id == -1 ? id : named_id; + if ( this['is_hidden'] == "1" ) { - hidden_ids.push( id ); + hidden_ids.push( used_id ); } if ( this['cannot_be_toggled'] == "1" ) { - excluded_ids.push( id ); + excluded_ids.push( used_id ); } id++; }); --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/columns_settings.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/columns_settings.tt @@ -12,10 +12,15 @@ [% SET tables = module %] [% IF tables.$pagename.keys and tables.$pagename.keys.size > 0 %] [% FOR tablename IN tables.$pagename.keys.sort %] + [% IF pagename == 'additem' AND tablename == 'itemst' %] +
Saving changes to column visibility here will override framework visibility settings for the table of items.
+ [% END %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt @@ -1,9 +1,12 @@ +[% USE ColumnsSettings %] + [% INCLUDE 'doc-head-open.inc' %] Koha › Cataloging › [% title |html %] [% IF ( author ) %] by [% author %][% END %] (Record #[% biblionumber %]) › Items [% INCLUDE 'doc-head-close.inc' %] [% INCLUDE 'datatables.inc' %] +[% INCLUDE 'columns_settings.inc' %] [% INCLUDE 'browser-strings.inc' %]
[% IF tablename == 'currencies-table' %] Currency + [% ELSIF pagename == 'additem' AND tablename == 'itemst' %] + Items Editor [% END %] (id=[% tablename %])