Tweak regex to get a clean ISBN and enhance display
authorDan Scott <dan@coffeecode.net>
Thu, 23 Jun 2011 16:17:00 +0000 (12:17 -0400)
committerDan Scott <dan@coffeecode.net>
Thu, 23 Jun 2011 16:17:00 +0000 (12:17 -0400)
Try to hide the "Online resources" row again if we got an ISBN lookup
from SFX.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Open-ILS/web/opac/skin/uwin/xml/rdetail/rdetail_summary.xml

index a2faf13..e837973 100644 (file)
                                        ]]></script>
                                </td>
                        </tr>
-                       <tr class='hide_me' id='tag020'>
-                               <td nowrap='nowrap' class='rdetail_desc'>&common.isbn;</td>                     
-                               <td type='opac/slot-data' query='datafield[tag=020]' class='rdetail_item'>
-                                   <script type='opac/slot-format'><![CDATA[
-                                       dojo.query('#tag020').removeClass('hide_me');
-                                       
-                                       /* Check for subfield 9 = SFX */
-                                       var isbn_raw = dojo.trim(BT.textContent(item));
-                                       var found_isbn_sfx = false;
+            <tr class='hide_me' id='tag020'>
+                <td nowrap='nowrap' class='rdetail_desc'>&common.isbn;</td>
+                <td type='opac/slot-data' query='datafield[tag="020"]' class='rdetail_item'>
+                    <script type='opac/slot-format'><![CDATA[
+                    dojo.query('#tag020').removeClass('hide_me');
+
+                    /* Check for subfield 9 = SFX */
+                    var isbn_raw = dojo.trim(BT.textContent(item));
+                    var found_isbn_sfx = false;
                     dojo.query('subfield[code="9"]', item).forEach(function(item) {
                         if (dojo.trim(BT.textContent(item)) == 'SFX') {
                             found_isbn_sfx = true;
                         return '<span>' + isbn_raw + '</span><br/>';
                     }
 
-                    var isbn = isbn_raw.replace(/^\s|.*?(\d\S*).*?$/, "$1");
+                    var isbn = isbn_raw.replace(/^\s*.*?(\d\S*)\s*.*?$/, "$1");
                     isbn = isbn.replace(/-/g, "");
 
-                                       var ses = new OpenSRF.ClientSession('open-ils.resolver');       
-                                       var req = ses.request('open-ils.resolver.resolve_holdings.raw', 'isbn', isbn, 'http://sfx.scholarsportal.info/windsor');        
-                                       req.oncomplete = function(r) {
-                                               var msg;
-                                               dojo.forEach(r.recv().content(), function(entry) {
-                                                       var resolverInfo = entry.public_name + "_" + entry.target_coverage;
-                                                       /* uwin has a lot of duplicates for some reason */
-                                                       if (url_list.indexOf(resolverInfo) == -1) {
-                                                               if (first_isbn) {
-                                                                       dojo.query('#rdetail_sfx *').orphan();
-                                                                       first_isbn = false;
-                                                               }
-
-                                                               dojo.place('<div style="width: 100%">'
-                                                                       + ' <a class="search_link" href="' + entry.target_url
-                                                                       + '">' + entry.public_name + '</a> - '
-                                                                       + entry.target_coverage 
-                                                                       + (entry.target_embargo ? (' / ' + entry.target_embargo) : '') 
-                                                                       + '</div>', 'rdetail_sfx');
-                                                               dojo.query('#rdetail_sfx_row').removeClass('hide_me');
-                                                               url_list += resolverInfo;
-                                                       }
-                                               });
-                                       }
-                                       req.send();
+                    var ses = new OpenSRF.ClientSession('open-ils.resolver');
+                    var req = ses.request('open-ils.resolver.resolve_holdings.raw',
+                        'isbn', isbn, 'http://sfx.scholarsportal.info/laurentian');
+                    req.oncomplete = function(r) {
+                        var msg;
+                        dojo.forEach(r.recv().content(), function(entry) {
+                            var resolverInfo = entry.public_name + "_" + entry.target_coverage;
+                            /* uwin has a lot of duplicates for some reason */
+                            if (url_list.indexOf(resolverInfo) == -1) {
+                                if (first_isbn) {
+                                    dojo.query('#rdetail_sfx *').orphan();
+                                    first_isbn = false;
+                                }
+
+                                dojo.place('<div style="width: 100%">'
+                                    + ' <a class="search_link" href="' + entry.target_url
+                                    + '">' + entry.public_name + '</a> - '
+                                    + entry.target_coverage
+                                    + (entry.target_embargo ? (' / ' + entry.target_embargo) : '')
+                                    + '</div>', 'rdetail_sfx');
+                                dojo.query('#rdetail_sfx_row').removeClass('hide_me');
+                                url_list += resolverInfo;
+                            }
+                        });
+                    }
+                    req.send();
+                    dojo.query('#rdetail_online_row').addClass('hide_me');
 
-                                       return '<span>' + isbn + '</span><br/>';
+                    return '<span>' + isbn + '</span><br/>';
 
-                                   ]]></script>
-                               </td>
+                    ]]></script>
+                </td>
 
-                       </tr>
+            </tr>
                        <tr class='hide_me' id='tag022'>
                                <td nowrap='nowrap' class='rdetail_desc' id='issn_title'>&common.issn;</td>                     
                                <td type='opac/slot-data' query='datafield[tag=022]' class='rdetail_item' id='rdetail_issn'>
                                <div class='sfx_image'>
                                 <img align='left' src='../../../../images/sfxinfo.jpg' alt=''/>
                                 </div>
-                               SFX E-Journals</td>
+                               SFX electronic resources</td>
                         <!-- *** Example of how to use the openils.BibTemplate infrastructure to augment the stock
                              *** summary screen with complex information, such as location-specific URIs (856$9). -->
                         <td class='rdetail_item result_table_sfx_cell resolver_item' id='rdetail_sfx'>
                        <td nowrap='nowrap' class='rdetail_desc'>&rdetail.summary.online;</td>
                        <td class='rdetail_item' id='rdetail_online' type='opac/slot-data' query='volumes volume uris uri'>
                                <script type='opac/slot-format'><![CDATA[
+                                       if (found_issn || found_isbn) {
+                                               return;
+                                       }
                                        dojo.query('*:not([type^=opac])', 'rdetail_online').orphan();
                                        var uri = new Object;
                                        uri.href = item.getAttribute('href');