Bugzilla – Attachment 77764 Details for
Bug 18421
Make Coce cover images available for staff search
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug18421: Add Coce to the staff intranet
Bug18421-Add-Coce-to-the-staff-intranet.patch (text/plain), 22.00 KB, created by
Owen Leonard
on 2018-08-13 18:09:56 UTC
(
hide
)
Description:
Bug18421: Add Coce to the staff intranet
Filename:
MIME Type:
Creator:
Owen Leonard
Created:
2018-08-13 18:09:56 UTC
Size:
22.00 KB
patch
obsolete
>From 534bbd07ccacb14a7a5159ad5f86fc5525a31e59 Mon Sep 17 00:00:00 2001 >From: Charles Farmer <charles.farmer@inLibro.com> >Date: Fri, 30 Mar 2018 11:58:55 -0400 >Subject: [PATCH] Bug18421: Add Coce to the staff intranet > >TEST PLAN: > 1) Apply the patch with git-bz > 2) Run updatedatabase.pl > 2.1) Console output should confirm database modification > 3) Visit the 'Enhanced Content' tab of admin/syspref > 3.1) ressource is /cgi-bin/koha/admin/preferences.pl?tab=enhanced_content > 3.2) You should see that the previous preference, Coce, is now CoceOPAC, > and that a new preference was added, CoceIntranet > 4) Activate CoceIntranet > 5) Do a search for a book for which you have a Coce cover > 5.1) The cover image url should now point to a provider you defined in Coce > 5.2) Your Coce log should show a query > 6) Click on the book's name to visit the detail.pl page > 6.1) The book's cover should also be provided by Coce on that page > >Signed-off-by: Owen Leonard <oleonard@myacpl.org> >--- > .../atomicupdate/bug_18421_add_coce_intranet.perl | 24 ++++++++++++ > installer/data/mysql/sysprefs.sql | 3 +- > .../admin/preferences/enhanced_content.pref | 10 ++++- > .../prog/en/modules/catalogue/detail.tt | 37 +++++++++++++++++-- > .../prog/en/modules/catalogue/results.tt | 26 ++++++++++++- > koha-tmpl/intranet-tmpl/prog/js/coce.js | 43 ++++++++++++++++++++++ > .../bootstrap/en/includes/opac-bottom.inc | 2 +- > .../bootstrap/en/includes/shelfbrowser.inc | 2 +- > .../opac-tmpl/bootstrap/en/modules/opac-detail.tt | 8 ++-- > .../opac-tmpl/bootstrap/en/modules/opac-results.tt | 4 +- > 10 files changed, 143 insertions(+), 16 deletions(-) > create mode 100755 installer/data/mysql/atomicupdate/bug_18421_add_coce_intranet.perl > create mode 100644 koha-tmpl/intranet-tmpl/prog/js/coce.js > >diff --git a/installer/data/mysql/atomicupdate/bug_18421_add_coce_intranet.perl b/installer/data/mysql/atomicupdate/bug_18421_add_coce_intranet.perl >new file mode 100755 >index 0000000..af27757 >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/bug_18421_add_coce_intranet.perl >@@ -0,0 +1,24 @@ >+#! /usr/bin/perl >+ >+use Modern::Perl; >+use C4::Context; >+ >+my $dbh=C4::Context->dbh; >+ >+################ >+# IntranetCoce # >+################ >+ >+# validate systempreferences.Coce and save the config for OpacCoce >+my $current_coce_pref = C4::Context->preference('Coce') || 0; >+ >+# add two new systempreferences in order to have distinct behavior between intranet and OPAC >+$dbh->do("INSERT IGNORE INTO systempreferences (variable,value,options,explanation,type) VALUES >+ ('IntranetCoce','0', NULL, 'If on, enables cover retrieval from the configured Coce server in the staff intranet', 'YesNo'), >+ ('OpacCoce','$current_coce_pref', NULL, 'If on, enables cover retrieval from the configured Coce server in the OPAC', 'YesNo') >+ ;") or die "Error applying Bug 18421: error inserting new values into database: ". $dbh->errstr . "\n"; >+ >+$dbh->do("DELETE IGNORE FROM systempreferences WHERE variable = 'Coce';") >+ or die "Error applying Bug 18421: error deleting the old syspref 'Coce': ". $dbh->errstr . "\n"; >+ >+print "Upgrade to XX.XX done (Bug 18421: Add Coce image cache to the Intranet)\n"; >diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql >index 4a62a26..8ba1eae 100644 >--- a/installer/data/mysql/sysprefs.sql >+++ b/installer/data/mysql/sysprefs.sql >@@ -110,7 +110,6 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` > ('CircControl','ItemHomeLibrary','PickupLibrary|PatronLibrary|ItemHomeLibrary','Specify the agency that controls the circulation and fines policy','Choice'), > ('CircSidebar','0',NULL,'Activate or deactivate the navigation sidebar on all Circulation pages','YesNo'), > ('ClaimsBccCopy','0','','Bcc the ClaimAcquisition and ClaimIssues alerts','YesNo'), >-('Coce','0', NULL, 'If on, enables cover retrieval from the configured Coce server', 'YesNo'), > ('CoceHost', '', NULL, 'Coce server URL', 'Free'), > ('CoceProviders', '', 'aws,gb,ol', 'Coce providers', 'multiple'), > ('COinSinOPACResults','1','','If ON, use COinS in OPAC search results page. NOTE: this can slow down search response time significantly','YesNo'), >@@ -219,6 +218,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` > ('IntranetBiblioDefaultView','normal','normal|marc|isbd|labeled_marc','Choose the default detail view in the staff interface; choose between normal, labeled_marc, marc or isbd','Choice'), > ('intranetbookbag','1','','If ON, enables display of Cart feature in the intranet','YesNo'), > ('IntranetCirculationHomeHTML', '', NULL, 'Show the following HTML in a div on the bottom of the reports home page', 'Free'), >+('IntranetCoce','0', NULL, 'If on, enables cover retrieval from the configured Coce server in the staff intranet', 'YesNo'), > ('intranetcolorstylesheet','','50','Define the color stylesheet to use in the Staff Client','free'), > ('IntranetFavicon','','','Enter a complete URL to an image to replace the default Koha favicon on the Staff client','free'), > ('IntranetmainUserblock','','70|10','Add a block of HTML that will display on the intranet home page','Textarea'), >@@ -326,6 +326,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` > ('OpacBrowseResults','1',NULL,'Disable/enable browsing and paging search results from the OPAC detail page.','YesNo'), > ('OpacCloud','0',NULL,'If ON, enables subject cloud on OPAC','YesNo'), > ('OpacAdditionalStylesheet','','','Define an auxiliary stylesheet for OPAC use, to override specified settings from the primary opac.css stylesheet. Enter the filename (if the file is in the server\'s css directory) or a complete URL beginning with http (if the file lives on a remote server).','free'), >+('OpacCoce','0', NULL, 'If on, enables cover retrieval from the configured Coce server in the OPAC', 'YesNo'), > ('OpacCustomSearch','','70|10','Replace the search box on the OPAC with the provided HTML','Textarea'), > ('opaccredits','','70|10','Define HTML Credits at the bottom of the OPAC page','Textarea'), > ('OPACdefaultSortField','relevance','relevance|popularity|call_number|pubdate|acqdate|title|author','Specify the default field used for sorting','Choice'), >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/enhanced_content.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/enhanced_content.pref >index 81e96c6..43fec26 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/enhanced_content.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/enhanced_content.pref >@@ -380,11 +380,17 @@ Enhanced Content: > - with OverDrive. > Coce Cover images cache: > - >- - pref: Coce >+ - pref: OpacCoce > choices: > yes: Enable > no: "Don't enable" >- - a Coce image cache service. >+ - a Coce image cache service in the OPAC. >+ - >+ - pref: IntranetCoce >+ choices: >+ yes: Enable >+ no: "Don't enable" >+ - a Coce image cache service in the staff intranet. > - > - Coce server URL > - pref: CoceHost >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >index e4da23a..8854a6a 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >@@ -59,13 +59,19 @@ > <div id="yui-main"> > <div class="yui-b"> > >+[% >+ IntranetCoce = Koha.Preference('IntranetCoce') >+ CoceProviders = Koha.Preference('CoceProviders') >+ CoceHost = Koha.Preference('CoceHost') >+%] >+ > [% INCLUDE 'cat-toolbar.inc' %] > [% IF ( ocoins ) %] > <!-- COinS / OpenURL --> > <span class="Z3988" title="[% ocoins %]"></span> > [% END %] > >- [% IF ( AmazonCoverImages || LocalCoverImages ) %] >+ [% IF ( AmazonCoverImages || LocalCoverImages || IntranetCoce ) %] > [% IF ( XSLTDetailsDisplay ) %] > <div class="yui-gc"> > <div id="catalogue_detail_biblio" class="yui-u first"> >@@ -130,7 +136,7 @@ > </span> > [% END %] > >- [% IF ( AmazonCoverImages || LocalCoverImages ) %] >+ [% IF ( AmazonCoverImages || LocalCoverImages || IntranetCoce ) %] > </div><div class="yui-u" id="bookcoverimg"> > [% IF ( LocalCoverImages ) %] > <div title="[% biblionumber |url %]" class="[% biblionumber %]" id="local-thumbnail-preview"></div> >@@ -141,6 +147,16 @@ > <img src="https://images-na.ssl-images-amazon.com/images/P/[% normalized_isbn %].01.MZZZZZZZ.jpg" alt="" /> > </a></div> > [% END %] >+ [% IF ( IntranetCoce && CoceProviders ) %] >+ [% coce_id = normalized_ean || normalized_isbn %] >+ <a class="p1" href="/cgi-bin/koha/catalogue/[% DetailPage %]?biblionumber=[% biblionumber |url %]"> >+ [% IF ( coce_id ) %] >+ <span style="block" title="[% biblionumber |url %]" class="[% coce_id %]" id="coce-thumbnail-preview"></span> >+ [% ELSE %] >+ <span class="no-image">No cover image available</span> >+ [% END %] >+ </a> >+ [% END %] > [% END %] > [% ELSE %] > >@@ -204,7 +220,7 @@ > </ul> > </div> > >- [% IF ( AmazonCoverImages || LocalCoverImages ) %] >+ [% IF ( AmazonCoverImages || LocalCoverImages || IntranetCoce ) %] > <div class="yui-u" id="bookcoverimg"> > [% IF ( LocalCoverImages ) %] > <div title="[% biblionumber |url %]" class="[% biblionumber %]" id="local-thumbnail-preview"></div> >@@ -216,6 +232,16 @@ > </a> > </div> > [% END %] >+ [% IF ( IntranetCoce && CoceProviders ) %] >+ [% coce_id = normalized_ean || normalized_isbn %] >+ <a class="p1" href="/cgi-bin/koha/catalogue/[% DetailPage %]?biblionumber=[% biblionumber |url %]"> >+ [% IF ( coce_id ) %] >+ <span style="block" title="[% biblionumber |url %]" class="[% coce_id %]" id="coce-thumbnail-preview"></span> >+ [% ELSE %] >+ <span class="no-image">No cover image available</span> >+ [% END %] >+ </a> >+ [% END %] > </div> > [% END %] > >@@ -877,6 +903,7 @@ > [% INCLUDE 'catalog-strings.inc' %] > [% Asset.js("js/catalog.js") %] > [% INCLUDE 'greybox.inc' %] >+ <script type="text/javascript" src="[% interface %]/prog/js/coce_[% KOHA_VERSION %].js"></script> > <script type="text/javascript"> > // http://www.oreillynet.com/pub/a/javascript/2003/10/21/amazonhacks.html > function verify_images() { >@@ -1032,6 +1059,10 @@ > [% IF LocalCoverImages %] > KOHA.LocalCover.GetCoverFromBibnumber(true); > [% END %] >+ [% IF ( IntranetCoce && CoceProviders ) %] >+ KOHA.coce.getURL('[% CoceHost %]', '[% CoceProviders %]'); >+ [% END %] >+ > $("body").on("click",".previewMARC", function(e){ > e.preventDefault(); > var page = $(this).attr("href"); >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt >index 0b7c63d..5296c57 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt >@@ -22,6 +22,12 @@ > [% INCLUDE 'header.inc' %] > [% INCLUDE 'cat-search.inc' %] > >+[% >+ IntranetCoce = Koha.Preference('IntranetCoce') >+ CoceProviders = Koha.Preference('CoceProviders') >+ CoceHost = Koha.Preference('CoceHost') >+%] >+ > <div id="breadcrumbs"> > <a href="/cgi-bin/koha/mainpage.pl">Home</a> > › <a href="/cgi-bin/koha/catalogue/search.pl">Catalog</a> >@@ -352,7 +358,7 @@ > <!-- TABLE RESULTS START --> > <table> > <tr> >- [% IF ( AmazonCoverImages || LocalCoverImages ) %]<th> </th>[% END %] >+ [% IF ( AmazonCoverImages || LocalCoverImages || IntranetCoce ) %]<th> </th>[% END %] > <th colspan="2">Results</th> > <th>Location</th> > </tr> >@@ -360,7 +366,7 @@ > [% SET MaxSearchResultsItemsPerRecordStatusCheck = Koha.Preference('MaxSearchResultsItemsPerRecordStatusCheck') %] > [% FOREACH SEARCH_RESULT IN SEARCH_RESULTS %] > <tr> >- [% IF ( AmazonCoverImages || LocalCoverImages ) %] >+ [% IF ( AmazonCoverImages || LocalCoverImages || IntranetCoce ) %] > <td> > [% IF ( LocalCoverImages) %] > <a class="p1" href="/cgi-bin/koha/catalogue/[% DetailPage %]?biblionumber=[% SEARCH_RESULT.biblionumber |url %]"> >@@ -377,6 +383,17 @@ > [% END %] > </a> > [% END %] >+ [% IF ( IntranetCoce && CoceProviders ) %] >+ [% coce_id = SEARCH_RESULT.normalized_ean || SEARCH_RESULT.normalized_isbn %] >+ <a class="p1" href="/cgi-bin/koha/catalogue/[% DetailPage %]?biblionumber=[% SEARCH_RESULT.biblionumber |url %]"> >+ [% IF ( coce_id ) %] >+ <span style="block" title="[% SEARCH_RESULT.biblionumber |url %]" class="[% coce_id %]" id="coce-thumbnail[% loop.count %]"></span> >+ [% ELSE %] >+ <span class="no-image">No cover image available</span> >+ [% END %] >+ </a> >+ [% END %] >+ > </td> > [% END %] > <td> >@@ -627,6 +644,7 @@ > [% Asset.js("js/browser.js") %] > [% Asset.js("lib/jquery/plugins/jquery.fixFloat.js") %] > [% Asset.js("lib/jquery/plugins/jquery.checkboxes.min.js") %] >+ [% Asset.js("prog/js/coce.js") %] > <script type="text/javascript"> > var MSG_NO_ITEM_SELECTED = _("Nothing is selected."); > var MSG_NON_RESERVES_SELECTED = _("One or more selected items cannot be placed on hold."); >@@ -752,6 +770,10 @@ > KOHA.LocalCover.LoadResultsCovers(); > [% END %] > >+ [% IF ( IntranetCoce && CoceProviders ) %] >+ KOHA.coce.getURL('[% CoceHost %]', '[% CoceProviders %]'); >+ [% END %] >+ > $("#select_all").on("click",function(e){ > e.preventDefault(); > selectAll(); >diff --git a/koha-tmpl/intranet-tmpl/prog/js/coce.js b/koha-tmpl/intranet-tmpl/prog/js/coce.js >new file mode 100644 >index 0000000..95669a0 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/js/coce.js >@@ -0,0 +1,43 @@ >+if (KOHA === undefined || !KOHA) { var KOHA = {}; } >+ >+ >+/** >+ * A namespace for Coce cover images cache >+ */ >+KOHA.coce = { >+ >+ /** >+ * Search all: >+ * <div title="biblionumber" id="isbn" class="coce-thumbnail"></div> >+ * or >+ * <div title="biblionumber" id="isbn" class="coce-thumbnail-preview"></div> >+ * and run a search with all collected isbns to coce cover service. >+ * The result is asynchronously returned, and used to append <img>. >+ */ >+ getURL: function(host,provider,newWindow) { >+ var ids = []; >+ $("[id^=coce-thumbnail]").each(function(i) { >+ var id = $(this).attr("class"); // id=isbn >+ if ( id !== '' ) { ids.push(id); } >+ }); >+ if (ids.length == 0) return; >+ ids = ids.join(','); >+ var coceURL = host + '/cover?id=' + ids + '&provider=' + provider; >+ $.ajax({ >+ url: coceURL, >+ dataType: 'jsonp', >+ success: function(urlPerID){ >+ for (var id in urlPerID) { >+ var url = urlPerID[id]; >+ $("[id^=coce-thumbnail]."+id).each(function() { >+ var img = document.createElement("img"); >+ img.src = url; >+ img.title = url; //FIXME: to delete >+ $(this).html(img); >+ }); >+ } >+ } >+ }); >+ } >+ >+}; >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-bottom.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-bottom.inc >index 735cc89..3d4e684 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-bottom.inc >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-bottom.inc >@@ -195,7 +195,7 @@ $.widget.bridge('uitooltip', $.ui.tooltip); > //]]> > </script> > [% END %] >-[% IF ( Koha.Preference('Coce') && Koha.Preference('CoceProviders') ) %] >+[% IF ( Koha.Preference('OpacCoce') && Koha.Preference('CoceProviders') ) %] > [% Asset.js("js/coce.js") %] > <script> > //<![CDATA[ >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/shelfbrowser.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/shelfbrowser.inc >index d435134..1d36b3a 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/shelfbrowser.inc >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/shelfbrowser.inc >@@ -49,7 +49,7 @@ > <span class="no-image">No cover image available</span> > [% END %] > [% END %] >- [% IF ( Koha.Preference('Coce') && Koha.Preference('CoceProviders') ) %] >+ [% IF ( Koha.Preference('OpacCoce') && Koha.Preference('CoceProviders') ) %] > [% coce_id = item.browser_normalized_ean || item.browser_normalized_isbn %] > <div title="[% item.biblionumber |url %]" class="[% coce_id %]" id="coce-thumbnail-preview-[% coce_id %]"></div> > [% END %] >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt >index 3278210..472e5e9 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt >@@ -76,7 +76,7 @@ > [% IF ( GoogleJackets ) %] > <div title="[% biblio.biblionumber %]" class="[% normalized_isbn %]" id="gbs-thumbnail-preview"></div> > [% END %] >- [% IF ( Koha.Preference('Coce') && Koha.Preference('CoceProviders') ) %] >+ [% IF ( Koha.Preference('OpacCoce') && Koha.Preference('CoceProviders') ) %] > [% coce_id = normalized_ean || normalized_isbn %] > <div title="[% biblio.biblionumber %]" class="[% coce_id %]" id="coce-thumbnail-preview"></div> > [% END %] >@@ -1501,7 +1501,7 @@ > [% IF ( GoogleJackets ) %] > KOHA.Google.GetCoverFromIsbn([% covernewwindow %]); > [% END %] >- [% IF ( Koha.Preference('Coce') && Koha.Preference('CoceProviders') ) %] >+ [% IF ( Koha.Preference('OpacCoce') && Koha.Preference('CoceProviders') ) %] > KOHA.coce.getURL('[% Koha.Preference('CoceHost') %]', '[% Koha.Preference('CoceProviders') %]',[% covernewwindow %]); > [% END %] > >@@ -1576,7 +1576,7 @@ > [% IF ( GoogleJackets ) %] > KOHA.Google.GetCoverFromIsbn([% covernewwindow %]); > [% END %] >- [% IF ( Koha.Preference('Coce') && Koha.Preference('CoceProviders') ) %] >+ [% IF ( Koha.Preference('OpacCoce') && Koha.Preference('CoceProviders') ) %] > KOHA.coce.getURL('[% Koha.Preference('CoceHost') %]', '[% Koha.Preference('CoceProviders') %]',[% covernewwindow %]); > [% END %] > [% IF OpenLibraryCovers %] >@@ -1602,7 +1602,7 @@ > [% IF ( GoogleJackets ) %] > KOHA.Google.GetCoverFromIsbn([% covernewwindow %]); > [% END %] >- [% IF ( Koha.Preference('Coce') && Koha.Preference('CoceProviders') ) %] >+ [% IF ( Koha.Preference('OpacCoce') && Koha.Preference('CoceProviders') ) %] > KOHA.coce.getURL('[% Koha.Preference('CoceHost') %]', '[% Koha.Preference('CoceProviders') %]',[% covernewwindow %]); > [% END %] > [% IF OpenLibraryCovers %] >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 a091575..1f5a09c 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt >@@ -252,7 +252,7 @@ > [% END %] > [% END %] > >- [% IF ( Koha.Preference('Coce') && Koha.Preference('CoceProviders') ) %] >+ [% IF ( Koha.Preference('OpacCoce') && Koha.Preference('CoceProviders') ) %] > [% coce_id = SEARCH_RESULT.normalized_ean || SEARCH_RESULT.normalized_isbn %] > [% IF ( coce_id ) %] > <span title="[% SEARCH_RESULT.biblionumber |url %]" class="[% coce_id %]" id="coce-thumbnail[% loop.count %]"></span> >@@ -967,7 +967,7 @@ $(document).ready(function(){ > [% IF OpenLibraryCovers %]KOHA.OpenLibrary.GetCoverFromIsbn();[% END %] > [% IF OPACLocalCoverImages %]KOHA.LocalCover.GetCoverFromBibnumber(false);[% END %] > [% IF ( GoogleJackets ) %]KOHA.Google.GetCoverFromIsbn();[% END %] >-[% IF ( Koha.Preference('Coce') && Koha.Preference('CoceProviders') ) %] >+[% IF ( Koha.Preference('OpacCoce') && Koha.Preference('CoceProviders') ) %] > KOHA.coce.getURL('[% Koha.Preference('CoceHost') %]', '[% Koha.Preference('CoceProviders') %]'); > [% END %] > >-- >2.1.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 18421
:
71322
|
71977
|
72772
|
73401
|
73495
|
74252
|
77597
|
77598
|
77599
|
77764
|
77765
|
80137
|
80138
|
80139
|
83633
|
83634
|
83635
|
83636
|
91552
|
91553
|
91554
|
91555
|
91786
|
91787
|
91788
|
91789
|
93654
|
93655
|
93656
|
93657