From 25f1c9ac70401a026163babc3badd9796e2c7a78 Mon Sep 17 00:00:00 2001 From: McCanna Date: Tue, 5 Jun 2018 14:01:36 -0400 Subject: [PATCH] PINES Customization for Syndetics (This is attempt 3 - ignore previous attempts.) - Eliminates unnecessary calls in the perlmod for all types of content. - Creates new modal popup instead of creating tabbed links. - Copies syndetics url & id to eg_vhost.conf for easier access by tt2. - Updates extras.tt2 to always expand added content section if content. Signed-off-by: McCanna --- .../lib/OpenILS/WWW/AddedContent/Syndetic.pm | 184 +-------------------- .../perlmods/lib/OpenILS/WWW/EGCatLoader/Record.pm | 5 +- .../templates/opac/parts/record/addedcontent.tt2 | 155 +++++++++++------ .../src/templates/opac/parts/record/extras.tt2 | 41 ++--- 4 files changed, 124 insertions(+), 261 deletions(-) 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 ad908ef7e1..85b15cad57 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/AddedContent/Syndetic.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/AddedContent/Syndetic.pm @@ -52,148 +52,8 @@ sub jacket_large { } # -------------------------------------------------------------------------- - -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)); -} - +# PINES Customization - Removed calls for toc, anotes, excerpt, reviews. +# Also removed checks for summary xml and json, only left html. # -------------------------------------------------------------------------- sub summary_html { @@ -202,18 +62,6 @@ 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 { @@ -223,31 +71,9 @@ sub data_exists { return 1; } - -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 }; -} +# -------------------------------------------------------------------------- +# PINES Customization - Removed send_json and send_xml, just left send_html and send_img. +# -------------------------------------------------------------------------- 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 e18028451f..c4ded3e4a2 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Record.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Record.pm @@ -7,9 +7,12 @@ use OpenILS::Utils::Fieldmapper; use OpenILS::Application::AppUtils; use Net::HTTP::NB; use IO::Select; + my $U = 'OpenILS::Application::AppUtils'; -our $ac_types = ['toc', 'anotes', 'excerpt', 'summary', 'reviews']; +# PINES Customization: only check for summary +# our $ac_types = ['toc', 'anotes', 'excerpt', 'summary', 'reviews']; +our $ac_types = ['summary']; # 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 dd9181a8c2..5c97c772fe 100644 --- a/Open-ILS/src/templates/opac/parts/record/addedcontent.tt2 +++ b/Open-ILS/src/templates/opac/parts/record/addedcontent.tt2 @@ -1,56 +1,107 @@ -
- -[% - 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; - %] -
+ +[% IF attrs.isbn_clean || attrs.upc || attrs.issn %] + + + +
+ +
+
+ × + +
+
-
-
- [% - IF selected_type; - content = ctx.added_content.$selected_type.content; - IF content; - content; - ELSE; - l('No Content Available'); - END; - ELSIF all_hidden; - l('No Content Available'); - 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 c6c55cb335..8519275936 100644 --- a/Open-ILS/src/templates/opac/parts/record/extras.tt2 +++ b/Open-ILS/src/templates/opac/parts/record/extras.tt2 @@ -38,17 +38,13 @@ END; # if no added content is available, hide the main tab. - # if any content is available, use the first tab as the default display tab. - default_ac = ''; - IF !tab_is_active('addedcontent'); + IF ctx.added_content.summary.status != '2'; # not available hide_ac = 1; - 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; + ELSE; + IF !attrs.isbn_clean && !attrs.upc && !attrs.issn; + hide_ac = 1; + ELSE; + hide_ac = 0; END; END; @@ -71,33 +67,20 @@
- [% IF tab_is_active(name) OR name == 'awards'; + [% IF tab_is_active(name) OR name == 'awards' OR name == 'addedcontent'; IF name == 'marchtml'; ctx.marchtml; ELSE; -- 2.11.0