LP#1673870: Handle OverDrive ebook checkout and download The workflow for checking out and downloading a title via the OverDrive API is relatively complex: 1. Check out a title. 2. Lock in a specific format for the checked-out title. Once you lock in a format, you can only download the title in that format -- except that the browser-based OverDrive Read and OverDrive Listen formats are always available (if supported for that title), even if you've locked in another format. 3. Request a link for downloading the title in the specified format. Download links are dynamically generated and only work for 60 seconds from the time of your request. To simplify the process, we require the user to lock in a format during checkout. Then, when the user clicks the Download button, we request a download link; OverDrive responds with a URL, and we immediately redirect the current browser tab/window to that URL. A new API call, open-ils.ebook_api.title.get_download_link, has been added for requesting the download link. Since API calls are not vendor-specific, we also add support for the new method in the test module, complete with unit test. Supplementary fixes: - show spinner in My Account while loading from ebook API - ensure session ID is available to ebook object during transactions - fix display of ebook formats Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
LP#1673870: Support placing and canceling OverDrive holds Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
LP#1673870: Add ebook API cancel hold functionality to OPAC Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
LP#1673870: Add ebook API place hold functionality to OPAC Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
LP#1673870: Add ebook API checkout functionality to OPAC Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
LP#1541559: ebook API integration for TPAC When this feature is enabled, Evergreen will use the open-ils.ebook_api service to look up title and patron information from specified vendor APIs and display that information in the TPAC. (The service should be configured using org settings before being enabled in config.tt2.) This frontend is essentially a JS layer over top of the OPAC, with some light use of Dojo since we're already using it, plus a few additions to TT2 templates. The JS layer uses OpenSRF JS bindings to talk to the backend service, which in turn makes the appropriate calls to the third-party API. Session IDs and (if logged in) patron information are stored in cookies, which are cleared when the patron logs out. The user will see the following changes: - On search results and record summary, for any records from a known e-book vendor, Evergreen will automatically look up holdings info from the vendor API. If detailed information on formats and available "copies" is provided by the API (e.g. for OverDrive), that information is displayed in a table within the record; if only basic availability info is available (e.g. for OneClickdigital), a line is added to each record indicating whether the title is available. (Eventually, "Place Hold" or "Check Out" links will be added to allow patrons to checkout/hold titles without leaving the TPAC.) - When the user is logged in, the dashboard will show a count of e-book checkouts and holds for all enabled e-book vendors, as will the account summary. This is separate from the "main" checkouts/holds display, since checkouts/holds on titles from third-party vendors are unrelated to checkouts/holds in Evergreen. - When the user is logged in, additional tabs will be available in My Account for displaying detailed information on the patron's ebook checkouts and holds. (Eventually, functionality will be added to My Account allowing the user to download or renew titles, suspend or cancel holds, etc.) Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Kathy Lussier <klussier@masslnc.org>