Bug 37238

Summary: Add table settings to itemsearch results
Product: Koha Reporter: Lucas Gass (lukeg) <lucas>
Component: SearchingAssignee: Jonathan Druart <jonathan.druart>
Status: Needs documenting --- QA Contact: Martin Renvoize (ashimema) <martin.renvoize>
Severity: enhancement    
Priority: P5 - low CC: anni.maki-mantila, catrina, jonathan.druart, kebliss, lisette, martin.renvoize, oleonard
Version: Main   
Hardware: All   
OS: All   
Change sponsored?: --- Patch complexity: Trivial patch
Documentation contact: Documentation submission:
Text to go in the release notes:
The item search results table is now configurable via the table settings.
Version(s) released in:
24.11.00
Circulation function:
Bug Depends on: 37249, 38304    
Bug Blocks: 36640, 38331, 38935    
Attachments: Bug 37238: Add column configuration to item search results table
Bug 37238: Add column configuration to item search results table
Bug 37238: Replace jquery.dataTables.columnFilter.js with native DataTables function
Bug 37238: Move filters from tfoot to thead
Bug 37238: Move filters from tfoot to thead
Bug 37238: Add column configuration to item search results table
Bug 37238: Replace jquery.dataTables.columnFilter.js with native DataTables function
Bug 37238: Move filters from tfoot to thead
Bug 37238: (follow-up) Deal with table state, remove sharable link
Bug 37238: Add column configuration to item search results table
Bug 37238: Add exception for itemsearch
Bug 37238: Remove the global search
Bug 37238: Add column configuration to item search results table
Bug 37238: Add exception for itemsearch
Bug 37238: Remove the global search

Description Lucas Gass (lukeg) 2024-07-02 22:09:52 UTC
Itemsearch results has grown to be a very large table, table settings should be added.

https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=13965#c3
Comment 1 Lucas Gass (lukeg) 2024-07-02 22:15:27 UTC
Created attachment 168409 [details] [review]
Bug 37238: Add column configuration to item search results table

To test:
1. APPLY PATCH
2. Do an item search that will return results.
3. To the right of the table notice thee Columns, Export, Configure buttons
4. Use the Columns button to hide and show various columns, make sure it works right.
5. Use the Export button to try and export the table in various file formats. You should only see visible columns in your export.
6. Go to Admin -> Table settings, make sure you can hide columns properly from there.
Comment 2 Sam Lau 2024-07-02 22:39:08 UTC
Created attachment 168411 [details] [review]
Bug 37238: Add column configuration to item search results table

To test:
1. APPLY PATCH
2. Do an item search that will return results.
3. To the right of the table notice thee Columns, Export, Configure buttons
4. Use the Columns button to hide and show various columns, make sure it works right.
5. Use the Export button to try and export the table in various file formats. You should only see visible columns in your export.
6. Go to Admin -> Table settings, make sure you can hide columns properly from there.

Signed-off-by: Sam Lau <samalau@gmail.com>
Comment 3 Katrin Fischer 2024-07-03 07:30:34 UTC
*** Bug 23565 has been marked as a duplicate of this bug. ***
Comment 4 Owen Leonard 2024-07-03 12:14:19 UTC
I'm getting inconsistent behavior from the column header search fields. Sometimes they work, sometimes they incorrectly filter out all results, and sometimes I get a 500 error:

C4::Items::SearchItems(): DBI Exception: DBD::mysql::st execute failed: Column 'itemnumber' in where clause is ambiguous at /kohadevbox/koha/catalogue/itemsearch.pl line 252
 at /usr/share/perl5/DBIx/Class/Exception.pm line 77
	DBIx::Class::Exception::throw('DBIx::Class::Exception', 'DBI Exception: DBD::mysql::st execute failed: Column \'itemnumber\' in where clause is ambiguous', 0) called at /usr/share/perl5/DBIx/Class/Schema.pm line 1118
