LP1778972 A slew of updates including fixes to ensure pages are valid and an entire...
authorChris Burton <cburton@nflibrary.ca>
Fri, 24 Jul 2020 21:03:00 +0000 (17:03 -0400)
committerChris Burton <cburton@nflibrary.ca>
Thu, 10 Sep 2020 16:01:35 +0000 (12:01 -0400)
57 files changed:
Open-ILS/src/templates-bootstrap/opac/advanced.tt2
Open-ILS/src/templates-bootstrap/opac/browse.tt2
Open-ILS/src/templates-bootstrap/opac/css/style.css.tt2
Open-ILS/src/templates-bootstrap/opac/home.tt2
Open-ILS/src/templates-bootstrap/opac/mylist/clear.tt2
Open-ILS/src/templates-bootstrap/opac/mylist/email.tt2
Open-ILS/src/templates-bootstrap/opac/mylist/print.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/circ_history.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/circs.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/ebook_circs.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/ebook_holds.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/ebook_holds_ready.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/hold_history.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/holds.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/lists.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/main.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/main_payments.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/messages/list.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/messages/single_message.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/prefs.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/prefs_settings.tt2
Open-ILS/src/templates-bootstrap/opac/parts/acjs.tt2 [new file with mode: 0644]
Open-ILS/src/templates-bootstrap/opac/parts/advanced/expert.tt2
Open-ILS/src/templates-bootstrap/opac/parts/advanced/global_row.tt2
Open-ILS/src/templates-bootstrap/opac/parts/advanced/numeric.tt2
Open-ILS/src/templates-bootstrap/opac/parts/advanced/search.tt2
Open-ILS/src/templates-bootstrap/opac/parts/anon_list.tt2
Open-ILS/src/templates-bootstrap/opac/parts/base.tt2
Open-ILS/src/templates-bootstrap/opac/parts/bookbag_actions.tt2
Open-ILS/src/templates-bootstrap/opac/parts/cart_nav.tt2
Open-ILS/src/templates-bootstrap/opac/parts/chilifresh.tt2 [new file with mode: 0644]
Open-ILS/src/templates-bootstrap/opac/parts/css/colors.tt2
Open-ILS/src/templates-bootstrap/opac/parts/ebook_api/avail.tt2 [new file with mode: 0644]
Open-ILS/src/templates-bootstrap/opac/parts/ebook_api/base_js.tt2 [new file with mode: 0644]
Open-ILS/src/templates-bootstrap/opac/parts/ebook_api/login_js.tt2 [new file with mode: 0644]
Open-ILS/src/templates-bootstrap/opac/parts/footer.tt2
Open-ILS/src/templates-bootstrap/opac/parts/js.tt2 [new file with mode: 0644]
Open-ILS/src/templates-bootstrap/opac/parts/login/form.tt2
Open-ILS/src/templates-bootstrap/opac/parts/login/login_modal.tt2
Open-ILS/src/templates-bootstrap/opac/parts/metarecord_hold_filters.tt2
Open-ILS/src/templates-bootstrap/opac/parts/misc_util.tt2
Open-ILS/src/templates-bootstrap/opac/parts/myopac/base.tt2
Open-ILS/src/templates-bootstrap/opac/parts/myopac/main_base.tt2
Open-ILS/src/templates-bootstrap/opac/parts/myopac/prefs_base.tt2
Open-ILS/src/templates-bootstrap/opac/parts/place_hold.tt2
Open-ILS/src/templates-bootstrap/opac/parts/record/cnbrowse.tt2
Open-ILS/src/templates-bootstrap/opac/parts/record/copy_counts.tt2
Open-ILS/src/templates-bootstrap/opac/parts/record/copy_table.tt2
Open-ILS/src/templates-bootstrap/opac/parts/record/extras.tt2
Open-ILS/src/templates-bootstrap/opac/parts/record/summary.tt2
Open-ILS/src/templates-bootstrap/opac/parts/result/facets.tt2
Open-ILS/src/templates-bootstrap/opac/parts/result/table.tt2
Open-ILS/src/templates-bootstrap/opac/parts/searchbar.tt2
Open-ILS/src/templates-bootstrap/opac/parts/topnav.tt2
Open-ILS/src/templates-bootstrap/opac/parts/topnav_links.tt2
Open-ILS/src/templates-bootstrap/opac/parts/topnav_subnav.tt2
Open-ILS/src/templates-bootstrap/opac/results.tt2

index 1d6b412..dcd6668 100644 (file)
@@ -37,6 +37,7 @@
                        class="nav-link [% IF pane == 'expert' %]active[% END %]"
                         id="expert_search">[% l('Expert Search') %]</a>
                 </li>
+                </ul>
             </div>
         </div>
         <div id="content-wrapper">
index 1ab9f77..7f079a7 100644 (file)
@@ -50,7 +50,7 @@
                             arialabel=l('Select holding library') %]
                         [% l('Browse for [_1] starting with [_2] in [_3]', control_qtype, control_bterm, control_locg) %]
 
-                       <input id='search-submit-go' type="submit" value="[% l('Browse') %]" alt="[% l('Browse') %]" class="btn btn-confirm my-2"/>
+                       <input id='search-submit-go' type="submit" value="[% l('Browse') %]"  class="btn btn-confirm my-2"/>
                         <img id="browse-submit-spinner" 
                         src="[% ctx.media_prefix %]/opac/images/progressbar_green.gif[% ctx.cache_key %]"
                         class="hidden" style="width: 16px; height: 16px;" 
index 56f44b3..f14a868 100644 (file)
@@ -299,11 +299,7 @@ Novelist Styling
     border-radius: 1rem !important;
 }
 
-#cnbrowse{
-       width: 95%;
-    text-align: center;
-    padding: 15px;
-}
+
 .cn_browse_item .card{
        padding: 15px;
 }
@@ -1446,6 +1442,10 @@ div.result_table_utils_cont {
     [% END -%]
 }
 
+.mylist_action:hover{
+    text-decoration: none;
+}
+
 #myopac_summary_div p {
     margin:0;
     margin-bottom: 10px;
@@ -3789,4 +3789,8 @@ label[for*=expert_]
 
 .navbar-dark .navbar-nav .nav-link{
     color: #fff !important;
+}
+
+.pref_table{
+    margin: 10px;
 }
\ No newline at end of file
index b362fe6..4d15d07 100644 (file)
@@ -5,9 +5,7 @@
     ctx.page_title = l("Home") %]
     <h2 class="sr-only">[% l('Catalog Home') %]</h2>
     [% INCLUDE "opac/parts/searchbar.tt2" is_home_page=1 %]
-    <div>
-        <div>
+  
             [% INCLUDE "opac/parts/homesearch.tt2" %]
-        </div>
-    </div>
+        
 [%- END %]
index 8e2596a..4acacec 100644 (file)
@@ -11,8 +11,7 @@
              <form method="post" action="[% mkurl(ctx.opac_root _ '/cache/clear', {}, 1) %]">
              <input type="hidden" name="redirect_to" value="[% ctx.referer %]" />
              <input id="print_cart_submit" type="submit" name="submit"
-               value="[% l('Confirm') %]" title="[% l('Confirm') %]"
-               alt="[% l('Confirm') %]" class="btn btn-confirm" />
+               value="[% l('Confirm') %]" title="[% l('Confirm') %]" class="btn btn-confirm" />
              <input type="reset" name="cancel" onclick="window.location='[% ctx.referer | html %]'" value="[% l('Cancel') %]" id="clear_basket_cancel" class="btn btn-deny" />
              </form>
             <div class="common-full-pad"></div>        
index 9eeaa27..7f57d21 100644 (file)
              <p class="big-strong">[% l('Please confirm that you want to email the [_1] titles in the basket.', ctx.mylist.size) %]
              <form method="post" action="[% mkurl(ctx.opac_root _ '/mylist/doemail', {}, 1) %]">
              <input type="hidden" name="redirect_to" value="[% ctx.referer %]" />
-             <input type="checkbox" name="clear_basket" value="on" />
+             <input type="checkbox" id="clear_basket" name="clear_basket" value="on" />
              <label for="clear_basket">[% l('Clear basket after emailing it.') %]</label>
              <br />
              <input id="print_cart_submit" type="submit" name="submit"
-               value="[% l('Confirm') %]" title="[% l('Confirm') %]"
-               alt="[% l('Confirm') %]" class="btn btn-confirm" />
+               value="[% l('Confirm') %]" title="[% l('Confirm') %]" class="btn btn-confirm" />
              <input type="reset" name="cancel" onclick="window.location='[% ctx.referer | html %]'" value="[% l('Cancel') %]" id="clear_basket_cancel" class="btn btn-deny" />
              </form>
           [% ELSE %]
index 08722c1..2d28062 100644 (file)
              <p class="big-strong">[% l('Please confirm that you want to print the [_1] titles in the basket.', ctx.mylist.size) %]
              <form method="post" action="[% mkurl(ctx.opac_root _ '/mylist/doprint', {}, 1) %]">
              <input type="hidden" name="redirect_to" value="[% ctx.referer %]" />
-             <input type="checkbox" name="clear_cart" value="on" />
-             <label for="clear_basket">[% l('Clear basket after printing it.') %]</label>
+             <input type="checkbox" id="clear_cart" name="clear_cart" value="on" />
+             <label for="clear_cart">[% l('Clear basket after printing it.') %]</label>
              <br />
              <input id="print_cart_submit" type="submit" name="submit"
                value="[% l('Confirm') %]" title="[% l('Confirm') %]"
-               alt="[% l('Confirm') %]" class="btn btn-confirm" />
+               class="btn btn-confirm" />
              <input type="reset" name="cancel" onclick="window.location='[% ctx.referer | html %]'" value="[% l('Cancel') %]" id="clear_basket_cancel" class="btn btn-deny" />
              </form>
           [% ELSE %]
index dc1d90f..bdf39d0 100644 (file)
@@ -9,21 +9,7 @@
 
 <h3 class="sr-only">[% l('History of Checked Out Items') %]</h3>
 <div style="padding:0px;">
-   <div>
-     <ul class="nav nav-pills nav-fill">
-        <li class="nav-item m-2">
-            <a class="nav-link not_active_pill" href='[% mkurl('circs',{},1) %]'>[% l("Current Items Checked Out") %]</a>
-        </li>
-        [%- IF ebook_api.enabled == 'true' %]
-        <li class="nav-item m-2">
-            <a class="nav-link not_active_pill" href="[% mkurl('ebook_circs',{},1) %]">[% l("E-Items Currently Checked Out") %]</a>
-        </li>
-        [%- END %]
-        <li class="nav-item m-2">
-            <a class="nav-link active" href="#">[% l("Check Out History") %]</a>
-        </li>
-    </ul>
-       </div>
+   
 
     [%
     # In the sorting case, the size is the size of ALL the circ items.  In the non-sorting case,
     END;
     %]
 <div class="my-4">
-    <div class="header_middle">
-        <span class="float-left">[% l('Previously Checked Out Items') %]</span>
-        <span class='float-left' style='padding-left: 10px;'>
-            <a href='[% mkurl('circ_history', {limit => limit, offset => (offset - limit)}) %]'
-                [% IF offset == 0 %] class='invisible' [% END %]><span class="nav_arrow_fix">&#9668;</span>[% l('Previous') %]</a>
-            [%# TODO: get total to prevent paging off then end of the list.. %]
-            <a href='[% mkurl('circ_history', {limit => limit, offset => (offset + limit)}) %]'
-            [% IF no_next %] class='invisible' [% END %] >[% l('Next') %]<span class="nav_arrow_fix">&#9658;</span></a>
-        </span>
+    <div class="row">
+        <div class="col-3 text-left"><a href='[% mkurl('circ_history', {limit => limit, offset => (offset - limit)}) %]'
+                [% IF offset == 0 %] class='invisible' [% ELSE %] class="btn btn-action" [% END %]><span class="nav_arrow_fix">&#9668;</span>[% l('Previous') %]</a></div>
+        <div class="col-6 text-center"><h4>[% l('Previously Checked Out Items') %]</h4></div>
+        <div class="col-3 text-right"><a href='[% mkurl('circ_history', {limit => limit, offset => (offset + limit)}) %]'
+            [% IF no_next %] class='invisible' [% ELSE %] class="btn btn-action" [% END %] >[% l('Next') %]<span class="nav_arrow_fix">&#9658;</span></a></div>
     </div>
     <div class="clear-both"></div>
 
     <div class="warning_box">[% l('There are no items in your circulation history.') %]</div>
     [% ELSE %]
 
-        <form method="post" id="circ-form"
-            onsubmit="return confirm('[% l("Are you sure you wish to delete the selected item(s)?") %]');">
-        <table cellpadding='0' cellspacing='0' class="item_list_padding">
-            <tr>
-                <td style="width:90%;">
-                    <select name="action" class="form-control">
-                        <option value="delete">[% l('Delete Selected Titles') %]</option>
-                    </select>
-                </td>
-               
-                <td style="padding-left:9px;">
-                    <input type="submit"
-                        value="[% l('Go') %]"
-                        alt="[% l('Go') %]" title="[% l('Go') %]"
-                        class="btn btn-sm btn-confirm" />
-                </td>
-                <!--
-                <td style="padding-left:5px;">
-                    <a href="#"><img alt="[% l('Deleting Help') %]"
-                        src="[% ctx.media_prefix %]/images/question-mark.png[% ctx.cache_key %]" /></a>
-                </td>
-                -->
-            </tr>
-        </table>
+        <form method="post" id="circ-form">
+            <button name="action" class="btn btn-action mt-3" value="delete" id="delete" value="delete" type="submit" onclick="return confirm('[% l("Are you sure you wish to delete the selected item(s)?") %]');">Delete Selected</button>
+       
     <div id='checked_main'>
         <table title="[% l('History of Items Checked Out') %]" id="acct_checked_hist_header" class="table table-hover miniTable circHistTable my-3">
             <thead>
             </td>
                         <td>
                             <a href="[% mkurl(ctx.opac_root _ '/record/' _
-                                circ.circ.target_copy.call_number.record.id, {}, 1) %]"
-                                name="[% l('Catalog record') %]"><span[%- deemphasize_class -%]>
+                                circ.circ.target_copy.call_number.record.id, {}, 1) %]">
+                                <span[%- deemphasize_class -%]>
                                 [%- circ.ATTRS.title.substr(0,circ.ATTRS.nonfiling_characters) | html %]</span>
                                 [%- circ.ATTRS.title.substr(circ.ATTRS.nonfiling_characters) | html %]</a>
                         </td>
index 760674b..b8f66c6 100644 (file)
@@ -6,21 +6,7 @@
 %]
 <h3 class="sr-only">[% l('Current Items Checked Out') %]</h3>
 <div id='myopac_checked_div'>
-       <div>
-     <ul class="nav nav-pills nav-fill">
-        <li class="nav-item m-2">
-            <a class="nav-link active" href='#'>[% l("Current Items Checked Out") %]</a>
-        </li>
-        [%- IF ebook_api.enabled == 'true' %]
-        <li class="nav-item m-2">
-            <a class="nav-link not_active_pill" href="[% mkurl('ebook_circs',{},1) %]">[% l("E-Items Currently Checked Out") %]</a>
-        </li>
-        [%- END %]
-        <li class="nav-item active m-2">
-            <a class="nav-link not_active_pill" href="[% mkurl('circ_history',{},1) %]">[% l("Check Out History") %]</a>
-        </li>
-    </ul>
-       </div>
+       
     <div class="my-4">
     <div class="header_middle">
         <span class="float-left">[% l('Current Items Checked Out') %]</span>
         <form method="post" id="circ-form"
             onsubmit="return confirm('[% l("Are you sure you wish to renew the selected item(s)?") %]');">
          <div class="row">
-                <span class="col-md-11 my-2">
-                <select class="form-control" name="action" title="[% l('Select Action') %]">
-                    <option value="renew">[% l('Renew Selected Titles') %]</option>
-                </select>
-            </span>
-            <span class="col-md-1 my-2">
-                <input type="submit"
-                    value="[% l('Go') %]"
-                    title="[% l('Go') %]"
-                    class="btn btn-confirm" />
-            </span>
-           <!-- <span style="padding-left:5px;">
-                <a href="#"><img 
-                    alt="[% l('Renewing Help') %]"
-                    title="[% l('Actions for checked out items') %]"
-                    src="[% ctx.media_prefix %]/images/question-mark.png[% ctx.cache_key %]" /></a>
-            </span> -->
+                <button name="action" class="btn btn-action m-3" value="renew" id="renew" value="renew" type="submit">Renew Selected</button>
         </div>
 
         <table  id="acct_checked_main_header"  title="[% l('Items Checked Out') %]"
 
                 FOR circ IN circ_items; %]
                     <tr>
