PINES Syndetics Customization
authorTerran McCanna <tmccanna@georgialibraries.org>
Mon, 9 Jul 2018 18:04:46 +0000 (14:04 -0400)
committerChris Sharp <csharp@georgialibraries.org>
Tue, 15 Jan 2019 16:51:38 +0000 (11:51 -0500)
This attempt leaves the Syndetics perl code in place to retrieve images,
but ignores it in favor of hardcoding in the Added Content button and
modal code on the item details page.

Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Open-ILS/src/templates/opac/parts/record/addedcontent.tt2
Open-ILS/src/templates/opac/parts/record/extras.tt2

index dd9181a..e014228 100644 (file)
-<div class='rdetail_extras_div'> 
-
-[% 
-    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.
-%]
-
-    <div id='ac_tab_wrapper'>
-    [% 
-        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 %]
-            <div class="[% tab_class %]" id="ac:[% type %]">
-                <a href="[% mkurl('', {ac => type}) _ '#addedcontent' %]" rel="nofollow" vocab="">[% ac_types.$type %]</a>
-            </div>
-            [% END;
-        END;
-    %]
-    </div>
+<!-- PINES CUSTOMIZATION: Use complete Syndetic content in modal pop-up instead of screenscraped from page -->
+[% IF attrs.isbn_clean || attrs.upc || attrs.issn %]
+    <style>
+        /* The Syndetics Modal Stylesheet */
+        .smodal {
+            display: none; /* Hidden by default */
+            position: fixed; /* Stay in place */
+            z-index: 1; /* Sit on top */
+            padding-top: 30px; /* Location of the box */
+            left: 0;
+            top: 0;
+            width: 100%; /* Full width */
+            height: 100%; /* Full height */
+            overflow: auto; /* Enable scroll if needed */
+            background-color: rgb(0,0,0); /* Fallback color */
+            background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
+        }
+
+        /* Modal Content */
+        .smodal-content {
+            background-color: #fefefe;
+            margin: auto;
+            padding: 0px;
+            border: 1px solid #888;
+            width: 80%;
+        }
+        
+        /* Iframe Content */
+        .smodal-iframe {
+            margin: auto;
+            padding:0px;
+            border: 0px;
+            width: 100%;
+            height: 600px;
+        }
+        
+        /* Launch Button */
+        .smodal-button {
+            margin: 20px;
+        }
+        
+        /* The Close Button */
+        .close {
+            color: #aaaaaa;
+            float: right;
+            font-size: 28px;
+            font-weight: bold;
+        }
+
+        .close:hover,
+        .close:focus {
+            color: #000;
+            text-decoration: none;
+            cursor: pointer;
+        }
+        
+               /* Responsive design for phones */
+               @media only screen and (max-width: 1200px) {
+
+                       #sBtn {
+                               display:none;
+                       }
+        }
+    </style>
+
+
+    <div class='rdetail_extras_div'>
+        <button class="smodal-button" id="sBtn">See Summary, Reviews, and More from Syndetics</button>
+        <div id="sModal" class="smodal">
+          <div class="smodal-content">
+            <span class="close">&times;</span>
+            <iframe class="smodal-iframe" src="https://secure.syndetics.com/index.aspx?isbn=[%- attrs.isbn_clean -%]/index.html&client=evertest&type=rn12&close=no&popup=no&upc=[%- attrs.upc -%]&issn=[%- attrs.issn -%]">
+                <p>[% l("This browser does not support this type of content.") %]</p>    
+            </iframe>
+          </div>
+        </div>
 
-    <div id='ac_content'>
-        <hr/>
-        [% 
-            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;
-        %]
     </div>
-</div>
 
+    <script>
+        // Get the Syndetics modal
+        var modal = document.getElementById('sModal');
+
+        // Get the button that opens the modal
+        var btn = document.getElementById("sBtn");
+
+        // Get the <span> element that closes the modal
+        var span = document.getElementsByClassName("close")[0];
+
+        // When the user clicks the button, open the modal 
+        btn.onclick = function() {
+            modal.style.display = "block";
+        }
+
+        // When the user clicks on <span> (x), close the modal
+        span.onclick = function() {
+            modal.style.display = "none";
+        }
 
+        // When the user clicks anywhere outside of the modal, close it
+        window.onclick = function(event) {
+            if (event.target == modal) {
+                modal.style.display = "none";
+            }
+        }
+    </script>
+[% END %]
\ No newline at end of file
index c6c55cb..5f35ddd 100644 (file)
             END;
         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');
-            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;
+        # if item doesn't have isbn, upc, or issn, hide tab
+            IF !attrs.isbn_clean && !attrs.upc && !attrs.issn;
+                hide_ac = 1;
+            ELSE;
+                hide_ac = 0;
             END;
-        END;
 
         extras = [
             {name => 'summaryplus',  label => l('Summaries & More'), hide => hide_summary},
             {name => 'annotation', label => l('Annotation'), hide => 1}, 
-            {name => 'awards',  label => l('Awards, Reviews, & Suggested Reads')}, 
+            {name => 'awards',  label => l('Awards, Reviews, & Suggested Reads'), hide => hide_ac}, # hide if all content is known to not exist
             {name => 'excerpt',  label => l('Excerpt'), hide => 1},
             {name => 'issues',   label => l('Issues Held'), hide => !(ctx.have_holdings_to_show || ctx.have_mfhd_to_show)},
             {name => 'preview',  label => l('Preview'), hide => 1}, 
         <div class="rdetail_extras">
             <div class="rdetail_extras_hr"></div>
             <div class="rdetail_extras_link">
-                [%  
-                    IF tab_is_active(name);
-                        href = mkurl('', {}, ['expand', 'ac']);
-                        arrow = arrow_down;                        
-                                       ELSIF name == 'awards';
+                [%
+                    IF tab_is_active(name) OR name == 'awards' OR name == 'addedcontent';
                         href = mkurl('', {}, ['expand', 'ac']);
-                        arrow = arrow_down;                                                
+                        arrow = arrow_down;
                                        ELSE;
-                        IF name == 'addedcontent' AND default_ac;
-                            href = mkurl('', {expand => name, ac => default_ac}) _ '#' _ name; 
-                        ELSE;
-                            IF name == 'addedcontent' AND default_ac;
-                                href = mkurl('', {expand => name, ac => default_ac}) _ '#' _ name; 
-                            ELSIF name == 'awards';
-                                href = mkurl('', {}, ['expand', 'ac']);
-                            ELSE;
-                                href = mkurl('', {expand => name}) _ '#' _ name;
-                            END;
-                            arrow = arrow_right;
-                        END;
+                        href = mkurl('', {expand => name}) _ '#' _ name;
+                        arrow = arrow_right;
                     END;
                 %]
                 <a name='[% name %]' href='[% href %]' class="rdetail_extras_lbl" rel="nofollow" vocab="">[% arrow %] [% extra.label | html %]</a>
             </div>
         </div>
         <div class='rdetail_extras_div'>
-            [%  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;