Summary: | Add infinite scrolling to pickup location dropdowns | ||
---|---|---|---|
Product: | Koha | Reporter: | Tomás Cohen Arazi (tcohen) <tomascohen> |
Component: | Hold requests | Assignee: | Tomás Cohen Arazi (tcohen) <tomascohen> |
Status: | CLOSED FIXED | QA Contact: | Nick Clemens (kidclamp) <nick> |
Severity: | enhancement | ||
Priority: | P5 - low | CC: | andrew, gmcharlt, jonathan.druart, kyle, martin.renvoize, nick |
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Change sponsored?: | --- | Patch complexity: | --- |
Documentation contact: | Documentation submission: | ||
Text to go in the release notes: | Version(s) released in: |
21.11.00
|
|
Circulation function: | |||
Bug Depends on: | 29355 | ||
Bug Blocks: | 29407, 29688 | ||
Attachments: |
Bug 29404: Add infinite scrolling to pickup location dropdowns
[DO NOT PUSH] Bug 29404: Helper script to generate pickup locations Bug 29404: Add infinite scrolling to pickup location dropdowns Bug 29404: Add infinite scrolling to pickup location dropdowns |
Description
Tomás Cohen Arazi (tcohen)
2021-11-03 13:33:53 UTC
Created attachment 127255 [details] [review] Bug 29404: Add infinite scrolling to pickup location dropdowns This patch adds infinite scrolling to the pickup locations select2 dropdowns on the staff interface. It does so by adding a new transport function (in select2.js) to read the response headers Koha's API sends back, and converting to the right data structure Select2 expects for the feature to work. This is manually used in the different pickup locations dropdowns. There's a separate bug that will introduce a select2 wrapper that will probably embed this function in it. To test: 1. Run the [DO NOT PUSH] script inside koha-shell to generate random pickup locations: $ kshell k$ perl generate_pickup_locations.pl 2. Try placing holds. Notice the visible pickup locations dropdowns display some pickup locations based on the matches you got. They are all fetched once => SUCCESS: It works 3. Repeat for the current holds page and the patron holds listing => SUCCESS: Same behavior 4. Apply this patch 5. Repeat 2 and 3 => SUCCESS: Things work, but pickup locations are retrieved as needed, while you scroll. 6. Sign off :-D Created attachment 127256 [details] [review] [DO NOT PUSH] Bug 29404: Helper script to generate pickup locations Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Created attachment 127262 [details] [review] Bug 29404: Add infinite scrolling to pickup location dropdowns This patch adds infinite scrolling to the pickup locations select2 dropdowns on the staff interface. It does so by adding a new transport function (in select2.js) to read the response headers Koha's API sends back, and converting to the right data structure Select2 expects for the feature to work. This is manually used in the different pickup locations dropdowns. There's a separate bug that will introduce a select2 wrapper that will probably embed this function in it. To test: 1. Run the [DO NOT PUSH] script inside koha-shell to generate random pickup locations: $ kshell k$ perl generate_pickup_locations.pl 2. Try placing holds. Notice the visible pickup locations dropdowns display some pickup locations based on the matches you got. They are all fetched once => SUCCESS: It works 3. Repeat for the current holds page and the patron holds listing => SUCCESS: Same behavior 4. Apply this patch 5. Repeat 2 and 3 => SUCCESS: Things work, but pickup locations are retrieved as needed, while you scroll. 6. Sign off :-D Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Works as expected :) Created attachment 127317 [details] [review] Bug 29404: Add infinite scrolling to pickup location dropdowns This patch adds infinite scrolling to the pickup locations select2 dropdowns on the staff interface. It does so by adding a new transport function (in select2.js) to read the response headers Koha's API sends back, and converting to the right data structure Select2 expects for the feature to work. This is manually used in the different pickup locations dropdowns. There's a separate bug that will introduce a select2 wrapper that will probably embed this function in it. To test: 1. Run the [DO NOT PUSH] script inside koha-shell to generate random pickup locations: $ kshell k$ perl generate_pickup_locations.pl 2. Try placing holds. Notice the visible pickup locations dropdowns display some pickup locations based on the matches you got. They are all fetched once => SUCCESS: It works 3. Repeat for the current holds page and the patron holds listing => SUCCESS: Same behavior 4. Apply this patch 5. Repeat 2 and 3 => SUCCESS: Things work, but pickup locations are retrieved as needed, while you scroll. 6. Sign off :-D Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Hard call, really. It can be considered an enhancement for libraries with hundreds of branches, but for those with very few? You have to wait 1 sec for the result every time you interact with the dropdown, it would be immediate if the filtering is done by JS locally. I can imagine easily it could become unusable if the server is a bit overloaded (and this will help the server to become even more overloaded...) I am willing to push it for 21.11 in order to get feedback from end users, but we should be ready to revert this behaviour if needed. Pushed to master for 21.11, thanks to everybody involved! |