handle custom events (which have ilsevent == null)
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 13 Jan 2009 17:39:05 +0000 (17:39 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 13 Jan 2009 17:39:05 +0000 (17:39 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@11813 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/xul/staff_client/chrome/content/util/network.js
Open-ILS/xul/staff_client/server/circ/checkout.js
Open-ILS/xul/staff_client/server/circ/util.js

index e41df25..9ed4a79 100644 (file)
@@ -412,12 +412,12 @@ util.network.prototype = {
                        var result = obj.get_result(req);
                        if (!result) return req;
 
-                       if ( (typeof result.ilsevent != 'undefined') && (override_params.overridable_events.indexOf( Number(result.ilsevent) ) != -1) ) {
+                       if ( (typeof result.ilsevent != 'undefined') && (override_params.overridable_events.indexOf( result.ilsevent == null ? null : Number(result.ilsevent) ) != -1) ) {
                                req = override([result]);
                        } else {
                                var found_good = false; var found_bad = false;
                                for (var i = 0; i < result.length; i++) {
-                                       if ( (result[i].ilsevent != 'undefined') && (override_params.overridable_events.indexOf( Number(result[i].ilsevent) ) != -1) ) {
+                                       if ( (result[i].ilsevent != 'undefined') && (override_params.overridable_events.indexOf( result.ilsevent == null ? null : Number(result[i].ilsevent) ) != -1) ) {
                                                found_good = true;
                                        } else {
                                                found_bad = true;
index fb4f91c..5df4886 100644 (file)
@@ -558,6 +558,7 @@ circ.checkout.prototype = {
                                {
                                        'title' : document.getElementById('circStrings').getString('staff.circ.checkout.override.confirm'),
                                        'overridable_events' : [ 
+                        null /* custom event */,
                                                1212 /* PATRON_EXCEEDS_OVERDUE_COUNT */,
                                                1213 /* PATRON_BARRED */,
                                                1215 /* CIRC_EXCEEDS_COPY_RANGE */,
@@ -672,7 +673,10 @@ circ.checkout.prototype = {
 
                                for (var i = 0; i < test_permit.length; i++) {
                                        dump('found [' + test_permit[i].ilsevent + ']\n');
-                                       switch(Number(test_permit[i].ilsevent)) {
+                                       switch(test_permit[i].ilsevent == null ? null : Number(test_permit[i].ilsevent)) {
+                                               case null /* custom event */ :
+                                                       found_handled = true;
+                                               break;
                                                case 1212 /* PATRON_EXCEEDS_OVERDUE_COUNT */ :
                                                        found_handled = true;
                                                break;
index 3f23317..cac4bac 100644 (file)
@@ -1907,6 +1907,7 @@ circ.util.checkin_via_barcode = function(session,params,backdate,auto_print,asyn
                        {
                                'title' : document.getElementById('circStrings').getString('staff.circ.utils.checkin.override'),
                                'overridable_events' : [
+                    null /* custom event */,
                                        1203 /* COPY_BAD_STATUS */,
                                        1213 /* PATRON_BARRED */,
                                        1217 /* PATRON_INACTIVE */,
@@ -2275,6 +2276,7 @@ circ.util.checkin_via_barcode2 = function(session,params,backdate,auto_print,che
                        error.standard_network_error_alert(document.getElementById('circStrings').getString('staff.circ.checkin.suggest_offline'));
                } else {
 
+            if (check.ilsevent == null) { return null; /* handled */ }
                        switch (Number(check.ilsevent)) {
                                case 1203 /* COPY_BAD_STATUS */ :
                                case 1213 /* PATRON_BARRED */ :
@@ -2316,8 +2318,9 @@ circ.util.renew_via_barcode = function ( barcode, patron_id, async ) {
                                var renew = req.getResultObject();
                                if (typeof renew.ilsevent != 'undefined') renew = [ renew ];
                                for (var j = 0; j < renew.length; j++) {
-                                       switch(Number(renew[j].ilsevent)) {
+                                       switch(renew[j].ilsevent == null ? null : Number(renew[j].ilsevent)) {
                                                case 0 /* SUCCESS */ : break;
+                                               case null /* custom event */ : break;
                                                case 5000 /* PERM_FAILURE */: break;
                                                case 1212 /* PATRON_EXCEEDS_OVERDUE_COUNT */ : break;
                                                case 1213 /* PATRON_BARRED */ : break;
@@ -2357,6 +2360,7 @@ circ.util.renew_via_barcode = function ( barcode, patron_id, async ) {
                        {
                                'title' : document.getElementById('circStrings').getString('staff.circ.checkin.renew_failed.override'),
                                'overridable_events' : [
+                    null /* custom event */,
                                        1212 /* PATRON_EXCEEDS_OVERDUE_COUNT */,
                                        1213 /* PATRON_BARRED */,
                                        1215 /* CIRC_EXCEEDS_COPY_RANGE */,