Web Client Holds Pull List - Pickup/Request Library Fields Sometimes Blank

Bug #1760997 reported by John Amundson
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Evergreen
Fix Released
Undecided
Unassigned
3.0
Fix Released
Undecided
Unassigned

Bug Description

Tested in Evergreen Web Client 2.12.6 and 3.0.6.

When one of the following fields is added from the column picker to the Holds Pull List, the field will initially appear. Next time the pull list is accessed, the field will be blank.
Pickup Library
Pickup Library (Shortname)
Request Library
Request Library (Shortname).

If one of these fields is then added or removed, the fields will repopulate. Until you leave the page and come back to it. Then they will be blank again.

I've attached a screenshot showing the fields populated and blank.

Revision history for this message
John Amundson (jamundson) wrote :
Revision history for this message
Lynn Floyd (lfloyd) wrote :

This is happening on our test server too.

Changed in evergreen:
status: New → Confirmed
Revision history for this message
Kathy Lussier (klussier) wrote :

I'm able to replicate this on one of our Concerto test systems too. I don't know if it's related, but I see the following warning in the Console when this bug occurs:

The FetchEvent for "https://mlnc1.noblenet.org/eg/staff/circ/holds/pull" resulted in a network error response: an object that was not a Response was passed to respondWith().

When the values display as expected, this warning does not appear in the console.

To replicate the bug:
1. Retrieve the holds pull list.
2. Select pickup library or request library from the column picker. The library will display as expected.
3. Click to save the columns.
4. Retrieve the holds pull list again. The value for the pickup or request lib will not display.
5. Select another library-related field from the column picker. When the pull list loads, the pickup or request lib will display as expected.

Revision history for this message
John Yorio (jyorio) wrote :

Just wanted to add that this doesn't seem limited to the Request/Pickup Library fields. I'm seeing the same behavior with Request Date

Michele Morgan (mmorgan)
tags: added: webstaffcolumns
Kyle Huckins (khuckins)
Changed in evergreen:
assignee: nobody → Kyle Huckins (khuckins)
Revision history for this message
Kyle Huckins (khuckins) wrote :

So I've been looking at this for a few hours, and with the way it's been designed, I think the simplest(and admittedly somewhat hacky) way to handle this would be to tell the grid to refresh at the end of flesh_holds() (web/js/ui/default/staff/circ/holds/app.js: HoldsPullListCtrl line: ~287). When an item is retrieved initially, it has a specific set of information, and after all items are retrieved, flesh_holds() is called, causing the information that flesh_holds fleshes out to be hidden until the items are retrieved again.

A branch with this solution can be found here: http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/khuckins/lp1760997-holds-pull-list-blank-fields

Kyle Huckins (khuckins)
Changed in evergreen:
assignee: Kyle Huckins (khuckins) → nobody
tags: added: pullrequest
Changed in evergreen:
milestone: none → 3.next
milestone: 3.next → 3.2-beta
Revision history for this message
Jason Stephenson (jstephenson) wrote :

I have tried Kyle's branch in comment 5 on a 3.0.7 test vm with production data.

While his change fixes the issue of data fields not being populated, what I see is not exactly ideal. When loading the holds pull list with additional fields set, you get a first load with the fields empty and then a second clear and load of the data with the fields filled in, all while the throbber runs and the main screen is greyed out. This was in Chromium. I haven't had a chance to test it with Firefox.

I think a better fix would avoid that issue, perhaps by fleshing all of the extra data in the first go, rather than pulling basic data and going back for more.

Thanks, Kyle, for submitting this branch.

Revision history for this message
Kyle Huckins (khuckins) wrote :

I've updated the branch to no longer use a secondary refresh during the initial grid load, and instead marked certain fields as required after looking further at what fields didn't populate when set as default:
- Pickup Library
- Pickup Library (Shortname)
- Hold Notes
- Request Library
- Request Library (Shortname)
- Selection Locus
- SMS Carrier
- SMS Notify
- Email Notify
- Phone Notify
- Copy Status Change Time
- Request Date
- Expire Date

Revision history for this message
Jason Stephenson (jstephenson) wrote :

Thanks, again, Kyle!

The new branch works for me and doesn't have the double load issue of the first one.

Pushed to master, rel_3_1, and rel_3_0.

Changed in evergreen:
status: Confirmed → Fix Committed
Changed in evergreen:
milestone: 3.2-beta → 3.1.2
no longer affects: evergreen/3.1
Changed in evergreen:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.