-                        <td class="checkbox_column" valign="top">
+                        <td class="checkbox_column">
                             <input type="checkbox" name="circ"
                                 title="[% l('Item Selected') %]"
                                 [% IF circ.circ.renewal_remaining < 1 %] disabled="disabled" [% END %]
                                 value="[% circ.circ.id %]" />
                         </td>
-                        <td name="title">
+                        <td>
                             <span class="sr-only">Title</span>
                             [% IF circ.circ.target_copy.call_number.id == -1 %]
                                 [% circ.circ.target_copy.dummy_title | html %]
                             [% ELSIF circ.ATTRS.title %]
                                 <a href="[% mkurl(ctx.opac_root _ '/record/' _ 
-                                    circ.circ.target_copy.call_number.record.id, {}, 1) %]"
-                                    name="[% l('Catalog record') %]"><span[%- deemphasize_class -%]>
+                                    circ.circ.target_copy.call_number.record.id, {}, 1) %]"><span[%- deemphasize_class -%]>
                                     [%- circ.ATTRS.title.substr(0,circ.ATTRS.nonfiling_characters) | html %]</span>
                                     [%- circ.ATTRS.title.substr(circ.ATTRS.nonfiling_characters) | html %]</a>
                             [% END %]
                         </td>
-                        <td name="author">
+                        <td>
                             [% IF circ.circ.target_copy.call_number.id == -1 %]
                                 <span class="sr-only">Author</span>
                                 [% circ.circ.target_copy.dummy_author | html %]
 
                             [% END %]
                         </td>
-                        <td name="renewals">
+                        <td>
                             <span class="sr-only">Renewals Remaining</span>
                             [% circ.circ.renewal_remaining %]
                         </td>
                             due_date = ctx.parse_datetime(circ.circ.due_date, circ.circ.circ_lib);
                             due_class = (date.now > date.format(due_date, '%s')) ? 'error' : '';
                         %]
-                        <td name="due_date" class='[% due_class %]'>
+                        <td class='[% due_class %]'>
                             <span class="sr-only">Due Date</span>
                             [% date.format(due_date, DATE_FORMAT) %]
                         </td>
-                        <td name="barcode">
+                        <td>
                             <span class="sr-only">Barcode</span>
                             <span class="speak:spell-out;">[% circ.circ.target_copy.barcode | html %]</span>
                         </td>
-                        <td name="call_number">
+                        <td>
                             <span class="sr-only">Call Number</span>
                             [% circ.circ.target_copy.call_number.label | html %]
                         </td>
                          [% IF ctx.get_org_setting(ctx.user.home_ou, 'opac.show_owning_lib_column'); %]
-                          <td name="lib">
+                          <td>
                                 [%- fleshed_ou = circ.circ.target_copy.call_number.owning_lib;
                                                 INCLUDE "opac/parts/library_name_link_from_ou.tt2";
                                 %]
index eb40563..ab32cda 100644 (file)
@@ -7,21 +7,7 @@
 <h3 class="sr-only">[% l('E-Items Currently Checked Out') %]</h3>
 <div id='myopac_checked_div'>
 
-   <div class="mb-3">
-     <ul class="nav nav-pills nav-fill">
-        <li class="nav-item m-2">
-            <a class="nav-link not_active_pill" href='[% mkurl('circs',{},1) %]'>[% l("Current Items Checked Out") %]</a>
-        </li>
-        [%- IF ebook_api.enabled == 'true' %]
-        <li class="nav-item m-2">
-            <a class="nav-link active" href="[% mkurl('ebook_circs',{},1) %]">[% l("E-Items Currently Checked Out") %]</a>
-        </li>
-        [%- END %]
-        <li class="nav-item active m-2">
-            <a class="nav-link not_active_pill" href="[% mkurl('circ_history',{},1) %]">[% l("Check Out History") %]</a>
-        </li>
-    </ul>
-       </div>
+   
 
     <div class="header_middle">
         <span class="float-left">[% l('E-Items Currently Checked Out') %]</span>
index 737475c..c03c05f 100644 (file)
 <h3 class="sr-only">[% l('My E-Item Holds') %]</h3>
 <div id='myopac_holds_div'>
 
-       <div class="mb-3">
-       <ul class="nav nav-pills nav-fill">
-        <li class="nav-item m-2">
-            <a href='[% mkurl('holds', {}, ['limit','offset','available','sort','sort_type']) %]' class="nav-link not_active_pill">[% l("Items on Hold") %]</a>
-        </li>
-        [% IF ebook_api.enabled == 'true' %]
-        <li class="nav-item m-2">
-            <a href='#' class="nav-link active">[% l("E-Items on Hold") %]</a>
-        </li>
-        <li class="nav-item m-2">
-            <a href='[% mkurl('ebook_holds_ready', {}, ['limit','offset','available','sort','sort_type']) %]' class="nav-link not_active_pill">[% l("E-Items Ready for Checkout") %]</a>
-        </li>
-        [% END %]
-        <li class="nav-item m-2">
-            <a href='[% mkurl('hold_history', {}, ['limit','offset','available','sort','sort_type']) %]' class="nav-link not_active_pill">[% l("Holds History") %]</a>
-        </li>
-        </ul>
-    </div>
+
     <div class="header_middle">
         <span class="float-left">[% l('E-Items on Hold') %]</span>
     </div>
index 83fd8b9..93edc9d 100644 (file)
 %]
 <h3 class="sr-only">[% l('E-Items Ready for Checkout') %]</h3>
 <div id='myopac_holds_div'>
-       <div class="mb-3">
-       <ul class="nav nav-pills nav-fill">
-        <li class="nav-item m-2">
-            <a href='[% mkurl('holds', {}, ['limit','offset','available','sort','sort_type']) %]' class="nav-link not_active_pill">[% l("Items on Hold") %]</a>
-        </li>
-        [% IF ebook_api.enabled == 'true' %]
-        <li class="nav-item m-2">
-            <a href='[% mkurl('ebook_holds', {}, ['limit','offset','available','sort','sort_type']) %]' class="nav-link not_active_pill">[% l("E-Items on Hold") %]</a>
-        </li>
-        <li class="nav-item m-2">
-            <a href='#' class="nav-link active">[% l("E-Items Ready for Checkout") %]</a>
-        </li>
-        [% END %]
-        <li class="nav-item m-2">
-            <a href='[% mkurl('hold_history', {}, ['limit','offset','available','sort','sort_type']) %]' class="nav-link not_active_pill">[% l("Holds History") %]</a>
-        </li>
-        </ul>
-    </div>
+
     
     <div class="header_middle">
         <span class="float-left">[% l('E-Items Ready for Checkout') %]</span>
index 1ee3589..6208a3b 100644 (file)
@@ -9,28 +9,7 @@
 %]
 
 <h3 class="sr-only">[% l('Holds History') %]</h3>
-<div id='myopac_holds_div'>
-
-
-       <div>
-       <ul class="nav nav-pills nav-justified">
-        <li class="nav-item m-2">
-            <a href='[% mkurl('holds',{},['limit','offset']) %]' class="nav-link not_active_pill">[% l("Items on Hold") %]</a>
-        </li>
-        [% IF ebook_api.enabled == 'true' %]
-        <li class="nav-item m-2">
-            <a href='[% mkurl('ebook_holds', {}, ['limit','offset','available','sort','sort_type']) %]' class="nav-link not_active_pill">[% l("E-Items on Hold") %]</a>
-        </li>
-        <li class="nav-item m-2">
-            <a href='[% mkurl('ebook_holds_ready', {}, ['limit','offset','available','sort','sort_type']) %]' class="nav-link not_active_pill">[% l("E-Items Ready for Checkout") %]</a>
-        </li>
-        [% END %]
-        <li class="nav-item m-2">
-            <a href='#' class="nav-link active">[% l("Holds History") %]</a>
-        </li>
-        </ul>
-    </div>
-    
+<div id='myopac_holds_div'> 
   
 <div class="my-4">
     <div class="header_middle">
@@ -81,7 +60,7 @@
                     PROCESS get_marc_attrs args=attrs;
                     ahr = hold.hold.hold %]
 
-                <tr name="acct_holds_temp">
+                <tr>
                    
                     <td>
                     <span class="sr-only">Title</span>
                     </td>
                     <td>
                     <span class="sr-only">Hold Status</span>
-                        <div name="acct_holds_status">
-                            [% PROCESS get_hold_status hold=hold; %]
+                        <div> [% PROCESS get_hold_status hold=hold; %]
                         </div>
                     </td>
                 </tr>
index 960d67c..139e17a 100644 (file)
 %]
 <h3 class="sr-only">[% l('My Holds') %]</h3>
 <div id='myopac_holds_div'>
-    <div class="mb-3">
-       <ul class="nav nav-pills nav-fill">
-        <li class="nav-item m-2">
-            <a href='#' class="nav-link active">[% l("Items on Hold") %]</a>
-        </li>
-        [% IF ebook_api.enabled == 'true' %]
-        <li class="nav-item m-2">
-            <a href='[% mkurl('ebook_holds', {}, ['limit','offset','available','sort','sort_type']) %]' class="nav-link not_active_pill">[% l("E-Items on Hold") %]</a>
-        </li>
-        <li class="nav-item m-2">
-            <a href='[% mkurl('ebook_holds_ready', {}, ['limit','offset','available','sort','sort_type']) %]' class="nav-link not_active_pill">[% l("E-Items Ready for Checkout") %]</a>
-        </li>
-        [% END %]
-        <li class="nav-item m-2">
-            <a href='[% mkurl('hold_history', {}, ['limit','offset','available','sort','sort_type']) %]' class="nav-link not_active_pill">[% l("Holds History") %]</a>
-        </li>
-        </ul>
-    </div>
+   
        <div class="my-4">
     <div class="header_middle">
         <span id="acct_holds_header" style="float:left;">
             %]
         </span>
     </div>
+    </div>
     <div class="clear-both"></div>
     <div id='holds_main'>
     <form method="post">
            <div class="row">
-                <span class="col-md-11 my-2">
-                       <select class="form-control" name="action" id="acct_holds_actions" 
-                      title="[% l('Select your action for the selected holds') %]">
-                        <option id='myopac_holds_actions_none' value=''>
-                        -- [% l("Actions for selected holds") %] --
-                        </option>
-                        <option value='suspend'>[% l("Suspend") %]</option>
-                        <option value='activate'>[% l("Activate") %]</option>
-                        <!-- XXX maybe later <option value='thaw_date'>[% l("Set Active Date") %]</option> -->
-                        <option value='cancel'>[% l("Cancel") %]</option>
-                    </select>
-                </span>
-                <span class="col-md-1 my-2">
-                    <input type="submit" value="[% l('Go') %]"
-                        title="[% l('Go') %]" class="btn btn-confirm" />
-                </span>
+            <button name="action" class="btn btn-action m-3" value="suspend" id="suspend" value="suspend" type="submit">[% l("Suspend") %]</button>
+            <button name="action" class="btn btn-action m-3" value="activate" id="activate" value="activate" type="submit">[% l("Activate") %] </button>
+            <button name="action" class="btn btn-action m-3" value="cancel" id="cancel" value="cancel" type="submit" onclick="return confirm('[% l("Are you sure you wish to cancel the selected hold(s)?") %]');">[% l("Cancel") %]</button>
+                
           </div>
 
           <div class="row">
                 <th>[% l('Cancel if not filled by') %]</th>
                 <th>[% l('Status') %]</th>
                 <th>[% l('Notes') %]</th>
+                <th></th>
             </tr>
             </thead>
             <tbody id="holds_temp_parent">
                     ahr = hold.hold.hold;
                     cnt = cnt + 1;
                      %]
-                <tr name="acct_holds_temp"
-                    class="[% ahr.frozen == 't' ? ' inactive-hold' : '' %]">
+                <tr class="[% ahr.frozen == 't' ? ' inactive-hold' : '' %]">
                     <td class="checkbox_column">
 
                     <span class="sr-only">Hold Number [%  cnt; %]</span>
                             END; %]
 
                             <a href="[% mkurl(ctx.opac_root _ '/record/' _ 
-                                hold.hold.bre_id, {}, 1) %]"
-                                name="[% l('Catalog record') %]"><span[%- deemphasize_class -%]>
+                                hold.hold.bre_id, {}, 1) %]"><span[%- deemphasize_class -%]>
                                 [%- title.substr(0,hold.ATTRS.nonfiling_characters) | html %]</span>
                                 [%- title.substr(hold.ATTRS.nonfiling_characters)   | html %]</a>
                         </div>
                     </td>
                     <td>
                     <span class="sr-only">Status</span>
-                        <div name="acct_holds_status">
+                        <div>
                             [% PROCESS get_hold_status hold=hold; %]
                         </div>
                     </td>
                 [% END %]
             </tbody>
         </table>
-        </div>
         [% END %]
         </form>
-    </div></div>
+    </div>
 </div>
 [% END %]
index e9e2738..49ea2ec 100644 (file)
@@ -16,7 +16,7 @@
 
     <!-- new list creation -->
     <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" id="create_form">
-        <h1>[% l('Create New List') %]</h1><a name="createnewlist"></a>
+        <h1>[% l('Create New List') %]</h1><a id="createnewlist"></a>
         <table class="table" >
             <tr>
                 <td class="list_create_table_label">
                 <td class="list-create-table-buttons">
                     <input type="reset"
                         value="[% l('Cancel') %]"
-                        alt="[% l('Cancel') %]"
                         class="btn btn-deny" />
                     &nbsp;&nbsp;&nbsp;
                     <input type="submit"
                         value="[% l('Submit') %]"
-                        alt="[% l('Submit') %]"
                         class="btn btn-confirm"/>
                 </td>
             </tr>
         [% FOR bbag IN ctx.bookbags %]
         <div>
          <table class="table"><tr>
