LP1735221 Item Alert Prevents Hold Capture Delay Verification
authorDan Briem <dbriem@wlsmail.org>
Thu, 4 Aug 2022 02:46:06 +0000 (22:46 -0400)
committerMichele Morgan <mmorgan@noblenet.org>
Fri, 14 Oct 2022 18:50:02 +0000 (14:50 -0400)
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>
Open-ILS/web/js/ui/default/staff/circ/services/circ.js

index 3372777..72e34ec 100644 (file)
@@ -93,7 +93,6 @@ function($uibModal , $q , egCore , egAlertDialog , egConfirmDialog,  egAddCopyAl
     // these events can be overridden by staff during checkin
     service.checkin_overridable_events = 
         service.checkin_suppress_overrides.concat([
-        'HOLD_CAPTURE_DELAYED', // not technically overridable, but special prompt and param
         'TRANSIT_CHECKIN_INTERVAL_BLOCK'
     ])
 
@@ -429,8 +428,6 @@ function($uibModal , $q , egCore , egAlertDialog , egConfirmDialog,  egAddCopyAl
         switch(evt[0].textcode) {
             case 'COPY_ALERT_MESSAGE':
                 return service.copy_alert_dialog(evt[0], params, options, 'checkin');
-            case 'HOLD_CAPTURE_DELAYED':
-                return service.hold_capture_delay_dialog(evt[0], params, options, 'checkin');
             default: 
                 return service.override_dialog(evt, params, options, 'checkin');
         }
@@ -1759,6 +1756,10 @@ function($uibModal , $q , egCore , egAlertDialog , egConfirmDialog,  egAddCopyAl
                     egCore.strings.PRECAT_CHECKIN_MSG, params)
                     .result.then(function() {return final_resp});
 
+            case 'HOLD_CAPTURE_DELAYED':
+                return service.hold_capture_delay_dialog(
+                    evt[0], params, options, 'checkin');
+
             default:
                 egCore.audio.play('error.checkin.unknown');
                 console.warn('unhandled checkin response : ' + evt[0].textcode);