Place holds on issuances from the OPAC. Not backporting yet as it might be too
authorsenator <senator@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 18 Nov 2010 22:45:34 +0000 (22:45 +0000)
committersenator <senator@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 18 Nov 2010 22:45:34 +0000 (22:45 +0000)
ugly (visually)

Also a couple very minor API documentation fixes

git-svn-id: svn://svn.open-ils.org/ILS/trunk@18800 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm
Open-ILS/src/perlmods/OpenILS/Application/Serial.pm
Open-ILS/web/opac/skin/default/js/holds.js
Open-ILS/web/opac/skin/default/js/rdetail.js

index a671640..c95bafe 100644 (file)
@@ -94,10 +94,11 @@ __PACKAGE__->register_method(
                 'exception is returned',
         params => [
             { desc => 'Authentication token',               type => 'string' },
-            { desc => 'Hold object for hold to be created', type => 'object' }
+            { desc => 'Hold object for hold to be created',
+                type => 'object', class => 'ahr' }
         ],
         return => {
-            desc => 'Undef on success, -1 on missing arg, event (or ref to array of events) on error(s)',
+            desc => 'New ahr ID on success, -1 on missing arg, event (or ref to array of events) on error(s)',
         },
     }
 );
@@ -110,11 +111,14 @@ __PACKAGE__->register_method(
         desc  => "If the recipient is not allowed to receive the requested hold, " .
                  "call this method to attempt the override",
         params => [
-           { desc => 'Authentication token',               type => 'string' },
-           { desc => 'Hold object for hold to be created', type => 'object' }
+            { desc => 'Authentication token',               type => 'string' },
+            {
+                desc => 'Hold object for hold to be created',
+                type => 'object', class => 'ahr'
+            }
         ],
         return => {
-            desc => 'Undef on success, -1 on missing arg, event (or ref to array of events) on error(s)',
+            desc => 'New hold (ahr) ID on success, -1 on missing arg, event (or ref to array of events) on error(s)',
         },
     }
 );
index 2405deb..3623fb5 100644 (file)
@@ -436,7 +436,7 @@ q/A hash of optional arguments.  Valid keys and their meanings:
     global := If true, return only one representative version of a conceptual issuance regardless of the number of subscriptions, otherwise return all issuance objects meeting the requested criteria, including conceptual duplicates. Valid values are 0 (false) and 1 (true, default).
     order  := date_published sort direction, either "asc" (chronological, default) or "desc" (reverse chronological)
     limit  := Number of issuances to return.  Useful for paging results, or finding the oldest or newest
-    offest := Number of issuance to skip before returning results.  Useful for paging.
+    offset := Number of issuance to skip before returning results.  Useful for paging.
     orgid  := OU id used to scope retrieval, based on distribution.holding_lib
     depth  := OU depth used to range the scope of orgid
     type   := Holding type filter. Valid values are "basic", "supplement" and "index". Can be a scalar (one) or arrayref (one or more).
index 1fcfd19..0e95c40 100644 (file)
@@ -589,7 +589,7 @@ function holdsParseMRFormats(str) {
 
 function holdsSetFormatSelector() {
        var type = holdArgs.type;
-       if( type == 'C' || type == 'V' || holdArgs.editHold ) return;
+       if( type == 'C' || type == 'V' || type == "I" || holdArgs.editHold ) return;
 
        var data                                = holdsGetFormats();
        var avail_formats       = data.avail_formats;
@@ -729,6 +729,7 @@ function holdsCheckPossibility(pickuplib, hold, recurse) {
                titleid : holdArgs.record,
                mrid : holdArgs.metarecord,
                volume_id : holdArgs.volume,
+               issuanceid : holdArgs.issuance,
                copy_id : holdArgs.copy,
                hold_type : holdArgs.type,
                patronid : holdArgs.recipient.id(),
index e239098..7b250d3 100644 (file)
@@ -1185,17 +1185,35 @@ function rdetailDrawExpandedHoldings(anchor, bibid, type) {
                 "params": [bibid, {"offset": offsets[type], "limit": limit}],
                 "async": true,
                 "oncomplete": function(r) {
-                    if (r = openils.Util.readResponse(r)) {
-                        offsets[type] += r.length;
-                        dojo.forEach(
-                            r, function(sum) {
-                                dojo.create("span", {"innerHTML": sum.label()}, target);
-                                dojo.create("br", null, target);
-                            }
-                        );
-                        /* XXX i18n */
-                        if (r.length == limit)
-                            dojo.create("a", {"style": "margin-top: 6px;", "innerHTML": "[More]", "onclick": _load}, target);
+                    try {
+                        if (msg = r.recv().content()) { /* sic, assignment */
+                            offsets[type] += msg.length;
+                            dojo.forEach(
+                                msg, function(iss) {
+                                    dojo.create(
+                                        "span", {
+                                            "innerHTML": iss.label(),
+                                            "style": "padding-right: 1em;"
+                                        }, target
+                                    );
+                                    dojo.create(
+                                        "a", {
+                                            "href":"#","onclick":function() {
+                                                holdsDrawEditor({
+                                                    "type":"I","issuance":iss.id()
+                                                });
+                                            }, "innerHTML":"Place hold"/*XXX i18n*/
+                                        }, target
+                                    );
+                                    dojo.create("br", null, target);
+                                }
+                            );
+                            /* XXX i18n */
+                            if (r.length == limit)
+                                dojo.create("a", {"style": "margin-top: 6px;", "innerHTML": "[More]", "onclick": _load}, target);
+                        }
+                    } catch (E) {
+                        void(0);
                     }
                 }
             }