From 5e4b7044d4d343324ad74db161fe13b805841512 Mon Sep 17 00:00:00 2001 From: Srdjan Date: Fri, 23 Sep 2016 18:13:10 +1200 Subject: [PATCH] Bug 17602 Add Oneclickdigital integration to Koha Add OneClickdigital to the users page in the public interface To Test: 1/ Apply all 3 patches 2/ Set the sysprefs to valid values (you will need a test account with Oneclickdigital) 3/ Try a search 4/ Login to the OPAC, try to place a hold, or check an item out 5/ Check the opac-user page, see if your items are showing on the oneclickdigital tab --- .../bootstrap/en/includes/oneclick-checkout.inc | 15 ++ .../bootstrap/en/modules/opac-oneclick-search.tt | 165 ++++++++++++ .../opac-tmpl/bootstrap/en/modules/opac-results.tt | 18 ++ .../opac-tmpl/bootstrap/en/modules/opac-user.tt | 19 ++ .../opac-tmpl/bootstrap/js/oneclickdigital.js | 278 +++++++++++++++++++++ opac/opac-oneclick-search.pl | 41 +++ opac/opac-search.pl | 9 +- opac/opac-user.pl | 1 + opac/svc/oneclickdigital | 131 ++++++++++ 9 files changed, 674 insertions(+), 3 deletions(-) create mode 100644 koha-tmpl/opac-tmpl/bootstrap/en/includes/oneclick-checkout.inc create mode 100644 koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-oneclick-search.tt create mode 100644 koha-tmpl/opac-tmpl/bootstrap/js/oneclickdigital.js create mode 100755 opac/opac-oneclick-search.pl create mode 100755 opac/svc/oneclickdigital diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/oneclick-checkout.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/oneclick-checkout.inc new file mode 100644 index 0000000..55bdaff --- /dev/null +++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/oneclick-checkout.inc @@ -0,0 +1,15 @@ + diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-oneclick-search.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-oneclick-search.tt new file mode 100644 index 0000000..da90502 --- /dev/null +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-oneclick-search.tt @@ -0,0 +1,165 @@ +[% USE Koha %] +[% INCLUDE 'doc-head-open.inc' %] +[% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha online[% END %] catalog › OneClickDigital search for '[% q | html %]' +[% INCLUDE 'doc-head-close.inc' %] +[% BLOCK cssinclude %] + + +[% END %] + +[% INCLUDE 'bodytag.inc' bodyid='oneclickdigital-results-page' bodyclass='scrollto' %] +[% INCLUDE 'masthead.inc' %] + +
+ + +
+
+
+ [% IF ( OpacNav || OpacNavBottom ) %] + [% INCLUDE 'navigation.inc' %] + [% END %] +
+
+
+

OneClickDigital search for '[% q | html %]'

+ + +
+ +
+ + + + +
+ +
+ +
+ +
+
+
+
+
+ +[% INCLUDE 'oneclick-checkout.inc' %] + +[% INCLUDE 'opac-bottom.inc' %] +[% BLOCK jsinclude %] + + + +[% END %] diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt index 2d85671..0284e49 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt @@ -590,6 +590,7 @@ [% END %] [% IF ( OpacStarRatings == 'all' || Koha.Preference('Babeltheque') ) %][% END %] [% IF ( OverDriveEnabled ) %][% END %] +[% IF ( OneClickDigitalEnabled ) %][% END %] [% IF ( OpacHighlightedWords ) %] [% END %] [% IF Koha.Preference('OverDriveCirculation') %] + [% END %] diff --git a/koha-tmpl/opac-tmpl/bootstrap/js/oneclickdigital.js b/koha-tmpl/opac-tmpl/bootstrap/js/oneclickdigital.js new file mode 100644 index 0000000..ae3226c --- /dev/null +++ b/koha-tmpl/opac-tmpl/bootstrap/js/oneclickdigital.js @@ -0,0 +1,278 @@ +if ( typeof KOHA == "undefined" || !KOHA ) { + var KOHA = {}; +} + +KOHA.OneClickDigital = new function() { + var svc_url = '/cgi-bin/koha/svc/oneclickdigital'; + + var error_div = $('
'); + function display_error ( error ) { + error_div.text(error); + } + + var details = null; + + function is_identified() { + return details ? details.is_identified : false; + } + + var checkout_popup = null; + $( document ).ready(function() { + checkout_popup = $("#oneclickdigital-checkout"); + }); + + function display_account (container, data) { + if (!data.is_identified) { + return; + } + + if (data.checkouts) { + var checkouts_div = $('
').html('

' + _("Checkouts") + '

'); + var checkouts_list = $('