-            <td width="30%">
+            <td>
             <div class="bookbag-controls-title-block">
                 [% baseurl = ctx.opac_root _ '/myopac/lists';
                 IF bbag.id != CGI.param("bbid");
             [% IF bbag.items.size %]
                 <div class="d-none">
                     <form method="get" class="form-row">
-                        <label for="opac.result.sort" class="form-row">[% l("Sort list items by: ") %]
+                        <div class="form-row">[% l("Sort list items by: ") %]
                         [%- INCLUDE "opac/parts/preserve_params.tt2" params=['loc', 'query', 'qtype']; %]
                         [% INCLUDE "opac/parts/filtersort.tt2"
                             value=CGI.param('sort') mode='bookbag' class='form-control my-2' %]
                         <input type="hidden" name="bbid"
                             value="[% CGI.param('bbid') | html %]"/>
                         <input type="submit" class="btn btn-confirm btn-sm my-2" value="[% l('Sort') %]" />
-                        </label>
+                        </div>
                     </form>
                 </div>
             [% END %]
                     <input type="hidden" name="offset" value="[% offset %]" />
                     [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
                        <table title="Edit List Description" class="mx-auto">
-                               <th colspan="2" class="text-center"><strong>Edit List Description</strong></th>
+                               <tr><td colspan="2" class="text-center"><strong>Edit List Description</strong></td></tr>
                                <tr>
                             <td> 
                                 <label for="bbag-edit-name">[% l('Name:') %]</label>
                 [% END %]
             </div>
         [% END %]
-        
+    
         <div>
         <table class="table table-hover miniTable w-100 bookbagTable">
             <thead>
         [% END %]
     </div>
     [% END %][% END %]
-</div></div>
+</div>
 [% END %]
 
index 99ed0ea..77a040c 100644 (file)
                     [% END %]
                     
                     <td>
-                        <strong class="fineAmount" value="[% f.xact.balance_owed %]">
+                        <strong>
                             [% money(f.xact.balance_owed) %]
                         </strong>
+                        <input class="fineAmount" value="[% f.xact.balance_owed %]" hidden />
                     </td>
                     
                     <td class="mobile_hide">
             <tbody id='myopac_trans_tbody'>
                 [% c = 0; %]
                 [% FOR f IN ctx.fines.grocery %]
-                <tr id='myopac_trans_row'>
+                <tr class ='myopac_trans_row'>
                 [% c = c + 1; %]
                     [% IF myopac_cc_allowed %]
                     <td>
                     
                     <td class="red">
                         <span class="sr-only">Amount Owed</span>
-                        <strong class="fineAmount" value="[% f.xact.balance_owed %]">
+                        <strong>
                             [% money(f.xact.balance_owed) %]
                         </strong>
+                         <input class="fineAmount" value="[% f.xact.balance_owed %]" hidden />
                     </td>
                     
                     <td>
 [% IF myopac_cc_allowed %]
 </form>
 [% END %]
-[% END %]
-
-<!--Table functions ~ Running total of selected items for use in a Paypal module or where running total is needed-->
 <script>
 jQuery("input[type=checkbox]").click(function () {
        var amount = 0;
@@ -229,4 +228,7 @@ jQuery("input[type=checkbox]").click(function () {
     jQuery("#total").val(amount);
     jQuery("#selectPay").val('Pay selected charges - $' + amount.toFixed(2));
 });
-</script>
\ No newline at end of file
+</script>
+[% END %]
+
+<!--Table functions ~ Running total of selected items for use in a Paypal module or where running total is needed-->
index f865e3b..72c82ff 100644 (file)
@@ -28,7 +28,7 @@
 
     [% IF ctx.payments.size %]
     <table title="[% l('Payments') %]" 
-        class='table table-hover miniTable paymentTable' width='100%'>
+        class='table table-hover miniTable paymentTable'>
         <thead><tr>
             <th>[% l('Payment Date') %]</th>
             <th>[% l('Payment For') %]</th>
index 9b0dbd8..5adcdf0 100644 (file)
@@ -1,6 +1,6 @@
 <div id="myopac_messages_div">
     <div class="header_middle">
-        <span id="acct_messages_header" style="float:left;">[% l("Messages") %]</div>
+        <span id="acct_messages_header" style="float:left;">[% l("Messages") %]</span>
         <span class='float-left' style='padding-left: 10px;'>
             <a href='[% mkurl('messages', { limit => limit, offset => (offset - limit)} ) %]'
                 [% IF offset <= 0 %] class='invisible' [% END %]><span class="nav_arrow_fix">&#9668;</span>[% l('Previous') %]</a>
     <div id="messages_main">
         <form method="post" id="messages-form"
          onsubmit="if (document.getElementById('acct_messages_actions').value == 'mark_deleted') { return confirm('[% l("Are you sure you wish to permanently delete the selected message(s)?") %]') } else { return true; }">
-            <div class="row">
-                <span class="col-md-11 my-2">
-                    <select class="form-control" name="action" id="acct_messages_actions"
-                        title="[% l('Select your action for the selected messages') %]">
-                        <option id="acct_messages_actions_none" value="">
-                            -- [% l('Actions for selected messages') %] --
-                        </option>
-                        <option value="mark_read">[% l('Mark As Read') %]</option>
-                        <option value="mark_unread">[% l('Mark As Unread') %]</option>
-                        <option value="mark_deleted">[% l('Delete') %]</option>
-                    </select>
-                </span>
-                <span class="col-md-1 my-2">
-                    <input type="submit"
-                        value="[% l('Go') %]"
-                        title="[% l('Go') %]"
-                        class="btn btn-confirm " />
-                </span>
-               <!-- <span style="padding-left:5px;">
-                    <a href="#"><img
-                        alt="[% l('Messages Help') %]"
-                        title="[% l('Actions for messages') %]"
-                        src="[% ctx.media_prefix %]/images/question-mark.png[% ctx.cache_key %]" /></a>
-                </span> -->
-            </div>
+           <button name="action" class="btn btn-action" value="mark_read" id="mark_read" value="mark_read" type="submit">Mark Read</button>
+            <button name="action" class="btn btn-action" value="mark_unread" id="mark_unread" value="mark_unread" type="submit">Mark Unread</button>
+             <button name="action" class="btn btn-action" value="mark_deleted" id="mark_deleted" value="mark_deleted" type="submit" onclick="return confirm('[% l("Are you sure you wish to permanently delete the selected message(s)?") %]')">Delete</button>
             [% IF count < 1 %]
             <div class="warning_box">[% l('No messages found.') %]</div>
             [% ELSE %]
             <table id="acct_messages_main_header" title="[% l('Messages') %]"
-                class="table table-hover miniTable messagesTable">
+                class="table table-hover miniTable messagesTable pref_table">
                 <thead>
                 <tr>
-                    <th align="center" class="text-center">
+                    <th>
                         <input type="checkbox" title="[% l('Select All Messages') %]"
                         onclick="var inputs=document.getElementsByTagName('input'); for (i = 0; i < inputs.length; i++) { if (inputs[i].name == 'message_id' &amp;&amp; !inputs[i].disabled) inputs[i].checked = this.checked;}"/>
                     </th>
@@ -95,9 +73,8 @@
                 </thead>
                 <tbody>
                 [% FOR message IN ctx.patron_messages; %]
-                    <tr name="acct_message_row"
-                        [% IF !message.is_read %]class="unread-patron-message"[% END %]>
-                        <td align="center">
+                    <tr [% IF !message.is_read %]class="unread-patron-message"[% END %]>
+                        <td>
                             <span class="sr-only">Message Number [% count; %]</span>
                         <input type="checkbox" name="message_id" value="[% message.id %]"
                             [% html_text_attr('title', l('Select message [_1]', message.title)) %]/>
index f79f009..71c1d86 100644 (file)
@@ -1,6 +1,6 @@
 <div id="myopac_messages_div">
     <div class="header_middle">
-        <span id="acct_messages_header" style="float:left;">[% l("Message") %]</div>
+        <span id="acct_messages_header" style="float:left;">[% l("Message") %]</span>
     </div>
     <div class="clear-both"></div>
     <div id="single_message_main">
             class='light_border table'>
             <tbody id='myopac_message_tbody'>
             <tr>
-                <td width='30%'
-                    class='color_4 light_border'>[% l("Date") %]</td>
+                <td class='color_4 light_border'>[% l("Date") %]</td>
                 <td class='myopac_message_date'>[% date.format(ctx.parse_datetime(ctx.patron_messages.0.create_date), DATE_FORMAT); %]</td>
             </tr>
             <tr>
-                <td width='30%'
-                    class='color_4 light_border'>[% l("Library") %]</td>
+                <td class='color_4 light_border'>[% l("Library") %]</td>
                 <td class='myopac_message_library'>[% ctx.patron_messages.0.library | html %]</td>
             </tr>
             <tr>
-                <td width='30%'
-                    class='color_4 light_border'>[% l("Subject") %]</td>
+                <td class='color_4 light_border'>[% l("Subject") %]</td>
                 <td class='myopac_message_subject'>[% ctx.patron_messages.0.title | html %]</td>
             </tr>
             <tr>
-                <td width='30%'
-                    class='color_4 light_border'>[% l("Message") %]</td>
+                <td class='color_4 light_border'>[% l("Message") %]</td>
                 <td class='myopac_message_message'>[% ctx.patron_messages.0.message | html %]</td>
             </tr>
             </tbody>
index 849f836..8e3208b 100644 (file)
@@ -5,13 +5,12 @@
 
 <h3 class="sr-only">[% l('Account Preferences') %]</h3>
 <div id="acct_info_main">
-    <table width='70%' title="[% l('Account preference') %]"
-        class='light_border table table-hover'>
+    <table title="[% l('Account preference') %]" class='light_border table table-hover'>
         <tbody id='myopac_summary_tbody'>
             <tr>
                 <td class='color_4 light_border'>[% l("Name") %]</td>
 
-                <td width='50%' class='light_border'>[% l(
+                <td class='light_border'>[% l(
                     HUMAN_NAME_FORMAT,
                     ctx.user.prefix, 
                     ctx.user.first_given_name,
@@ -24,8 +23,7 @@
             </tr>
              [% IF ctx.user.pref_first_given_name || ctx.user.pref_second_given_name || ctx.user.pref_family_name %]
             <tr>
-                <td width='30%'
-                    class='color_4 light_border'>[% l("Preferred Name") %]</td>
+                <td class='color_4 light_border'>[% l("Preferred Name") %]</td>
 
                 <td class='light_border'>[% l(
                     HUMAN_NAME_FORMAT,
                 <td class='light_border'>
                     [%- IF date.format(ctx.parse_datetime(ctx.user.expire_date), '%s') < date.format(date.now , '%s'); -%]
                         <span class="alert" style="font-weight:bold;">[% date.format(ctx.parse_datetime(ctx.user.expire_date), DATE_FORMAT) %]</span>
-                        </td>
+                       
                     [% ELSE %]
                         [% date.format(ctx.parse_datetime(ctx.user.expire_date), DATE_FORMAT) %]
                     [% END %]
     </table>
     
     <br />
-    <hr class='opac-auto-013' color="#DCDBDB" />
+    <hr />
     <br />
     
        <div class="header_middle mb-3">
                 cur_id = addr.id; 
                 pending_addr = pending.$cur_id;
             %]
-            <div class="col-lg-6 col-12">
-             <table width='100%' id='address_table' class='light_border' title="[% l('Addresses') %]">
+    <div class="col-lg-6 col-12">
+        <table class='table' title="[% l('Addresses') %]">
        
-        <tbody>
+            <tbody>
             <tr>
+              <td>
                 <!-- pending address form -->
                 [% IF pending_addr OR edit_addr_id == cur_id;
                     update_addr = pending_addr || addr %]
-                <td>
+              
                     <form method='post'>
                         [% IF pending_addr %]
                             <input type='hidden' name='pending_addr' value='[% pending_addr.id %]'/>
                         </table>
                     </form>
                 </td>
-                </tr>
-            </tbody>
-        </table>
-     </div>
-                [% ELSE %]
-                               <div class="col-lg-6 col-12">
+                 [% ELSE %]
+                <td>
+                               
                     <!-- read-only address display -->
                     <table class='table' title="[% l('Active Addresses') %]">
                         <tr><td>[% l("Address Type") %]</td><td>[% addr.address_type | html %]</td></tr>
                         <tr><td colspan='2'><a href='?edit_address=[% addr.id %]'>[% l('Edit Address') %]</a></td></tr>
                         [% END %]
                     </table>
-                 </div>
-                [% END %] <!-- if pending_addr -->
+                 
+                 </td>
+                [% END %] 
+                </tr>
+            </tbody>
+        </table>
+     </div></div>
             [% END %]
        
-    </div>
-    </div>
-</div>
+    
 
 [% END %]
index 853c65f..f7ca182 100644 (file)
@@ -53,7 +53,7 @@
                 </tr>
                 [%- setting = 'opac.default_search_location'; -%]
                 <tr >
-                    <td width='20%'><label for='[% setting %]'>[% l("Preferred search location") %]</label></td>
+                    <td><label for='[% setting %]'>[% l("Preferred search location") %]</label></td>
                     <td>
                         [%- thang = ctx.user.home_ou.id;
                             IF ctx.user_setting_map.$setting;
diff --git a/Open-ILS/src/templates-bootstrap/opac/parts/acjs.tt2 b/Open-ILS/src/templates-bootstrap/opac/parts/acjs.tt2
new file mode 100644 (file)
index 0000000..fa76861
--- /dev/null
@@ -0,0 +1,76 @@
+
+<script>
+
+    /* Checks to see if a given type of added content has data to show.
+     * The first arg to callback() is boolean indicating the presence of data */
+    function acIsAvailable(bre_id, type, callback) {
+        var url = '/opac/extras/ac/' + type + '/html/r/' + bre_id;
+        dojo.xhr('HEAD', {
+            url : url,
+            failOk : true, // http://bugs.dojotoolkit.org/ticket/11568
+            error : function(err) { callback(false, bre_id, type); },
+            load : function(result) { callback(true, bre_id, type); }
+        });
+    }
+
+    [%-
+        FOR type IN ctx.added_content.keys;
+            IF ctx.added_content.$type.status == '3' # status unknown %]
+
+                dojo.addOnLoad(function() {
+                    var bre_id = '[% ctx.bre_id %]';
+                    var type = '[% type %]';
+
+                    acIsAvailable(bre_id, type, function(avail, bre_id, type) {
+                        if (avail) {
+
+                            [% IF CGI.param('expand') == 'addedcontent' %]
+
+                                // if the content is available, un-hide the tab
+                                dojo.removeClass(dojo.byId('ac:' + type), 'hidden');
+
+                            [% ELSE %]
+                                // if no default type is selected on the main tab link
+                                // set one here, since we have available content
+
+                                var link = dojo.query('[name=addedcontent]')[0];
+                                var href = link.getAttribute('href');
+                                if (!href.match('[\&;]ac=')) {
+                                    href = href.replace('#addedcontent', ';ac=' + type + '#addedcontent');
+                                    dojo.attr(link, 'href', href);
+                                    dojo.attr(dojo.query('[name=addedcontent_lbl]')[0], 'href', href);
+                                }
+
+                            [% END %]
+                        }
+                    });
+                });
+            [% END; # IF status unknown
+        END; # FOR type
+
+        ident = ctx.record_attrs.isbn_clean || ctx.record_attrs.upc;
+        IF ident;
+    -%]
+
+[%- IF ENV.OILS_NOVELIST_URL -%]
+            /* Load novelist content */
+            setTimeout( function() {
+            novSelect.loadContentForQuery(
+                {
+                    ClientIdentifier : '[% ident %]',
+                    ISBN : '[% ident %]',
+                    version : '2.1'
+                },
+                '[% ENV.OILS_NOVELIST_PROFILE %]',
+                '[% ENV.OILS_NOVELIST_PASSWORD %]',
+                function(d){
+                    // note if d.length == 0, there is no content to display
+                    // hide the Loading... text
+                    dojo.byId('novelist-loading').innerHTML = '';
+                }
+            )}, 100);
+[%- END; # Novelist -%]
+
+        [% END; # IF ident
+    %]
+</script>
index bb88c53..0b6583c 100644 (file)
@@ -11,7 +11,7 @@
                         <div class="col-2">
                             <span class="d-inline-block" style="position:absolute;bottom:10px;">
                                 <a href="javascript:;" class="btn btn-remove btn-sm"
-                                title="[% l('Remove row') %]" alt="[% l('Remove row') %]"
+                                title="[% l('Remove row') %]" 
                                 onclick='return killRowIfAtLeast(1, this.parentNode.parentNode);'>
                                 <span>[% l('X') %]</span></a>
                             </span>
         </tbody>
         <tfoot>
             <tr>
-               <td class="py-3" colspan="7"><a class="btn btn-opac btn-sm" href="javascript:addExpertRow();">[% l("Add Search Row") %]</a></td>
+               <td class="py-3" ><a class="btn btn-opac btn-sm" href="javascript:addExpertRow();">[% l("Add Search Row") %]</a></td>
             </tr>
             <tr>
                [%- lib_select_id = "expert_search_library"; -%]
-               <td  class="py-3" colspan="5" class="expert-search-row">
+               <td  class="py-3 expert-search-row">
                    <label for="[% lib_select_id %]"><strong>[% l("Search Library:") %]</strong>
                        [%- PROCESS "opac/parts/org_selector.tt2";
                            INCLUDE build_org_selector id=lib_select_id show_loc_groups=1 
@@ -53,9 +53,9 @@
                </td>
             </tr>
             <tr>
-                <td  colspan="2" class="expert-search-row">
+                <td  class="expert-search-row">
                 <input type="submit" value="[% l('Search') %]"
-                    alt="[% l('Search') %]" title="[% l('Search') %]"
+                     title="[% l('Search') %]"
                     class="btn btn-confirm" />
                 </td>
             </tr>
index 2846ef7..ad37a88 100644 (file)
             </div>
             <div class="col-4">
                 <input class="form-control" title="[% l('Search term') %]" aria-label="[% l('Search term') %]"
-                type='text' size='18' name='query' value="[% q | html %]" x-webkit-speech [% IF loop.index == 0 %] autofocus [% END %] />
+                type='text' size='18' name='query' value="[% q | html %]"  [% IF loop.index == 0 %] autofocus [% END %] />
             </div>
         </div>
     </td>
     <td class="px-2">
         <a href="javascript:;" class="btn btn-remove btn-sm"
-            title="[% l('Remove row') %]" alt="[% l('Remove row') %]"
+            title="[% l('Remove row') %]"
             onclick='return killRowIfAtLeast(2, this);'>
                 <span>[% l('X') %]</span>
             </a></td>
index 3fe91fe..83b8ed6 100644 (file)
@@ -31,7 +31,7 @@
                   %]
             </label>
            <br/>
-                <input type="submit" alt="[% l('Search') %]"
+                <input type="submit" 
                     value="[% l('Search') %]" class="btn btn-confirm mt-3" />
           </div>
     </div>
index a1d161c..99e8e35 100644 (file)
@@ -8,7 +8,7 @@
         <!-- Contains the user-adda
         ble(?) rows to define search class, containment and text -->
          <div class="header_middle">[% l('Search Input') %]</div>
-               <div valign='top' class='adv_global_input_container row'>
+               <div class='adv_global_input_container row'>
             <table role="presentation" class="mx-auto mb-5 col-lg-8">
                 <tbody id="adv_global_tbody">
                     [% INCLUDE "opac/parts/advanced/global_row.tt2" %]
@@ -44,7 +44,7 @@
 <div class='row'>
 [% FOR adv_chunk IN search.adv_config; NEXT IF adv_chunk.adv_hide || (adv_chunk.adv_special && adv_chunk.adv_special != 'copy_location'); %]
             <div class='col-xl-3 col-sm-6 col-md-4 col-xs-12 pt-3'>
-            <div valign='top'[% IF adv_chunk.js_only %]
+            <div [% IF adv_chunk.js_only %]
                 id='adv_chunk_[% adv_chunk.adv_special %]'
                 class='hidden  mx-auto' [%ELSE%] class='mx-auto' [% END %]>
                 <strong><label for="[% adv_chunk.id %]">
@@ -75,7 +75,7 @@
 [% FOR adv_chunk IN search.adv_config; NEXT IF adv_chunk.adv_hide || adv_chunk.adv_special == 'copy_location';%]                  
 [%     IF adv_chunk.adv_special;%]
  <div class='col-md-4 col-sm-6 col-xs-12 pt-3'>
-            <div valign='top'[% IF adv_chunk.js_only %]
+            <div [% IF adv_chunk.js_only %]
                 id='adv_chunk_[% adv_chunk.adv_special %]'
                 class='hidden mx-auto' [%ELSE%] class='mx-auto' [% END %]>
                 <strong><label for="[% adv_chunk.id %]">
 </div>
         </div>
     </div>
-</div>
+
 </form>
index 27172ae..f906563 100644 (file)
@@ -28,7 +28,7 @@
                 <option value="new_list">[% l('Add to new list') %]</option>
                 [% IF ctx.user AND ctx.bookbags.size %]
                     <optgroup label="[% l('Move selected items to list:') %]">
-                    [% FOR bbag IN ctx.bookbags %]]
+                    [% FOR bbag IN ctx.bookbags %]
                         <option value="[% bbag.id %]" class="selector_actions_for_list_inner_option">[% bbag.name | html %]</option>
                     [% END %]
                     </optgroup>
index e743103..e96402d 100644 (file)
         <link rel="stylesheet" href="[% ctx.media_prefix %]/css/bootstrap/bootstrap.min.css">
                <script src="[% ctx.media_prefix %]/js/bootstrap/jquery-3.5.1.min.js"></script>
                <script src="[% ctx.media_prefix %]/js/bootstrap/popper.min.js"></script>
-               <script src="[% ctx.media_prefix %]/js/bootstrap/bootstrap.min.js"></script>  <link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/default/opac/semiauto.css[% ctx.cache_key %]" />
-        <link rel="stylesheet" type="text/css" href="[% ctx.opac_root %]/css/style.css[% ctx.cache_key %]&amp;dir=[%
+               <script src="[% ctx.media_prefix %]/js/bootstrap/bootstrap.min.js"></script>  
+        <link rel="stylesheet"  href="[% ctx.media_prefix %]/css/skin/default/opac/semiauto.css[% ctx.cache_key %]" />
+        <link rel="stylesheet" href="[% ctx.opac_root %]/css/style.css[% ctx.cache_key %]&amp;dir=[%
           IF ctx.get_i18n_l(ctx.eg_locale).rtl == 't' %]rtl[%
           ELSE %]ltr[% END %]" />
         [% IF ctx.get_i18n_l(ctx.eg_locale).rtl == 't' %]
-        <link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/default/opac/semiauto-rtl.css[% ctx.cache_key %]" />
+        <link rel="stylesheet" href="[% ctx.media_prefix %]/css/skin/default/opac/semiauto-rtl.css[% ctx.cache_key %]" />
         [% END %]
         
            [% IF ctx.get_org_setting(ctx.search_ou, 'opac.patron.custom_css') %]
@@ -41,7 +42,7 @@
         [%- ctx.metalinks.push('<meta property="og:site_name" content="' _ libname _ '" />'); %]
         [% FOREACH meta IN ctx.metalinks; meta _ "\n"; END; -%]
         [% IF want_dojo %]
-        <style type="text/css">
+        <style>
             @import "[% ctx.media_prefix %]/js/dojo/dijit/themes/tundra/tundra.css[% ctx.cache_key %]";
         </style>
         [% END %]
     <body[% IF want_dojo; ' class="tundra d-flex flex-column min-vh-100"'; ELSE; ' class="tundra d-flex flex-column min-vh-100"';  END %]>
         <h1 class="sr-only">[% l('Catalog') %]</h1>
         [%#Each content page needs (at minimum) an <h2> describing the content%]
-        <div>
+       
         [% content %]
-        </div>
+        [% IF ctx.page != "login" ;%]
         [% INCLUDE 'opac/parts/login/login_modal.tt2' %]
+        [% END;%]
         <h2 class="sr-only">[% l('Additional Resources') %]</h2>
         [% INCLUDE 'opac/parts/footer.tt2' %]
         [% INCLUDE 'opac/parts/js.tt2' %]
index b14f7ee..94f557f 100644 (file)
     }, stop_parms));
 %]
 
- <button id="btnGroupDrop1" type="button" class="btn btn-action" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><a href="#" class="no-dec">
+ <div id="btnGroupDrop1" role="button" class="btn btn-action" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
           <img src="[% ctx.media_prefix %]/images/clipboard.png[% ctx.cache_key %]"
               [% html_text_attr('alt', 
                 l('Add item to a list: [_1]', record_title)) %]/>
           [% l("Add to my list") %]
-        </a></button>
+        </div>
     <!--Removal-->    
     <div class="dropdown-menu" aria-labelledby="btnGroupDrop1">
     <a class="dropdown-item" href="[% href %]">[% l('Temporary List') %]</a>
index 32a1d62..10e2bba 100644 (file)
@@ -1,4 +1,4 @@
-<div>
+
   <div id="basket_actions">
   <div class="dropdown">
       <a href="#" id="cartDropdown" data-toggle="dropdown">
@@ -8,19 +8,18 @@
             <span class="sr-only">[% l('Records In Basket') %]</span>
         </div>
       </a>
-      <ul class="dropdown-menu dropdown-menu-left" role="menu" aria-labelledby="cartDropdown" style="right:0px !important;left:unset !important;">
-        <a role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/mylist', {}) %]"><li role="presentation" class="dropdown-item">[% l('View Basket') %]</li></a>
-        <a role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/mylist/move', { action => 'place_hold', entire_list => 1 }) %]"><li role="presentation" class="dropdown-item">[% l('Place Holds') %]</li></a>
-        <a role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/mylist/print', {}) %]"><li role="presentation" class="dropdown-item">[% l('Print Title Details') %]</li></a>
-        <a role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/mylist/email', {}) %]"><li role="presentation" class="dropdown-item">[% l('Email Title Details') %]</li></a>
+      <div class="dropdown-menu dropdown-menu-left" role="menu" aria-labelledby="cartDropdown" style="right:0px !important;left:unset !important;">
+        <a class="dropdown-item" role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/mylist', {}) %]">[% l('View Basket') %]</a>
+        <a class="dropdown-item" role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/mylist/move', { action => 'place_hold', entire_list => 1 }) %]">[% l('Place Holds') %]</a>
+        <a class="dropdown-item" role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/mylist/print', {}) %]">[% l('Print Title Details') %]</a>
+        <a class="dropdown-item" role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/mylist/email', {}) %]">[% l('Email Title Details') %]</a>
         [% IF !ctx.is_browser_staff %]
-        <a role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/myopac/lists', { move_cart_by_default => 1, from_basket => 1 }) %]"><li role="presentation" class="dropdown-item">[% l('Add Basket to Saved List') %]</li></a>
+        <a class="dropdown-item" role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/myopac/lists', { move_cart_by_default => 1, from_basket => 1 }) %]">[% l('Add Basket to Saved List') %]</a>
         [% END %]
         [% IF ctx.is_browser_staff %]
-        <a role="menuitem" tabindex="-1" href="add_cart_to_bucket"><li role="presentation" class="dropdown-item">[% l('Add Basket to Bucket') %]</li></a>
+        <a class="dropdown-item" role="menuitem" tabindex="-1" href="add_cart_to_bucket">[% l('Add Basket to Bucket') %]</a>
         [% END %]
-        <a role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/mylist/clear', {}) %]"><li role="presentation" class="dropdown-item">[% l('Clear Basket') %]</li></a>
-      </ul>
+        <a class="dropdown-item" role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/mylist/clear', {}) %]">[% l('Clear Basket') %]</a>
+      </div>
     </div>
   </div>
-</div>
diff --git a/Open-ILS/src/templates-bootstrap/opac/parts/chilifresh.tt2 b/Open-ILS/src/templates-bootstrap/opac/parts/chilifresh.tt2
new file mode 100644 (file)
index 0000000..aa2e0d1
--- /dev/null
@@ -0,0 +1,17 @@
+[%-  IF ENV.OILS_CHILIFRESH_URL AND ENV.OILS_CHILIFRESH_ACCOUNT 
+            AND (ctx.page == 'rresult' OR ctx.page == 'record');
+        chili_url = ENV.OILS_CHILIFRESH_URL;
+        IF CGI.https AND ENV.OILS_CHILIFRESH_HTTPS_URL;
+            chili_url = ENV.OILS_CHILIFRESH_HTTPS_URL;
+        END; 
+%]
+    <!-- Set up the chilifresh account information and load the JS -->
+    <input type="hidden" id="chilifresh_account" name="chilifresh_account" value="[% ENV.OILS_CHILIFRESH_ACCOUNT %]"/>
+    <!--
+    <input type="hidden" id="chilifresh_profile" name="chilifresh_profile" value="[% ENV.OILS_CHILIFRESH_PROFILE %]"/>
+    -->
+    <input type="hidden" id="chilifresh_version" name="chilifresh_version" value="onsite_v1" />
+    <input type="hidden" id="chilifresh_type" name="chilifresh_type" value="search" />
+    <script  src="[% chili_url %]"></script>
+    <script>try { setTimeout(chili_init, 0); } catch(E) {}</script>
+[%- END %]
index 6042509..2b5e3dd 100644 (file)
@@ -83,8 +83,8 @@
 #Action buttons such as Place Hold and Add to List seen in record and results. Make all 4 the same color for no hover effect 
         action_button = "#f8f9fa",
         action_button_hover = "#e2e6ea",
-        action_button_border = "#f8f9fa",
-        action_button_border_hover = "#dae0e5",
+        action_button_border = "#007a54",
+        action_button_border_hover = "#00593d",
         action_button_text = "#00593d",
         #Many action buttons use link coloring on the anchor tags. This setting will change the color to match your color schema if necessary
         #action_button_text_anchors = "",
diff --git a/Open-ILS/src/templates-bootstrap/opac/parts/ebook_api/avail.tt2 b/Open-ILS/src/templates-bootstrap/opac/parts/ebook_api/avail.tt2
new file mode 100644 (file)
index 0000000..9df0465
--- /dev/null
@@ -0,0 +1,41 @@
+[%-
+# Display holdings/availability info from ebook API
+#
+# We require the following info:
+# - rec_id: internal ID for this record (rec.id in search results, ctx.bre_id in record summary)
+# - ebook_id: external ID for title (ISBN for OneClickdigital, unique identifier for OverDrive)
+# - vendor (oneclickdigital, overdrive)
+
+IF args.ebook;
+
+    IF ctx.page == 'rresult';
+        ebook.rec_id = rec.id;
+    ELSE;
+        ebook.rec_id = ctx.bre_id;
+    END;
+
+    ebook.ebook_id = args.ebook.ebook_id;
+    ebook.vendor = args.ebook.vendor;
+
+# This div is hidden by default. The JS layer will unhide it, use the ebook_id
+# to retrieve holdings/availability info via the appropriate vendor API, and
+# overwrite the div's contents with that information.
+-%]
+<div id="[% ebook.rec_id %]" class="ebook_avail hidden">
+    <div id="[% ebook.ebook_id %]" class="[% ebook.vendor %]_avail">
+        <table id="[% ebook.rec_id %]_ebook_holdings" class="result_holdings_table hidden">
+            <thead>
+                <tr>
+                    <th>[% l('Available Formats') %]</th>
+                    <th>[% l('Status') %]</th>
+                </tr>
+            <tbody>
+                <tr>
+                    <td id="[% ebook.rec_id %]_formats"></td>
+                    <td id="[% ebook.rec_id %]_status"></td>
+                </tr>
+            </tbody>
+        </table>
+    </div>
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates-bootstrap/opac/parts/ebook_api/base_js.tt2 b/Open-ILS/src/templates-bootstrap/opac/parts/ebook_api/base_js.tt2
new file mode 100644 (file)
index 0000000..4cd2f6e
--- /dev/null
@@ -0,0 +1,95 @@
+[%
+# HTML display chunks
+progress_icon = '<img id="ebook_avail_spinner" src="/opac/images/progressbar_green.gif' _ ctx.cache_key _ '" alt="' _ l("Checking availability for this item...") _ '"/>'
+%]
+
+<script  src="[% ctx.media_prefix %]/js/ui/default/opac/ebook_api/session.js[% ctx.cache_key %]"></script>
+<script  src="[% ctx.media_prefix %]/js/ui/default/opac/ebook_api/ebook.js[% ctx.cache_key %]"></script>
+<script >
+
+// translatable strings as JS variables
+var l_strings = {};
+l_strings.download = '[% l('Download') %]';
+l_strings.ready_for_checkout = '[% l('Ready for Checkout') %]';
+l_strings.suspended = '[% l('Suspended') %]';
+l_strings.checkout = '[% l('Checkout') %]';
+l_strings.place_hold = '[% l('Place Hold') %]';
+l_strings.cancel_hold = '[% l('Cancel Hold') %]';
+
+// give us cookies!
+dojo.require("dojo.cookie");
+
+// context org unit
+[% IF !ctx.page OR ctx.page != 'rresult';
+    PROCESS get_library;
+END %]
+var ou = [% loc_value %];
+
+// list of enabled vendors
+var vendor_list = [];
+[% IF ebook_api.ebook_test.enabled == 'true' %]
+vendor_list.push('ebook_test');
+[% END %]
+[% IF ebook_api.oneclickdigital.enabled == 'true' %]
+vendor_list.push('oneclickdigital');
+[% END %]
+[% IF ebook_api.overdrive.enabled == 'true' %]
+vendor_list.push('overdrive');
+[% END %]
+
+var cookie_registry = [ 'ebook_xact_cache' ];
+dojo.forEach(vendor_list, function(v) {
+    cookie_registry.push(v);
+});
+
+// essential info for performing a transaction
+var ebook_action = {};
+[%- IF CGI.param("action").defined %]
+ebook_action.type = '[% CGI.param("action") | html %]';
+[%- END -%]
+[%- IF CGI.param("title").defined %]
+ebook_action.title_id = '[% CGI.param("title") | html %]';
+[%- END -%]
+[%- IF CGI.param("vendor").defined %]
+ebook_action.vendor = '[% CGI.param("vendor") | html %]';
+[%- END -%]
+
+[% IF ctx.user %]
+// user- or login-specific vars
+var authtoken = '[% ctx.authtoken %]';
+var patron_id = '[% ctx.active_card %]'; // using barcode of active card as patron ID
+[%- IF ctx.user.email %]
+var patron_email = '[% ctx.user.email | html %]';
+[%- ELSE %]
+var patron_email = null;
+[%- END %]
+
+var myopac_page;
+[% IF myopac_page %]
+myopac_page = "[% myopac_page %]";
+[% END %]
+
+[% END %]
+
+// enforce removal of ebook API cookies on logout
+dojo.addOnLoad(function() {
+    var logout_handle = dojo.connect(dojo.byId('#logout_link'), 'onclick', function() {
+        dojo.forEach(cookie_registry, function(cookie) {
+            dojo.cookie(cookie, '', {path: '/', expires: '-1h'});
+        });
+        // When we switch to jQuery, use .one()
+        // instead of dojo's .connect() and .disconnect()
+        dojo.disconnect(logout_handle);
+    });
+});
+</script>
+
+[%- IF ctx.user %]
+<script  src="[% ctx.media_prefix %]/js/ui/default/opac/ebook_api/relation.js[% ctx.cache_key %]"></script>
+<script  src="[% ctx.media_prefix %]/js/ui/default/opac/ebook_api/loggedin.js[% ctx.cache_key %]"></script>
+[%- END %]
+
+[%- IF (ctx.page == 'rresult' OR ctx.page == 'record') %]
+<script  src="[% ctx.media_prefix %]/js/ui/default/opac/ebook_api/avail.js[% ctx.cache_key %]"></script>
+[%- END %]
+
diff --git a/Open-ILS/src/templates-bootstrap/opac/parts/ebook_api/login_js.tt2 b/Open-ILS/src/templates-bootstrap/opac/parts/ebook_api/login_js.tt2
new file mode 100644 (file)
index 0000000..7bb12bd
--- /dev/null
@@ -0,0 +1,41 @@
+<script>
+var vendors_requiring_password = [];
+
+[% IF !loc_value; PROCESS get_library; END; %]
+[% IF ebook_api.overdrive.enabled == 'true'
+    AND loc_value
+    AND ctx.get_org_setting(loc_value, 'ebook_api.overdrive.password_required') %]
+vendors_requiring_password.push('overdrive');
+[% END %]
+
+dojo.addOnLoad(function() {
+    var handle = dojo.connect(dojo.byId('#login-form-box'), 'onclick', function(evt) {
+        // disconnect this event since it's one-time-only
+        // (when we switch to jQuery, we can use .one() here)
+        dojo.disconnect(handle);
+
+        // we cache the username (and password) for now, but will
+        // replace that with the patron's active barcode later
+        vendors_requiring_password.forEach(function(v) {
+            if (vendor_list.includes(v)) {
+                checkSession(v, function(v,ses) {
+                    var username = dojo.byId('#username_field').value;
+                    var password = dojo.byId('#password_field').value;
+                    new OpenSRF.ClientSession('open-ils.ebook_api').request({
+                        method: 'open-ils.ebook_api.patron.cache_password',
+                        params: [ ses, password ],
+                        async: true,
+                        oncomplete: function(r) {
+                            var resp = r.recv();
+                            if (resp) {
+                                console.log('patron password has been cached');
+                                return;
+                            }
+                        }
+                    }).send();
+                });
+            }
+        });
+    });
+});
+</script>
index 75c20f0..66b6645 100644 (file)
@@ -8,32 +8,23 @@
  
   <!--Left Links-->
   <div class="row w-100">
-  <div class="col-12">
-  
-   <ul class="navbar-nav justify-content-center ">
-       <!--Link 1-->
-      [% IF ctx.get_org_setting(ctx.physical_loc || ctx.aou_tree.id, 'opac.allow_pending_user') && !ctx.user %]
-       <li class="nav-item"><a class="nav-link" href="[% mkurl(ctx.opac_root _ '/register') %]">[% 
-        l('Request Library Card') %]</a></li>
-    [% ELSE %]
-       <li class="nav-item"><a class="nav-link" href="#">[% l('Link 1') %]</a></li> 
-    [% END %]
-       <li class="nav-item"><a class="nav-link" href="#">[% l('Link 2') %]</a></li> 
-       <li class="nav-item"><a class="nav-link" href="#">[% l('Link 3') %]</a></li>
-       <li class="nav-item"><a class="nav-link" href="#">[% l('Link 4') %]</a></li>
-    </ul>
-    <div id="nav-divide" class="dropdown-divider"></div>
-    
-   
-       </div>
-       
-       
-               
-           </div>
-       </div>
-   </nav>
+    <div class="col-12">
+        <ul class="navbar-nav justify-content-center ">
+            <!--Link 1-->
+        [% IF ctx.get_org_setting(ctx.physical_loc || ctx.aou_tree.id, 'opac.allow_pending_user') && !ctx.user %]
+            <li class="nav-item"><a class="nav-link" href="[% mkurl(ctx.opac_root _ '/register') %]">[% 
+            l('Request Library Card') %]</a></li>
+        [% ELSE %]
+            <li class="nav-item"><a class="nav-link" href="#">[% l('Link 1') %]</a></li> 
+        [% END %]
+            <li class="nav-item"><a class="nav-link" href="#">[% l('Link 2') %]</a></li> 
+            <li class="nav-item"><a class="nav-link" href="#">[% l('Link 3') %]</a></li>
+            <li class="nav-item"><a class="nav-link" href="#">[% l('Link 4') %]</a></li>
+        </ul>
+    </div>
+ </div>
+ </nav>
+ </div>
     [% IF ctx.timing %]
     <div id="timing">
         [% FOR event IN ctx.timing %]
diff --git a/Open-ILS/src/templates-bootstrap/opac/parts/js.tt2 b/Open-ILS/src/templates-bootstrap/opac/parts/js.tt2
new file mode 100644 (file)
index 0000000..a25dd53
--- /dev/null
@@ -0,0 +1,176 @@
+<!-- JS imports, etc.  -->
+<script  src="[% ctx.media_prefix %]/js/ui/default/opac/simple.js[% ctx.cache_key %]"></script>
+[% INCLUDE "opac/i18n_strings.tt2" %]
+
+[% IF ctx.want_jquery || ctx.readonly %]
+<script  src="[% ctx.media_prefix %]/js/ui/default/common/build/js/jquery.min.js[% ctx.cache_key %]"></script>
+[% END; # ctx.want_jquery %]
+
+[% IF ctx.readonly %]
+<script >
+  $(document).ready(function() {
+    $('a').removeAttr('href');
+    $('a').click(function(event) { event.preventDefault(); });
+    $('button').prop('disabled', true);
+    $('button').click(function(event) { event.preventDefault(); });
+    $('input').prop('disabled', true);
+    $('input').click(function(event) { event.preventDefault(); });
+    $('select').prop('disabled', true);
+    $('select').click(function(event) { event.preventDefault(); });
+    $('textarea').prop('disabled', true);
+    $('textarea').click(function(event) { event.preventDefault(); });
+  });
+</script>
+[% END %]
+
+<!-- DOB validation for Patron Registration in OPAC -->
+<script >
+    function dobValidate(input) {
+        var validformat = /^(19|20)\d\d([- /.])(0[1-9]|1[012])\2(0[1-9]|[12][0-9]|3[01])$/
+        var returnval = false
+        if (!validformat.test(input.value))
+            alert("[% l('You have entered an invalid date, or an improperly formatted date.  Please enter Date of Birth in YYYY-MM-DD or YYYY/MM/DD format and try again.') %]")
+        else
+            returnval = true
+        if (returnval == false) input.select()
+        return returnval
+}
+</script>
+
+[%- IF ctx.use_stripe %]
+<script >unHideMe($("pay_fines_now"));[%# the DOM is loaded now, right? %]</script>
+[% END -%]
+
+[%- IF ctx.is_staff %]
+<script  src="[% ctx.media_prefix %]/js/ui/default/opac/staff.js[% ctx.cache_key %]"></script>
+    [% IF ctx.page == 'record' %]
+        [% IF ctx.search_result_index >= 0 %]
+        <script>
+            rdetail_next_prev_actions(
+                "[% ctx.search_result_index %]",
+                "[% ctx.hit_count %]",
+                "[% ctx.prev_rec_url || '' %]",
+                "[% ctx.next_rec_url || '' %]",
+                "[% mkurl(ctx.first_search_record, {page => 0}) %]",
+                "[% mkurl(ctx.opac_root _ '/results', {find_last => 1, page => POSIX.floor(ctx.hit_count / ctx.page_size)}) %]",
+                "[% mkurl(ctx.opac_root _ '/results', {}, ['expand','cnoffset']) %]"
+            );
+        </script>
+        [% END %]
+        [% IF ctx.mfhd_summaries.size %]
+        <script>
+            window.mfhdDetails = [
+                [% FOR summary IN ctx.mfhd_summaries %]
+                    [% IF summary.sre_id != -1 %]
+                {
+                    'id' : '[% summary.sre_id %]', 
+                    'label' : '[% summary.location | replace("'", "\\'") %]',
+                    'entryNum' : [% loop.index %],
+                    'owning_lib' : '[% summary.owning_lib %]'
+                },
+                    [% END %]
+                [% END %]
+            ];
+        </script>
+        [% END %]
+    [% END %]
+[%- END %]
+
+[%- IF ENV.OILS_NOVELIST_URL AND ctx.page == 'record';
+    url = ENV.OILS_NOVELIST_URL;
+    IF CGI.https; url = url.replace('^http:', 'https:'); END; %]
+<script id='EIT' src='[% url %]'></script>
+[%- END %]
+[%- IF ctx.page == 'record' AND ctx.google_books_preview %]
+<script src='[% ctx.media_prefix %]/js/ui/default/opac/ac_google_books.js[% ctx.cache_key %]' async defer></script>
+[%- END %]
+
+<script>
+    window.egStrings = [];
+    window.egStrings['CONFIRM_BASKET_EMPTY'] = "[% l('Remove all records from basket?') %]";
+</script>
+<script src='[% ctx.media_prefix %]/js/ui/default/opac/record_selectors.js[% ctx.cache_key %]' async defer></script>
+
+<!-- Require some inputs and selections for browsers that don't support required form field element -->
+[% IF ctx.page == 'place_hold' %]
+  <script  src="[% ctx.media_prefix %]/js/ui/default/opac/holds-validation.js[% ctx.cache_key %]">
+  </script>
+[% END %]
+
+[%- IF want_dojo; -%]
+<script >
+     var djConfig = {
+         locale: "[% ctx.locale | lower | replace('_', '-') %]",
+         parseOnLoad: true,
+         isDebug: false
+     }, lang, bidi;
+</script>
+<script  src="[% ctx.media_prefix %]/js/dojo/dojo/dojo.js?[% ctx.eg_cache_hash %]"></script>
+<script  src="[% ctx.media_prefix %]/js/dojo/dojo/openils_dojo.js?[% ctx.eg_cache_hash %]"></script>
+
+[%- # So the following works in Mozilla and Chrome, but not in IE8.
+    # Seems like it /should/ work anywhere, though, and obviate the
+    # next three script tags: %]
+<!-- <script  src="[% ctx.media_prefix %]/js/dojo/DojoSRF.js?[% ctx.eg_cache_hash %]"></script> -->
+
+<script  src="[% ctx.media_prefix %]/js/dojo/opensrf/opensrf.js?[% ctx.eg_cache_hash %]"></script>
+<script  src="[% ctx.media_prefix %]/js/dojo/opensrf/opensrf_xhr.js?[% ctx.eg_cache_hash %]"></script>
+<script  src="[% ctx.media_prefix %]/js/dojo/opensrf/JSON_v1.js?[% ctx.eg_cache_hash %]"></script>
+
+[% IF use_autosuggest.enabled == "t" AND basic_search != "f"; %]
+<script >
+    dojo.require("openils.widget.AutoSuggest");
+
+    /* Set focus, and place the cursor at the end of the input string */
+    dojo.addOnLoad(function() {
+        /* Don't error out if the object doesn't exist, like on advanced search pages */
+        if (dojo.byId('search_box')) {
+            dijit.byId('search_box').focus();
+
+            var sb_value = dijit.byId('search_box').value;
+            /* Dojo won't trigger a change if the value doesn't change */
+            if (sb_value) {
+                dijit.byId('search_box').setValue(sb_value + ' ');
+                dijit.byId('search_box').setValue(sb_value);
+            }
+        }
+    });
+</script>
+[% END; # use_autosuggest %]
+
+[% INCLUDE "opac/parts/acjs.tt2" IF ctx.page == 'record' %]
+[% IF ctx.page == 'advanced' %]
+<script  
+    src="[% ctx.media_prefix %]/js/ui/default/opac/copyloc.js[% ctx.cache_key %]"></script>
+[% END %]
+
+[% IF ebook_api.enabled == 'true' %]
+    [% INCLUDE "opac/parts/ebook_api/base_js.tt2" %]
+    [% INCLUDE "opac/parts/ebook_api/login_js.tt2" IF (ctx.page == 'login') %]
+[% END %]
+
+<!-- provide a JS friendly org unit hash -->
+<script >
+var aou_hash = {
+[% FOR org_unit IN ctx.aou_list %]
+    [% org_unit.id %] : {
+        id : "[% org_unit.id %]",
+        name : "[% org_unit.name | replace('"', '\"') %]",
+        parent_ou : "[% org_unit.parent_ou %]",
+        depth : "[% org_unit.ou_type.depth %]",
+        can_have_vols : "[% org_unit.ou_type.can_have_vols %]"
+    }[%- ',' UNLESS loop.last -%]
+[% END %]
+};
+</script>
+
+<script >if ($('client_tz_id')) { $('client_tz_id').value = OpenSRF.tz }</script>
+[%- END; # want_dojo -%]
+
+[%- IF ctx.max_cart_size; %]
+<script >var max_cart_size = [% ctx.max_cart_size %];</script>
+[%- END; %]
+
+
+<link rel="stylesheet" href="[% ctx.media_prefix %]/js/ui/default/common/build/js/glide/css/glide.core.min.css[% ctx.cache_key %]">
+<link rel="stylesheet" href="[% ctx.media_prefix %]/js/ui/default/common/build/js/glide/css/glide.theme.min.css[% ctx.cache_key %]">
index 999c69b..90164b6 100644 (file)
@@ -1,7 +1,7 @@
 
 
 <div id='login-form-box' class='container'>
-    <h2 class="h2 text-center">[% l('Log in to Your Account') %]</h1>
+    <h2 class="h2 text-center">[% l('Log in to Your Account') %]</h2>
     <form method='post'>
    <div class="row text-center">[% INCLUDE "opac/parts/login/help.tt2" %]</div>
     [% IF ctx.login_failed_event %]
@@ -40,7 +40,7 @@
         </div>
          <div class="col-12 pt-4 text-center">
             <input type="checkbox" name="persist" id="login_persist" /><label for="login_persist"> [% l('Stay logged in?') %]</label><br>
-            <input type="submit" value="[% l('Log in') %]" alt="[% l('Log in') %]" class="btn btn-confirm" />       
+            <input type="submit" value="[% l('Log in') %]" class="btn btn-confirm" />       
         </div>
         <div style="clear: both; padding-top: 15px;" class="col-12 text-center">
         [%
index e8090bb..e59ad6c 100644 (file)
                </div>
                [% END %]
 
-<div id='login-form-box' class='container text-center'>
+<div class='container text-center'>
     <div class="mx-auto row py-4">
         <div class='col-md-6'>
             <label for='username_field' class="lbl1" >[% l('Library Card Number') %]</label><br>
             <a href='[% mkurl(ctx.opac_root _ '/register', {}, 1) %]'>[% l('Request A Card') %]</a>
             <div class="input_bg mb-2">
-                <input class="form-control" type='text' id="username_field" name="username" autofocus />
+                <input class="form-control" type='text' id="username_field" name="username" tabindex="1" />
             </div>
             <div>[% l('Use the full number.') %]</div>
             <div>[% l('Example: 280800001234567') %]</div>
+            <div>[% ctx.page %]</div>
             <br>
             
         </div>
@@ -44,7 +45,7 @@
             <a href='[% mkurl(ctx.opac_root _ '/password_reset', {}, 1) %]'>[% l('Forgot Your Password?') %]</a>
             [% END %]
             <div class="input_bg mb-2">
-                <input class="form-control" id="password_field" name="password" type="password" />
+                <input class="form-control" id="password_field" name="password" type="password" tabindex="2" />
             </div>
             [% INCLUDE "opac/parts/login/password_hint.tt2" %]
             <br>
       <div class="modal-footer">
       <div class="mr-auto">
        <input type='hidden' name='redirect_to' value='[% redirect | html %]'/>
-        <input type="checkbox" name="persist" id="login_persist" class="mr-1"/><label for="login_persist"> [% l('Stay logged in?') %]</label>
+        <input type="checkbox" name="persist" id="login_persist" class="mr-1"/>
+        <label for="login_persist"> [% l('Stay logged in?') %]</label>
       </div>
        
         <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
-        <input type="submit" value="[% l('Log in') %]" alt="[% l('Log in') %]" class="btn btn-confirm" />
+        <input type="submit" value="[% l('Log in') %]" class="btn btn-confirm" />
       </div>
       </form>
     </div>
index b8b8772..2ff614e 100644 (file)
@@ -3,10 +3,6 @@ Draws the format multi-select and the language multi-select for
 limiting the set of desired records for a given metarecord.
 %]
 
-<style>
-  /* The rules has been moved to style.css  */
-</style>
-
 [% BLOCK metarecord_hold_filters_selector;
     # in edit mode, pull the target from the existing hold
     target_id = hold_data.hold.hold.target || hold_data.target.id;
index 1a9e683..4ec2f5a 100644 (file)
     END;
     IF carousels.size > 0;
 %]
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/common/build/js/glide/glide.min.js[% ctx.cache_key %]"></script>
+<script  src="[% ctx.media_prefix %]/js/ui/default/common/build/js/glide/glide.min.js[% ctx.cache_key %]"></script>
 <div class="carousels">
 [% FOREACH carousel IN carousels;
    IF carousel.bibs.size > 0;
 [% FOREACH bib IN carousel.bibs; %]
       <li class="glide__slide"><div class="carousel-entry">
         <a href="[% mkurl(ctx.opac_root  _ '/record/' _ bib.id) %]">
-          <img alt="[% l('Book cover') %]" class="carousel-entry-image" src="[% ctx.media_prefix %]/opac/extras/ac/jacket/medium/r/[% bib.id | uri %]"></img>
+          <img alt="[% l('Book cover') %]" class="carousel-entry-image" src="[% ctx.media_prefix %]/opac/extras/ac/jacket/medium/r/[% bib.id | uri %]" />
         </a><br>
         <span class="carousel-entry-title"><a href="[% mkurl(ctx.opac_root  _ '/record/' _ bib.id) %]">[% bib.title | html %]</a></span>
       </div></li>
index d457ef3..4d9627f 100644 (file)
@@ -1,62 +1,89 @@
 [%  WRAPPER "opac/parts/base.tt2" %]
 
-[% myopac_pages = [
-        {url => "main", name => l("Account Summary")},
-        {url => "messages", name => l("Messages")},
-        {url => "circs", name => l("Items Checked Out")},
-        {url => "holds", name => l("Holds")},
-        {url => "prefs", name => l("Account Preferences")},
-        {url => "lists", name => l("My Lists")}
+[%myopac_pages = [
+        {children => 0, parent => "parent",url => "main", name => l("Account Summary")},
+        {children => 0, parent => "parent", url => "messages", name => l("Messages")},
+
+        {children => 3, parent => "parent",url => "circs", name => l("<span class='counts'>[_1]</span> Items Checked Out", ctx.user_stats.checkouts.total_out)},
+        {children => 0, parent => "circs", url => "circs", name => l("Current Items Checked Out")},
+        {children => 0, parent => "circs", url => "ebook_circs", name => l("E-Items Currently Checked Out")},
+        {children => 0, parent => "circs", url => "circ_history", name => l("Check Out History")},
+
+        {children => 4, parent => "parent",url => "holds", name => l("<span class='counts'>[_1]</span> Holds", ctx.user_stats.holds.total)},
+        {children => 0, parent => "holds", url => "holds", name => l("Items on Hold")},
+        {children => 0, parent => "holds", url => "ebook_holds", name => l("E-Items on Hold")},
+        {children => 0, parent => "holds", url => "ebook_holds_ready", name => l("E-Items Ready for Checkout")},
+        {children => 0, parent => "holds", url => "hold_history", name => l("Holds History")},
+
+        {children => 4, parent => "parent", url => "prefs", name => l("Account Preferences")},
+        {children => 0, parent => "prefs", url => "prefs", name => l("Personal Information")},
+        {children => 0, parent => "prefs", url => "prefs_notify", name => l("Notifications")},
+        {children => 0, parent => "prefs", url => "prefs_settings", name => l("Search & History")},
+        {children => 0, parent => "prefs", url => "prefs_my_lists", name => l("List Prefs")},
+
+        
+        {children => 0, parent => "parent", url => "lists", name => l("My Lists")}
     ];
      IF (ctx.show_reservations_tab == 'true');
         myopac_pages.push({url => "reservations", name => l("Reservations")});
     END;
     skin_root = "../"
 %]
+<style>.my_nav .active{background-color:#afffbf;}.counts{
+    font-weight:700;
+}</style>
     <h2 class="sr-only">[% l('My Account') %]</h2>
     [% INCLUDE "opac/parts/topnav.tt2" %]
     <div class="mobile_hide">
     [% INCLUDE "opac/parts/searchbar.tt2" %]
     </div>
+<hr>
 
-
-    <div class="container my-3 min">
-        <div id="myopac_tabs">
-               <ul class="nav nav-tabs nav-justified d-none d-lg-flex">
+    <div class="mx-5">
+    <div class="row">
+    <div class="my_nav col-xl-3 col-12 text-center">
+        <div class="btn-group-vertical">
                 [%- FOREACH page IN myopac_pages;
                     IF page.url == myopac_page;
-                        cls_which = "active";
+                        active = "active";
                         ctx.page_title = l("My Account - [_1]", page.name);
                     ELSE;
-                        cls_which = "";
-                    END -%]<li class="nav-item">
-                <a href="[% mkurl(ctx.opac_root _ '/myopac/' _ page.url, {}, ['bbid', 'offset', 'limit','sort','sort_type', 'hid']) %]"
-                    class="[% cls_which %] nav-link">[% page.name; %]</a></li>
+                        active = "";
+                    END -%]
+                    [% IF page.parent == "parent" && page.children > 0; %]
+                    <div class="dropdown w-100">
+                        <a class="btn btn-action dropdown-toggle [% active %]" href="[% mkurl(ctx.opac_root _ '/myopac/' _ page.url, {}, ['bbid', 'offset', 'limit','sort','sort_type', 'hid']) %]" role="button" id="dropdownMenuLink-[% page.url %]" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                            [% page.name; %]
+                        </a>
+  
+                    <div class="dropdown-menu" aria-labelledby="dropdownMenuLink-[% page.url %]">
+                        [%- FOREACH child IN myopac_pages; -%]
+                            [% IF child.parent == page.url;
+                            IF child.url == myopac_page;
+                                cactive = "active";
+                                ctx.page_title = l("My Account - [_1]", child.name);
+                            ELSE;
+                                cactive = "";
+                            END
+                        %]
+                        <a role="button" href="[% mkurl(ctx.opac_root _ '/myopac/' _ child.url, {}, ['bbid', 'offset', 'limit','sort','sort_type', 'hid']) %]"
+                    class="dropdown-item btn btn-action">[% child.name; %]</a>
+                            [% END %]
+                        [% END %]
+</div></div>
+                    [% ELSIF page.parent == "parent"; %]
+                    <a role="button" class="btn btn-action [% active %]" href="[% mkurl(ctx.opac_root _ '/myopac/' _ page.url, {}, ['bbid', 'offset', 'limit','sort','sort_type', 'hid']) %]">
+    [% page.name; %]
+  </a>
+                    [% END %]
                 [% END %]
-                       
-                       </ul>
-            <!-- Select box navigation for media view -->
-            <div class="mx-auto py-3 d-block d-lg-none">
-               <form name="acct_nav">
-                 <select name="acct_url" class="form-control"
-                    title="[% l('Select an account page') %]" 
-                    onchange="window.location.href=document.acct_nav.acct_url.options[document.acct_nav.acct_url.selectedIndex].value">
-                    <option value="" selected="selected">[% l('Go to...') %]</option>
-                    [% FOREACH page IN myopac_pages;
-                      IF page.url != myopac_page; %]
-                        <option value="[% mkurl(ctx.opac_root _ '/myopac/' _ page.url, {}, ['bbid', 'offset', 'limit', 'hid']) %]">[% page.name; %]</option>
-                    [% ELSE; %]
-                        <option value="" disabled>[% page.name; %]</option>
-                    [% END;
-                   END; %] 
-                 </select>
-                   </form>
-            </div>
+           </div>
            </div><!-- myopac_tabs -->
-        <div id="main-content" class="p-3">
+        <div class="col-xl-9 col-12">
             [% content %]
             <div class="common-full-pad"></div>
         </div>
+        </div></div>
     </div> <!-- content-wrapper -->
     
     <!--Table functions ~ Controlling TH checkbox dynamically and allowing for row clicks to select items -->
index 97eb895..59ef609 100644 (file)
@@ -17,7 +17,7 @@
             </div>
             <table class="acct_sum_table mx-auto" title="[% l('Account Summary') %]">
                 <tr>
-                    <td colspan="3" class="text-center">[% l("Account Expiration Date - ") %]
+                    <td colspan="2" class="text-center">[% l("Account Expiration Date - ") %]
                         <span [% IF ctx.expired_card %]style="color:red;"[% END %]>
                             [% date.format(ctx.parse_datetime(ctx.user.expire_date), DATE_FORMAT) %]
                         </span>
@@ -31,7 +31,7 @@
                     </td>
                 </tr>
                 <tr>
-                    <td colspan="2" class="text-center"> <a href="[% mkurl(ctx.opac_root _ '/myopac/circs') %]"
+                    <td class="text-center"> <a href="[% mkurl(ctx.opac_root _ '/myopac/circs') %]"
                             title="[% l('View My Checked Out Items') %]">
                             [% l("Items Currently Checked out ([_1])", ctx.user_stats.checkouts.total_out) %]
                         </a>
@@ -44,7 +44,7 @@
                     </td>
                 </tr>
                 <tr>
-                    <td colspan="2" class="text-center"><a href="[% mkurl(ctx.opac_root _ '/myopac/holds') %]"
+                    <td class="text-center"><a href="[% mkurl(ctx.opac_root _ '/myopac/holds') %]"
                             title="[% l('View My Holds') %]">
                             [% l('Items Currently on Hold ([_1])', ctx.user_stats.holds.total) %]
                         </a></td>
@@ -56,7 +56,7 @@
                     </td>
                 </tr>
                 <tr>
-                    <td colspan="2" class="text-center"> <a href="[% mkurl(ctx.opac_root _ '/myopac/holds', {available => 1}) %]"
+                    <td  class="text-center"> <a href="[% mkurl(ctx.opac_root _ '/myopac/holds', {available => 1}) %]"
                             title="[% l('View My Holds Ready for Pickup') %]">
                             [% l('Items ready for pickup ([_1])', ctx.user_stats.holds.ready) %]
                         </a></td>
index 0ca9b64..20f326e 100644 (file)
@@ -1,28 +1,9 @@
 [%  PROCESS "opac/parts/header.tt2";
     WRAPPER "opac/parts/myopac/base.tt2"; %]
 
-        [% acct_prefs_pages = [
-           {url => "prefs", name => l("Personal Information")},
-           {url => "prefs_notify", name => l("Notification Preferences")},
-           {url => "prefs_settings", name => l("Search and History Preferences")},
-           {url => "prefs_my_lists", name => l("My Lists Preferences")}
-           ];
-           skin_root = "../"
-%]
 
 <div id='myopac_prefs_div'>
-    <div>
-        <ul class="nav nav-pills nav-justified">
-            [%- FOREACH page IN acct_prefs_pages;-%]
-            <li class="nav-item">
-                 <a class="m-2 nav-link [%-  IF page.url == prefs_page; -%]active [% ELSE %] not_active_pill [%- END -%]" href="[% mkurl(ctx.opac_root _ '/myopac/' _ page.url, {}, ['bbid', 'offset', 'limit']) %]">[% page.name; %]</a>
-            </li>
-            [% END %]
-         </ul>
-    </div>
-
-    <div class="clear-both"></div> <br/>
-
+    
     <div class="header_middle">
         <span id="acct_prefs_header">[% l('Account Information and Preferences') %]</span>
         <span class="float-right"> 
@@ -48,7 +29,6 @@
         </form>
     </div>
 
-    <div class="clear-both normal-height"></div>
 
 [% content; %]
 
index 5db220e..2408427 100644 (file)
@@ -132,7 +132,7 @@ function maybeToggleNumCopies(obj) {
         [% END %]
         [% END %]
 
-        <table id='hold-items-list'>
+        <table>
             <tr>
                 <td>
                     [% IF !this_hold_disallowed %]
@@ -197,9 +197,9 @@ function maybeToggleNumCopies(obj) {
             [%  IF !loop.last AND ctx.hold_data.size > 1 %]
             <tr class="holds_item_row_separator"><td> </td></tr>
             [% END %]
-
+</table>
         [% END %]
-        </table>
+        
 
         [% IF some_holds_allowed %]
 
@@ -211,7 +211,7 @@ function maybeToggleNumCopies(obj) {
                     value=ctx.default_pickup_lib id=org_select_id 
                     can_have_vols_only=1 hold_pickup_lib=1 %]
         </p>
-        <p>
+  
             [% l('Notify when hold is ready for pickup?') %]
             <blockquote>
                 <input class="hold-alert-method" type="checkbox" id="email_notify" name="email_notify" value="t"
@@ -219,7 +219,7 @@ function maybeToggleNumCopies(obj) {
                     <label for="email_notify">[% l('Yes, by Email') %]</label><br/>
                 <blockquote>
                     [% IF !ctx.user.email and !ctx.is_staff; l('No configured Email address. See "My Account" for setting your Email address.');
-                     ELSE; l('Email Address:') %] <span name="email_address">[% ctx.user.email %]</span>[% END %]
+                     ELSE; l('Email Address:') %] <span id="email_address">[% ctx.user.email %]</span>[% END %]
                 </blockquote>
                 [%- IF allow_phone_notifications == 'true' %]
                 <input class="hold-alert-method" type="checkbox" id="phone_notify_checkbox" name="phone_notify_checkbox"
@@ -261,9 +261,9 @@ function maybeToggleNumCopies(obj) {
                 <input class="form-control" type="text" id="thaw_date" name="thaw_date" />
                 <em>[% l('Enter date in MM/DD/YYYY format') %]</em></label>
             </blockquote>
-        </p>
+        
          [% IF CGI.param('from_basket') %]
-          <blockquote><input type="checkbox" name="clear_cart">[% l('Clear basket after holds are requested?') %]</input></blockquote>
+          <blockquote><input type="checkbox" name="clear_cart"/>[% l('Clear basket after holds are requested?') %]</blockquote>
         [% END %]
                         [% IF NOT metarecords.disabled AND ctx.hold_data.size == 1 %]
                         [% IF CGI.param('hold_type') == 'T' AND hdata.record.metarecord AND !hdata.part_required %]
@@ -286,8 +286,7 @@ function maybeToggleNumCopies(obj) {
                     END %]
         <div class="py-3">
         <input id="place_hold_submit" type="submit" name="submit" 
-            value="[% l('Submit') %]" title="[% l('Submit') %]"
-            alt="[% l('Submit') %]" class="btn btn-confirm" />
+            value="[% l('Submit') %]" title="[% l('Submit') %]" class="btn btn-confirm" />
         [% END # some_holds_allowed %]
         <input type="reset" name="cancel" onclick="window.location='[% redirect | html %]'" value="[% l('Cancel') %]" id="holds_cancel" class="btn btn-deny" />
         </div>
index 2423aaf..e589634 100644 (file)
@@ -3,19 +3,19 @@
     cnoffset = cnoffset.match('^-?\d+$') ? cnoffset : 0; # verify cnoffset is a sane value
 %]
 
-<div id='cnbrowse' class='cn_browser'>
+<div class='cn_browser'>
     <div id='cn_browse_div'> 
         <p class='color_4 h5'>
             [% l("You are now browsing [_1]", ctx.browsing_ou.name) | html %]
         </p>
         <br>
-        <table class='data_grid bookshelf' width='100%'>
+        <table class='data_grid bookshelf'>
                 <tr>
                     <td>
                         <a class='np_nav_link classic_link btn btn-outline-primary' 
                             href="[% mkurl('', {cnoffset => cnoffset - 1}) %]#cnbrowse">[% l("&lt;&lt; Previous Page") %]</a>
                     </td>
-                    <td colspan='1' align='center' class="h3">[% l("Shelf Browser") %]</td>
+                    <td colspan='1' class="h3">[% l("Shelf Browser") %]</td>
                     <td>
                         <a class='np_nav_link classic_link btn btn-outline-primary' 
                             href="[% mkurl('', {cnoffset => cnoffset + 1}) %]#cnbrowse">[% l("Next Page &gt;&gt;") %]</a>
                   IF loop.index % 3 == 0; tr_open = 1 %]
                 <tr class='cn_browse_row'>
                 [% END -%]
-                    <td class='cn_browse_item' width='25%' valign='top'>
+                    <td class='cn_browse_item'>
                        <div class="card">
                         [%  rec_attrs = {marc_xml => cn.record.marc};
                             PROCESS get_marc_attrs args=rec_attrs; %]
                         <a href="[% mkurl(ctx.opac_root _ '/record/' _ cn.record.id, {$loc_name => loc_value}, 1) %]"><img height='60' width='50' 
-                            class='cn_browse_info' name='cn_browse_pic' border='0' 
+                            class='cn_browse_info' 
                             [% img_alt(l('Go to record [_1]', rec_attrs.title)) %]
                             src="[% ctx.media_prefix %]/opac/extras/ac/jacket/small/r/[% cn.record.id | uri %]" /></a>
-                        <div class='cn_browse_info bold' name='cn_browse_cn'>[% cn.label | html %]</div>
+                        <div class='cn_browse_info bold'>[% cn.label | html %]</div>
                         <div class='cn_browse_info'>
-                            <a name='cn_browse_title' class='classic_link record_title'
+                            <a class='classic_link record_title'
                                 href="[% mkurl(ctx.opac_root _ '/record/' _ cn.record.id, {$loc_name => loc_value}, 1) %]">[% rec_attrs.title | html %]</a>
                         </div>
                         [% IF rec_attrs.author %]<div class='cn_browse_info'>
-                            <a name='cn_browse_author' class='classic_link record_author'
+                            <a class='classic_link record_author'
                                 href="[%-
                                     authorquery = rec_attrs.author | replace('[,\.:;]', '');
                                     mkurl(ctx.opac_root _ '/results', {qtype => 'author', query => authorquery, $loc_name => loc_value}, 1)
                                     -%]">[% rec_attrs.author | html %]</a>
                         </div>[% END %]
-                        <div class='cn_browse_info' name='cn_browse_lib'>[% cn.owning_lib.name | html %]</div>
+                        <div class='cn_browse_info'>[% cn.owning_lib.name | html %]</div>
                         </div>
                     </td>
                 [% IF loop.index % 3 == 2; tr_open = 0 %]
index 32360a7..15b8a70 100644 (file)
@@ -1,5 +1,6 @@
-<span id="rdetail_copy_counts">
+<div id="rdetail_copy_counts">
     <h2>[% l('Available copies') %]</h2>
+
     <ul>
     [%- depths = ctx.copy_summary.size;
         depth = 0;
@@ -49,4 +50,4 @@
     [%- END %]
     [%- END %]
     </ul>
-</span>
+</div>
index 0dd3734..38f1295 100644 (file)
@@ -30,7 +30,7 @@ IF has_copies or ctx.foreign_copies;
   depth = CGI.param('copy_depth').defined ? CGI.param('copy_depth') : CGI.param('depth').defined ? CGI.param('depth') : ctx.copy_summary.last.depth;
   total_copies = ctx.copy_summary.$depth.count;
 %]
-<table class="container-fluid table table-hover mt-4 miniTable copyTable" width="100%" >
+<table class="container-fluid table table-hover mt-4 miniTable copyTable w-100" >
     <thead>
         <tr>
             [% IF serial_holdings -%]
index a56864d..bebc865 100644 (file)
@@ -81,7 +81,7 @@
                         arrow = arrow_right;
                     END;
                 %]
-            <a name='[% name %]' href='[% href %]' class="text-white" rel="nofollow" vocab="" style="text-decoration:none;">
+            <a id='[% name %]' href='[% href %]' class="text-white" rel="nofollow" vocab="" style="text-decoration:none;">
            <div class="card-header bg-success">
                
                 <span>[% arrow %] [% extra.label | html %]</span>
index 44ec36a..45a43dc 100644 (file)
@@ -348,18 +348,18 @@ ctx.metalinks.push('
                 && (ctx.holds_block.enabled != 'true' || !attrs.org_copy_counts.$search_ou.available)
                 )
                 %]
-                <button class="btn btn-action">
+                <div class="btn btn-action">
                     <a href="[% mkurl(ctx.opac_root _ '/place_hold', 
                     {hold_target => ctx.bre_id, hold_type => 'T', hold_source_page => mkurl()}, stop_parms) %]"
-                        class="no-dec" rel="nofollow" vocab=""><img
+                        class="no-dec"><img
                             src="[% ctx.media_prefix %]/images/green_check.png[% ctx.cache_key %]" [% img_alt(l('Place
                             Hold on [_1]', attrs.title)) %] />
                         <span class="place_hold">[% l('Place Hold') %]</span></a>
-                </button>
+                </div>
                 [%- END -%]
 
                 [%- IF ebook_api.enabled == 'true' && args.ebook %]
-                <button class="btn btn-action">
+                <div class="btn btn-action">
                     <div id="[%- ctx.bre_id -%]_ebook_checkout" class="rdetail_aux_utils ebook_action hidden">
                         <a href="[% mkurl(ctx.opac_root _ '/myopac/ebook_checkout',
                     {title => args.ebook.ebook_id, vendor => args.ebook.vendor, action => 'checkout'}, stop_parms) %]"
@@ -368,8 +368,8 @@ ctx.metalinks.push('
                                 img_alt(l('Check Out [_1]', attrs.title)) %] />
                             <span class="place_hold">[% l('Check Out E-Item') %]</span></a>
                     </div>
-                </button>
-                <button class="btn btn-action">
+                </div>
+                <div class="btn btn-action">
                     <div id="[%- ctx.bre_id -%]_ebook_place_hold" class="rdetail_aux_utils ebook_action hidden">
                         <a href="[% mkurl(ctx.opac_root _ '/myopac/ebook_place_hold',
                     {title => args.ebook.ebook_id, vendor => args.ebook.vendor, action => 'place_hold'}, stop_parms) %]"
@@ -378,7 +378,7 @@ ctx.metalinks.push('
                                 img_alt(l('Place Hold on [_1]', attrs.title)) %] />
                             <span class="place_hold">[% l('Place Hold on E-Item') %]</span></a>
                     </div>
-                </button>
+                </div>
                 [%- END -%]
 
 
@@ -388,14 +388,14 @@ ctx.metalinks.push('
                     delhref = mkurl(ctx.opac_root _ '/mylist/delete', {record => ctx.bre_id}, stop_parms);
                     label = (operation == "add") ? l("Add to Basket") : l("Remove from Basket");
                     %]
-                    <a href="[% addhref %]" id="mylist_add_[% ctx.bre_id %]" rel="nofollow" vocab=""
+                    <a href="[% addhref %]" id="mylist_add_[% ctx.bre_id %]" 
                         data-recid="[% ctx.bre_id %]" data-action="add"
                         class="no-dec mylist_action [% IF ctx.mylist.grep('^' _ ctx.bre_id _ '$').size %]hidden[% END %]"
                         title="[% l(" Add [_1] to basket", attrs.title) %]" rel="nofollow" vocab="">
                         <img src="[% ctx.media_prefix %]/images/add-to-cart.png[% ctx.cache_key %]" alt="" />
                         [% l("Add to basket") %]
                     </a>
-                    <a href="[% delhref %]" id="mylist_delete_[% ctx.bre_id %]" rel="nofollow" vocab=""
+                    <a href="[% delhref %]" id="mylist_delete_[% ctx.bre_id %]" 
                         data-recid="[% ctx.bre_id %]" data-action="delete"
                         class="mylist_action [% IF !ctx.mylist.grep('^' _ ctx.bre_id _ '$').size %]hidden[% END %]"
                         title="[% l(" Remove [_1] from basket", attrs.title) %]" rel="nofollow" vocab="">
@@ -404,7 +404,7 @@ ctx.metalinks.push('
                     </a>
                 </div>
                 [% IF ctx.mylist.size %]
-                <button class="btn btn-action">
+                <div class="btn btn-action">
                     [%- IF ctx.user; %]
                     <a href="[% mkurl(ctx.opac_root _ '/myopac/lists') %]" class="no-dec" rel="nofollow" vocab=""><img
                             src="[% ctx.media_prefix %]/images/clipboard.png[% ctx.cache_key %]"
@@ -414,16 +414,15 @@ ctx.metalinks.push('
                             src="[% ctx.media_prefix %]/images/add-to-cart.png[% ctx.cache_key %]"
                             alt="[% l('View My Basket') %]" />[% l(' View My Basket') %]</a>
                     [%- END %]
-                </button>
-                [% END %]
-                <div class="btn btn-action">
-                    [% IF !ctx.is_staff %]
-                    [% IF ctx.user;
-                    INCLUDE "opac/parts/bookbag_actions.tt2";
-                    END;
-                    %]
-                    [% END %]
                 </div>
+                [% END %]
+                
+                [% IF !ctx.is_staff %]
+                    [% IF ctx.user; %]
+                    [% INCLUDE "opac/parts/bookbag_actions.tt2"; %]
+                    [% END; %]
+                [% END %]
+                
                 <div class="btn btn-action">
                     <img src="[% ctx.media_prefix %]/images/clipboard.png[% ctx.cache_key %]"
                         alt="[% l('Print / Email Actions Image') %]" />
@@ -436,17 +435,17 @@ ctx.metalinks.push('
                 [%- INCLUDE 'opac/parts/record/refworks.tt2' %]
                 [%- END %]
                 [% IF !ctx.is_staff %]
-                <button class="btn btn-action">
+                <div class="btn btn-action">
                     <a href="[% mkurl('', {locg =>CGI.param('locg'), copy_depth =>CGI.param('copy_depth')}, 1) %]"
                         class="no-dec">
                         <img src="[% ctx.media_prefix %]/images/link.png[% ctx.cache_key %]"
                             alt="[% l('Permalink') %]" />
                         [% l('Permalink') %]
                     </a>
-                </button>
+                </div>
                 [% END %]
                 [% IF !search.no_highlight %]
-                <button class="btn btn-action">
+                <div class="btn btn-action">
                     [% IF CGI.param('no_highlight') %]
                     <a href="[% mkurl('', {}, ['no_highlight']) %]" class="no-dec">
                         [% ELSE %]
@@ -456,15 +455,15 @@ ctx.metalinks.push('
                                 alt="[% l('Toggle highlighting') %]" />
                             [% CGI.param('no_highlight') ? l('Enable Highlighting') : l('Disable Highlighting') %]
                         </a>
-                </button>
+                </div>
                 [% END %]
                 [%- IF ctx.is_staff %]
-                <button class="btn btn-action">
+                <div class="btn btn-action">
                     <a href="[% ctx.media_prefix %]/opac/extras/ac/clearcache/all/r/[% ctx.bre_id | uri %]"
                         class="no-dec" target="_blank">
                         [% l('Clear AddedContent Cache') %]
                     </a>
-                </button>
+                </div>
                 [%- END %]
                 
             </div>
@@ -477,7 +476,7 @@ ctx.metalinks.push('
 <div class="col-12">
         
 <div class="float-right">
-                        <span>
+                      
                             <h2 class="text-right">[% l('Holds') %]</h2>
                             <p class="text-right">
                                 [%
@@ -495,7 +494,7 @@ ctx.metalinks.push('
                                 ctx.record_hold_count, ctx.copy_summary.$count_entry.count)
                                 %]
                             </p>
-                        </span>
+                        
                     </div>
 
         [%-
@@ -577,5 +576,4 @@ ctx.metalinks.push('
 <hr>
 <div class="col-12">
     [%- INCLUDE "opac/parts/record/extras.tt2" %]
-</div>
 </div>
\ No newline at end of file
index d57426a..5e39a1e 100644 (file)
@@ -54,7 +54,7 @@ FOR facet IN sorted_facets;
     fid = facet.cmf.id;
     long_key = fclass _ fname %]
 
-    <div id="facets" class="w-100">
+    <div class="w-100">
     <div class="card">
         <div class="card-header">
                <span class="title text-center">[% facet.cmf.label %]</span>
index 2f33490..fd8d7b1 100644 (file)
@@ -24,7 +24,7 @@
     <div id="result_block" class="result_block_visible">
         [% IF !ctx.is_meta %]
         <div id="record_selector_block" class="mx-2 hidden">
-            <input type="checkbox" id="select_all_records"></input>
+            <input type="checkbox" id="select_all_records" />
             <label for="select_all_records">[% l('Select [_1] - [_2]', ctx.result_start, ctx.result_stop) %]</label>
             <span id="selected_records_summary">
             <a href="[% mkurl(ctx.opac_root _ '/mylist') %]" class="no-dec" rel="nofollow" vocab="">
@@ -32,7 +32,7 @@
                    
                 </span>
                         [% l('selected') %]
-            </a>
+            </a></span>
             <span id="hit_selected_record_limit" class="hidden">Reached limit!</span>
             <a id="clear_basket" href="#">[% l('Clear basket') %]</a>
         </div>
                         END; -%]
                         
                 <tr class="result_table_row">
-                    <td>
+                    <td colspan="3">
                         <!--Count&Checkboxes-->
                         <div class="row">
                             <div class="col-lg-1">
-                                <div class="results_row_count" name="results_row_count"> [% IF !ctx.is_meta; %]
-                                    <label for="selected_record">[% result_count; result_count = result_count + 1 %]</label>
-                                    <input type="checkbox" id="select-[% rec.bre_id %]" name="selected_record"
+                                <div class="results_row_count"> [% IF !ctx.is_meta; %]
+                                    <label for="select-[% rec.bre_id %]">[% result_count; result_count = result_count + 1 %]</label>
+                                    <input type="checkbox" id="select-[% rec.bre_id %]"
                                         [% IF is_selected %] checked="checked" [% END %]
                                         title="[% l('Add to Basket') %]"
                                         aria-label="[% l('Add to Basket') %]"
-                                        class="result_record_selector" value="[% rec.bre_id %]">
-                                    </input>
+                                        class="result_record_selector" value="[% rec.bre_id %]" />
                                     [% END %]
                                     
                                 </div>
                             <!--Cover Image-->
                             <div class='my-auto col-lg-2 text-center' id="result[% rec.bre_id %]">
                                 <a href="[% record_url %]"><img alt="[% l('Book cover') %]"
-                                        name='item_jacket' class='my-2' 
+                                        id='item_jacket[% rec.bre_id %]' class='my-2' 
                                         src='[% ctx.media_prefix %]/opac/extras/ac/jacket/large/r/[% rec.bre_id | uri %]' style="max-height:150px;" /></a><br />
                             </div>       
                             <!--Info-->
-                            <div class='result_table_title_cell col-lg-9' name='result_table_title_cell'>
+                            <div class='result_table_title_cell col-lg-9'>
                                 <div class="row">
-                                    <div class="result_metadata col-md-9 col-12">
+                                    <div class="result_metadata col-md-8 col-12">
                                         [% IF rec.mmr_id %]
                                         <abbr class="unapi-id" title='tag:[% ctx.hostname %],[% date.format(date.now, '%Y') %]:metabib-metarecord/[% rec.mmr_id %]'></abbr>
                                         [% ELSE %]
                                         <abbr class="unapi-id" title='tag:[% ctx.hostname %],[% date.format(date.now, '%Y') %]:biblio-record_entry/[% rec.bre_id %]'></abbr>
                                         [% END %]
-                                        <a class='record_title search_link' name='record_[% rec.id %]'
+                                        <a class='record_title search_link' id='record_[% rec.id %]'
                                             href="[% mkurl(record_url_path, add_parms, del_parms); %]"
                                             [% html_text_attr('title', l('Display record details for "[_1]"', attrs.title)) %]>
                                             [% IF attrs.hl.title; attrs.hl.title; ELSE; attrs.title | html; END %]
                                         </a>
-                                        
+                                         <span class="mx-2">
+                                            [%- IF attrs.format_label; %]
+                                                [% FOR format IN attrs.all_formats %]
+                                                    <img title="[% format.label | html %]" 
+                                                        alt="[% format.label | html %]" 
+                                                        src="[% format.icon %]" /> 
+                                                    [% format.label | html %]
+                                                [% END %]
+                                            [%- END %]
+                                          
+                                       
                                        
                                         [%- UNLESS show_detail_view;
                                             IF attrs.pubdate;
                                                 l(" ([_1])", copyright_clean);                                                                
                                             END;
                                         END -%]
-                                        
+                                        </span>
                                         [% IF rec.mr_constituent_count.defined && rec.mr_constituent_count > 1 %]
                                         <span title="[% l('This group contains [_1] records', rec.mr_constituent_count) %]">([% rec.mr_constituent_count %])</span>
                                         [% END %]
                                             [% alt.value | html %]
                                         </div>
                                         [%- END; END; -%]
+  
                                         <div>
                                             <a  title="[% l("Perform an Author Search") %]"
                                                 class="record_author"
                                             [%- END; END; -%]
                                         </div>
                                                     
-                                        <div class='result_table_title_cell'>
-                                            [%- IF attrs.format_label; %]
-                                                [% FOR format IN attrs.all_formats %]
-                                                    <img title="[% format.label | html %]" 
-                                                        alt="[% format.label | html %]" 
-                                                        src="[% format.icon %]" /> 
-                                                    [% format.label | html %]
-                                                [% END %]
-                                            [%- END %]
-                                          
-                                        </div>
+                                      
                                                     
                                         [% IF rec.popularity > 0.0 AND ctx.hide_badge_scores != 'true' %]
                                             <div><span><strong>[% l('Popularity:') %]</strong> [% rec.popularity %] / 5.0</span></div>
 
                                             [%- IF show_detail_view -%]
                                             [% IF args.holdings.size > 0 %]
-                                            <tr name='bib_cn_list' class='result_table_title_cell'>
+                                            <tr class='result_table_title_cell'>
                                                 <td valign='top'><strong>[% l('Call number:') %]</strong></td> 
                                                 <td>[% args.holdings.0.label | html %]</td>
                                             </tr>
                                             [% UNLESS rec.mmr_id %]
                                             <!-- Do not show publication-specific information on a metarecord search results page -->
                                             [% IF attrs.publisher %]
-                                            <tr name="results_pub_tr">
+                                            <tr>
                                                 <td valign="top"><strong>[% l('Publisher:') %]</strong></td>
                                                 <td>[% attrs.pubplace | html; %] [% attrs.publisher | html; %] [% attrs.pubdate | html; %]
                                                 [%- FOR entry IN attrs.graphic_pubinfos;
                                                 </td>
                                             </tr>
                                             [% ELSIF attrs.producer %]
-                                            <tr name="results_pub_tr">
+                                            <tr>
                                                 <td valign="top"><strong>[% l('Producer:') %]</strong></td>
                                                 <td>[% attrs.prodplace | html; %] [% attrs.producer | html; %] [% attrs.proddate | html; %]</td>
                                             </tr>
                                             [% ELSIF attrs.distributor %]
-                                            <tr name="results_pub_tr">
+                                            <tr>
                                                 <td valign="top"><strong>[% l('Distributor:') %]</strong></td>
                                                 <td>[% attrs.distplace | html; %] [% attrs.distributor | html; %] [% attrs.distdate | html; %]</td>
                                             </tr>
                                             [% ELSIF attrs.manufacturer %]
-                                            <tr name="results_pub_tr">
+                                            <tr>
                                                 <td valign="top"><strong>[% l('Manufacturer:') %]</strong></td>
                                                 <td>[% attrs.manplace | html; %] [% attrs.manufacturer | html; %] [% attrs.mandate | html; %]</td>
                                             </tr>
                                             [% END %]
                                             [% IF attrs.isbns.size > 0 %]
-                                            <tr name="results_isbn_tr">
+                                            <tr>
                                                 <td valign="top"><strong>[% l('ISBN:') %]</strong></td>
                                                 <td>[% attrs.isbns.0 | html %]</td>
                                             </tr>
                                             [% END %]
                                             [%- IF attrs.issns.size > 0 %]
-                                            <tr name="results_issn_tr">
+                                            <tr>
                                                 <td valign="top">
                                                     <strong>[% l('ISSN:') %]</strong>
                                                 </td>
                                                     NEXT IF issn == '';
                                                     res_urls = ResolverResolver.resolve_issn(issn, openurl.baseurl);
                                                     FOREACH res IN res_urls; %]
-                                            <tr name="results_issn_tr">
+                                            <tr>
                                                 <td valign="top"><strong><a href="[% res.target_url %]">[% res.public_name | html %]</a></strong>
                                                 </td>
                                                     <td>[% res.target_coverage | html %]
                                             [% END %]
 
                                             [% IF attrs.edition %]
-                                            <tr name="results_edition_tr">
+                                            <tr>
                                                 <td valign="top"><strong>[% l('Edition:') %]</strong></td>
                                                 <td>[% attrs.edition | html %]
                                                     [%- FOR entry IN attrs.graphic_editions;
                                             </tr>
                                             [% END %]
                                             [% IF attrs.phys_desc %]
-                                                <tr name="results_phys_desc_tr">
+                                                <tr >
                                                     <td nowrap="nowrap" valign="top"><strong>[% l('Phys. Desc.:') %]</strong></td>
                                                     <td>[% args.phys_desc | html %]</td>
                                                 </tr>
                                             [% END %]
                                             [% FOR uri IN args.uris %]
-                                                <tr name='bib_uri_list' class='result_table_title_cell row'>
+                                                <tr class='result_table_title_cell row'>
                                                     <td valign='top'><strong>[% l('Electronic resource') %]</strong></td>
                                                     <td><a href="[% uri.href %]" class="uri_link" target="_blank">[% uri.link | html %]</a>[% ' - ' _ uri.note | html IF uri.note %]</td>
                                                 </tr>
                                                     END;
                                                 END;
                                             %]
-                                            <tr name='bib_cn_list' class='result_table_title_cell container-fluid'>
-                                                <td colspan='2'>
+                                            <tr  class='result_table_title_cell container-fluid'>
+                                                <td>
                                                     <table role="presentation" title="[% l('Record Holdings Details') %]" class='container-fluid table table-hover mt-4 miniTable holdingsTable'>
                                                         <thead>
                                                             <tr>
 
 
 
-                                <div class="result_table_utils_cont col-md-3 d-flex">
+                                <div class="result_table_utils_cont col-md-4 d-flex">
                                     <div class="result_table_utils row mx-auto d-inline-block d-md-inline-flex">
                                         <div class="btn-group-vertical">
                                         [%- search_ou = ctx.search_ou;
 
 
                                         <!--Place Hold Button -->
-                                        <button type="button" class="btn btn-light">
+                                        <div class="btn btn-action">
                                                 <a href="[% mkurl(ctx.opac_root _ '/place_hold', add_parms, del_parms) %]" 
                                                     [% html_text_attr('title', l('Place Hold on [_1]', attrs.title)) %]
                                                     class="no-dec" rel="nofollow" vocab="">
                                                     <img src="[% ctx.media_prefix %]/images/green_check.png[% ctx.cache_key %]" alt=""/>
                                                     <span class="result_place_hold">[% l('Place Hold') %]</span>
                                                 </a>
-                                        </button>
+                                        </div>
                                         [%- END -%]
 
                                         <!-- eBook Buttons -->
                                         [%- IF ebook_api.enabled == 'true' && args.ebook %]
-                                        <button type="button" class="btn btn-light">
+                                        <div class="btn btn-action">
                                             <a href="[% mkurl(ctx.opac_root _ '/myopac/ebook_checkout',
                                                 {title => args.ebook.ebook_id, vendor => args.ebook.vendor, action => 'checkout'},
                                                 ['query','tag','subfield','term','_special','sort','page']) %]"
                                                     class="no-dec" rel="nofollow" vocab=""><img
                                                 src="[% ctx.media_prefix %]/images/green_check.png[% ctx.cache_key %]"
                                                 alt=""/><span class="result_place_hold">[% l('Check Out E-Item') %]</span></a>
-                                        </button>
-                                        <button type="button" class="btn btn-light">
+                                        </div>
+                                        <div class="btn btn-action">
                                             <a href="[% mkurl(ctx.opac_root _ '/myopac/ebook_place_hold',
                                                 {title => args.ebook.ebook_id, vendor => args.ebook.vendor, action => 'place_hold'},
                                                 ['query','tag','subfield','term','_special','sort','page']) %]"
                                                     class="no-dec btn btn-primary btn-sm" rel="nofollow" vocab=""><img
                                                 src="[% ctx.media_prefix %]/images/green_check.png[% ctx.cache_key %]"
                                                 alt=""/><span class="result_place_hold">[% l('Place Hold on E-Item') %]</span></a>
-                                        </button>
+                                        </div>
                                         [%- END -%]
 
                                         <!--Basket and My Lists Buttons -->
                                                     delhref = mkurl(ctx.opac_root _ '/mylist/delete',
                                                             {record => rec.id, anchor => 'record_' _ rec.id}, 1);
                                                 %]
-                                                <button type="button" class="btn btn-light">
+                                                <div class="btn btn-action">
                                                 <a href="[% addhref %]" id="mylist_add_[% rec.id %]"
                                                     data-recid="[% rec.id %]" data-action="add"
                                                     class="mylist_action [% IF ctx.mylist.grep('^' _ rec.id _ '$').size %]hidden[% END %]"
                                                     <img src="[% ctx.media_prefix %]/images/add-to-cart.png[% ctx.cache_key %]" alt="" />
                                                     [% l("Remove from basket") %]
                                                 </a>
-                                                </button>
+                                                </div>
                                                 [%  IF ctx.user;
                                                     INCLUDE "opac/parts/bookbag_actions.tt2";
                                                     END;
                                         <!--Added Content - Content Cafe -->
                                         [% IF ENV.OILS_CONTENT_CAFE_USER %]
                                         [% ident = attrs.isbn_clean || attrs.upc %]
-                                            <button type="button" class="btn btn-light">
+                                            <div type="button" class="btn btn-action">
                                                 <a target='_blank' 
                                                     [% html_text_attr('title', l('Reviews and More for [_1]', attrs.title)) %]
                                                     href="[% ctx.ext_proto %]://contentcafe2.btol.com/ContentCafeClient/ContentCafe.aspx?UserID=[%- 
                                                     <img src='[% ctx.media_prefix %]/images/starz.png[% ctx.cache_key %]' alt="[% l('Ratings Icon') %]"/>
                                                     <span class="results_reviews">[% l('Reviews &amp; More') %]</span>
                                                 </a>
-                                            </button>
+                                            </div>
                                         [% END %]
                                         </div>
                                         </div>
                                     </div>
                                 </div>
                             </div>
+                            </div>
                         </td>
                     </tr>
-                </div>
                 [%- IF ENV.OILS_CHILIFRESH_ACCOUNT %]
                 <tr>
                     <td/>
                 </tr>
                 <tr>
                     <td/>
-                    <td colspan='5'> <!-- Chilifresh reviews panel -->
+                    <td> <!-- Chilifresh reviews panel -->
                         <div id="chili_review_[% attrs.isbn_clean | html %]" style="display: none;" align="center"></div>
                     </td>
                 </tr>
index 081e2a1..5c108e8 100644 (file)
@@ -57,7 +57,7 @@ END;
                 store_args='{"org_unit_getter": function() { return [% ctx.search_ou %]; }}'
                 [%-     END # opac_visible -%]
                 [%- ELSE -%]
-                    [% IF basic_search != "f" AND is_home_page%] autofocus [% END %] x-webkit-speech
+                    [% IF basic_search != "f" AND is_home_page%] autofocus [% END %]
                 [%- END # autosuggest enabled %] />
             </label>
         </span>
@@ -115,12 +115,12 @@ END;
             onclick='setTimeout(function(){$("search-submit-spinner").className=""; $("search-submit-go").className="hidden"; $("search-submit-go-depth").className="hidden";}, 2000)' title="[% ctx.depth_sel_tooltip | html %]">[% ctx.depth_sel_button_label | html %]</button>
         [%- END %]
         <img id='search-submit-spinner' src='[% ctx.media_prefix %]/opac/images/progressbar_green.gif[% ctx.cache_key %]' style='height:16px;width:16px;' class='hidden' alt='[% l("Search In Progress") %]'/>
-        
+        </span>
           
             </div>
            
           
-      </span>
+      
      
     </div>
     
index 9edbf3f..4a667d0 100644 (file)
@@ -10,9 +10,8 @@
 
 <div id="header-wrap">
 [% INCLUDE "opac/parts/topnav_links.tt2" %]
-
+</div>
 [% END %]
-
-[% IF ctx.is_staff %]
-[% INCLUDE "opac/parts/topnav_subnav.tt2" %]
-[% END %]
\ No newline at end of file
+<div id="subheader-wrap">
+ [% INCLUDE "opac/parts/topnav_subnav.tt2" %]
+ </div>
index b282005..86be756 100644 (file)
@@ -9,7 +9,6 @@
   <div class="row w-100">
   <div class="col-12">
  
-  <div id="nav-divide" class="dropdown-divider"></div>
    <ul class="navbar-nav nav-fl px-3">
        <!--Link 1-->
       <li class="nav-item">
         <a class="nav-link" href="[% ctx.link_four %]">Link 4</a>
       </li>
     </ul>
-    <div id="nav-divide" class="dropdown-divider"></div>
-    
     <!--Right Links-->
     <ul class="navbar-nav ml-auto nav-fr px-3">
        <!--If not signed in, show sign in button-->
     [% IF !ctx.user %]
        <li class="nav-item">
-               <a href="#exampleModal" class="nav-link login" data-toggle="modal" data-target="#exampleModal" >
-                [% l('My Account') %]
-            </a>
+                [% IF ctx.page != 'login' ;%] 
+           <a href="#exampleModal" data-toggle="modal" data-target="#exampleModal" class="nav-link login"> 
+           [% ELSE ;%] <a href="https://test.nflibrary.ca/eg/opac/login" class="nav-link login">
+            [% END; %] [% l('My Account') %] </a>
        </li>
       <!--User is signed in-->
     [% ELSE %]
        </li>
        <!--Messages with sup tag for # of messages-->
        <li class="nav-item">
-        <a class="nav-link  [% IF ctx.user_stats.messages.unread %] active [% END %]" href="[% mkurl(ctx.opac_root _ '/myopac/messages', {}, ['single', 'message_id']) %]">[% l('Messages') %]
-                    [% IF ctx.user_stats.messages.unread %]
-                        <sup class="badge badge-danger">
-                            [%- ctx.user_stats.messages.unread -%]
-                            <span class="sr-only">[% l('unread') %]</a>
-                        </sup>
-                    [% END %]</a>
+          <a class="nav-link  [% IF ctx.user_stats.messages.unread %] active [% END %]" href="[% mkurl(ctx.opac_root _ '/myopac/messages', {}, ['single', 'message_id']) %]">[% l('Messages') %]
+                      [% IF ctx.user_stats.messages.unread %]
+                          <sup class="badge badge-danger">
+                              [%- ctx.user_stats.messages.unread -%]
+                              <span class="sr-only">[% l('unread') %]</span>
+                          </sup>
+                      [% END %]
+            </a>
        </li>
        <!--My Account-->
        <li class="nav-item">
@@ -73,7 +71,6 @@
     </ul>
        </div>
        
-       
                [% IF ctx.user %]
        <div class="col-12">
                        <div id="dashboard" class="float-right pr-4 row">
                 </span>
             </div>
            </div>  
-            [% END %]
-           </div>
-       </div>
-   </div>
-   </nav>
-   [% INCLUDE "opac/parts/topnav_subnav.tt2" %]
+           [% END %]
+      </div>     
+        </div>
+         </nav>
+  
 
 <script>
 jQuery(document).ready(function(){
index e53f2c5..c7db958 100644 (file)
         </li>
         <li class="nav-item mx-2">
             [% IF ctx.page != 'advanced'; %]
-            <a href="[% mkurl(ctx.opac_root _ '/advanced', {},  expert_search_parms.merge(browse_search_parms, facet_search_parms)) %]" id="home_adv_search_link" class="adv_search_catalog_lbl">[% l('Advanced Search') %]</a></span>
+            <a href="[% mkurl(ctx.opac_root _ '/advanced', {},  expert_search_parms.merge(browse_search_parms, facet_search_parms)) %]" id="home_adv_search_link" class="adv_search_catalog_lbl">[% l('Advanced Search') %]</a>
             [% ELSE %]
             <span class="adv_search_catalog_lbl">[%l('Advanced Search')%]</span>
             [% END %]
         </li>
     </ul>
-<div>
-
-</div>
     </div>
     
 </div>
index 9ab664f..0ee4638 100644 (file)
@@ -18,7 +18,7 @@
 
     PROCESS "opac/parts/misc_util.tt2";
     PROCESS get_library;
--%]
+-%]<div>
     <h2 class="sr-only">[% l('Search Results') %]</h2>
     <form action="[% ctx.opac_root %]/results" method="get">
     [% INCLUDE "opac/parts/searchbar.tt2" took_care_of_form=1 %]