Comment 5 Lucas Gass (lukeg) 2024-07-03 14:00:34 UTC
(In reply to Owen Leonard from comment #4)
> I'm getting inconsistent behavior from the column header search fields.
> Sometimes they work, sometimes they incorrectly filter out all results, and
> sometimes I get a 500 error:

> C4::Items::SearchItems(): DBI Exception: DBD::mysql::st execute failed:
> Column 'itemnumber' in where clause is ambiguous at
> /kohadevbox/koha/catalogue/itemsearch.pl line 252
>  at /usr/share/perl5/DBIx/Class/Exception.pm line 77
> 	DBIx::Class::Exception::throw('DBIx::Class::Exception', 'DBI Exception:
> DBD::mysql::st execute failed: Column \'itemnumber\' in where clause is
> ambiguous', 0) called at /usr/share/perl5/DBIx/Class/Schema.pm line 1118

Thanks Owen. For the 500 error, I am reproducing that without my patch applied. It seems specific to the itemnumber column? 

It also seems like many of the columns, but not all, are incorrectly filtering without this patch applied.
Comment 6 Lucas Gass (lukeg) 2024-07-03 22:24:50 UTC
Created attachment 168483 [details] [review]
Bug 37238: Replace jquery.dataTables.columnFilter.js with native DataTables function
Comment 7 Lucas Gass (lukeg) 2024-07-03 22:33:27 UTC
I fixed the 500 error when using itemnumber filtering on Bug 37249.

The follow-up patch here make filtering work when columns are hidden. 

I did notice that when filtering things like Item type, Home library, currently library, damaged, lost, ect. it requires the user to know the code. The description doesn't work. This seems to be true with or without my patch.  

The same seems to true when filtering dates. You must use the ISO date or else filtering doesn't work. This is also true with or without this patchset.
Comment 8 Anni Mäki-Mantila 2024-07-16 07:51:29 UTC
Noticed a couple of issues while testing and thus changed status to Failed QA:

1. On the item results page, the filters have been relocated to the bottom of the results list when they should be at the top.
2. After making changes to the table settings, the changes didn't apply until I logged in again to Koha. I think this is different from how the table settings act otherwise?
Comment 9 Lucas Gass (lukeg) 2024-08-27 20:51:15 UTC
Created attachment 170785 [details] [review]
Bug 37238: Move filters from tfoot to thead
Comment 10 Lucas Gass (lukeg) 2024-08-27 20:52:25 UTC
(In reply to Anni Rajala from comment #8)
> Noticed a couple of issues while testing and thus changed status to Failed
> QA:
> 
> 1. On the item results page, the filters have been relocated to the bottom
> of the results list when they should be at the top.
> 2. After making changes to the table settings, the changes didn't apply
> until I logged in again to Koha. I think this is different from how the
> table settings act otherwise?

Anni, thanks for testing. I did move the filters from the footer into the header. 

However I cannot recreate your 2nd problem. For me the column configuration/Table settings are working.
Comment 11 Eric Garcia 2024-09-04 16:40:41 UTC
Created attachment 171037 [details] [review]
Bug 37238: Move filters from tfoot to thead

Signed-off-by: Eric Garcia <cubingguy714@gmail.com>
Comment 12 Anni Mäki-Mantila 2024-09-13 11:44:29 UTC
(In reply to Lucas Gass from comment #10)
> (In reply to Anni Rajala from comment #8)
> > Noticed a couple of issues while testing and thus changed status to Failed
> > QA:
> > 
> > 1. On the item results page, the filters have been relocated to the bottom
> > of the results list when they should be at the top.
> > 2. After making changes to the table settings, the changes didn't apply
> > until I logged in again to Koha. I think this is different from how the
> > table settings act otherwise?
> 
> Anni, thanks for testing. I did move the filters from the footer into the
> header. 
> 
> However I cannot recreate your 2nd problem. For me the column
> configuration/Table settings are working.

I was going to try if I could recreate the 2nd problem, but after applying the batch, I keep getting error ("Unsupported format html at /kohadevbox/koha/catalogue/itemsearch.pl line 100) when trying to search something in item search.
Comment 13 Jonathan Druart 2024-10-24 08:16:45 UTC
This will conflict badly with bug 33484 but I am willing to help to get it pushed ASAP so that I can write on top of it.

Please rebase.

CONFLICT (content): Merge conflict in koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/itemsearch.tt
Comment 14 Katrin Fischer 2024-10-24 09:16:04 UTC
Should this be "patch doesn't apply"?
Comment 15 Lucas Gass (lukeg) 2024-10-25 22:47:06 UTC
Created attachment 173414 [details] [review]
Bug 37238: Add column configuration to item search results table

To test:
1. APPLY PATCH
2. Do an item search that will return results.
3. To the right of the table notice thee Columns, Export, Configure buttons
4. Use the Columns button to hide and show various columns, make sure it works right.
5. Use the Export button to try and export the table in various file formats. You should only see visible columns in your export.
6. Go to Admin -> Table settings, make sure you can hide columns properly from there.

Signed-off-by: Sam Lau <samalau@gmail.com>
Comment 16 Lucas Gass (lukeg) 2024-10-25 22:47:09 UTC
Created attachment 173415 [details] [review]
Bug 37238: Replace jquery.dataTables.columnFilter.js with native DataTables function
Comment 17 Lucas Gass (lukeg) 2024-10-25 22:47:12 UTC
Created attachment 173416 [details] [review]
Bug 37238: Move filters from tfoot to thead

Signed-off-by: Eric Garcia <cubingguy714@gmail.com>
Comment 18 Lucas Gass (lukeg) 2024-10-25 22:48:48 UTC
(In reply to Jonathan Druart from comment #13)
> This will conflict badly with bug 33484 but I am willing to help to get it
> pushed ASAP so that I can write on top of it.
> 
> Please rebase.
> 
> CONFLICT (content): Merge conflict in
> koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/itemsearch.tt

Rebased. However, there is no reason this need to take precedence over Bug 33484. I can always come back to this later and re-do on top of Bug 33484.
Comment 19 Katrin Fischer 2024-10-28 18:01:41 UTC
Adding a RM_priority keyword here as this blocks other patches and is a much needed usability fix.
Comment 20 Jonathan Druart 2024-10-29 09:56:16 UTC
1. There is an input in the first and last columns (checkbox and actions)

2. When I click on an input to give it the focus, a request is made to sort the column

3. This table is absolutely not ready for the "save state" feature (from bug 33484). We need to make it an exception:
 * Remove the 2 'save state' options from the Table settings admin page for this table.
 * Remove the "Copy shareable link" button
 * Bypass the save/load state callback functions for this table

That will lead to some ugly code I have hardly tried to avoid on bug 33484 :D

Or we remove what has been done on bug 14322 and adjust this table to make it work with the "save state" feature.

I would move this to in discussion and see what we do next. I can help!
Comment 21 Lucas Gass (lukeg) 2024-10-30 22:30:14 UTC
(In reply to Jonathan Druart from comment #20)
> 1. There is an input in the first and last columns (checkbox and actions)
> 
> 2. When I click on an input to give it the focus, a request is made to sort
> the column

These problems should now both be fixed by obsoleting my follow-ups. Please have a look now.
Comment 22 Lucas Gass (lukeg) 2024-10-30 23:08:23 UTC
Created attachment 173740 [details] [review]
Bug 37238: (follow-up) Deal with table state, remove sharable link
Comment 23 Lucas Gass (lukeg) 2024-10-30 23:11:34 UTC
(In reply to Jonathan Druart from comment #20)
> 1. There is an input in the first and last columns (checkbox and actions)
> 
> 2. When I click on an input to give it the focus, a request is made to sort
> the column
> 
> 3. This table is absolutely not ready for the "save state" feature (from bug
> 33484). We need to make it an exception:
>  * Remove the 2 'save state' options from the Table settings admin page for
> this table.
>  * Remove the "Copy shareable link" button
>  * Bypass the save/load state callback functions for this table
> 
> That will lead to some ugly code I have hardly tried to avoid on bug 33484 :D
> 
> Or we remove what has been done on bug 14322 and adjust this table to make
> it work with the "save state" feature.
> 
> I would move this to in discussion and see what we do next. I can help!

I added a follow-up to make an exception for this table. We already have a sharable link from Bug 14322. 

I am happy to proceed in another direction if you want to try to implement the work from Bug 33484, Jonathan.
Comment 24 Jonathan Druart 2024-10-31 08:38:52 UTC
(In reply to Lucas Gass (lukeg) from comment #21)
> (In reply to Jonathan Druart from comment #20)
> > 1. There is an input in the first and last columns (checkbox and actions)
> > 
> > 2. When I click on an input to give it the focus, a request is made to sort
> > the column
> 
> These problems should now both be fixed by obsoleting my follow-ups. Please
> have a look now.

Well it's actually for this change that I needed this for bug 36640 :D

No worries, I will deal with that later.

(In reply to Lucas Gass (lukeg) from comment #23)
> (In reply to Jonathan Druart from comment #20)
> > 1. There is an input in the first and last columns (checkbox and actions)
> > 
> > 2. When I click on an input to give it the focus, a request is made to sort
> > the column
> > 
> > 3. This table is absolutely not ready for the "save state" feature (from bug
> > 33484). We need to make it an exception:
> >  * Remove the 2 'save state' options from the Table settings admin page for
> > this table.
> >  * Remove the "Copy shareable link" button
> >  * Bypass the save/load state callback functions for this table
> > 
> > That will lead to some ugly code I have hardly tried to avoid on bug 33484 :D
> > 
> > Or we remove what has been done on bug 14322 and adjust this table to make
> > it work with the "save state" feature.
> > 
> > I would move this to in discussion and see what we do next. I can help!
> 
> I added a follow-up to make an exception for this table. We already have a
> sharable link from Bug 14322. 

It's not correct. If you don't have save_state in the config you still want to offer the ability to share the state with the link.

I will submit a follow-up.

> I am happy to proceed in another direction if you want to try to implement
> the work from Bug 33484, Jonathan.

Yes, we should. But not here, not now :)
Comment 25 Jonathan Druart 2024-10-31 08:43:37 UTC
Created attachment 173765 [details] [review]
Bug 37238: Add column configuration to item search results table

To test:
1. APPLY PATCH
2. Do an item search that will return results.
3. To the right of the table notice thee Columns, Export, Configure buttons
4. Use the Columns button to hide and show various columns, make sure it works right.
5. Use the Export button to try and export the table in various file formats. You should only see visible columns in your export.
6. Go to Admin -> Table settings, make sure you can hide columns properly from there.

Signed-off-by: Sam Lau <samalau@gmail.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Comment 26 Jonathan Druart 2024-10-31 08:43:40 UTC
Created attachment 173766 [details] [review]
Bug 37238: Add exception for itemsearch

Item search has its own way to share the link, we should not deal with
the state (and the work from bug 33484) on this page.
It will certainly need to be adjusted to work like the other tables, but
it's something for later.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Comment 27 Jonathan Druart 2024-10-31 08:44:08 UTC
Lucas, are you happy with the patches? If so please PQA :)
Comment 28 Jonathan Druart 2024-10-31 09:14:45 UTC
Created attachment 173768 [details] [review]
Bug 37238: Remove the global search

It does not work, we should not display the input.
Comment 29 Jonathan Druart 2024-10-31 09:43:38 UTC
(In reply to Lucas Gass (lukeg) from comment #6)
> Created attachment 168483 [details] [review] [review]
> Bug 37238: Replace jquery.dataTables.columnFilter.js with native DataTables
> function

For the record, this is now done on bug 36640, see commit "Bug 36640: Fix itemsearch" on the remote branch there.
Comment 30 Martin Renvoize (ashimema) 2024-10-31 12:19:50 UTC
Created attachment 173785 [details] [review]
Bug 37238: Add column configuration to item search results table

To test:
1. APPLY PATCH
2. Do an item search that will return results.
3. To the right of the table notice thee Columns, Export, Configure buttons
4. Use the Columns button to hide and show various columns, make sure it works right.
5. Use the Export button to try and export the table in various file formats. You should only see visible columns in your export.
6. Go to Admin -> Table settings, make sure you can hide columns properly from there.

Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Comment 31 Martin Renvoize (ashimema) 2024-10-31 12:19:52 UTC
Created attachment 173786 [details] [review]
Bug 37238: Add exception for itemsearch

Item search has its own way to share the link, we should not deal with
the state (and the work from bug 33484) on this page.
It will certainly need to be adjusted to work like the other tables, but
it's something for later.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Comment 32 Martin Renvoize (ashimema) 2024-10-31 12:19:55 UTC
Created attachment 173787 [details] [review]
Bug 37238: Remove the global search

It does not work, we should not display the input.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Comment 33 Martin Renvoize (ashimema) 2024-10-31 12:23:52 UTC
Looking generally good here.. Passing QA
Comment 34 Lucas Gass (lukeg) 2024-10-31 19:39:14 UTC
Thanks for the help here, Jonathan.
Comment 35 Katrin Fischer 2024-11-11 10:39:50 UTC
Really happy to see the collaboration and this feature in general. I think it will be one of these seemingly "small" things, that will really help libraries in their day to day.
Comment 36 Katrin Fischer 2024-11-11 13:15:33 UTC
Pushed for 24.11!

Well done everyone, thank you!