LP#1998605 Prevent Checked Out Items from Being Marked Missing - Remove mark missing actions from the patron items out grids. - The circ.mark_item... service will not allow a checkin attempt on a checked out item if it's being marked missing. - Keep the promise chain alive in AngularJS when marking multiple items missing and one fails (consistent with the behavior in Angular). To test: - Patron items out grids should not display missing actions. - Item status (both detail and list view) should not allow checked out items to be marked missing. - While checked out items shouldn't typically appear on the pull list, holds shelf, or patron holds grids, if stale data is there (ex. multiple tabs), checked out items will not be marked missing. Signed-off-by: Dan Briem <dbriem@wlsmail.org> Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxOLI.org> Signed-off-by: Susan Morrison <smorrison@georgialibraries.org> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
LP1944717 Double-click on Patron Notes This adds the ability to double-click on patron messages in the staff client to open them in a modal in order to make it easier to read and edit the messages. When opening an archived message, the ability to edit is disabled. This also adds a View Note action to the Archived Notes grid. LP1944717 Double-click on patron messages Adds ability to double-click on patron messages to open them in the Edit modal. This makes it easier to read and edit the full messages. Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> LP1944717 Undo the ability to edit an archived note The first commit added the ability to open an archived note in the edit modal but that was determined not to be idea. This commit removes that ability. Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> LP1944717 Read-only view for archived notes This adds the ability to double-click on an aerchived patron note to open it in a read-only modal. Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> LP1944717 Add view note action to patron archived notes Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: rfrasur <rfrasur@library.in.gov> Signed-off-by: Jane Sandberg <js7389@princeton.edu>
LP1983991 handle when IN list empty Signed-off-by: Jane Sandberg <js7389@princeton.edu>
LP1983991 Allow display of source address and source location on transit slips Added source address and source location information to transit slip & hold transit slip print template documentation. Signed-off-by: Llewellyn Marshall <llewellyn.marshall@ncdcr.gov> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Jane Sandberg <js7389@princeton.edu>
LP1724032 Permisson Group on Hold Shelf Slip Print Template This makes the patron permission group available to the hold shelf slip print template. Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Susan Morrison <smorrison@georgialibraries.org> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
LP1735221 Item Alert Prevents Hold Capture Delay Verification Clicking OK on an item alert triggers a checkin override. If the response contains an override event, an error is thrown. Since a hold capture delay event is handled as an override, an error throws before the hold capture delay dialog opens. This handles the capture delay event separately from the override events so the dialog will open after an override attempt. To test: 1. set Hold Capture Requires Verification on a shelving location 2. add an item alert to an item in that shelving location 3. place an item hold on that item 4. checkin that item 5. click OK on the alert dialog and Capture on the delay dialog 6. note the hold is captured` Signed-off-by: Dan Briem <dbriem@wlsmail.org> Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
LP1883171 & LP1940663: Basic staff client modifications Modify the Item Staus view to check the new return values of the update copy inventory function. Fix toast handling in the list view to properly report success and failure. Add toast handling to the single copy Item Status view to report success and failure. NOTE: More work could be done on the toasts to report number of successful updates, etc. I tried using the compileContent and trusted HTML, but this lead to new errors that I couldn't decipher. This work was sponsored by NOBLE. Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
lp1846354 toward consolidated patron notes * changes to IDL, DB, and upgrade script A new view actor.usr_message_penalty and associated IDL entry will be created for use with populating the staff Messages interface. It will perform a full outer join between penalties and user messages. The default IDL permissions for user messages will remain VIEW_USER and UPDATE_USER. The view that populates the Message Center will be changed slightly to ensure that staff-only messages are never retrieved for patrons. The Date column in the grid/list view will show the edit_date value if populated in lieu of the create_date value. The message view will explicitly show an Edit Date label and value below the Date row if set. The actor.usr_message table will gain a new boolean column called pub, which will default to false. The actor.usr_message table will also gain a stop_date column for handling archival as with standing penalties. The actor.usr_message table will also gain editor and edit_date columns. The actor.usr_message_limited view will be changed to only include rows where pub is true. As part of the upgrade script, Patron alert messages will be migrated as ALERT_NOTE penalties and linked User Messages. A database assertion will ensure that this has happened prior to the removal of the alert_message field from the actor.usr table. The field will also be removed from the corresponding IDL entry. The sending_lib column for these user messages and the org unit field for these penalties will be set to the top org from the org hierarchy. Also, non-public entries in the actor.usr_note table will be migrated as non-public User Messages. Subject to a database assertion that this has happened, the table actor.usr_note and the actor.convert_usr_note_to_message trigger will be removed. The corresponding IDL entry will also be removed. The sending_lib column for these user messages will be set to the top org from the org hierarchy. Also, rows from actor.org_unit_setting for ui.staff.require_initials.patron_info_notes will be migrated to ui.staff.require_initials.patron_standing_penalty. Collisions will be recorded in a text file but otherwise dropped. The row in config.org_unit_setting_type for ui.staff.require_initials.patron_info_notes will then be removed. The label and description for ui.staff.require_initials.patron_standing_penalty in config.org_unit_setting_type will be edited to reflect the Notes/Penalties labeling from the UI. The actor.usr_standing_penalty table and associated IDL entry will gain a foreign key column linking to actor.usr_message called usr_message, and the note column itself will be migrated to User Messages. The usr_message field on the penalties will be updated accordingly. Subject to a database assertion that this has happened, the note field on the actor.usr_standing_penalty table will be removed. The corresponding IDL entry will also be removed. The sending_lib column for these user messages will be set to match the org_unit column from their associated penalties. * middle layer changes The ApplyPatronPenalty A/T Reactor will be modified to create a user message if needed instead of setting the note field on the created penalty, and will set the new usr_message field accordingly. The API method open-ils.actor.user.penalty.note.update will be similarly adjusted, though it may edit or create a user message as needed. The API method open-ils.actor.user.penalty.apply will also be modified to create user messages in lieu of setting a note field. The sending_lib field for such messages will be set to match the session's workstation library, regardless of the org unit that actually gets applied to the penalty's org_unit field. The org_unit field will use the value as passed by the caller, and no longer do the org_unit_ancestor_at_depth adjustment that happens today. Both penalty.note.update and penalty.apply will set the editor and edit date columns on any linked user messages to the current time and staff member for any already existing message that has its title or message value modified. The read_date column will also be NULL'ed in such circumstances so that the message will appear unread to the patron if public. The react sub in Event.pm will be tweaked to explicitly set the pub field on created user messages to true for Action/Trigger. * OPAC changes Surface the edit date for patron visible notes in the Message Center. * staff client changes References to Message or Messages in the UI, including the button bar that spawns the interface, will be changed to Note and Notes. The Alert Message field in the patron editor will be removed. The Notes interface under Other -> Notes will be removed. The Notes (and count) indicator in the patron summary sidebar will be removed. The note count will instead be presented as part of the Notes nav button. The patron summary sidebar and the "stop sign page" will be modified to retrieve and display user messages linked to standing penalties that are flagged as staff alerting. It will retain the same styling (i.e. red text) by default. The Messages interface, including the archived view, will be populated with a combination of user messages and user penalties, which may or may not be linked in pairs via a new foreign key on the penalties. For messages without associated standing penalties, the sending_lib column will be used for the implicit filtering on org units that standing penalties get now, based on the workstation library. This combined view will result in new columns for the interface. At minimum the following columns (subject to label changes) will be displayed by default: Title, Message, Create Date, Creator, Library, and Patron Visible. Columns such as Staff Alert, Org Depth, Block List, Ignore Proximity, and Penalty Label will still be available. The Apply Penalty / Message dialog will gain a new widget for toggling whether or not a message is intended to be visible to the patron. The Edit message version of the dialog will also show when/if a patron has read and/or deleted the message. An entry field for the message title will be added. The dialog will also gain an org selector to the right of the penalty type selector, which will default to the workstation library, and will change based on the org depth of any standing penalty type selected in the UI (either via the Note/Alert/Block buttons or the penalty menu). This will be passed as the org_unit field for a penalty instead of the workstation library and org depth that is implicitly used today The sending_lib field for the user message will always be set to the workstation library. The Archive Penalty / Message action will be modified to work with both penalties and user messages depending on what it is selected. If an archived penalty has a linked user message, then both will have their archive fields set. An archived user message may still be otherwise visible to the patron if it is not marked as deleted or staff only. The Remove Penalty / Message action will behave as normal for a selected penalty. For a user message, linked or unlinked, the message will be flagged as deleted and, even if public, will no longer show up in the patron's Message Center. * release notes Patron notes, messages, alert messages, and standing penalties have been folded into one Notes interface. Notes designated as public will show in the My Account -> Message Center in the OPAC for patrons. The underlying data structure has also changed with all notes living in the actor.usr_message table, so certain reports may need to be adjusted. * qa tests * alert message wording * set existing user messages to public before adding new ones; also, remove a lingering reference to alert_message in Storage/CDBI/actor.pm * upgrade script tweaks the main change is that we're creating SILENT_NOTE penalties for migrated actor.usr_note's in order to preserve the creator. I'm also removing explicit TEMP tables in case admins do want to preserve these staging tables (by commenting out the DROP's at the bottom of the script). * update auditors fixes updating patrons and allowing them to login one consequence of this is that old alert_messages in the auditor will be deleted * add a WARNING to the release notes about the auditor table Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org> Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Ruth Frasur <rfrasur@gmail.com> Signed-off-by: Dawn Dale <ddale@georgialibraries.org> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
lp1908439 Auto-override enhancment This reworks the override action dialogs in the patron display for Check Out and Items Out, and in the Circulation -> Renew Items interface. It exposes the auto-override behavior as checkboxes giving staff more fine grained control over which events are auto-forced or skipped upon subsequent encounters. It also changes the Cancel action for batch renewals to abort the remaining renewals in the batch, and makes it so that new authorization credentials provided during such a batch will be treated as an operator change for the entire batch. We also fix an existing bug where events marked as already encountered for auto-override could leak into other patron contexts via Patron Search. Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
LP1896285 Batch mark item missing serialized Process batches of items one at a time when marking them lost to avoid sending too many parallel requests to the server. Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
LP#1851541 - Add audio alert for item alert popups Signed-off-by: Josh Stompro <stompro@stompro.org> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
LP 1772053: Cleanup Dan's code. Mostly whitespace cleanup, but I did restore a line or two that appear to have been accidentally deleted. Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
LP 1772053: Add Missing Fields to Print Templates Almost complete implementation for LP1772053. To be done: items relating to call numbers, prefixes and suffixes for Hold Pull Lists and Transit Slips. Signed-off-by: Daniel Pearl <dpearl@cwmars.org> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
LP1849370 Mark items as damaged - changing fee usability issues The prop that conditionally renders the fee interface is bound to the fee input so it removes itself from the DOM when cleared. The patch uses a separate prop. The fee input's by the edge so you may mistakenly close the modal if you try to click & drag to highlight the fee. The patch sets the prop backdrop to static. A $0 item price will cause the modal to keep reloading on submit. If you set a $0 fee manually without clicking No Charge it charges the full item price. The patch sets the apply_fines param for the Perl API dynamically on submission. To test: 1. Make sure the OU setting "Charge item price when marked damaged" is true 2. Check out an item with a price to a user 3. Mark it damaged (from Item Status or Checkin screen) 4. Note if you clear the fee input it removes itself, if you drag the mouse off the modal & release it closes, & if you charge $0 without using "No Charge" it charges the user the full item price 5. Apply patch and repeat steps 1-3 6. Note the input stays when cleared, the modal doesn't close if you release the mouse on the backdrop, & charging $0 doesn't charge the user Signed-off-by: Dan Briem <dbriem@wlsmail.org> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
LP#1775276: Check In - "Route To" Field Sometimes Incorrect When open-ils.circ.checkin closes a transit and creates a new one, the payload only returns the closed transit. The route dialogs perform a pcrud search to get the most recent transit, but the grid's Route To field still depends on the transit returned by the API, so received transits display the old destination in the Route To field instead of the shelving location or new destination. This branch returns the most recent route info collected by the route dialog and, if the most recent transit destination doesn't match the old one, the new one is assigned to the route_to prop on the final_resp. It also checks that the transit is open before displaying the destination in the Route To field so the shelving location displays if the most recent transit is closed. To test: 1. Sign in as Library A and check in an item owned by Library B 2. Place a copy hold on the item with a pickup location of Library C 3. Sign in as Library B and check in the item - note the dialog is correct but the grid's Route To field displays Library B instead of Library C 4. Apply patch 5. Repeat steps 1-3, note the Route To field displays Library C Signed-off-by: Dan Briem <dbriem@wlsmail.org> Signed-off-by: John Amundson <jamundson@cwmars.org> Signed-off-by: Jason Stephenson <jason@sigio.com>
LP#1851434 - Allow COPY_NOT_AVAILABLE.override during renewal Also addresses LP#1827901 - Allow PATRON_EXCEEDS_LONGOVERDUE_COUNT override during checkout and renew. Test Plan: 1. Check out an item to a patron. 2. Mark item lost by patron to change status to lost. 3. In web client, log in as user with COPY_NOT_AVAILABLE.override 4. Try to renew item for patron, see that it isn't allowed. After fix: 1. Try to renew item for patron, see that the override is now allowed. Also try checkouts and renews for patrons that have the PATRON_EXCEEDS_LONGOVERDUE_COUNT block. Signed-off-by: Josh Stompro <stompro@stompro.org> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
lp1437103 Allow Receipts to Print when Suppressing Popups - Move suppress_popup check further along and allow transit receipts to properly print when popups suppressed. Signed-off-by: Kyle Huckins <khuckins@catalyte.io> Changes to be committed: modified: Open-ILS/web/js/ui/default/staff/circ/services/circ.js Signed-off-by: Bill Erickson <berickxx@gmail.com>
lp1437103 - Suppress Popups based on OU Setting - Allow OU setting to suppress checkin popups to properly take effect. Signed-off-by: Kyle Huckins <khuckins@catalyte.io> Changes to be committed: modified: Open-ILS/web/js/ui/default/staff/circ/services/circ.js Signed-off-by: Bill Erickson <berickxx@gmail.com>
LP#1068287 - Add CREATE_PRECAT permission Add this permission to prevent untrained/un-authorized circ staff from creating pre-cat items due to mis-scanned barcodes. Added to all profiles by default, so that staff admins can pinpoint users who may not have it, i.e Volunteers, etc. Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Jason Etheridge <jason@equinoxinitiative.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
LP1779467: Fix bug with charging fees when marking item damaged. Revert the changes made to the mark_damaged function in the web staff client code (Open-ILS/web/js/ui/default/staff/circ/services/circ.js) earlier in this branch. The new code does not handle the mark damaged process correctly, but the original code does. Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>