Throttling datatables filtering shoots unnecessary filtering events when a user begins typing to a filter field and during typing. To make the system feel more responsive and get rid of excess filtering events we could replace throttling with an input timeout and wait until x milliseconds have passed when the user has stopped typing into the filter field.
Created attachment 159238 [details] [review] Bug 35396 - Replace Datatables' column filters throttling with input timeout This patch replaces throttling filter events with a typing timeout for datatable filtering events. This patch should increase filtering responsiveness to datatables that have column filtering enabled across Koha. To test: 1) Get a datatable with multiple results showing in intranet, for example search patrons with no search string to get all patrons in a filterable datatable result view or open Receive orders page that shows pending orders and order lines in Acquisitions like /cgi-bin/koha/acqui/parcel.pl?invoiceid=xxx 2) Type a character into a Datatable column filtering field => notice a filtering event fires right after the first character has been entered 3) Keep typing => notice multiple sequential filtering events being fired during the typing and one at the end when typing has stopped 4) Apply patch 5) Start typing into a filtering field => Note that during typing no filtering events are being fired unless the time between entering characters exceeds 500ms 6) End typing into the filter field => notice that just one filtering event fires at the end of typing if characters were entered sequentially faster than 500ms apart.
Created attachment 159242 [details] [review] Bug 35396: Replace Datatables' column filters throttling with input timeout This patch replaces throttling filter events with a typing timeout for datatable filtering events. This patch should increase filtering responsiveness to datatables that have column filtering enabled across Koha. To test: 1) Get a datatable with multiple results showing in intranet, for example search patrons with no search string to get all patrons in a filterable datatable result view or open Receive orders page that shows pending orders and order lines in Acquisitions like /cgi-bin/koha/acqui/parcel.pl?invoiceid=xxx 2) Type a character into a Datatable column filtering field => notice a filtering event fires right after the first character has been entered 3) Keep typing => notice multiple sequential filtering events being fired during the typing and one at the end when typing has stopped 4) Apply patch 5) Start typing into a filtering field => Note that during typing no filtering events are being fired unless the time between entering characters exceeds 500ms 6) End typing into the filter field => notice that just one filtering event fires at the end of typing if characters were entered sequentially faster than 500ms apart. Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Created attachment 161325 [details] [review] Bug 35396: Replace Datatables' column filters throttling with input timeout This patch replaces throttling filter events with a typing timeout for datatable filtering events. This patch should increase filtering responsiveness to datatables that have column filtering enabled across Koha. To test: 1) Get a datatable with multiple results showing in intranet, for example search patrons with no search string to get all patrons in a filterable datatable result view or open Receive orders page that shows pending orders and order lines in Acquisitions like /cgi-bin/koha/acqui/parcel.pl?invoiceid=xxx 2) Type a character into a Datatable column filtering field => notice a filtering event fires right after the first character has been entered 3) Keep typing => notice multiple sequential filtering events being fired during the typing and one at the end when typing has stopped 4) Apply patch 5) Start typing into a filtering field => Note that during typing no filtering events are being fired unless the time between entering characters exceeds 500ms 6) End typing into the filter field => notice that just one filtering event fires at the end of typing if characters were entered sequentially faster than 500ms apart. Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This is nice and clear and works well to achieve it's goals. No regressions found and qa scripts are happy. Passing QA
Pushed for 24.05! Well done everyone, thank you!
Pushed to 23.11.x for 23.11.03