@@ -, +, @@ --- api/v1/swagger/definitions/patron.yaml | 5 ++++ api/v1/swagger/paths/patrons.yaml | 1 + .../prog/en/includes/patron-search.inc | 30 ++++++++++++++++--- .../prog/en/modules/members/search.tt | 2 +- 4 files changed, 33 insertions(+), 5 deletions(-) --- a/api/v1/swagger/definitions/patron.yaml +++ a/api/v1/swagger/definitions/patron.yaml @@ -344,6 +344,11 @@ properties: description: patron's extended attributes items: $ref: "patron_extended_attribute.yaml" + checkouts_count: + type: + - integer + - "null" + description: Number of checkouts additionalProperties: false required: - surname --- a/api/v1/swagger/paths/patrons.yaml +++ a/api/v1/swagger/paths/patrons.yaml @@ -386,6 +386,7 @@ - acquisition: "order_manage" x-koha-embed: - extended_attributes + - checkouts+count post: x-mojo-to: Patrons#add operationId: addPatron --- a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc @@ -105,6 +105,7 @@ [% CASE 'dateexpiry' %]Expires on [% CASE 'borrowernotes' %]Notes [% CASE 'phone' %]Phone + [% CASE 'checkouts' %]Checkouts [% CASE 'action' %]  [% END %] [% END %] @@ -153,8 +154,8 @@ return map; }, {}); - [% IF Koha.Preference('ExtendedPatronAttributes') %] - let extended_attribute_types = [% To.json(attribute_type_codes || []) | $raw %]; + [% IF Koha.Preference('ExtendedPatronAttributes') && extended_attribute_types %] + let extended_attribute_types = [% To.json(extended_attribute_types || []) | $raw %]; [% END %] @@ -189,7 +190,7 @@ [% FOR search_field IN search_fields.split(',') %] {"me.[% search_field | html %]":{"like":"%"+filter+"%"}}, [% END %] - [% IF Koha.Preference('ExtendedPatronAttributes') %] + [% IF Koha.Preference('ExtendedPatronAttributes') && extended_attribute_types %] { "extended_attributes.value": { "like": "%" + filter + "%" }, "extended_attributes.code": extended_attribute_types @@ -202,6 +203,7 @@ [% default_sort_column = "name" %] [% END %] [% SET order_column_index = 0 %] + [% SET embed = ['extended_attributes'] %] patrons_table = $("#[% table_id | html %]").kohaTable({ "ajax": { [% SWITCH filter %] @@ -228,7 +230,6 @@ return json.data; } }, - embed: ['extended_attributes'], "drawCallback": function( settings ) { var api = this.api(); var data = api.data(); @@ -255,6 +256,17 @@ [% order_column_index = loop.count - 1%] [% END %] [% SWITCH column %] + [% CASE 'checkbox' %] + { + "data": "borrowernumber", + "searchable": true, + "orderable": true, + "render": function( data, type, row, meta ) { + return "" + _("Select patron") + "", + } + } [% CASE 'cardnumber' %] { "data": "cardnumber", @@ -373,6 +385,15 @@ return escape_str(data); } } + [% CASE 'checkouts' %][% embed.push('checkouts+count') %] + { + "data": "", + "searchable": false, + "orderable": false, + "render": function( data, type, row, meta ) { + return escape_str(row.checkouts_count); + } + } [% CASE 'action' %] { "data": function( row, type, val, meta ) { @@ -391,6 +412,7 @@ [% UNLESS loop.last %],[% END %] [% END %] ], + 'embed': [% To.json(embed) | $raw %], "order": [[ [% order_column_index | html %], "asc" ]], 'bAutoWidth': false, 'sPaginationType': 'full_numbers', --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/search.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/members/search.tt @@ -28,7 +28,7 @@ [% MACRO jsinclude BLOCK %] - [% PROCESS patron_search_js table_id => 'memberresultst', categories => categories, libraries => libraries, extended_attribute_types => extended_attribute_types, columns => columns, filter => filter, selection_type => selection_type, callback => callback %] + [% PROCESS patron_search_js table_id => 'memberresultst', categories => categories, libraries => libraries, extended_attribute_types => attribute_type_codes, columns => columns, filter => filter, selection_type => selection_type, callback => callback %] [% END %] [% SET popup_window = 1 %] --