From: Chris Sharp Date: Tue, 10 Jul 2018 10:40:23 +0000 (-0400) Subject: Revert "PINES Customization for Syndetics" X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=d627b5ff9c591bd854bfa8c16f85f6aaf66b085c;p=evergreen%2Fpines.git Revert "PINES Customization for Syndetics" This reverts commit 329d5d9dbd51d8bf2c7ab3b2e447e047ddd7e3a0. --- diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/AddedContent/Syndetic.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/AddedContent/Syndetic.pm index 85b15cad57..ad908ef7e1 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/AddedContent/Syndetic.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/AddedContent/Syndetic.pm @@ -52,8 +52,148 @@ sub jacket_large { } # -------------------------------------------------------------------------- -# PINES Customization - Removed calls for toc, anotes, excerpt, reviews. -# Also removed checks for summary xml and json, only left html. + +sub toc_html { + my( $self, $key ) = @_; + return $self->send_html( + $self->fetch_content('toc.html', $key)); +} + +sub toc_xml { + my( $self, $key ) = @_; + return $self->send_xml( + $self->fetch_content('toc.xml', $key)); +} + +sub toc_json { + my( $self, $key ) = @_; + return $self->send_json( + $self->fetch_content('toc.xml', $key)); +} + +# -------------------------------------------------------------------------- + +sub anotes_html { + my( $self, $key ) = @_; + return $self->send_html( + $self->fetch_content('anotes.html', $key)); +} + +sub anotes_xml { + my( $self, $key ) = @_; + return $self->send_xml( + $self->fetch_content('anotes.xml', $key)); +} + +sub anotes_json { + my( $self, $key ) = @_; + return $self->send_json( + $self->fetch_content('anotes.xml', $key)); +} + + +# -------------------------------------------------------------------------- + +sub excerpt_html { + my( $self, $key ) = @_; + return $self->send_html( + $self->fetch_content('dbchapter.html', $key)); +} + +sub excerpt_xml { + my( $self, $key ) = @_; + return $self->send_xml( + $self->fetch_content('dbchapter.xml', $key)); +} + +sub excerpt_json { + my( $self, $key ) = @_; + return $self->send_json( + $self->fetch_content('dbchapter.xml', $key)); +} + +# -------------------------------------------------------------------------- + +sub reviews_html { + my( $self, $key ) = @_; + + my %reviews; + + $reviews{ljreview} = $self->fetch_content('ljreview.html', $key); # Library Journal + $reviews{pwreview} = $self->fetch_content('pwreview.html', $key); # Publishers Weekly + $reviews{sljreview} = $self->fetch_content('sljreview.html', $key); # School Library Journal + $reviews{chreview} = $self->fetch_content('chreview.html', $key); # CHOICE Review + $reviews{blreview} = $self->fetch_content('blreview.html', $key); # Booklist Review + $reviews{hbreview} = $self->fetch_content('hbreview.html', $key); # Horn Book Review + $reviews{kireview} = $self->fetch_content('kireview.html', $key); # Kirkus Reviews + #$reviews{abreview} = $self->fetch_content('abreview.html', $key); # Bookseller+Publisher + #$reviews{criticasreview} = $self->fetch_content('criticasreview.html', $key); # Criticas + $reviews{nyreview} = $self->fetch_content('nyreview.html', $key); # New York Times + #$reviews{gdnreview} = $self->fetch_content('gdnreview.html', $key); # Guardian Review + #$reviews{doodysreview} = $self->fetch_content('doodysreview.html', $key); # Doody's Reviews + + for(keys %reviews) { + if( ! $self->data_exists($reviews{$_}) ) { + delete $reviews{$_}; + next; + } + $reviews{$_} =~ s///og; # Strip any doctype declarations + } + + return 0 if scalar(keys %reviews) == 0; + + #my $html = "
"; + my $html; + $html .= $reviews{$_} for keys %reviews; + #$html .= "
"; + + return $self->send_html($html); +} + +# we have to aggregate the reviews +sub reviews_xml { + my( $self, $key ) = @_; + my %reviews; + + $reviews{ljreview} = $self->fetch_content('ljreview.xml', $key); + $reviews{pwreview} = $self->fetch_content('pwreview.xml', $key); + $reviews{sljreview} = $self->fetch_content('sljreview.xml', $key); + $reviews{chreview} = $self->fetch_content('chreview.xml', $key); + $reviews{blreview} = $self->fetch_content('blreview.xml', $key); + $reviews{hbreview} = $self->fetch_content('hbreview.xml', $key); + $reviews{kireview} = $self->fetch_content('kireview.xml', $key); + #$reviews{abreview} = $self->fetch_content('abreview.xml', $key); + #$reviews{criticasreview} = $self->fetch_content('criticasreview.xml', $key); + $reviews{nyreview} = $self->fetch_content('nyreview.xml', $key); + #$reviews{gdnreview} = $self->fetch_content('gdnreview.xml', $key); + #$reviews{doodysreview} = $self->fetch_content('doodysreview.xml', $key); + + for(keys %reviews) { + if( ! $self->data_exists($reviews{$_}) ) { + delete $reviews{$_}; + next; + } + # Strip the xml and doctype declarations + $reviews{$_} =~ s/<\?xml.*?>//og; + $reviews{$_} =~ s///og; + } + + return 0 if scalar(keys %reviews) == 0; + + my $xml = ""; + $xml .= $reviews{$_} for keys %reviews; + $xml .= ""; + + return $self->send_xml($xml); +} + + +sub reviews_json { + my( $self, $key ) = @_; + return $self->send_json( + $self->fetch_content('dbchapter.xml', $key)); +} + # -------------------------------------------------------------------------- sub summary_html { @@ -62,6 +202,18 @@ sub summary_html { $self->fetch_content('summary.html', $key)); } +sub summary_xml { + my( $self, $key ) = @_; + return $self->send_xml( + $self->fetch_content('summary.xml', $key)); +} + +sub summary_json { + my( $self, $key ) = @_; + return $self->send_json( + $self->fetch_content('summary.xml', $key)); +} + # -------------------------------------------------------------------------- sub data_exists { @@ -71,9 +223,31 @@ sub data_exists { return 1; } -# -------------------------------------------------------------------------- -# PINES Customization - Removed send_json and send_xml, just left send_html and send_img. -# -------------------------------------------------------------------------- + +sub send_json { + my( $self, $xml ) = @_; + return 0 unless $self->data_exists($xml); + my $doc; + + try { + $doc = XML::LibXML->new->parse_string($xml); + } catch Error with { + my $err = shift; + $logger->error("added content XML parser error: $err\n\n$xml"); + $doc = undef; + }; + + return 0 unless $doc; + my $perl = OpenSRF::Utils::SettingsParser::XML2perl($doc->documentElement); + my $json = OpenSRF::Utils::JSON->perl2JSON($perl); + return { content_type => 'text/plain', content => $json }; +} + +sub send_xml { + my( $self, $xml ) = @_; + return 0 unless $self->data_exists($xml); + return { content_type => 'application/xml', content => $xml }; +} sub send_html { my( $self, $content ) = @_; diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Record.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Record.pm index c4ded3e4a2..e18028451f 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Record.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Record.pm @@ -7,12 +7,9 @@ use OpenILS::Utils::Fieldmapper; use OpenILS::Application::AppUtils; use Net::HTTP::NB; use IO::Select; - my $U = 'OpenILS::Application::AppUtils'; -# PINES Customization: only check for summary -# our $ac_types = ['toc', 'anotes', 'excerpt', 'summary', 'reviews']; -our $ac_types = ['summary']; +our $ac_types = ['toc', 'anotes', 'excerpt', 'summary', 'reviews']; # context additions: # record : bre object diff --git a/Open-ILS/src/templates/opac/parts/record/addedcontent.tt2 b/Open-ILS/src/templates/opac/parts/record/addedcontent.tt2 index 5c97c772fe..dd9181a8c2 100644 --- a/Open-ILS/src/templates/opac/parts/record/addedcontent.tt2 +++ b/Open-ILS/src/templates/opac/parts/record/addedcontent.tt2 @@ -1,107 +1,56 @@ - -[% IF attrs.isbn_clean || attrs.upc || attrs.issn %] - - - -
- -
-
- × - -
-
- +
+ +[% + ac_types = { + reviews => l('Reviews'), + anotes => l('Author Notes'), + toc => l('Table of Contents'), + excerpt => l('Excerpt'), + summary => l('Summary') + }; + + selected_type = CGI.param('ac'); + + # For each type of added content, render the link if it's known to have + # content, do not render the link if it's known to not have content. If + # the content status is unknown, render the link, but hide the link via CSS + # if dojo is enabled. If dojo is not enabled, render and display the link. +%] + +
+ [% + all_hidden = 1; + FOR type IN ac_types.keys; + tab_class = 'ac_tab'; + SET tab_class = tab_class _ ' ac_tab_selected' IF type == selected_type; + IF ctx.added_content.$type.status != '2'; # no content + all_hidden = 0; + IF ctx.added_content.$type.status == '3' AND want_dojo; # status unknown + tab_class = tab_class _ ' hidden'; + END %] + + [% END; + END; + %]
- -[% END %] \ No newline at end of file diff --git a/Open-ILS/src/templates/opac/parts/record/extras.tt2 b/Open-ILS/src/templates/opac/parts/record/extras.tt2 index 8519275936..c6c55cb335 100644 --- a/Open-ILS/src/templates/opac/parts/record/extras.tt2 +++ b/Open-ILS/src/templates/opac/parts/record/extras.tt2 @@ -38,13 +38,17 @@ END; # if no added content is available, hide the main tab. - IF ctx.added_content.summary.status != '2'; # not available + # if any content is available, use the first tab as the default display tab. + default_ac = ''; + IF !tab_is_active('addedcontent'); hide_ac = 1; - ELSE; - IF !attrs.isbn_clean && !attrs.upc && !attrs.issn; - hide_ac = 1; - ELSE; - hide_ac = 0; + FOR type IN ctx.added_content.keys; + IF ctx.added_content.$type.status != '2'; # not available + hide_ac = 0; + END; + IF ctx.added_content.$type.status == '1'; + SET default_ac = type UNLESS default_ac; + END; END; END; @@ -67,20 +71,33 @@
- [% IF tab_is_active(name) OR name == 'awards' OR name == 'addedcontent'; + [% IF tab_is_active(name) OR name == 'awards'; IF name == 'marchtml'; ctx.marchtml; ELSE;