LP#1778972: Tweaks and fixes to Bootstrap 4 template
authorOwen Leonard <zivot@zivotdesign.com>
Tue, 8 Sep 2020 16:29:58 +0000 (12:29 -0400)
committerJane Sandberg <sandbej@linnbenton.edu>
Sat, 12 Sep 2020 15:53:01 +0000 (08:53 -0700)
- Add "aria-hidden" to Font Awesome icons as recommended by Font Awesome for accessibility.
- Minor changes to the color scheme.
- Some adjustments to the way alignment is defined: Bootstrap 4 classes like "text-center"
  can be an impediment to customization because they use "!important." I've removed many
  instances of such classes in favor of putting alignment in CSS.
- Ajustments to responsive behavior. I've made some changes to grid class definitions
  to improve flexibility of layouts at various browser widths.
- Whitespace and other typo corrections. I've worked to remove trailing whitespace and
  replace tabs with spaces.

Signed-of-by: Owen Leonard <zivot@zivotdesign.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
105 files changed:
Open-ILS/src/templates-bootstrap/opac/ReadMe.txt
Open-ILS/src/templates-bootstrap/opac/advanced.tt2
Open-ILS/src/templates-bootstrap/opac/browse.tt2
Open-ILS/src/templates-bootstrap/opac/css/mediaQuery.css.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/login.tt2
Open-ILS/src/templates-bootstrap/opac/mylist.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/hold_history.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/holds.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/holds/edit.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/list/update.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_pay.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/main_payment_form.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_my_lists.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/prefs_notify.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/prefs_settings.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/update_email.tt2
Open-ILS/src/templates-bootstrap/opac/myopac/update_username.tt2
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/check_value_selector.tt2
Open-ILS/src/templates-bootstrap/opac/parts/chilifresh.tt2
Open-ILS/src/templates-bootstrap/opac/parts/coded_value_selector.tt2
Open-ILS/src/templates-bootstrap/opac/parts/config-fresh.tt2
Open-ILS/src/templates-bootstrap/opac/parts/config.tt2
Open-ILS/src/templates-bootstrap/opac/parts/css/colors.tt2
Open-ILS/src/templates-bootstrap/opac/parts/css/fonts.tt2
Open-ILS/src/templates-bootstrap/opac/parts/filter_group_selector.tt2
Open-ILS/src/templates-bootstrap/opac/parts/filtersort.tt2
Open-ILS/src/templates-bootstrap/opac/parts/footer.tt2
Open-ILS/src/templates-bootstrap/opac/parts/goog_analytics.tt2
Open-ILS/src/templates-bootstrap/opac/parts/header.tt2
Open-ILS/src/templates-bootstrap/opac/parts/hold_status.tt2
Open-ILS/src/templates-bootstrap/opac/parts/homesearch.tt2
Open-ILS/src/templates-bootstrap/opac/parts/js.tt2
Open-ILS/src/templates-bootstrap/opac/parts/library/core_info.tt2
Open-ILS/src/templates-bootstrap/opac/parts/library_name_link.tt2
Open-ILS/src/templates-bootstrap/opac/parts/library_name_link_from_ou.tt2
Open-ILS/src/templates-bootstrap/opac/parts/locale_picker.tt2
Open-ILS/src/templates-bootstrap/opac/parts/login/form.tt2
Open-ILS/src/templates-bootstrap/opac/parts/login/help.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/column_sort_support.tt2
Open-ILS/src/templates-bootstrap/opac/parts/myopac/main_base.tt2
Open-ILS/src/templates-bootstrap/opac/parts/org_selector.tt2
Open-ILS/src/templates-bootstrap/opac/parts/place_hold.tt2
Open-ILS/src/templates-bootstrap/opac/parts/place_hold_result.tt2
Open-ILS/src/templates-bootstrap/opac/parts/pref_lib_display.tt2
Open-ILS/src/templates-bootstrap/opac/parts/preserve_params.tt2
Open-ILS/src/templates-bootstrap/opac/parts/qtype_selector.tt2
Open-ILS/src/templates-bootstrap/opac/parts/record/addedcontent.tt2
Open-ILS/src/templates-bootstrap/opac/parts/record/authors.tt2
Open-ILS/src/templates-bootstrap/opac/parts/record/awards.tt2
Open-ILS/src/templates-bootstrap/opac/parts/record/cnbrowse.tt2
Open-ILS/src/templates-bootstrap/opac/parts/record/contents.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/issues-mfhd.tt2
Open-ILS/src/templates-bootstrap/opac/parts/record/navigation.tt2
Open-ILS/src/templates-bootstrap/opac/parts/record/refworks.tt2
Open-ILS/src/templates-bootstrap/opac/parts/record/series.tt2
Open-ILS/src/templates-bootstrap/opac/parts/record/subjects.tt2
Open-ILS/src/templates-bootstrap/opac/parts/record/summary.tt2
Open-ILS/src/templates-bootstrap/opac/parts/record/summaryplus.tt2
Open-ILS/src/templates-bootstrap/opac/parts/result/adv_filter.tt2
Open-ILS/src/templates-bootstrap/opac/parts/result/copy_counts.tt2
Open-ILS/src/templates-bootstrap/opac/parts/result/facets-hz.tt2
Open-ILS/src/templates-bootstrap/opac/parts/result/facets.tt2
Open-ILS/src/templates-bootstrap/opac/parts/result/lowhits.tt2
Open-ILS/src/templates-bootstrap/opac/parts/result/paginate.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/staff_saved_searches.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/password_reset.tt2
Open-ILS/src/templates-bootstrap/opac/place_hold.tt2
Open-ILS/src/templates-bootstrap/opac/record.tt2
Open-ILS/src/templates-bootstrap/opac/record/email.tt2
Open-ILS/src/templates-bootstrap/opac/register.tt2
Open-ILS/src/templates-bootstrap/opac/results.tt2
Open-ILS/src/templates-bootstrap/opac/temp_warn.tt2

index 5fd954a..104815f 100644 (file)
@@ -9,7 +9,7 @@
 /////////////////////TOOLTIPS///////////////////////////////////////////
 <!--data-html allows use of HTML tags in the tooltip-->  
  <a href="#" title="text to show on tooltip" data-html="true" data-toggle="tooltip">
-    <i class="fas fa-question-circle"></i>
+    <i class="fas fa-question-circle" aria-hidden="true"></i>
 </a>
 <!--This is needed to activate the tooltips on the page and is activated Globally by default in js.tt2-->
 <script>
index 30d27ab..325d6bd 100755 (executable)
@@ -4,16 +4,16 @@
     ctx.page_title = l("Advanced Search");
     pane = CGI.param("pane") || "advanced";
     loc = ctx.search_ou;
-    
+
     ctx.metalinks.push('<meta name="robots" content="noindex,follow">');
 -%]
     <span class="sr-only">[% l('Advanced Search') %]</span>
-       <div class="container">    
-        <div id="search-wrapper">    
+    <div class="container">
+        <div id="search-wrapper">
             <div class="mt-3">
                 <ul class="nav nav-tabs">
                 <li class="nav-item">
-                    <a href="[% mkurl('', {pane => 'advanced'}) %]" 
+                    <a href="[% mkurl('', {pane => 'advanced'}) %]"
                         class="nav-link [% IF pane == 'advanced' %]active[% END %]"
                         id="adv_search">[% l('Advanced Search') %]</a>
                 </li>
index dfc3ea9..357c68b 100755 (executable)
@@ -8,7 +8,7 @@
     INCLUDE "opac/parts/topnav.tt2";
 
     ctx.page_title = l("Browse the Catalog");
-    
+
     blimit = CGI.param('blimit') || ctx.opac_hits_per_page || 10;
 
     depart_list = ['blimit', 'bterm', 'bpivot'];
 %]
 
     <h2 class="sr-only">[% l('Catalog Browse') %]</h2>
-    
+
     <div id="content-wrapper" class="my-5">
         <div class="container mx-auto w-75">
             <div id="browse-the-catalog">
-                <div id="browse-controls" class='row text-center'>
+                <div id="browse-controls" class='row'>
                     <form method="get" onsubmit="$('browse-submit-spinner').className = ''; return true" class="mx-auto">
                         <input type="hidden" name="blimit"
                             value="[% blimit %]" />
 
                         [% control_qtype = INCLUDE "opac/parts/qtype_selector.tt2"
                             id="browse-search-class" browse_only=1 plural=1 %]
-                                                       
+
                         [% control_bterm = BLOCK %]<input type="text" name="bterm" id="browse-term"
                             aria-label="[% l('Browse term') %]"
                             value="[% CGI.param('bterm') | html %]" class="form-control" />[% END %]
                             arialabel=l('Select holding library') %]
                         [% l('Browse for [_1] starting with [_2] in [_3]', control_qtype, control_bterm, control_locg) %]
 
-                       <button id='search-submit-go' type="submit" class="btn btn-confirm my-2"><i class="fas fa-book-reader"></i> [% l('Browse') %]</button>
-                        <img id="browse-submit-spinner" 
+            <button id='search-submit-go' type="submit" class="btn btn-confirm my-2"><i class="fas fa-book-reader" aria-hidden="true"></i> [% l('Browse') %]</button>
+                        <img id="browse-submit-spinner"
                         src="[% ctx.media_prefix %]/opac/images/progressbar_green.gif[% ctx.cache_key %]"
-                        class="hidden" style="width: 16px; height: 16px;" 
+                        class="hidden" style="width: 16px; height: 16px;"
                         alt="[% l('Search in progress icon') %]" />
                     </form>
                 </div>
-                       <div class="row my-5 border-top border-bottom">
+            <div class="row my-5 border-top border-bottom">
                 [% BLOCK browse_pager %]
-                <div class="browse-pager text-center col-12">
+                <div class="browse-pager col-12">
                 <div class="mx-auto">
                     [% IF ctx.back_pivot %]
-                    <a class="btn btn-action btn-sm" href="[% mkurl('', {bpivot => ctx.back_pivot}) %]" onclick="$('browse-pager-spinner-[% id %]').className = '';">&larr; [%l ('Back') %]</a>
+                    <a class="btn btn-action btn-sm" href="[% mkurl('', {bpivot => ctx.back_pivot}) %]" onclick="$('#browse-pager-spinner-[% id %]').removeClass('hidden');">&larr; [%l ('Back') %]</a>
                     [% END %]
                     [% IF ctx.pager_shortcuts;
                         current_qtype = CGI.param('qtype') || 'title' %]
                         [% END %]
                     </span>
                     [% END %]
-                    <img id="browse-pager-spinner-[% id %]" 
-                        src="[% ctx.media_prefix %]/opac/images/progressbar_green.gif[% ctx.cache_key %]"
-                        class="hidden" style="width: 16px; height: 16px;" 
-                        alt="[% l('Search in progress icon') %]" />
+                    <span class="browse-pager-spinner">
+                        <img id="browse-pager-spinner-[% id %]"
+                            src="[% ctx.media_prefix %]/opac/images/progressbar_green.gif[% ctx.cache_key %]"
+                            class="hidden" height="16" width="16"
+                            alt="[% l('Search in progress icon') %]" />
+                    </span>
                     [% IF ctx.forward_pivot %]
-                    <a class="btn btn-action btn-sm" href="[% mkurl('', {bpivot => ctx.forward_pivot}) %]" onclick="$('browse-pager-spinner-[% id %]').className = '';">[%l ('Next') %] &rarr;</a>
+                    <a class="btn btn-action btn-sm" href="[% mkurl('', {bpivot => ctx.forward_pivot}) %]" onclick="$('#browse-pager-spinner-[% id %]').removeClass('hidden');">[%l ('Next') %] &rarr;</a>
                     [% END %]
 
-                   
+
                         </div>
                 </div>
                 [% END %]
                                             # defined when h.target is.
 
                                             IF h.target AND h.target_count AND result.list_authorities.grep('^' _ h.target _ '$').size == 0 AND h.main_entry;
-                                                id = h.target; NEXT IF seenit.$id; seenit.$id = 1; 
+                                                id = h.target; NEXT IF seenit.$id; seenit.$id = 1;
                                                 IF !auth_headings_ul_added;
                                                     # only add a <ul> if we have at least one <li> (WCAG 2.0)
                                                     auth_headings_ul_added = 1; %]
-                                                <ul class="browse-result-authority-headings"> 
+                                                <ul class="browse-result-authority-headings">
                                                 [% END %]
 
                                                 <li><span class="browse-result-authority-field-name">[% heading_use_label(use=h.type) %]</span>
                                             # defined when h.target is.
 
                                             IF h.target AND h.target_count AND result.list_sees.grep('^' _ h.target _ '$').size == 0 AND !h.main_entry AND ctx.get_cgf('opac.show_related_headings_in_browse').enabled == 't';
-                                                id = h.target; NEXT IF seenit.$id; seenit.$id = 1; 
+                                                id = h.target; NEXT IF seenit.$id; seenit.$id = 1;
                                                 IF !auth_headings_ul_added;
                                                     # only add a <ul> if we have at least one <li> (WCAG 2.0)
                                                     auth_headings_ul_added = 1; %]
-                                                <ul class="browse-result-authority-headings"> 
+                                                <ul class="browse-result-authority-headings">
                                                 [% END %]
                                                 <li><span class="browse-result-authority-field-name">[% heading_use_label(use=h.type) %]</span>
                                                 <a href="[% mkurl(ctx.opac_root _ '/results', {query => 'identifier|authority_id[' _ h.target _ ']'}) %]">[% h.heading | html %]</a>
index e7fc909..66439e7 100644 (file)
 /*
 Mini Table Styling
 */
-@media 
+@media
 only screen and (max-width: 650px)  {
     .miniTable{
         width: 100% !important;
     }
 
-       /* Force table to not be like tables anymore */
+    /* Force table to not be like tables anymore */
     .miniTable table, .miniTable thead, .miniTable tbody, .miniTable th, .miniTable td, .miniTable tr
-    { 
-               display: block; 
+    {
+        display: block;
     }
-    
+
     .miniTable th{
        display:none;
     }
-       
-       /* Hide table headers (but not display: none;, for accessibility) */
-    .miniTable thead tr{ 
-               position: absolute;
-               top: -9999px;
-               left: -9999px;
-       }
-       
+
+    /* Hide table headers (but not display: none;, for accessibility) */
+    .miniTable thead tr{
+        position: absolute;
+        top: -9999px;
+        left: -9999px;
+    }
+
     .miniTable tr
-     { 
-       border: 1px solid #ccc; 
-       margin: 10px 0px; 
+     {
+         border: 1px solid #ccc;
+         margin: 10px 0px;
      }
 
 
     .miniTable td
-    { 
-               border: none;
-               border-bottom: 1px solid #eee; 
-               position: relative;
-        padding-left: 50%; 
+    {
+        border: none;
+        border-bottom: 1px solid #eee;
+        position: relative;
+        padding-left: 50%;
         min-height:45px;
         text-align: right;
     }
-       
+
     .miniTable td:before
-    { 
-               left: 6px;
-               width: 45%; 
-               padding-right: 10px; 
-               white-space: nowrap;
+    {
+        left: 6px;
+        width: 45%;
+        padding-right: 10px;
+        white-space: nowrap;
         position: absolute;
     }
     .copyTable tr:nth-of-type(1):before { content: "Copy #1"; display: block; text-align:center; }
-       .copyTable tr:nth-of-type(2):before { content: "Copy #2"; display: block; text-align:center;}
-       .copyTable tr:nth-of-type(3):before { content: "Copy #3"; display: block; text-align:center;}
-       .copyTable tr:nth-of-type(4):before { content: "Copy #4"; display: block; text-align:center;}
-       .copyTable tr:nth-of-type(5):before { content: "Copy #5"; display: block; text-align:center;}
-       .copyTable tr:nth-of-type(6):before { content: "Copy #6"; display: block; text-align:center;}
-       .copyTable tr:nth-of-type(7):before { content: "Copy #7"; display: block; text-align:center;}
-       .copyTable tr:nth-of-type(8):before { content: "Copy #8"; display: block; text-align:center;}
-       .copyTable tr:nth-of-type(9):before { content: "Copy #9"; display: block; text-align:center;}
-       .copyTable tr:nth-of-type(10):before { content: "Copy #10"; display: block; text-align:center;}
-
-       .copyTable td:nth-of-type(1):before { content: "Library"; display: flex; }
+    .copyTable tr:nth-of-type(2):before { content: "Copy #2"; display: block; text-align:center;}
+    .copyTable tr:nth-of-type(3):before { content: "Copy #3"; display: block; text-align:center;}
+    .copyTable tr:nth-of-type(4):before { content: "Copy #4"; display: block; text-align:center;}
+    .copyTable tr:nth-of-type(5):before { content: "Copy #5"; display: block; text-align:center;}
+    .copyTable tr:nth-of-type(6):before { content: "Copy #6"; display: block; text-align:center;}
+    .copyTable tr:nth-of-type(7):before { content: "Copy #7"; display: block; text-align:center;}
+    .copyTable tr:nth-of-type(8):before { content: "Copy #8"; display: block; text-align:center;}
+    .copyTable tr:nth-of-type(9):before { content: "Copy #9"; display: block; text-align:center;}
+    .copyTable tr:nth-of-type(10):before { content: "Copy #10"; display: block; text-align:center;}
+
+    .copyTable td:nth-of-type(1):before { content: "Library"; display: flex; }
     .copyTable td:nth-of-type(2):before { content: "Call Number"; display: flex; }
-       .copyTable td:nth-of-type(3):before { content: "Barcode"; display: flex;}
+    .copyTable td:nth-of-type(3):before { content: "Barcode"; display: flex;}
     .copyTable td:nth-of-type(4):before { content: "Shelving Location"; display: flex;}
     .copyTable td:nth-of-type(5):before { content: "Status"; display: flex;}
     .copyTable td:nth-of-type(6):before { content: "Due Date"; display: flex;}
-   
+
     .holdingsTable tr:nth-of-type(1):before { content: "Copy #1"; display: block; text-align:center; }
-       .holdingsTable tr:nth-of-type(2):before { content: "Copy #2"; display: block; text-align:center;}
-       .holdingsTable tr:nth-of-type(3):before { content: "Copy #3"; display: block; text-align:center;}
-       .holdingsTable tr:nth-of-type(4):before { content: "Copy #4"; display: block; text-align:center;}
-       .holdingsTable tr:nth-of-type(5):before { content: "Copy #5"; display: block; text-align:center;}
-       .holdingsTable tr:nth-of-type(6):before { content: "Copy #6"; display: block; text-align:center;}
-       .holdingsTable tr:nth-of-type(7):before { content: "Copy #7"; display: block; text-align:center;}
-       .holdingsTable tr:nth-of-type(8):before { content: "Copy #8"; display: block; text-align:center;}
-       .holdingsTable tr:nth-of-type(9):before { content: "Copy #9"; display: block; text-align:center;}
-       .holdingsTable tr:nth-of-type(10):before { content: "Copy #10"; display: block; text-align:center;}
+    .holdingsTable tr:nth-of-type(2):before { content: "Copy #2"; display: block; text-align:center;}
+    .holdingsTable tr:nth-of-type(3):before { content: "Copy #3"; display: block; text-align:center;}
+    .holdingsTable tr:nth-of-type(4):before { content: "Copy #4"; display: block; text-align:center;}
+    .holdingsTable tr:nth-of-type(5):before { content: "Copy #5"; display: block; text-align:center;}
+    .holdingsTable tr:nth-of-type(6):before { content: "Copy #6"; display: block; text-align:center;}
+    .holdingsTable tr:nth-of-type(7):before { content: "Copy #7"; display: block; text-align:center;}
+    .holdingsTable tr:nth-of-type(8):before { content: "Copy #8"; display: block; text-align:center;}
+    .holdingsTable tr:nth-of-type(9):before { content: "Copy #9"; display: block; text-align:center;}
+    .holdingsTable tr:nth-of-type(10):before { content: "Copy #10"; display: block; text-align:center;}
 
 
     .holdingsTable td:nth-of-type(1):before { content: "Library"; display: flex; }
     .holdingsTable td:nth-of-type(2):before { content: "Shelving location"; display: flex; }
-       .holdingsTable td:nth-of-type(3):before { content: "Call number"; display: flex;}
+    .holdingsTable td:nth-of-type(3):before { content: "Call number"; display: flex;}
     .holdingsTable td:nth-of-type(4):before { content: "Status"; display: flex;}
 
-       .chargesTable td:nth-of-type(1):before { content: "Select"; display: flex; }
+    .chargesTable td:nth-of-type(1):before { content: "Select"; display: flex; }
     .chargesTable td:nth-of-type(2):before { content: "Owed"; display: flex; }
-       .chargesTable td:nth-of-type(3):before { content: "Billing Type"; display: flex;}
+    .chargesTable td:nth-of-type(3):before { content: "Billing Type"; display: flex;}
     .chargesTable td:nth-of-type(4):before { content: "Note"; display: flex;}
     .chargesTable td:nth-of-type(5):before { content: "Date"; display: flex;}
-    
+
     .chargesMainTable td:nth-of-type(1):before { content: "Select"; display: flex; }
     .chargesMainTable td:nth-of-type(2):before { content: "Owed"; display: flex; }
-       .chargesMainTable td:nth-of-type(3):before { content: "Billing Type"; display: flex;}
+    .chargesMainTable td:nth-of-type(3):before { content: "Billing Type"; display: flex;}
     .chargesMainTable td:nth-of-type(4):before { content: "Title"; display: flex;}
     .chargesMainTable td:nth-of-type(5):before { content: "Checkout"; display: flex;}
     .chargesMainTable td:nth-of-type(6):before { content: "Due"; display: flex;}
     .chargesMainTable td:nth-of-type(7):before { content: "Returned/Renewed"; display: flex;}
-    
+
     .activeHoldstable td:nth-of-type(1):before { content: "Select"; display: flex; }
     .activeHoldstable td:nth-of-type(2):before { content: "Title"; display: flex; }
-       .activeHoldstable td:nth-of-type(3):before { content: "Author"; display: flex;}
+    .activeHoldstable td:nth-of-type(3):before { content: "Author"; display: flex;}
     .activeHoldstable td:nth-of-type(4):before { content: "Format"; display: flex;}
     .activeHoldstable td:nth-of-type(5):before { content: "Pickup Location"; display: flex;}
     .activeHoldstable td:nth-of-type(6):before { content: "Cancel If Not Filled By"; display: flex;}
     .activeHoldstable td:nth-of-type(7):before { content: "Status"; display: flex;}
     .activeHoldstable td:nth-of-type(8):before { content: "Notes"; display: flex;}
-    
+
     .holdHistoryTable td:nth-of-type(1):before { content: "Title"; display: flex; }
     .holdHistoryTable td:nth-of-type(2):before { content: "Author"; display: flex; }
     .holdHistoryTable td:nth-of-type(3):before { content: "Format"; display: flex; }
     .holdHistoryTable td:nth-of-type(4):before { content: "Pickup Location"; display: flex; }
     .holdHistoryTable td:nth-of-type(5):before { content: "Status"; display: flex; }
-    
+
     .paymentTable td:nth-of-type(1):before { content: "Payment Date"; display: flex; }
     .paymentTable td:nth-of-type(2):before { content: "Payment For"; display: flex; }
     .paymentTable td:nth-of-type(3):before { content: "Amount"; display: flex; }
     .paymentTable td:nth-of-type(4):before { content: "Receipt"; display: flex; }
-    
+
     .messagesTable td:nth-of-type(1):before { content: "Select"; display: flex; }
     .messagesTable td:nth-of-type(2):before { content: "Date"; display: flex; }
     .messagesTable td:nth-of-type(3):before { content: "Library"; display: flex; }
     .messagesTable td:nth-of-type(4):before { content: "Subject"; display: flex; }
     .messagesTable td:nth-of-type(5):before { content: ""; display: flex; }
-    
+
     .circTable td:nth-of-type(1):before { content: "Select"; display: flex; }
     .circTable td:nth-of-type(2):before { content: "Title"; display: flex; }
     .circTable td:nth-of-type(3):before { content: "Author"; display: flex; }
@@ -131,7 +131,7 @@ only screen and (max-width: 650px)  {
     .circTable td:nth-of-type(5):before { content: "Due Date"; display: flex; }
     .circTable td:nth-of-type(6):before { content: "Barcode"; display: flex; }
     .circTable td:nth-of-type(7):before { content: "Call Number"; display: flex; }
-    
+
     .circHistTable td:nth-of-type(1):before { content: "Select"; display: flex; }
     .circHistTable td:nth-of-type(2):before { content: "Title"; display: flex; }
     .circHistTable td:nth-of-type(3):before { content: "Author"; display: flex; }
@@ -140,7 +140,7 @@ only screen and (max-width: 650px)  {
     .circHistTable td:nth-of-type(6):before { content: "Date Returned"; display: flex; }
     .circHistTable td:nth-of-type(7):before { content: "Barcode"; display: flex; }
     .circHistTable td:nth-of-type(8):before { content: "Call Number"; display: flex; }
-    
+
     .bookbagTable td:nth-of-type(1):before { content: ""; display: flex; }
     .bookbagTable td:nth-of-type(2):before { content: "Title"; display: flex; }
     .bookbagTable td:nth-of-type(3):before { content: "Author(s)"; display: flex; }
@@ -148,23 +148,23 @@ only screen and (max-width: 650px)  {
     .bookbagTable td:nth-of-type(5):before { content: "Publication Date"; display: flex; }
     .bookbagTable td:nth-of-type(6):before { content: "Format"; display: flex; }
     .bookbagTable td:nth-of-type(7):before { content: "Notes"; display: flex; }
-    
+
     .eholdsTable td:nth-of-type(1):before { content: "Title"; display: flex; }
     .eholdsTable td:nth-of-type(2):before { content: "Author"; display: flex; }
     .eholdsTable td:nth-of-type(3):before { content: "Expire Date"; display: flex; }
     .eholdsTable td:nth-of-type(4):before { content: "Status"; display: flex; }
     .eholdsTable td:nth-of-type(5):before { content: "Actions"; display: flex; }
-    
+
     .eholdsreadyTable td:nth-of-type(1):before { content: "Title"; display: flex; }
     .eholdsreadyTable td:nth-of-type(2):before { content: "Author"; display: flex; }
     .eholdsreadyTable td:nth-of-type(3):before { content: "Expire Date"; display: flex; }
     .eholdsreadyTable td:nth-of-type(4):before { content: "Actions"; display: flex; }
-    
+
     .echeckoutTable td:nth-of-type(1):before { content: "Title"; display: flex; }
     .echeckoutTable td:nth-of-type(2):before { content: "Author"; display: flex; }
     .echeckoutTable td:nth-of-type(3):before { content: "Due Date"; display: flex; }
     .echeckoutTable td:nth-of-type(4):before { content: "Actions"; display: flex; }
-    
+
     .ecircsTable td:nth-of-type(1):before { content: "Title"; display: flex; }
     .ecircsTable td:nth-of-type(2):before { content: "Author"; display: flex; }
     .ecircsTable td:nth-of-type(3):before { content: "Due Date"; display: flex; }
@@ -173,17 +173,17 @@ only screen and (max-width: 650px)  {
     .bucketTable td:nth-of-type(2):before { content: "Title"; display: flex; text-align:left; }
     .bucketTable td:nth-of-type(3):before { content: "Author"; display: flex; text-align:left; }
     .bucketTable td:nth-of-type(4):before { content: "Call Number"; display: flex; text-align:left; }
-    
+
     /*Media Style Additions*/
     .fullRow{
         padding: 5px !important;
-       text-align: center !important;
-       width: 100%;
+        text-align: center !important;
+        width: 100%;
     }
-    
+
     .paginateText{
-       display:none;
-       }
+        display:none;
+    }
 
     .modal-dialog {
     max-width: 600px !important;
@@ -222,7 +222,7 @@ only screen and (max-width: 650px)  {
     #topnav_logo img {
         width: 200px;
     }
+
     #gold-links-holder {
         display: none;
     }
@@ -382,7 +382,7 @@ only screen and (max-width: 650px)  {
         float:left;
         [% END -%]
     }
-   
+
     #holds_box form blockquote {
         [% IF rtl == 't' -%]
         margin-right: 10px;
@@ -461,24 +461,24 @@ only screen and (max-width: 650px)  {
         display: block;
     }
     #main-content {
-        margin: 0 1px;        
+        margin: 0 1px;
     }
     #rdetails_status thead {
         display: none;
     }
     #rdetails_status tr {
-       display: block;
-       margin-top: 3px;
+    display: block;
+    margin-top: 3px;
     }
     #rdetails_status td {
-       display: block;
-       padding: 1px;
+    display: block;
+    padding: 1px;
     }
     .copy_details_row {
-       background-color: [% css_colors.accent_lightest %];
+    background-color: [% css_colors.accent_lightest %];
     }
     .copy_details_offers_row {
-       background-color: [% css_colors.accent_lightest %];
+    background-color: [% css_colors.accent_lightest %];
     }
     select#pickup_lib.search-wrapper-locg {
         width: 100%;
@@ -510,8 +510,8 @@ only screen and (max-width: 650px)  {
     #adv_search_parent {
         font-size: [% css_fonts.size_smaller %];
     }
-    #adv_search_filters {                                                                                                                             
-        position: relative;                                                                                                                           
+    #adv_search_filters {
+        position: relative;
         width: 300px;
     }
     #format_actions {
@@ -545,51 +545,51 @@ only screen and (max-width: 650px)  {
     }
     .search_catalog_lbl {
         [% IF rtl == 't' -%]
-       margin-right: 0;
+    margin-right: 0;
         [% ELSE -%]
-       margin-left: 0;
+    margin-left: 0;
         [% END -%]
-       white-space: nowrap;
+    white-space: nowrap;
     }
-    .adv_search_catalog_lbl { 
+    .adv_search_catalog_lbl {
         margin-top: 0;
-       white-space: nowrap;
+    white-space: nowrap;
     }
     .browse_the_catalog_lbl {
         white-space: nowrap;
     }
     .mobile_hide {
-       display: none;
-    } 
+    display: none;
+    }
     #dash_user {
         display: block;
-        padding: 0.5em;    
+        padding: 0.5em;
         font-size: 18px;
         text-align: center;
     }
     .dash_divider {
-       display: none;
+    display: none;
     }
     .dash_account_buttons {
         display: block;
-    } 
+    }
     .searchbar { line-height: 1.5em; }
     #browse-controls { line-height: 1.5em; }
     #search_query_label, #search_qtype_label, #search_itype_label, #search_locg_label {
         display: block;
     }
     .bookshelf td {
-       display: block;
-       width: 100%;
+    display: block;
+    width: 100%;
     }
     .bookshelf table thead tr {
-       display: block;
+    display: block;
     }
     #lowhits_help { width: inherit; }
-    #adv_search_tabs a{                                                                                                                           
+    #adv_search_tabs a{
         font-size: [% css_fonts.size_small %];
         margin: 2px 2px 0px 2px;
-        padding: 2px 2px 5px 2px; 
+        padding: 2px 2px 5px 2px;
         [% IF rtl == 't' -%]
         border-radius: 7px 0px 0px 7px;
         [% ELSE -%]
@@ -634,7 +634,7 @@ only screen and (max-width: 650px)  {
            here. */
 
         table#ebook_circs_main_table tr, table#ebook_holds_main_table tr { border-top: 25px solid #fff; }
-               table#acct_holds_hist_header tr{ border-top: 2px solid #bbb; }
+        table#acct_holds_hist_header tr{ border-top: 2px solid #bbb; }
 
         table#acct_checked_main_header td, table#acct_holds_main_header td, table#acct_checked_hist_header td, table#acct_holds_hist_header td, table#ebook_circs_main_table td, table#ebook_holds_main_table td {
                 /* Behave  like a "row" */
@@ -719,14 +719,14 @@ only screen and (max-width: 650px)  {
 }
 
 @media only screen and (min-width: 992px) {
-       .nav-fr{
-       float: right;
+    .nav-fr{
+        float: right;
     }
     .nav-fl{
-       float: left;
+        float: left;
     }
     #nav-divide{
-       display:none !important;
+        display:none !important;
     }
 }
 @media only screen and (max-width: 800px) {
index 4b0e8c5..cc26774 100755 (executable)
@@ -5,7 +5,7 @@
 %]
 
 .adv_filters{
-    
+
     -moz-column-count: 4;
     -moz-column-gap: 20px;
     -webkit-column-count: 4;
 /*
 Mini Table Styling
 */
-@media 
+@media
 only screen and (max-width: 650px)  {
     .miniTable{
         width: 100% !important;
     }
 
-       /* Force table to not be like tables anymore */
+    /* Force table to not be like tables anymore */
     .miniTable table, .miniTable thead, .miniTable tbody, .miniTable th, .miniTable td, .miniTable tr
-    { 
-               display: block; 
+    {
+        display: block;
     }
-    
+
     .miniTable th{
        display:none;
     }
-       
-       /* Hide table headers (but not display: none;, for accessibility) */
-    .miniTable thead tr{ 
-               position: absolute;
-               top: -9999px;
-               left: -9999px;
-       }
-       
+
+    /* Hide table headers (but not display: none;, for accessibility) */
+    .miniTable thead tr{
+        position: absolute;
+        top: -9999px;
+        left: -9999px;
+    }
+
     .miniTable tr
-     { 
-       border: 1px solid #ccc; 
-       margin: 10px 0px; 
+     {
+         border: 1px solid #ccc;
+         margin: 10px 0px;
      }
 
 
     .miniTable td
-    { 
-               border: none;
-               border-bottom: 1px solid #eee; 
-               position: relative;
-        padding-left: 50%; 
+    {
+        border: none;
+        border-bottom: 1px solid #eee;
+        position: relative;
+        padding-left: 50%;
         min-height:45px;
         text-align: right;
     }
-       
+
     .miniTable td:before
-    { 
-               left: 6px;
-               width: 45%; 
-               padding-right: 10px; 
-               white-space: nowrap;
+    {
+        left: 6px;
+        width: 45%;
+        padding-right: 10px;
+        white-space: nowrap;
         position: absolute;
     }
     .copyTable tr:nth-of-type(1):before { content: "Copy #1"; display: block; text-align:center; }
-       .copyTable tr:nth-of-type(2):before { content: "Copy #2"; display: block; text-align:center;}
-       .copyTable tr:nth-of-type(3):before { content: "Copy #3"; display: block; text-align:center;}
-       .copyTable tr:nth-of-type(4):before { content: "Copy #4"; display: block; text-align:center;}
-       .copyTable tr:nth-of-type(5):before { content: "Copy #5"; display: block; text-align:center;}
-       .copyTable tr:nth-of-type(6):before { content: "Copy #6"; display: block; text-align:center;}
-       .copyTable tr:nth-of-type(7):before { content: "Copy #7"; display: block; text-align:center;}
-       .copyTable tr:nth-of-type(8):before { content: "Copy #8"; display: block; text-align:center;}
-       .copyTable tr:nth-of-type(9):before { content: "Copy #9"; display: block; text-align:center;}
-       .copyTable tr:nth-of-type(10):before { content: "Copy #10"; display: block; text-align:center;}
-
-       .copyTable td:nth-of-type(1):before { content: "Library"; display: flex; }
+    .copyTable tr:nth-of-type(2):before { content: "Copy #2"; display: block; text-align:center;}
+    .copyTable tr:nth-of-type(3):before { content: "Copy #3"; display: block; text-align:center;}
+    .copyTable tr:nth-of-type(4):before { content: "Copy #4"; display: block; text-align:center;}
+    .copyTable tr:nth-of-type(5):before { content: "Copy #5"; display: block; text-align:center;}
+    .copyTable tr:nth-of-type(6):before { content: "Copy #6"; display: block; text-align:center;}
+    .copyTable tr:nth-of-type(7):before { content: "Copy #7"; display: block; text-align:center;}
+    .copyTable tr:nth-of-type(8):before { content: "Copy #8"; display: block; text-align:center;}
+    .copyTable tr:nth-of-type(9):before { content: "Copy #9"; display: block; text-align:center;}
+    .copyTable tr:nth-of-type(10):before { content: "Copy #10"; display: block; text-align:center;}
+
+    .copyTable td:nth-of-type(1):before { content: "Library"; display: flex; }
     .copyTable td:nth-of-type(2):before { content: "Call Number"; display: flex; }
-       .copyTable td:nth-of-type(3):before { content: "Barcode"; display: flex;}
+    .copyTable td:nth-of-type(3):before { content: "Barcode"; display: flex;}
     .copyTable td:nth-of-type(4):before { content: "Shelving Location"; display: flex;}
     .copyTable td:nth-of-type(5):before { content: "Status"; display: flex;}
     .copyTable td:nth-of-type(6):before { content: "Due Date"; display: flex;}
-   
+
     .holdingsTable tr:nth-of-type(1):before { content: "Copy #1"; display: block; text-align:center; }
-       .holdingsTable tr:nth-of-type(2):before { content: "Copy #2"; display: block; text-align:center;}
-       .holdingsTable tr:nth-of-type(3):before { content: "Copy #3"; display: block; text-align:center;}
-       .holdingsTable tr:nth-of-type(4):before { content: "Copy #4"; display: block; text-align:center;}
-       .holdingsTable tr:nth-of-type(5):before { content: "Copy #5"; display: block; text-align:center;}
-       .holdingsTable tr:nth-of-type(6):before { content: "Copy #6"; display: block; text-align:center;}
-       .holdingsTable tr:nth-of-type(7):before { content: "Copy #7"; display: block; text-align:center;}
-       .holdingsTable tr:nth-of-type(8):before { content: "Copy #8"; display: block; text-align:center;}
-       .holdingsTable tr:nth-of-type(9):before { content: "Copy #9"; display: block; text-align:center;}
-       .holdingsTable tr:nth-of-type(10):before { content: "Copy #10"; display: block; text-align:center;}
+    .holdingsTable tr:nth-of-type(2):before { content: "Copy #2"; display: block; text-align:center;}
+    .holdingsTable tr:nth-of-type(3):before { content: "Copy #3"; display: block; text-align:center;}
+    .holdingsTable tr:nth-of-type(4):before { content: "Copy #4"; display: block; text-align:center;}
+    .holdingsTable tr:nth-of-type(5):before { content: "Copy #5"; display: block; text-align:center;}
+    .holdingsTable tr:nth-of-type(6):before { content: "Copy #6"; display: block; text-align:center;}
+    .holdingsTable tr:nth-of-type(7):before { content: "Copy #7"; display: block; text-align:center;}
+    .holdingsTable tr:nth-of-type(8):before { content: "Copy #8"; display: block; text-align:center;}
+    .holdingsTable tr:nth-of-type(9):before { content: "Copy #9"; display: block; text-align:center;}
+    .holdingsTable tr:nth-of-type(10):before { content: "Copy #10"; display: block; text-align:center;}
 
 
     .holdingsTable td:nth-of-type(1):before { content: "Library"; display: flex; }
     .holdingsTable td:nth-of-type(2):before { content: "Shelving location"; display: flex; }
-       .holdingsTable td:nth-of-type(3):before { content: "Call number"; display: flex;}
+    .holdingsTable td:nth-of-type(3):before { content: "Call number"; display: flex;}
     .holdingsTable td:nth-of-type(4):before { content: "Status"; display: flex;}
 
-       .chargesTable td:nth-of-type(1):before { content: "Select"; display: flex; }
+    .chargesTable td:nth-of-type(1):before { content: "Select"; display: flex; }
     .chargesTable td:nth-of-type(2):before { content: "Owed"; display: flex; }
-       .chargesTable td:nth-of-type(3):before { content: "Billing Type"; display: flex;}
+    .chargesTable td:nth-of-type(3):before { content: "Billing Type"; display: flex;}
     .chargesTable td:nth-of-type(4):before { content: "Note"; display: flex;}
     .chargesTable td:nth-of-type(5):before { content: "Date"; display: flex;}
-    
+
     .chargesMainTable td:nth-of-type(1):before { content: "Select"; display: flex; }
     .chargesMainTable td:nth-of-type(2):before { content: "Owed"; display: flex; }
-       .chargesMainTable td:nth-of-type(3):before { content: "Billing Type"; display: flex;}
+    .chargesMainTable td:nth-of-type(3):before { content: "Billing Type"; display: flex;}
     .chargesMainTable td:nth-of-type(4):before { content: "Title"; display: flex;}
     .chargesMainTable td:nth-of-type(5):before { content: "Checkout"; display: flex;}
     .chargesMainTable td:nth-of-type(6):before { content: "Due"; display: flex;}
     .chargesMainTable td:nth-of-type(7):before { content: "Returned/Renewed"; display: flex;}
-    
+
     .activeHoldstable td:nth-of-type(1):before { content: "Select"; display: flex; }
     .activeHoldstable td:nth-of-type(2):before { content: "Title"; display: flex; }
-       .activeHoldstable td:nth-of-type(3):before { content: "Author"; display: flex;}
+    .activeHoldstable td:nth-of-type(3):before { content: "Author"; display: flex;}
     .activeHoldstable td:nth-of-type(4):before { content: "Format"; display: flex;}
     .activeHoldstable td:nth-of-type(5):before { content: "Pickup Location"; display: flex;}
     .activeHoldstable td:nth-of-type(6):before { content: "Cancel If Not Filled By"; display: flex;}
     .activeHoldstable td:nth-of-type(7):before { content: "Status"; display: flex;}
     .activeHoldstable td:nth-of-type(8):before { content: "Notes"; display: flex;}
-    
+
     .holdHistoryTable td:nth-of-type(1):before { content: "Title"; display: flex; }
     .holdHistoryTable td:nth-of-type(2):before { content: "Author"; display: flex; }
     .holdHistoryTable td:nth-of-type(3):before { content: "Format"; display: flex; }
     .holdHistoryTable td:nth-of-type(4):before { content: "Pickup Location"; display: flex; }
     .holdHistoryTable td:nth-of-type(5):before { content: "Status"; display: flex; }
-    
+
     .paymentTable td:nth-of-type(1):before { content: "Payment Date"; display: flex; }
     .paymentTable td:nth-of-type(2):before { content: "Payment For"; display: flex; }
     .paymentTable td:nth-of-type(3):before { content: "Amount"; display: flex; }
     .paymentTable td:nth-of-type(4):before { content: "Receipt"; display: flex; }
-    
+
     .messagesTable td:nth-of-type(1):before { content: "Select"; display: flex; }
     .messagesTable td:nth-of-type(2):before { content: "Date"; display: flex; }
     .messagesTable td:nth-of-type(3):before { content: "Library"; display: flex; }
     .messagesTable td:nth-of-type(4):before { content: "Subject"; display: flex; }
     .messagesTable td:nth-of-type(5):before { content: ""; display: flex; }
-    
+
     .circTable td:nth-of-type(1):before { content: "Select"; display: flex; }
     .circTable td:nth-of-type(2):before { content: "Title"; display: flex; }
     .circTable td:nth-of-type(3):before { content: "Author"; display: flex; }
@@ -152,7 +152,7 @@ only screen and (max-width: 650px)  {
     .circTable td:nth-of-type(5):before { content: "Due Date"; display: flex; }
     .circTable td:nth-of-type(6):before { content: "Barcode"; display: flex; }
     .circTable td:nth-of-type(7):before { content: "Call Number"; display: flex; }
-    
+
     .circHistTable td:nth-of-type(1):before { content: "Select"; display: flex; }
     .circHistTable td:nth-of-type(2):before { content: "Title"; display: flex; }
     .circHistTable td:nth-of-type(3):before { content: "Author"; display: flex; }
@@ -161,7 +161,7 @@ only screen and (max-width: 650px)  {
     .circHistTable td:nth-of-type(6):before { content: "Date Returned"; display: flex; }
     .circHistTable td:nth-of-type(7):before { content: "Barcode"; display: flex; }
     .circHistTable td:nth-of-type(8):before { content: "Call Number"; display: flex; }
-    
+
     .bookbagTable td:nth-of-type(1):before { content: ""; display: flex; }
     .bookbagTable td:nth-of-type(2):before { content: "Title"; display: flex; }
     .bookbagTable td:nth-of-type(3):before { content: "Author(s)"; display: flex; }
@@ -169,23 +169,23 @@ only screen and (max-width: 650px)  {
     .bookbagTable td:nth-of-type(5):before { content: "Publication Date"; display: flex; }
     .bookbagTable td:nth-of-type(6):before { content: "Format"; display: flex; }
     .bookbagTable td:nth-of-type(7):before { content: "Notes"; display: flex; }
-    
+
     .eholdsTable td:nth-of-type(1):before { content: "Title"; display: flex; }
     .eholdsTable td:nth-of-type(2):before { content: "Author"; display: flex; }
     .eholdsTable td:nth-of-type(3):before { content: "Expire Date"; display: flex; }
     .eholdsTable td:nth-of-type(4):before { content: "Status"; display: flex; }
     .eholdsTable td:nth-of-type(5):before { content: "Actions"; display: flex; }
-    
+
     .eholdsreadyTable td:nth-of-type(1):before { content: "Title"; display: flex; }
     .eholdsreadyTable td:nth-of-type(2):before { content: "Author"; display: flex; }
     .eholdsreadyTable td:nth-of-type(3):before { content: "Expire Date"; display: flex; }
     .eholdsreadyTable td:nth-of-type(4):before { content: "Actions"; display: flex; }
-    
+
     .echeckoutTable td:nth-of-type(1):before { content: "Title"; display: flex; }
     .echeckoutTable td:nth-of-type(2):before { content: "Author"; display: flex; }
     .echeckoutTable td:nth-of-type(3):before { content: "Due Date"; display: flex; }
     .echeckoutTable td:nth-of-type(4):before { content: "Actions"; display: flex; }
-    
+
     .ecircsTable td:nth-of-type(1):before { content: "Title"; display: flex; }
     .ecircsTable td:nth-of-type(2):before { content: "Author"; display: flex; }
     .ecircsTable td:nth-of-type(3):before { content: "Due Date"; display: flex; }
@@ -194,20 +194,20 @@ only screen and (max-width: 650px)  {
     .bucketTable td:nth-of-type(2):before { content: "Title"; display: flex; text-align:left; }
     .bucketTable td:nth-of-type(3):before { content: "Author"; display: flex; text-align:left; }
     .bucketTable td:nth-of-type(4):before { content: "Call Number"; display: flex; text-align:left; }
-    
+
     /*Media Style Additions*/
     .fullRow{
         padding: 5px !important;
-       text-align: center !important;
-       width: 100%;
+        text-align: center !important;
+        width: 100%;
     }
-    
+
     .paginateText{
-       display:none;
-       }
+        display:none;
+    }
 }/*Micro Tables End*/
 
- .my_nav .active{background-color:#afffbf;}.my_nav a{text-align:left !important; min-width:17em;border-radius: 0px;}.sumNum{
+.sumNum {
     font-weight:700;
 }
 
@@ -225,13 +225,13 @@ Novelist Styling
 }
 
 .NovSectionHeader{
-       font-size: 16pt !important;
+    font-size: 16pt !important;
     font-weight: 600 !important;
 }
 
 .NovSelectImageHeadingToggle{
-           font-size: 20px;
-        
+        font-size: 20px;
+
 }
 
 /*Novelist Styling End*/
@@ -282,7 +282,7 @@ Novelist Styling
 
 .btn-opac:hover{
     color: [% css_colors.opac_button_text %];
-       background-color: [% css_colors.opac_button_hover %] !important;
+    background-color: [% css_colors.opac_button_hover %] !important;
     border-color: [% css_colors.opac_button_border_hover %];
 }
 
@@ -294,7 +294,7 @@ Novelist Styling
 
 .btn-action:hover{
     color: [% css_colors.action_button_text %];
-       background-color: [% css_colors.action_button_hover %] !important;
+    background-color: [% css_colors.action_button_hover %] !important;
     border-color: [% css_colors.action_button_border_hover %];
 }
 .btn-action > a{
@@ -303,15 +303,15 @@ Novelist Styling
 
 
 .dash-link{
-       color: #fff;
+    color: #fff;
 }
 
 .dash-clear{
-       color: [% css_colors.zero_count %] !important;
+    color: [% css_colors.zero_count %] !important;
 }
 
 .dash-unclear{
-       color: [% css_colors.non_zero_count %] !important;
+    color: [% css_colors.non_zero_count %] !important;
 }
 
 .remove_filter{
@@ -323,19 +323,19 @@ Novelist Styling
 
 
 .cn_browse_item .card{
-       padding: 15px;
+    padding: 15px;
 }
 #facets .card-header,#facets .card-header a {
-       background-color: [% css_colors.facets_back %];
+    background-color: [% css_colors.facets_back %];
     color: [% css_colors.text_invert %]
 }
 
 .facet_template:hover{
-               background-color:#e8e8e8;
+        background-color:#e8e8e8;
 }
 
 .danger, .validate{
-       color: [% css_colors.text_alert %] !important;
+    color: [% css_colors.text_alert %] !important;
 }
 
 .danger{
@@ -354,32 +354,32 @@ Novelist Styling
     color : #000 !important;
 }
 .login:focus{
-       outline:none;
+    outline:none;
 }
 .browse-result-list{
-       list-style:none;
+    list-style:none;
 }
 .not_active_pill{
-       border: 2px solid #007bff;
+    border: 2px solid #007bff;
     padding: 6px;
     margin: 0 10px;
 }
 
 .mini-control{
-       max-width: 100px !important;
+    max-width: 100px !important;
 }
 
 .card-body:empty{
-       display:none;
+    display:none;
 }
 .min{
  min-height:500px;
 }
 .container{
-       
+
 }
 html{
-       height:100%;
+    height:100%;
     min-height: 100vh;
 }
 body {
@@ -416,18 +416,29 @@ a {
     color: [% css_colors.link %];
 }
 
+#search-wrapper h1,
+#search-wrapper h2 {
+    text-align: center;
+}
+
 #search-wrapper input[type=text] {
+    height: calc(1.8125rem + 2px);
     margin:0;
     padding:0;
 }
 
 #search-wrapper select, .results_header_lbl select {
     border:1px solid [% css_colors.border_standard %];
+    height: calc(1.8125rem + 2px);
     margin:0;
     padding:0;
     width: 12em;
 }
 
+.search-check {
+    text-align: center;
+}
+
 .searchbar {
     font-weight: bold;
     padding-top: 10px;
@@ -455,6 +466,10 @@ a {
 }
 */
 
+#actions .btn-action {
+    text-align: left;
+}
+
 #adv_numeric_block{
     max-width: 600px;
 }
@@ -518,10 +533,10 @@ div.select-box-wrapper {
 }
 
 
-/*  
+/*
 #dash_fines { color: [% css_colors.text_badnews %]; }
 the color contrast between "text_badnews" and "primary"
-is too low for WCAG compliance.  Use "text_attention" 
+is too low for WCAG compliance.  Use "text_attention"
 for now until a better color is picked - if needed.
 */
 
@@ -547,7 +562,7 @@ for now until a better color is picked - if needed.
 }
 
 #header-wrap {
-       /* border-bottom: 5px solid [% css_colors.nav_separation %]; */
+    /* border-bottom: 5px solid [% css_colors.nav_separation %]; */
     background-color: [% css_colors.header_primary_fade %];
     background-image: -moz-linear-gradient([% css_colors.header_primary %], [% css_colors.header_primary_fade %]);
     background-image: -o-linear-gradient([% css_colors.header_primary %], [% css_colors.header_primary_fade %]);
@@ -576,7 +591,7 @@ for now until a better color is picked - if needed.
     font-weight: bold;
     position: relative;
     top:4px;
-    
+
 }
 
 #header-links a {
@@ -652,6 +667,10 @@ for now until a better color is picked - if needed.
     height:0px;
 }
 
+.search_box_wrapper {
+    padding-left: 1rem;
+}
+
 #search-wrapper {
     /*border-bottom: 1px solid [% css_colors.border_standard %];*/
     padding-bottom: 5px;
@@ -700,7 +719,7 @@ for now until a better color is picked - if needed.
     padding-bottom: 10px;
 }
 
-#adv_search_tabs, #acct_tabs, #acct_fines_tabs, #acct_checked_tabs, #acct_holds_tabs, #acct_prefs_tabs, #results_header_inner{
+#adv_search_tabs, #acct_tabs, #acct_fines_tabs, #acct_checked_tabs, #acct_holds_tabs, #acct_prefs_tabs {
     [% IF rtl == 't' -%]
     margin-right:2px;
     [%- ELSE %]
@@ -1030,7 +1049,7 @@ div.format_icon {
     [%- END %]
 }
 
-#rdetails_status td[headers=copy_header_library], 
+#rdetails_status td[headers=copy_header_library],
 #rdetails_status td[headers=copy_header_shelfloc] {
     white-space: normal;
 }
@@ -1137,6 +1156,10 @@ div.format_icon {
     background-color: [% css_colors.background %];
 }
 
+#cartDropdown .dropdown-menu {
+
+}
+
 #content-wrapper {
     background-color: [% css_colors.background %];
     height: auto;
@@ -1161,7 +1184,7 @@ div.format_icon {
     padding-left: 0px;
     [%- END %]
     margin: 0 1em;
-    clear: both;   
+    clear: both;
 }
 
 #main-content-after-bar {
@@ -1174,13 +1197,17 @@ div.format_icon {
     [%- END %]
 }
 
+#results_header_inner {
+    padding-bottom: 1rem;
+}
+
 #results-side-bar {
     [% IF rtl == 't' -%]
-    float: right; 
+    float: right;
     margin-left: 5px;
     [%- ELSE %]
     float: left;
-    margin-right: 5px; 
+    margin-right: 5px;
     [%- END %]
     width: 174px;
     background-color: [% css_colors.background %];
@@ -1313,6 +1340,9 @@ collapse correctly when the window width decreases */
 }
 
 
+.results_header_nav1 {
+    text-align: center;
+}
 
 .results_header_nav1 .h1 {
     font-size: [% css_fonts.size_bigger %];
@@ -1385,7 +1415,7 @@ tr.result_table_row > td.result_table_pic_header {
     [% ELSE; %]
     float: right;
     margin-right: 5em;
-    [% END; %]
+    [% END %]
 }
 #record_basket_icon {
     [% IF rtl == 't' -%]
@@ -1394,7 +1424,7 @@ tr.result_table_row > td.result_table_pic_header {
     [% ELSE; %]
     float: right;
     margin-right: 2em;
-    [% END; %]
+    [% END %]
     position: relative;
 }
 #record_basket_count_floater {
@@ -1411,11 +1441,7 @@ tr.result_table_row > td.result_table_pic_header {
     text-decoration: none;
 }
 #basket_actions {
-    [% IF rtl == 't' -%]
-    float: left;
-    [% ELSE; %]
-    float: right;
-    [% END; %]
+    margin: .5rem;
 }
 #basket_actions select {
     border-color: rgb(169, 169, 169);
@@ -1523,7 +1549,7 @@ div.result_table_utils_cont {
 
 #myopac_holds_main_table td {
     border: 1px solid [% css_colors.border_dark %];
-    
+
 }
 
 .myopac-hold-available {
@@ -1697,7 +1723,7 @@ div.result_table_utils_cont {
     [% ELSE -%]
     padding-left: .5em;
     [% END -%]
-   
+
 }
 
 /* div for the payment buttons with the total */
@@ -1754,7 +1780,7 @@ div.result_table_utils_cont {
 }
 
 #fines_payments_wrapper {
-    padding-left: 5px; 
+    padding-left: 5px;
     padding-right: 5px;
 }
 
@@ -1794,6 +1820,13 @@ div.result_table_utils_cont {
 #adv_search_parent {
     margin-bottom:0px;
 }
+
+#search-wrapper #search-submit-go,
+#search-wrapper #search-submit-go-depth {
+    display: inline-block;
+    margin-top: 1.3rem;
+}
+
 #search-submit-spinner {
     height: 16px;
     width: 16px;
@@ -1961,10 +1994,10 @@ div#facet_sidebar {
     padding-top:6px;
 }
 
-/* in this context, where h4 is primarily for structure, 
+/* in this context, where h4 is primarily for structure,
    avoid the normal large font and margin for h4's */
 .facet_box_temp h4 {
-    font-size : 100%; 
+    font-size : 100%;
     margin: 0px;
 }
 
@@ -2046,7 +2079,7 @@ div#facet_sidebar {
 }
 
 #footer-wrap {
-       /* border-top: 5px solid [% css_colors.nav_separation %]; */
+    /* border-top: 5px solid [% css_colors.nav_separation %]; */
     background-color: [% css_colors.footer_primary %];
     background-image: -moz-linear-gradient([% css_colors.footer_primary_fade %], [% css_colors.footer_primary %]);
     background-image: -o-linear-gradient([% css_colors.footer_primary_fade %], [% css_colors.footer_primary %]);
@@ -2067,10 +2100,15 @@ div#facet_sidebar {
     font-size: [% css_fonts.size_small %];
 }
 
+#footer .navbar-nav {
+    justify-content: center;
+}
 
 #copyright_text, #footer_logo {
     color: [% css_colors.footer_link %];
-    font-size: [% css_fonts.size_bigger %];
+    font-size: [% css_fonts.size_small %];
+    margin: 5px 0;
+    text-align: center;
 }
 
 .color_4 {
@@ -2212,12 +2250,6 @@ a.dash-link:hover { text-decoration: underline !important; }
 }
 #adv_expert_row label { font-weight: bold; }
 
-.bookshelf tr.browse_border td {
-    border-bottom: 1px dashed [% css_colors.accent_dark %];
-    font-size: 1px;
-    height: 1px;
-    padding-bottom: 1ex;
-}
 .cn_browse_item { padding: 2ex; }
 .results-paginator-list {
     [% IF rtl == 't' -%]
@@ -2231,7 +2263,7 @@ a.dash-link:hover { text-decoration: underline !important; }
 .unread-patron-message { font-weight: bold; }
 
 #hold-items-list td { padding: 5px; margin-bottom: 20px; }
-.hold-items-list-title { 
+.hold-items-list-title {
   font-size: [% css_fonts.size_bigger %];
   margin-bottom: 20px;
 }
@@ -2239,17 +2271,17 @@ a.dash-link:hover { text-decoration: underline !important; }
 
 .hold_success_links > span { margin: 0 2em; }
 
-.radio-parts-selection { 
+.radio-parts-selection {
    width: 75%;
    margin-bottom: 20px;
 }
 
-.parts-radio-option { 
+.parts-radio-option {
   display: inline-block;
   width:15em;
 }
 
-.mr_holds_no_formats { 
+.mr_holds_no_formats {
   [% IF rtl == 't' -%]
   margin-right: 25px;
   [% ELSE -%]
@@ -2258,10 +2290,10 @@ a.dash-link:hover { text-decoration: underline !important; }
   padding: 5px;
   font-size: 110%;
   font-weight: bold;
-  color: [% css_colors.text_invert %]; 
+  color: [% css_colors.text_invert %];
   background-color: [% css_colors.primary %];
 }
+
 .holds_item_row_separator td {
   border-top: 2px dashed [% css_colors.accent_medium %];
 }
@@ -2284,7 +2316,7 @@ a.dash-link:hover { text-decoration: underline !important; }
 .opac-multiline-button > a,
 .opac-button, .results_header_btns a, #simple-detail-view-links a, .dash_account_buttons a {
     color: [% css_colors.button_text %];
-    font-weight: bold; 
+    font-weight: bold;
     text-decoration: none;
     cursor: pointer !important;
     border-radius: 5px;
@@ -2606,6 +2638,7 @@ table.bookbag-specific {
     height: 15px;
 }
 .opac-alert { color: [% css_colors.text_alert %]; }
+
 .float-left {
     [% IF rtl == 't' -%]
     float: right;
@@ -2765,7 +2798,7 @@ a.preflib_change {
     padding: 3px 5px;
 }
 .popmenu li ul {
-    display: none; 
+    display: none;
     width: 10em; /* Width to help Opera out */
     background-color: [% css_colors.primary %];
 }
@@ -2782,38 +2815,38 @@ a.preflib_change {
     float: none;
 }
 .popmenu li:hover li a {
-    background-color: [% css_colors.primary %]; 
+    background-color: [% css_colors.primary %];
     color: [% css_colors.accent_ultralight %];
 }
 .popmenu li li a:hover {
-    background-color: [% css_colors.accent_ultralight %]; 
+    background-color: [% css_colors.accent_ultralight %];
     color: [% css_colors.primary %];
 }
 /* Styles for the basket entry. */
 .popmenu li:hover li[class~="temporary"] a {
-    background-color: [% css_colors.primary %]; 
+    background-color: [% css_colors.primary %];
     color: [% css_colors.accent_ultralight %];
 }
 .popmenu li li[class~="temporary"] a:hover {
-    background-color: [% css_colors.accent_ultralight %]; 
+    background-color: [% css_colors.accent_ultralight %];
     color: [% css_colors.primary %];
 }
 /* Styles for the default list entry. */
 .popmenu li:hover li[class~="default"] a {
-    background-color: [% css_colors.primary %]; 
+    background-color: [% css_colors.primary %];
     color: [% css_colors.accent_ultralight %];
 }
 .popmenu li li[class~="default"] a:hover {
-    background-color: [% css_colors.accent_ultralight %]; 
+    background-color: [% css_colors.accent_ultralight %];
     color: [% css_colors.primary %];
 }
 /* Styles for the new list entry. */
 .popmenu li:hover li[class~="new"] a {
-    background-color: [% css_colors.primary %]; 
+    background-color: [% css_colors.primary %];
     color: [% css_colors.accent_ultralight %];
 }
 .popmenu li li[class~="new"] a:hover {
-    background-color: [% css_colors.accent_ultralight %]; 
+    background-color: [% css_colors.accent_ultralight %];
     color: [% css_colors.primary %];
 }
 /* Style to add a divider on the menu. */
@@ -2822,7 +2855,7 @@ a.preflib_change {
     border-bottom-color: [% css_colors.border_dark %];
     border-bottom-style: solid;
 }
-    
+
 
 
 
@@ -2841,7 +2874,7 @@ a.preflib_change {
 .password_message {
     padding-top: 1em;
     padding-bottom: 0.5em;
-       font-style: italic;
+    font-style: italic;
 }
 
 #maintenance_message {
@@ -2915,9 +2948,9 @@ a.preflib_change {
     font-size: [% css_fonts.size_bigger %];
 }
 
-#main-content-register table { 
-    padding: 20px; 
-    margin-top: 18px; 
+#main-content-register table {
+    padding: 20px;
+    margin-top: 18px;
     border-collapse: collapse;
 }
 
@@ -2999,18 +3032,35 @@ a.preflib_change {
     white-space: pre-wrap;
 }
 
+#browse-controls {
+    text-align: center;
+}
+
+.browse-pager-spinner {
+    display: inline-block;
+    height: 16px;
+    width: 16px;
+}
+
 @media only screen and (min-width: 992px) {
-       .nav-fr{
-       float: right;
+    .nav-fr{
+        float: right;
     }
     .nav-fl{
-       float: left;
+        float: left;
     }
     #nav-divide{
-       display:none !important;
+        display:none !important;
+    }
+}
+
+@media only screen and (max-width: 767px) {
+    .search_box_wrapper {
+        padding-left: 0;
     }
     
 }
+
 @media only screen and (max-width: 800px) {
     .adv_options{
         width: 100% !important;
@@ -3064,7 +3114,7 @@ a.preflib_change {
     #topnav_logo img {
         width: 200px;
     }
+
     #gold-links-holder {
         display: none;
     }
@@ -3224,7 +3274,7 @@ a.preflib_change {
         float:left;
         [% END -%]
     }
-   
+
     #holds_box form blockquote {
         [% IF rtl == 't' -%]
         margin-right: 10px;
@@ -3303,24 +3353,24 @@ a.preflib_change {
         display: block;
     }
     #main-content {
-        margin: 0 1px;        
+        margin: 0 1px;
     }
     #rdetails_status thead {
         display: none;
     }
     #rdetails_status tr {
-       display: block;
-       margin-top: 3px;
+    display: block;
+    margin-top: 3px;
     }
     #rdetails_status td {
-       display: block;
-       padding: 1px;
+    display: block;
+    padding: 1px;
     }
     .copy_details_row {
-       background-color: [% css_colors.accent_lightest %];
+    background-color: [% css_colors.accent_lightest %];
     }
     .copy_details_offers_row {
-       background-color: [% css_colors.accent_lightest %];
+    background-color: [% css_colors.accent_lightest %];
     }
     select#pickup_lib.search-wrapper-locg {
         width: 100%;
@@ -3352,8 +3402,8 @@ a.preflib_change {
     #adv_search_parent {
         font-size: [% css_fonts.size_smaller %];
     }
-    #adv_search_filters {                                                                                                                             
-        position: relative;                                                                                                                           
+    #adv_search_filters {
+        position: relative;
         width: 300px;
     }
     #format_actions {
@@ -3387,51 +3437,51 @@ a.preflib_change {
     }
     .search_catalog_lbl {
         [% IF rtl == 't' -%]
-       margin-right: 0;
+    margin-right: 0;
         [% ELSE -%]
-       margin-left: 0;
+    margin-left: 0;
         [% END -%]
-       white-space: nowrap;
+    white-space: nowrap;
     }
-    .adv_search_catalog_lbl { 
+    .adv_search_catalog_lbl {
         margin-top: 0;
-       white-space: nowrap;
+    white-space: nowrap;
     }
     .browse_the_catalog_lbl {
         white-space: nowrap;
     }
     .mobile_hide {
-       display: none;
-    } 
+    display: none;
+    }
     #dash_user {
         display: block;
-        padding: 0.5em;    
+        padding: 0.5em;
         font-size: 18px;
         text-align: center;
     }
     .dash_divider {
-       display: none;
+    display: none;
     }
     .dash_account_buttons {
         display: block;
-    } 
+    }
     .searchbar { line-height: 1.5em; }
     #browse-controls { line-height: 1.5em; }
     #search_query_label, #search_qtype_label, #search_itype_label, #search_locg_label {
         display: block;
     }
     .bookshelf td {
-       display: block;
-       width: 100%;
+    display: block;
+    width: 100%;
     }
     .bookshelf table thead tr {
-       display: block;
+    display: block;
     }
     #lowhits_help { width: inherit; }
-    #adv_search_tabs a{                                                                                                                           
+    #adv_search_tabs a{
         font-size: [% css_fonts.size_small %];
         margin: 2px 2px 0px 2px;
-        padding: 2px 2px 5px 2px; 
+        padding: 2px 2px 5px 2px;
         [% IF rtl == 't' -%]
         border-radius: 7px 0px 0px 7px;
         [% ELSE -%]
@@ -3476,7 +3526,7 @@ a.preflib_change {
            here. */
 
         table#ebook_circs_main_table tr, table#ebook_holds_main_table tr { border-top: 25px solid #fff; }
-               table#acct_holds_hist_header tr{ border-top: 2px solid #bbb; }
+        table#acct_holds_hist_header tr{ border-top: 2px solid #bbb; }
 
         table#acct_checked_main_header td, table#acct_holds_main_header td, table#acct_checked_hist_header td, table#acct_holds_hist_header td, table#ebook_circs_main_table td, table#ebook_holds_main_table td {
                 /* Behave  like a "row" */
@@ -3561,27 +3611,27 @@ a.preflib_change {
 }
 
 
-/* 
+/*
 For text which is visible only to screen readers.
-Borrowed from http://getbootstrap.com/css/#helper-classes-screen-readers 
+Borrowed from http://getbootstrap.com/css/#helper-classes-screen-readers
 See also http://webaim.org/techniques/css/invisiblecontent/
 */
-.sr-only {                                                                     
-    position: absolute;                                                          
-    width: 1px;                                                                  
-    height: 1px;                                                                 
-    padding: 0;                                                                  
-    margin: -1px;                                                                
-    overflow: hidden;                                                            
-    clip: rect(0, 0, 0, 0);                                                      
-    border: 0;                                                                   
+.sr-only {
+    position: absolute;
+    width: 1px;
+    height: 1px;
+    padding: 0;
+    margin: -1px;
+    overflow: hidden;
+    clip: rect(0, 0, 0, 0);
+    border: 0;
 }
 
 /* Make added rows in Expert Search have bold labels like the initial row */
 label[for*=expert_]
 {
     font-weight: bold;
-}  
+}
 
 .sort_deemphasize {
     font-weight: lighter;
@@ -3595,7 +3645,7 @@ label[for*=expert_]
 
 #clear-history-confirm {
   font-weight: bold;
-  color: [% css_colors.text_badnews %]; 
+  color: [% css_colors.text_badnews %];
   padding: 10px;
 }
 
@@ -3720,10 +3770,10 @@ label[for*=expert_]
 
 /*
 #acct_checked_main_header td, #acct_holds_main_header td, #acct_fines_main_header td, #acct_fines_confirm_header td, #acct_fees_main_header td,#acct_checked_hist_header td, #acct_holds_hist_header td, #acct_list_header td, #acct_list_header_anon td, #temp_list_holds td, #acct_messages_main_header td, #ebook_circs_main_table td, #ebook_holds_main_table td {
-    background-color: [% css_colors.background %]; 
+    background-color: [% css_colors.background %];
     padding: 10px;
-        border: 1px solid #d3d3d3; 
-} 
+     border: 1px solid #d3d3d3;
+}
 
 #acct_checked_main_header th, #acct_holds_main_header th, #acct_fines_main_header th, #acct_fines_confirm_header th, #acct_fees_main_header th, #acct_checked_hist_header th, #acct_holds_hist_header th, #acct_list_header th, #acct_list_header_anon th, #temp_list_holds th, #acct_messages_main_header th, #ebook_holds_main_table th {
     [% IF rtl == 't' -%]
@@ -3799,6 +3849,7 @@ label[for*=expert_]
 
 .search-filter{
     display: inline;
+    white-space: nowrap;
 }
 
 
@@ -3810,7 +3861,7 @@ label[for*=expert_]
 
 
 #homeLogo{
-    filter: alpha(opacity=50); 
+    filter: alpha(opacity=50);
     background-color: #fff; /* Used if the image is unavailable */
     height: 500px; /* You must set a specified height */
     background-position: center; /* Center the image */
@@ -3824,6 +3875,10 @@ label[for*=expert_]
     color: #fff !important;
 }
 
+.nav-link.active {
+    color: #000;
+}
+
 .pref_table{
     margin: 10px;
 }
@@ -3845,6 +3900,9 @@ label[for*=expert_]
     background-color: [% css_colors.facets_back %];
     color: [% css_colors.facets_text %];
 }
+.facet_box_wrapper .card-body {
+    padding: .5rem;
+}
 
 .vertMid {
     position: relative;
@@ -3856,15 +3914,74 @@ label[for*=expert_]
     margin-right:5px;
 }
 
+.my_nav .active{
+     background-color: #c8ffaf;
+}
+
+.my_nav a {
+    text-align:left !important;
+    border-radius: 0;
+}
+
+.my_nav .dropdown {
+    display: block;
+    width: 100%;
+}
+
+.my_nav .dropdown button {
+    border-radius: 0;
+}
+
 .my_nav .dropdown-toggle::after{
-    margin: 5px 0px !important;
     float: right;
+    margin: 5px 0 0 5px;
+}
+
+.dropdown-item:active {
+    background-color: #EDFFCC;
 }
 
 .my_nav .fas, .mynav .far{
     min-width:20px;
 }
 
-.adv_options{
+.adv_options {
     width: 50%;
-}
\ No newline at end of file
+}
+
+.page-link {
+    color: [% css_colors.link %];
+}
+
+.page-item.active .page-link {
+    background-color: [% css_colors.link %];
+    border-color: [% css_colors.link %];
+}
+
+.btn-outline-primary {
+    border-color: [% css_colors.link %];
+    color: [% css_colors.link %];
+}
+
+.btn-outline-primary:hover {
+    color: [% css_colors.button_confirm_text %];
+    background-color: [% css_colors.button_confirm_hover %];
+    border-color: [% css_colors.button_confirm_border_hover %];
+}
+
+#rdetail_extras_div .card-header {
+    background-color: #007a54;
+}
+
+#rdetail_extras_div .card-header  a {
+    color: #FFF
+}
+
+#record_actions .btn {
+    text-align: left;
+}
+
+.alert-danger a:link,
+.alert-danger a:visited {
+    color: #424fa6;
+}
index 4d15d07..add822b 100755 (executable)
@@ -5,7 +5,7 @@
     ctx.page_title = l("Home") %]
     <h2 class="sr-only">[% l('Catalog Home') %]</h2>
     [% INCLUDE "opac/parts/searchbar.tt2" is_home_page=1 %]
-  
+
             [% INCLUDE "opac/parts/homesearch.tt2" %]
-        
+
 [%- END %]
index 0e82edf..eeea74b 100755 (executable)
@@ -11,7 +11,7 @@
         <div id="main-content">
             <h3 class="sr-only">[% l('Account Login Form') %]</h3>
             [% INCLUDE "opac/parts/login/form.tt2" %]
-            <div class="clear-both very-big-height"></div>     
+            <div class="clear-both very-big-height"></div>
         </div>
     </div>
 [%- END %]
index a03c7cb..c3b9a82 100755 (executable)
@@ -14,9 +14,9 @@
                     INCLUDE "opac/parts/anon_list.tt2";
                 ELSE %]
                 <div class="warning_box"><h2>[% l("The basket is empty."); %]</h2></div>
-                <button type="button" class="btn btn-confirm" onclick="window.location='[% ctx.referer | html %]'"><i class="fas fa-arrow-alt-circle-left"></i> [% l('Return') %]</button>
+                <button type="button" class="btn btn-confirm" onclick="window.location='[% ctx.referer | html %]'"><i class="fas fa-arrow-alt-circle-left" aria-hidden="true"></i> [% l('Return') %]</button>
                 [% END %]
         </div>
     </div>
-    
+
 [%- END %]
index 793581c..538268f 100755 (executable)
@@ -3,7 +3,7 @@
     WRAPPER "opac/parts/base.tt2";
     INCLUDE "opac/parts/topnav.tt2";
     ctx.page_title = l("Confirm Clearing of Basket") %]
-    
+
     [% INCLUDE "opac/parts/searchbar.tt2" %]
 <div class="container">
   <hr>
@@ -11,9 +11,9 @@
   <p class="big-strong">[% l('Please confirm that you want to remove all [_1] titles from the basket.', ctx.mylist.size) %]
     <form method="post" action="[% mkurl(ctx.opac_root _ '/cache/clear', {}, 1) %]">
       <input type="hidden" name="redirect_to" value="[% ctx.referer %]" />
-      <button id="print_cart_submit" type="submit" 
-        value="[% l('Confirm') %]"  class="btn btn-confirm"><i class="fas fa-check"></i> [% l('Confirm') %]</button>
-      <button type="reset" onclick="window.location='[% ctx.referer | html %]'" id="clear_basket_cancel" class="btn btn-deny"><i class="far fa-times-circle"></i> [% l('Cancel') %]</button>
+      <button id="print_cart_submit" type="submit"
+        value="[% l('Confirm') %]"  class="btn btn-confirm"><i class="fas fa-check" aria-hidden="true"></i> [% l('Confirm') %]</button>
+      <button type="reset" onclick="window.location='[% ctx.referer | html %]'" id="clear_basket_cancel" class="btn btn-deny"><i class="fas fa-times-circle" aria-hidden="true"></i> [% l('Cancel') %]</button>
     </form>
 </div>
 [%- END %]
index ab47de1..0a9d302 100755 (executable)
@@ -3,7 +3,7 @@
     WRAPPER "opac/parts/base.tt2";
     INCLUDE "opac/parts/topnav.tt2";
     ctx.page_title = l("Confirm Basket Email") %]
-   
+
 [% INCLUDE "opac/parts/searchbar.tt2" %]
 <div class="container top-divide">
   [% IF ctx.mylist.size %]
           </label>
         </div>
         <br />
-        <button id="print_cart_submit" type="submit" 
-          value="[% l('Confirm') %]" class="btn btn-confirm"><i class="fas fa-envelope-open-text"></i> [% l('Email') %]</button>
-        <button type="reset" onclick="window.location='[% ctx.referer | html %]'"  id="clear_basket_cancel" class="btn btn-deny"><i class="far fa-times-circle"></i> [% l('Cancel') %]</button>
+        <button id="print_cart_submit" type="submit"
+          value="[% l('Confirm') %]" class="btn btn-confirm"><i class="fas fa-envelope-open-text" aria-hidden="true"></i> [% l('Email') %]</button>
+        <button type="reset" onclick="window.location='[% ctx.referer | html %]'"  id="clear_basket_cancel" class="btn btn-deny"><i class="fas fa-times-circle" aria-hidden="true"></i> [% l('Cancel') %]</button>
     </form>
   [% ELSE %]
     <div class="warning_box">[% l("The basket is empty."); %]</div>
-    <button type="button" class="btn btn-confirm" onclick="window.location='[% ctx.referer | html %]'"><i class="fas fa-undo-alt"></i> [% l('Return') %]</button>
+    <button type="button" class="btn btn-confirm" onclick="window.location='[% ctx.referer | html %]'"><i class="fas fa-undo-alt" aria-hidden="true"></i> [% l('Return') %]</button>
   [% END %]
 </div>
 [%- END %]
index 0958dff..5b32867 100755 (executable)
@@ -4,7 +4,7 @@
     INCLUDE "opac/parts/topnav.tt2";
     ctx.page_title = l("Confirm Basket Printing") %]
     [% INCLUDE "opac/parts/searchbar.tt2" %]
-   
+
 <div class="container">
   [% IF ctx.mylist.size %]
   <h3>[% l('Confirm Basket Printing') %]</h3>
         </label>
       </div>
       <br />
-      <button id="print_cart_submit" type="submit" class="btn btn-confirm"><i class="fas fa-print"></i> [% l("Print") %]</button>
-      <button type="reset" name="cancel" onclick="window.location='[% ctx.referer | html %]'"  id="clear_basket_cancel" class="btn btn-deny"><i class="far fa-times-circle"></i> [% l('Cancel') %]</button>
+      <button id="print_cart_submit" type="submit" class="btn btn-confirm"><i class="fas fa-print" aria-hidden="true"></i> [% l("Print") %]</button>
+      <button type="reset" name="cancel" onclick="window.location='[% ctx.referer | html %]'"  id="clear_basket_cancel" class="btn btn-deny"><i class="fas fa-times-circle" aria-hidden="true"></i> [% l('Cancel') %]</button>
     </form>
   [% ELSE %]
     <div class="warning_box"><h3>[% l("The basket is empty."); %]</h3></div>
-    <button type="button" class="btn btn-confirm" onclick="window.location='[% ctx.referer | html %]'"><i class="fas fa-undo-alt"></i> [% l('Return') %]</button>
+    <button type="button" class="btn btn-confirm" onclick="window.location='[% ctx.referer | html %]'"><i class="fas fa-undo-alt" aria-hidden="true"></i> [% l('Return') %]</button>
   [% END %]
 </div>
 [%- END %]
index 65b92b7..0ad3f8a 100755 (executable)
     END;
     %]
 <div>
-   
+
 
     [% IF ctx.circs.size < 1 %]
     <div class="warning_box">[% l('There are no items in your circulation history.') %]</div>
     [% ELSE %]
 
         <form method="post" id="circ-form">
-            
+
         <div class="row">
         <div class="col-3 text-left">[% IF offset != 0 %]<a href='[% mkurl('circ_history', {limit => limit, offset => (offset - limit)}) %]'
                  class="btn btn-action mr-3" ><span class="nav_arrow_fix">&#9668;</span>[% l('Previous') %]</a>[% END %]
-                 <button name="action" class="btn btn-danger my-2" id="delete" value="delete" type="submit" onclick="return confirm('[% l("Are you sure you wish to delete the selected item(s)?") %]');">
-            <i class="fas fa-trash-alt"></i> Delete Selected</button>
+                 <button name="action" class="btn btn-deny my-2" id="delete" value="delete" type="submit" onclick="return confirm('[% l("Are you sure you wish to delete the selected item(s)?") %]');">
+            <i class="fas fa-trash-alt" aria-hidden="true"></i> Delete Selected</button>
             </div>
         <div class="col-6 text-center"></div>
         <div class="col-3 text-right">[% IF !no_next %]<a href='[% mkurl('circ_history', {limit => limit, offset => (offset + limit)}) %]'
     </div>
     <div id='checked_main'>
      <div class="d-block d-md-none">
-          
+
 
             <input id="check_all_circ_hist" checked="checked" type="checkbox" onclick="var inputs=document.getElementsByTagName('input'); for (i = 0; i < inputs.length; i++) { if (inputs[i].name == 'circ_id' && !inputs[i].disabled) inputs[i].checked = this.checked;}"/>
 
-            <label for="check_all_circ_hist">[% l('Check/Uncheck All') %]</label>  
-        </div>       
+            <label for="check_all_circ_hist">[% l('Check/Uncheck All') %]</label>
+        </div>
         <table title="[% l('History of Items Checked Out') %]" id="acct_checked_hist_header" class="table table-hover table-bordered miniTable circHistTable my-3">
             <thead>
                 <tr>
                                     date.format(ctx.parse_datetime(circ.circ.checkin_time),DATE_FORMAT);
                                 ELSE; %]
                                 <span style='color:blue;'>Not Returned</span><!-- meh -->
-                            [% END; %]
+                            [% END %]
                         </td>
                         <td>[% circ.circ.target_copy.barcode | html %]</td>
-                        
+
                     </tr>
                 [% END %]
             </tbody>
                     [%- INCLUDE "opac/parts/preserve_params.tt2" %]
                     [% IF ctx.circs.size > 0 %]
                     <input type="hidden" name="filename" value="[% l('circ_history.csv') %]"/>
-                    <button type="submit" class="btn btn-action"><i class="fas fa-file-download"></i> [% l('Download CSV') %]</button>
+                    <button type="submit" class="btn btn-action"><i class="fas fa-file-download" aria-hidden="true"></i> [% l('Download CSV') %]</button>
                     [% END %]
                 </div>
             </form>
index 5dd46f1..91f8d33 100755 (executable)
@@ -7,9 +7,9 @@
 %]
 <h3>[% l('Current Items Checked Out') %]</h3>
 <div id='myopac_checked_div'>
-       
+
     <div>
-   
+
     [% IF ctx.circs.size < 1 %]
     <div class="warning_box">[% l('You have no items checked out.') %]</div>
     [% ELSE %]
         <div class="d-block d-md-none">
             <input id="check_all_checked_alt" aria-label="[% l('Select All Items') %]" checked="checked" type="checkbox" onclick="var inputs=document.getElementsByTagName('input'); for (i = 0; i < inputs.length; i++) { if (inputs[i].name == 'circ' &amp;&amp; !inputs[i].disabled) inputs[i].checked = this.checked;}"/>
 
-            <label for="check_all_checked">[% l('Check/Uncheck All') %]</label>  
-        </div>       
+            <label for="check_all_checked">[% l('Check/Uncheck All') %]</label>
+        </div>
         <table  id="acct_checked_main_header"  title="[% l('Items Checked Out') %]"
             class="table table-hover table-bordered miniTable circTable">
             <thead>
             <tr>
                 <td class="checkbox_column">
                     <input type="checkbox" id="check_all_checked"
-                        aria-label="[% l('Select All Items') %]" 
+                        aria-label="[% l('Select All Items') %]"
                         onclick="var inputs=document.getElementsByTagName('input'); for (i = 0; i < inputs.length; i++) { if (inputs[i].name == 'circ' &amp;&amp; !inputs[i].disabled) inputs[i].checked = this.checked;}"
                     />
                 </td>
@@ -62,8 +62,8 @@
                 [%# Copy the ctx.circs into a local array, then add a SORT field
                     that contains the value to sort on.  Since we need the item attrs,
                     invoke it and save the result in ATTRS.
-               %]
-               [% 
+        %]
+        [%
                 circ_items = ctx.circs;  # Array assignment
 
                 sort_field = CGI.param('sort');  # unless changed below...
@@ -71,7 +71,7 @@
                 FOR circ IN circ_items;
                     circ.ATTRS = {marc_xml => circ.marc_xml};
                     PROCESS get_marc_attrs args=circ.ATTRS;
-               
+
                     SWITCH sort_field;
 
                        CASE "sort_title";
 
                        CASE "renews";
                           circ.SORTING = circ.circ.renewal_remaining;
-                       
+
                        CASE "due";
                           circ.SORTING = circ.circ.due_date;
-                       
+
                        CASE "barcode";
                           circ.SORTING = circ.circ.target_copy.barcode;
 
@@ -93,7 +93,7 @@
                           circ.SORTING = circ.circ.target_copy.call_number.label;
                         CASE "lib";
                           circ.SORTING = circ.circ.target_copy.call_number.owning_lib.name;
-                       
+
                        CASE;
                           sort_field = "";
                     END; # SWITCH
                 END;
 
                 # Apply sorting to circ_items
-               IF (sort_field);
-                   circ_items = circ_items.sort("SORTING");
+            IF (sort_field);
+            circ_items = circ_items.sort("SORTING");
                     IF (CGI.param("sort_type") == "desc");
                         circ_items = circ_items.reverse;
                     END;
                 END;
 
-               # circ_items list is now sorted.  Traverse and dump the information.
+        # circ_items list is now sorted.  Traverse and dump the information.
 
                 FOR circ IN circ_items; %]
                     <tr>
                             [% 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/' _ 
+                                <a href="[% mkurl(ctx.opac_root _ '/record/' _
                                     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>
                                                 INCLUDE "opac/parts/library_name_link_from_ou.tt2";
                                 %]
                           </td>
-                        [% END; %]
+                        [% END %]
                     </tr>
                     [%  IF circ.renewal_response AND
                             circ.renewal_response.textcode != 'SUCCESS' %]
                                         # the stock hold ratio message may not be patron friendly
                                         renew_fail_msg = l('Item is needed for a hold');
                                     ELSE;
-                                        renew_fail_msg = circ.renewal_response.desc || 
-                                            circ.renewal_response.fail_part || 
+                                        renew_fail_msg = circ.renewal_response.desc ||
+                                            circ.renewal_response.fail_part ||
                                             circ.renewal_response.textcode;
                                     END;
                                     renew_fail_msg | html;
                             </span>
                         </td>
                     </tr>
-                    [% END; %]
+                    [% END %]
 
-                [% END; %]
+                [% END %]
                 </tbody>
             </table>
         </form>
index 175381a..2683099 100755 (executable)
@@ -10,8 +10,8 @@
 %]
 
 <h3>[% l('Holds History') %]</h3>
-<div id='myopac_holds_div'> 
-  
+<div id='myopac_holds_div'>
+
 <div>
     <div>
         <div>   
@@ -20,7 +20,6 @@
 
              [% IF offset > 0 || count > limit; curpage = 0; WHILE curpage * limit < count; IF curpage * limit == offset; %]
                   <span class="np_nav_link classic_link btn btn-action disabled">[% curpage + 1 %]</span>
-
                     [%- ELSE %]
                 <a href='[% mkurl('hold_history', {limit => limit, offset => (curpage * limit)}) %]' class="np_nav_link classic_link btn btn-action">[% curpage + 1 %]</a>
                     [%- END; curpage = curpage + 1; END; END %]
@@ -65,7 +64,7 @@
                     ahr = hold.hold.hold %]
 
                 <tr>
-                   
+
                     <td>
                     <span class="sr-only">Title</span>
                         <div>
index e206819..d8314aa 100755 (executable)
@@ -7,7 +7,7 @@
     parent="holds";
     limit = (ctx.holds_limit.defined) ? ctx.holds_limit : 0;
     offset = (ctx.holds_offset.defined) ? ctx.holds_offset : 0;
-    count = (ctx.holds_ids.size.defined) ? ctx.holds_ids.size : 0; 
+    count = (ctx.holds_ids.size.defined) ? ctx.holds_ids.size : 0;
 %]
 <h3> [%  IF CGI.param("available");
                     l("Items Ready for Pickup");
     <form method="post">
           <div class="row">
             <div class="col-4 text-left">
-                
+
                     <div>
-            <button name="action" class="btn btn-action my-2" id="suspend" value="suspend" type="submit"><i class="fas fa-hand-paper"></i> [% l("Suspend") %]</button>
-            <button name="action" class="btn btn-opac my-2" id="activate" value="activate" type="submit"><i class="fas fa-play"></i> [% l("Activate") %] </button>
-            <button name="action" class="btn btn-danger my-2" id="cancel" value="cancel" type="submit" onclick="return confirm('[% l("Are you sure you wish to cancel the selected hold(s)?") %]');"><i class="fas fa-ban"></i> [% l("Cancel") %]</button>
+            <button name="action" class="btn btn-action my-2" id="suspend" value="suspend" type="submit"><i class="fas fa-hand-paper" aria-hidden="true"></i> [% l("Suspend") %]</button>
+            <button name="action" class="btn btn-opac my-2" id="activate" value="activate" type="submit"><i class="fas fa-play" aria-hidden="true"></i> [% l("Activate") %] </button>
+            <button name="action" class="btn btn-danger my-2" id="cancel" value="cancel" type="submit" onclick="return confirm('[% l("Are you sure you wish to cancel the selected hold(s)?") %]');"><i class="fas fa-ban" aria-hidden="true"></i> [% l("Cancel") %]</button>
                  <p class="my-2">
                     [% IF CGI.param("available") -%]
                     <a href="[% mkurl('holds', {}, ['limit','offset','available']) %]">[% l('Show all holds') %]</a> |
                     <a href="[% mkurl('holds',{available => 1},['limit','offset']) %]">[% l("Show only available holds") %]</a>
                     [% END -%]
                      <span title="This option will show all items available for pickup." data-toggle="tooltip">
-                        <i class="fas fa-question-circle"></i>
+                        <i class="fas fa-question-circle" aria-hidden="true"></i>
                     </span>
                </p>
-                
-          </div>       
+
+          </div>
             </div>
             <div class="col-8">
              [% IF offset != 0 %]<a href='[% mkurl('holds', {limit => limit,offset => (offset - limit)}) %]'
                 <span style="padding-left:5px;" class='error'>
                     [%  IF ctx.hold_suspend_post_capture; l('One or more holds could not be suspended because the item is at (or en route to) the pickup library.'); END; %]
                 </span>
-            
-              
+
+
                 [% IF count > limit + offset %]<a href='[% mkurl('holds', {limit => limit, offset => (offset + limit)}) %]'
                   ><span class="np_nav_link classic_link btn btn-action">[% l('Next') %]&#9658;</span></a>[% END %]
-           
-              
+
+
             </div>
 
-            
+
           </div>
-            
+
         [% IF ctx.holds.size && ctx.holds.size < 1 %]
         <div class="warning_box">[% l('No holds found.') %]</div>
         [% ELSE %]
         <div class="d-block d-md-none">
             <input id="check_all_holds" aria-label="[% l('Select All Items') %]" checked="checked" type="checkbox" onclick="var inputs=document.getElementsByTagName('input'); for (i = 0; i < inputs.length; i++) { if (inputs[i].name == 'hold_id' &amp;&amp; !inputs[i].disabled) inputs[i].checked = this.checked;}"/>
 
-            <label for="check_all_holds">[% l('Check/Uncheck All') %]</label>  
-        </div> 
+            <label for="check_all_holds">[% l('Check/Uncheck All') %]</label>
+        </div>
         <table title="[% l('Items on Hold') %]"
         class="table table-hover table-bordered miniTable activeHoldstable w-100 my-3">
             <thead>
             <tr>
-                <td class="checkCell"> 
+                <td class="checkCell">
                     <input type="checkbox" aria-label="[% l('Select All Holds') %]"
                       onclick="var inputs=document.getElementsByTagName('input'); for (i = 0; i < inputs.length; i++) { if (inputs[i].name == 'hold_id' &amp;&amp; !inputs[i].disabled) inputs[i].checked = this.checked;}"/>
                 </td>
@@ -95,8 +95,8 @@
                 [%# Copy the ctx.holds into a local array, then add a SORT field
                     that contains the value to sort on.  Since we need the item attrs,
                     invoke it and save the result in ATTRS.
-               %]
-               [% 
+        %]
+        [%
                 hold_items = ctx.holds;
 
                 sort_field = CGI.param('sort');
 
                        CASE "format";
                           hold.SORTING = hold.ATTRS.format_label;
-                       
+
                        CASE;
                           sort_field = "";
                     END; # SWITCH
                 END;
 
                 # Apply sorting to hold_items
-               IF (sort_field != "");
-                   hold_items = hold_items.sort("SORTING");
+            IF (sort_field != "");
+            hold_items = hold_items.sort("SORTING");
                     IF (CGI.param("sort_type") == "desc");
                         hold_items = hold_items.reverse;
                     END;
 
-                    # Shorten the hold_items list per offset/limit/count 
+                    # Shorten the hold_items list per offset/limit/count
                     hi = offset + limit - 1;
                     hi = hi > hold_items.max ? hold_items.max : hi;
 
                     hold_items = hold_items.slice(offset, hi);
                 END;
 
-               # hold_items list is now sorted.  Traverse and dump the information.
+        # hold_items list is now sorted.  Traverse and dump the information.
                 cnt = 0;
                 FOR hold IN hold_items;
                     ahr = hold.hold.hold;
                     <td class="checkbox_column">
 
                     <span class="sr-only">Hold Number [%  cnt; %]</span>
-                        <input type="checkbox" name="hold_id" value="[% ahr.id %]" 
-                         aria-label="Select Hold"/>
+                        <input type="checkbox" name="hold_id" value="[% ahr.id %]"
+                            [% html_text_attr('title', l('Select hold [_1]', attrs.title)) %]/>
                     </td>
                     <td>
                     <span class="sr-only">Title</span>
                         <div>
                             [% title = hold.ATTRS.title;
                             IF ahr.hold_type == 'P';
-                               title = l('[_1] ([_2])', title, hold.hold.part.label);
+                                title = l('[_1] ([_2])', title, hold.hold.part.label);
                             END; %]
 
-                            <a href="[% mkurl(ctx.opac_root _ '/record/' _ 
+                            <a href="[% mkurl(ctx.opac_root _ '/record/' _
                                 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>
                     <td>
                     <span class="sr-only">Format</span>
                         <div class="format_icon">
-                          [% 
+                          [%
                             formats = hold.ATTRS.all_formats;
                             IF ahr.hold_type == 'M';
                               # only show selected formats for metarecords
                                 formats.push(format);
                               END;
                             END;
-                            FOR format IN formats 
+                            FOR format IN formats
                           %]
                           <span class="sr-only">[% format.label | html %]</span>
-                            <img alt="[% format.label | html %]" src="[% format.icon %][% ctx.cache_key %]" />
+                            <img title="[% format.label | html %]"
+                              alt="[% format.label | html %]" src="[% format.icon %][% ctx.cache_key %]" />
                             [% END %]
                         </div>
                     </td>
                     <td class="fullRow">
                         <a class="btn btn-confirm btn-sm" href="[% mkurl(ctx.opac_root _ '/myopac/holds/edit', {hid => ahr.id}) %]"
                             [% html_text_attr('title', l('Edit hold for item [_1]', attrs.title)) %]>
-                            <i class="fas fa-edit"></i>
+                            <i class="fas fa-edit" aria-hidden="true"></i>
                             [% l('Edit') %]
                         </a>
                     </td>
         </table>
         [% END %]
         </form>
-    </div> 
+    </div>
 </div>
 [% END %]
index a3fd196..e5212e5 100755 (executable)
@@ -27,7 +27,7 @@
         [%  IF hold; title = attrs.title;
                 IF ahr.hold_type == 'P';
                     title = l('[_1] ([_2])', title, hold.hold.part.label);
-                END 
+                END
         %]
         <div class="my-4">
             <h1>[% title | html %]</h1>
                             <input type="hidden" name="hold_id"
                                 value="[% ahr.id %]" />
                             [% l('Pickup library') %]
-                       
+
                             [% INCLUDE build_org_selector
-                                name='pickup_lib' value=ahr.pickup_lib 
+                                name='pickup_lib' value=ahr.pickup_lib
                                 can_have_vols_only=1 hold_pickup_lib=1 %]
             </div>
             <div class="col-12">
             [% IF hold.hold.status < 3 OR hold.hold.status == 7 %]
-                    [%# The following actions cannot be performed on holds that 
+                    [%# The following actions cannot be performed on holds that
                         have already been captured... %]
-                  
+
                             [% l('Cancel unless filled by') %]
-                      
+
                             <div class="input-group date" data-provide="datepicker">
                                 <input type="text" class="form-control" name="expire_time"  value="[% expire_time | html %]" data-date-format="mm/dd/yyyy">
                                 <div class="input-group-addon">
                                     <span class="glyphicon glyphicon-th"></span>
                                 </div>
                             </div>
-                           
-                       
+
+
                             [% l('Active?') %]
-                       
+
                             <select class="form-control" name="frozen">
                                 <option value="f"[% ahr.frozen == 't' ? '' :' selected="selected"' %]>
                                     [% l('Yes, this hold is active now') %]
                                     [% l('No, this hold is suspended') %]
                                 </option>
                             </select>
-                        
+
                             [% l('If suspended, activate on') %]
-                       
+
                          <div class="input-group date" data-provide="datepicker">
                                 <input type="text" class="form-control" name="thaw_date" id="datepicker" value="[% thaw_date | html %]" data-date-format="mm/dd/yyyy">
                                 <div class="input-group-addon">
                                     <span class="glyphicon glyphicon-th"></span>
                                 </div>
                             </div>
-                           
-                       
+
+
                     [% END %]
-                      
+
             </div>
             <div class="col-12">
-               
+
                     [% IF hold.metarecord_filters.formats.size OR
                         (hold.metarecord_filters.langs.size.defined && hold.metarecord_filters.langs.size > 1);
-                            PROCESS metarecord_hold_filters_selector 
+                            PROCESS metarecord_hold_filters_selector
                                 hold_data=hold; END %]
             </div>
              <div class="col-12">
index f12dade..e015684 100755 (executable)
@@ -1,7 +1,7 @@
 [%  PROCESS "opac/parts/header.tt2";
     PROCESS "opac/parts/misc_util.tt2";
     WRAPPER "opac/parts/myopac/base.tt2";
-    myopac_page = "lists/update"  
+    myopac_page = "lists/update"
 %]
 
 <!-- we should never see this page on success -->
     <h3>[% l("Problem with list management:") %]</h3>
       <div>
         [% IF ctx.bucket_action == 'create' %]
-          [% IF ctx.bucket_failure_noname %]         
+          [% IF ctx.bucket_failure_noname %]
             <h4 class="text-danger">[% l('A list name is required') %]</h4>
-          [% END %]   
-        [% END %]   
+          [% END %]
+        [% END %]
       </div>
       <div>
         [% url = ctx.referer;
index c5aed2d..d4dcbdf 100755 (executable)
@@ -1,7 +1,7 @@
 [%  PROCESS "opac/parts/header.tt2";
     PROCESS "opac/parts/misc_util.tt2";
     WRAPPER "opac/parts/myopac/base.tt2";
-    myopac_page = "lists"  
+    myopac_page = "lists"
     limit = ctx.bookbags_limit;
     offset = ctx.bookbags_offset;
     item_page = ctx.bookbags_item_page;
@@ -14,7 +14,7 @@
 
 
 <h3>[% l('My Lists') %]</h3>
-<div id='myopac_bookbag_div' style="padding:5px;">
+<div id='myopac_bookbag_div'>
 
     <!-- new list creation -->
     <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" id="create_form">
@@ -54,7 +54,7 @@
                         <option value="1">[% l('Yes') %]
                     </select>
                     <span title="Allows the list to be shared through a link or RSS." data-toggle="tooltip">
-                        <i class="fas fa-question-circle"></i>
+                        <i class="fas fa-question-circle" aria-hidden="true"></i>
                     </span>
                 </td>
             </tr>
             <tr>
                 <td>&nbsp;</td>
                 <td class="list-create-table-buttons">
-                                    <button type="submit" class="btn btn-confirm"><i class="far fa-plus-square"></i> [% l('Create List') %]</button>
+                                    <button type="submit" class="btn btn-confirm"><i class="fas fa-plus-square" aria-hidden="true"></i> [% l('Create List') %]</button>
 
-                    <button type="reset" class="btn btn-deny" ><i class="fas fa-ban"></i> [% l('Cancel') %]</button>
+                    <button type="reset" class="btn btn-deny" ><i class="fas fa-ban" aria-hidden="true"></i> [% l('Cancel') %]</button>
                 </td>
             </tr>
         </table>
     </form>
 
       [% IF CGI.param('from_basket');  %]
-    <h1>[% l("... from basket") %]</h1>
+    <h3>[% l("... from basket") %]</h3>
     [% INCLUDE "opac/parts/anon_list.tt2" %]
     [% ELSE %]
-    <h1>[% l("My Existing Basket and Lists") %]</h1>
+    <h3>[% l("My Existing Basket and Lists") %]</h3>
     [% INCLUDE "opac/parts/anon_list.tt2" %]
 
     [% IF ctx.bookbags.size %]
                     offset => (offset + (limit * 3))
                 }) %]'>[% ((offset + (limit * 3)) / limit) + 1 %]</a>
             [%- END; -%]
-            [%- IF (ctx.bookbag_count - offset) > limit; -%] 
+            [%- IF (ctx.bookbag_count - offset) > limit; -%]
                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
                     offset => (offset + limit)
                 }) %]'>[% l('Next') %]<span class="nav_arrow_fix">&#9658;</span></a>
                     url = mkurl(baseurl, {}, ['bbid', 'edit_notes', 'sort']);
                     ltitle = l("Hide items in list");
                 END %]
-                <h2 class="bookbag-name"><a title="[% ltitle %]" href="[% url %]">[% bbag.name | html %]</a>[% IF bbag.pub == 't'; %]
+                <h4 class="bookbag-name"><a title="[% ltitle %]" href="[% url %]">[% bbag.name | html %]</a>[% IF bbag.pub == 't'; %]
                 <a target='_blank' href='/opac/extras/feed/bookbag/rss2-full/[% bbag.id %]' aria-label="RSS Feed">
-                <i class="fas fa-rss-square"></i></a>
-                [% END %]</h2>
+                <i class="fas fa-rss-square" aria-hidden="true"></i></a>
+                [% END %]</h4>
                 [% IF bbag.description %]<div class="bookbag-description">[% bbag.description | html %]</div>[% END %]
             </div>
             </td>
-           
+
             <td>
             [% IF ctx.add_rec %]
             <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update', {}, 1) %]" method="post">
                     [% IF ctx.where_from %]
                     <input type="hidden" name="where_from" value="[% ctx.where_from %]" />
                     [% END %]
-                    <button class="fixed btn btn-success btn-sm m-1" type="submit" ><i class="far fa-plus-square"></i> [% l('Add to this list') %]</button>
+                    <button class="fixed btn btn-success btn-sm m-1" type="submit" ><i class="fas fa-plus-square" aria-hidden="true"></i> [% l('Add to this list') %]</button>
                 </div>
             </form>
             [% END %]
                     [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
                     [% IF bbag.pub != 't' %]
                     <input type="hidden" name="action" value="show" />
-                    <button class="class=fixed btn btn-action btn-sm m-1" type="submit" ><i class="fas fa-share-square"></i> [% l('Share') %]</button>
+                    <button class="fixed btn btn-action btn-sm m-1" type="submit" ><i class="fas fa-share-square" aria-hidden="true"></i> [% l('Share') %]</button>
                     [% ELSE %]
                     <input type="hidden" name="action" value="hide" />
-                    <button class="fixed btn btn-secondary btn-sm m-1" type="submit"><i class="fas fa-eye-slash"></i> [% l('Hide') %]</button>
+                    <button class="fixed btn btn-secondary btn-sm m-1" type="submit"><i class="fas fa-eye-slash" aria-hidden="true"></i> [% l('Hide') %]</button>
                     [% END %]
                 </div>
             </form>
-          
+
             <form action="[% mkurl(ctx.opac_root _ '/myopac/list/print') %]" method="post">
                 <div class="bookbag-controls">
                     <input type="hidden" name="list" value="[% bbag.id %]" />
                     <input type="hidden" name="sort" value="[% CGI.param('sort') | html %]" />
                     [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
-                    <button type="submit" class="btn btn-action btn-sm m-1"><i class="fas fa-file-download"></i> [% l('Download CSV') %]</button>
+                    <button type="submit" class="btn btn-action btn-sm m-1"><i class="fas fa-file-download" aria-hidden="true"></i> [% l('Download CSV') %]</button>
                 </div>
             </form>
             [% setting = 'opac.default_list'; %]
                     [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
                     [% IF ctx.user_setting_map.$setting == bbag.id %]
                     <input type="hidden" name="action" value="remove_default" />
-                    <button type="submit" class="btn btn-danger btn-sm m-1"><i class="fas fa-minus-circle"></i> [% l('Remove Default List') %]</button>
+                    <button type="submit" class="btn btn-deny btn-sm m-1"><i class="fas fa-minus-circle" aria-hidden="true"></i> [% l('Remove Default List') %]</button>
                     [% ELSE %]
                     <input type="hidden" name="action" value="make_default" />
-                    <button type="submit" class="btn btn-action btn-sm m-1"><i class="fas fa-th-list"></i> [% l('Make Default List') %]</button>
+                    <button type="submit" class="btn btn-action btn-sm m-1"><i class="fas fa-th-list" aria-hidden="true"></i> [% l('Make Default List') %]</button>
                     [% END %]
                 </div>
             </form>
             [% IF ctx.is_staff %]
             <div class="bookbag-controls">
-                <button 
-                    type="submit" 
+                <button
+                    type="submit"
                     onclick='
-                       var path = 
+                       var path =
                           "oils://remote/xul/server/cat/bucketz39_dialog.xul";
                         window.openDialog(
                             xulG.url_prefix(path),
                             "[% bbag.id %]",
                             xulG
                         )'
-                    value="[% l('Locate Z39.50 Matches') %]" 
-                ><i class="fas fa-external-link-alt"></i></button>
+                    value="[% l('Locate Z39.50 Matches') %]"
+                ><i class="fas fa-external-link-alt" aria-hidden="true"></i></button>
             </div>
             [% END %]
             [% IF bbag.pub == 't'; %]
             <div class="bookbag-controls">
-                
                 <a class="btn btn-sm btn-opac m-1" href='[%-
                     mkurl(
                         ctx.opac_root _ '/results',
                         {page => '0', bookbag => bbag.id, depth => 0, locg => ctx.search_ou},
                         1
                     )
-                -%]'><i class="fas fa-glasses"></i> [% l('View in Catalogue') %]</a>
-             
+                -%]'><i class="fas fa-glasses" aria-hidden="true"></i> [% l('View in Catalogue') %]</a>
+
             </div>
                [% END %]
                  <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" onsubmit="return confirm('[% l('Do you really want to delete this list?') %]')">
                     <input type="hidden" name="list" value="[% bbag.id %]" />
                     <input type="hidden" name="action" value="delete" />
                     [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
-                    <button type="submit" class="btn btn-danger btn-sm m-1"><i class="fas fa-trash-alt"></i> [% l('Delete List') %]</button>
+                    <button type="submit" class="btn btn-deny btn-sm m-1"><i class="fas fa-trash-alt" aria-hidden="true"></i> [% l('Delete List') %]</button>
                 </div>
             </form>
             </td>
             </table>
         </div>
         [% IF CGI.param("bbid") == bbag.id %]
-        
+
         <div>
         <h5 class="text-center my-2">List Items</h5>
         <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" >
                 <button name="action" class="btn btn-action" type="submit" value="del_item">[% l('Remove from list') %]</button>
             </div>
         [% END %]
-    
+
         <div>
          <div class="d-block d-md-none">
-          
 
-            <input id="check_all_list_items" checked="checked" type="checkbox" onclick="var inputs=document.getElementsByTagName('input'); 
-                        for (i = 0; i < inputs.length; i++) { 
-                            if (inputs[i].name == 'selected_item' &amp;&amp; !inputs[i].disabled &amp;&amp; inputs[i].getAttribute('bbag') == [% bbag.id %]) 
+
+            <input id="check_all_list_items" checked="checked" type="checkbox" onclick="var inputs=document.getElementsByTagName('input');
+                        for (i = 0; i < inputs.length; i++) {
+                            if (inputs[i].name == 'selected_item' &amp;&amp; !inputs[i].disabled &amp;&amp; inputs[i].getAttribute('bbag') == [% bbag.id %])
                                 inputs[i].checked = this.checked;}"/>
 
-            <label for="check_all_list_items">[% l('Check/Uncheck All') %]</label>  
-        </div>       
+            <label for="check_all_list_items">[% l('Check/Uncheck All') %]</label>
+        </div>
         <table class="table table-hover miniTable w-100 bookbagTable">
             <thead>
                 <tr>
                     <th class="list_checkbox">
-                    <input type="checkbox" 
-                      onclick="var inputs=document.getElementsByTagName('input'); 
-                        for (i = 0; i < inputs.length; i++) { 
-                            if (inputs[i].name == 'selected_item' &amp;&amp; !inputs[i].disabled &amp;&amp; inputs[i].getAttribute('bbag') == [% bbag.id %]) 
+                    <input type="checkbox"
+                      onclick="var inputs=document.getElementsByTagName('input');
+                        for (i = 0; i < inputs.length; i++) {
+                            if (inputs[i].name == 'selected_item' &amp;&amp; !inputs[i].disabled &amp;&amp; inputs[i].getAttribute('bbag') == [% bbag.id %])
                                 inputs[i].checked = this.checked;}"/>
 
                     </th>
                             -%]">[% attrs.author | html %]</a>
                     </td>
                     <td class="list_entry" data-label="[% l('Local Call Number') %]">
-                        [% 
+                        [%
                             copy = attrs.holdings.0;
                             IF copy;
                                 # only show a relevant call number
                     <td class="save-notes">
                         [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
                         <input type="hidden" name="bbid" value="[% CGI.param('bbid') | html %]" />
-                        <button type="submit" class="btn btn-confirm" ><i class="fas fa-save"></i> [% l('Save Notes') %]</button>
+                        <button type="submit" class="btn btn-confirm" ><i class="fas fa-save" aria-hidden="true"></i> [% l('Save Notes') %]</button>
                     </td>
                 </tr>
                 [% END %]
             </tbody>
         </table>
         </div>
-        
-        
-        
-       
+
+
+
+
         [% IF ctx.bb_page_count > 1; %]
             <div class="header_middle" style="padding-top:7px;">
                 <div class="bbag-navigate-list">[% l('Navigate Selected List ') %]</div>
index deb65ae..2f61dcc 100755 (executable)
                             [% l("E-Items ready for pickup") %] (<span id="acct_sum_ebook_hold_ready_total">-</span>)
                         </a>
                     </div>
-                   
+
                 </div>
-                   
+
         </div>
     </div>
-       [% content %]
+    [% content %]
 </div>
 
 [% END %]
index 8c0da57..7a1e3f6 100755 (executable)
@@ -25,8 +25,8 @@
                 retry_url =  mkurl(ctx.opac_root _ '/myopac/main_payment_form', url_args, 1);
             %]
             <br/>
-            
-             <a href="[% mkurl(ctx.opac_root _ '/myopac/main', {}, 1) %]" class="btn btn-confirm"><i class="fas fa-home"></i> [% l('Account Home') %]</a> 
+
+             <a href="[% mkurl(ctx.opac_root _ '/myopac/main', {}, 1) %]" class="btn btn-confirm"><i class="fas fa-home"></i> [% l('Account Home') %]</a>
              <a href="[% retry_url %]" class="btn btn-confirm"><i class="fas fa-redo"></i> [% l('Try Payment Again') %]</a>
         </p>
     [% ELSE %]
@@ -36,7 +36,7 @@
             FOR p IN ctx.payment_response.payments;
                 print_args.push('payment=' _ p);
             END %]
-               <a href="[% ctx.opac_root %]/myopac/receipt_print?[% print_args.join('&amp;') %]"
+            <a href="[% ctx.opac_root %]/myopac/receipt_print?[% print_args.join('&amp;') %]"
             target="_egrecpt"
             class="btn-confirm btn btn-sm"
             onclick="try { print_node('printable-receipt'); } catch (e) { window.print(); } return false;"><i class="fas fa-print"></i> [% l('Print receipt') %]</a></p>
@@ -45,7 +45,7 @@
             [% ctx.printable_receipt.template_output.data %]
             <br />
         </tt>
-               <hr>
+            <hr>
         [% ELSE %]
         <div class="payment-error">
             [% l(
index 6fa08fc..ea17013 100755 (executable)
@@ -11,7 +11,7 @@
         ctx.use_stripe = 1;
     END %]
 
-<a name="payment"> </a>    
+<a name="payment"> </a>
 <h3 class="sr-only">[% l('Pay Charges') %]</h3>
 [% IF ctx.fines.balance_owed <= 0 %]
 <div>
 <div id="pay_fines_now"[% IF ctx.use_stripe %] class="hide_me"[% END %]>
      [% IF last_chance %]
     <h3>[% l("Confirm Payment") %]</h3>
-    
+
     <form action="[% ctx.opac_root %]/myopac/main_pay_init" method="post">
         [% FOR k IN CGI.Vars;
             NEXT UNLESS k;
             FOR val IN CGI.param(k) %]
-        <input type="hidden" name="[% k | html %]" value="[% val | html %]" /> 
+        <input type="hidden" name="[% k | html %]" value="[% val | html %]" />
         [% END; END %]
 
         <button type="submit" class="btn btn-confirm"><i class="fas fa-check"></i> [% l('Confirm') %]</button>
         <a href="[% mkurl(ctx.opac_root _ '/myopac/main#selected_fines', {}, 1) %]" class="btn btn-deny"><i class="fas fa-ban"></i> [% l('Cancel') %]</a>
-       <p class="my-2"><big>[% l("Are you sure you are ready to charge ") %]
+    <p class="my-2"><big>[% l("Are you sure you are ready to charge ") %]
          <strong> [% l("[_1] ", money(ctx.fines.balance_owed))%]</strong>
-        [% l("to your credit card?") %]</big></p> 
+        [% l("to your credit card?") %]</big></p>
      <table title="[% l('List of Transactions') %]" id="acct_fines_confirm_header"
         class="table my-2">
    <thead>
             </tr>
         [% END %]
      </tbody>
-   </table> 
-     
+   </table>
+
        [% ELSE %]
-    
+
     <form method="post" id="payment_form" action='#payment'
     [% IF ctx.use_stripe %]
     onsubmit="return stripe_onsubmit();"
           <th colspan='2'><strong>[% l('Billing Information') %]</strong></th>
          </thead>
           <tbody>
-               
-               <tr> 
+
+               <tr>
                 <td><label for="payment-first-name">[% l('First Name') %]</label></td>
-                    <td><input name="given-name" type="text"  name="billing_first" id="payment-first-name" 
+                    <td><input name="given-name" type="text"  name="billing_first" id="payment-first-name"
                         value="[% ctx.user.first_given_name | html %]" class="form-control"/></td>
                 </tr>
                 <tr>
                     <td><label for="payment-last-name">[% l('Last Name') %]</label></td>
-                    <td><input name="family-name" type="text" name="billing_last" id="payment-last-name" 
+                    <td><input name="family-name" type="text" name="billing_last" id="payment-last-name"
                         value="[% ctx.user.family_name | html %]" class="form-control"/></td>
                 </tr>
 
                 <tr>
                     <td><label for="payment-email-addr">[% l('Email Address') %]</label></td>
                     <td>
-                        
-                        <input id="payment-email-addr" type="text" 
-                             value="[% ctx.user.email | html %]" disabled="disabled" 
-                            readonly="readonly" class="form-control" name="email"/>   
+
+                        <input id="payment-email-addr" type="text"
+                             value="[% ctx.user.email | html %]" disabled="disabled"
+                            readonly="readonly" class="form-control" name="email"/>
                         <a title="[% l('Update Email Address') %]"
                             href="[% ctx.opac_root %]/myopac/update_email?return_to_referer=1">[% l("Update") %]</a>
                     </td
                 </tr>
                 <tr>
                     <td><label for="payment-billing-address">[% l('Street Address') %]</label></td>
-                    <td><input type="text" name="billing_address" id="payment-billing-address" 
+                    <td><input type="text" name="billing_address" id="payment-billing-address"
                         value="[% ctx.user.billing_address.street1 _ ctx.user.billing_address.street2 | html %]" class="form-control"/></td>
                 </tr>
                 <tr>
                     <td><label for="payment-billing-city">[% l('City' )%]</label></td>
-                    <td><input type="text" name="billing_city" id="payment-billing-city" 
+                    <td><input type="text" name="billing_city" id="payment-billing-city"
                         value="[% ctx.user.billing_address.city | html %]" class="form-control"/></td>
                 </tr>
                 <tr>
                 </tr>
                </tbody>
                </table>
-               
+
                <table id="credit_card_info_table" class="table">
                <thead>
-                       <th colspan='2'><strong>[% l('Credit Card Information') %]</strong></th>
+                   <th colspan='2'><strong>[% l('Credit Card Information') %]</strong></th>
                </thead>
                <tbody>
-               
+
                 <tr>
                     <td><label for="payment-credit-card">[% l('Credit Card #') %]</label></td>
-                    
+
                      <!-- Make type tel, which prompts for numbers in mobile -->
-                    <td><input class="form-control" type="tel" pattern="[0-9]*" maxlength="16" id="payment-credit-card" required 
+                    <td><input class="form-control" type="tel" pattern="[0-9]*" maxlength="16" id="payment-credit-card" required
                     [% IF ctx.use_stripe %]
                     data-stripe="number"
                     [% ELSE %]
                        <div id="payment_actions">
                           [% l('Total amount:') %]
                            <strong>[% money(ctx.fines.balance_owed) %]</strong><br />
-          
+
                          <button type="submit" id="payment_submit" class="btn btn-confirm"><i class="fas fa-arrow-circle-right"></i> [% l('Next') %]</button>
-                         <a href="[% mkurl(ctx.opac_root _ '/myopac/main', {}, 1) %]" class="btn btn-deny"><i class="fas fa-ban"></i> [% l('Cancel') %]</a> 
+                         <a href="[% mkurl(ctx.opac_root _ '/myopac/main', {}, 1) %]" class="btn btn-deny"><i class="fas fa-ban"></i> [% l('Cancel') %]</a>
                          <br/>
                          </div>
                    </td>
                 </tr>
-                
+
           </tbody>
         </table>
          [% INCLUDE "opac/parts/myopac/main_refund_policy.tt2" %]
-        
+
     [% END %]
     </form>
 </div></div>
index 421f390..1733037 100755 (executable)
             [% END %]
         </div>
         <div class="col-6">
-            
+
         </div>
-        <div class="col-3 text-right"> 
+        <div class="col-3 text-right">
         [% IF ctx.payments.size > limit %]
             <a href='main_payments?limit=[% limit %]&amp;offset=[% offset + limit %]'
                  ><span class="np_nav_link classic_link btn btn-action">[% l('Next') %] &#9658;</span>
                  </a>
                 [% END %]
-            
+
         </div>
     </div>
 
     [% IF ctx.payments.size %]
-    <table title="[% l('Payments') %]" 
+    <table title="[% l('Payments') %]"
         class='table table-hover table-bordered miniTable paymentTable'>
         <thead><tr>
             <th>[% l('Payment Date') %]</th>
             <th>[% l('Payment For') %]</th>
             <th>[% l('Amount') %]</th>
-            <th>[% l('Receipt') %]</th> 
+            <th>[% l('Receipt') %]</th>
         </tr></thead>
         <tbody>
             [% FOR payment IN ctx.payments %]
@@ -45,7 +45,7 @@
                 <td><span class="sr-only">Payment Date: </span>[% date.format(ctx.parse_datetime(payment.mp.payment_ts), DATE_FORMAT) %]</td>
                 <td>
                 <span class="sr-only">Payment For: </span>
-                [% 
+                [%
                     btype = payment.last_billing_type | html;
                     ptitle = payment.title | html;
                     (payment.xact_type == 'grocery') ? btype : ptitle
index d1293bd..8da00a9 100755 (executable)
@@ -4,12 +4,12 @@
 
 
 
-<ul class='start_end_links_span pagination d-inline-flex'>    
-            [% IF offset != 0 %]        
-            
+<ul class='start_end_links_span pagination d-inline-flex'>
+            [% IF offset != 0 %]
+
              <li class="page-item"> <a class='np_nav_link classic_link btn btn-action' title='[% l("Previous Page") %]'
             href='[% mkurl('messages', { limit => limit, offset => (offset - limit)} ) %]'><span class="nav_arrow_fix">&#9668;</span> <span class="d-none d-md-inline-block">[% l('Previous') %]</span></a></li>
-           [% END; %]
+           [% END %]
             [% IF offset > 0 || count > limit;
                 curpage = 0;
                 WHILE curpage * limit < count;
@@ -17,7 +17,7 @@
             %]
                         <li class="page-item active"><a href="[% mkurl('hold_history', {limit => limit, offset => (curpage * limit)}) %]"  class="results-paginator-selected btn page-link disabled">[% curpage + 1%]</a></li>
 
-            
+
                     [%- ELSE %]
             <li class="page-item"><a href="[% mkurl('messages', {limit => limit, offset => (curpage * limit)}) %]" class="btn page-link">[% curpage + 1%]</a></li>
 
             [% IF count >= limit + offset %]
             <li class="page-item"><a class='np_nav_link classic_link btn btn-action' title='[% l("Next Page") %]'
             href='[% mkurl('messages', {limit => limit, offset => (offset + limit)}) %]'><span class="d-none d-md-inline-block">[% l('Next') %]</span> <span class="nav_arrow_fix">&#9658;</span></a></li>
-        
-[% END; %]
+
+[% END %]
 </ul>
 
-      
+
     </div>
     [% IF ctx.message_update_action.defined %]
         [% IF ctx.message_update_changed > 0 %]
@@ -64,9 +64,9 @@
         <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="my-2">
-                <button name="action" class="btn btn-action" value="mark_read" id="mark_read" type="submit"><i class="fas fa-glasses"></i> Mark Read</button>
-                <button name="action" class="btn btn-opac" value="mark_unread" id="mark_unread"  type="submit"><i class="fas fa-eye-slash"></i> Mark Unread</button>
-                <button name="action" class="btn btn-danger" value="mark_deleted" id="mark_deleted"  type="submit" onclick="return confirm('[% l("Are you sure you wish to permanently delete the selected message(s)?") %]')"><i class="fas fa-trash-alt"></i> Delete</button>
+                <button name="action" class="btn btn-action" value="mark_read" id="mark_read" type="submit"><i class="fas fa-glasses" aria-hidden="true"></i> Mark Read</button>
+                <button name="action" class="btn btn-opac" value="mark_unread" id="mark_unread"  type="submit"><i class="fas fa-eye-slash" aria-hidden="true"></i> Mark Unread</button>
+                <button name="action" class="btn btn-deny" value="mark_deleted" id="mark_deleted"  type="submit" onclick="return confirm('[% l("Are you sure you wish to permanently delete the selected message(s)?") %]')"><i class="fas fa-trash-alt" aria-hidden="true"></i> Delete</button>
             </div>
             [% IF count < 1 %]
             <div class="warning_box">[% l('No messages found.') %]</div>
@@ -74,9 +74,9 @@
              <div class="d-block d-md-none">
                 <input id="all_message_check" checked="checked"
                 type="checkbox" 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;}"
-                aria-label="[% l('Check/Uncheck All') %]" />    
-                <label for="all_message_check">[% l('Check/Uncheck All') %]</label>  
-            </div>    
+                aria-label="[% l('Check/Uncheck All') %]" />
+                <label for="all_message_check">[% l('Check/Uncheck All') %]</label>
+            </div>
             <table id="acct_messages_main_header" title="[% l('Messages') %]"
                 class="table table-hover table-bordered miniTable messagesTable">
                 <thead>
                         </td>
                         <td>
                         <span class="sr-only">Message Options</span>
-                            <a class="btn btn-sm btn-action" href="[% mkurl('messages', { single => 1, message_id => message.id } ) %]" title="Read [% message.title | html %]"><i class="fas fa-glasses"></i> Read</a>
+                            <a class="btn btn-sm btn-action" href="[% mkurl('messages', { single => 1, message_id => message.id } ) %]" title="Read [% message.title | html %]"><i class="fas fa-glasses" aria-hidden="true"></i> Read</a>
                         </td>
                     </tr>
                 [% END %]
index 2d74973..32a1819 100755 (executable)
@@ -7,17 +7,17 @@
             <input type="hidden" name="limit" value="[% limit %]" />
             <span>
                 <a href="[% mkurl('messages', {}, ['single', 'message_id']) %]" class="btn btn-action m-1">
-                <i class="fas fa-arrow-circle-left"></i>
+                <i class="fas fa-arrow-circle-left" aria-hidden="true"></i>
                 [% l('Return to Message List') %]
                 </a>
-                
+
                 <button type="submit" name="action" value="mark_unread" class="btn btn-opac m-1">
-                   <i class="fas fa-eye-slash"></i>
+                   <i class="fas fa-eye-slash" aria-hidden="true"></i>
                     [% l('Mark Unread') %]
                 </button>
-                <button type="submit" name="action" value="mark_deleted" class="btn btn-danger m-1"
+                <button type="submit" name="action" value="mark_deleted" class="btn btn-deny m-1"
                     onclick="return confirm('[% l("Are you sure you wish to permanently delete this message?") %]')">
-                    <i class="fas fa-trash-alt"></i>
+                    <i class="fas fa-trash-alt" aria-hidden="true"></i>
                     [% l('Delete') %]
                 </button>
             </span>
index 00cb39a..24fb3c0 100755 (executable)
@@ -12,9 +12,9 @@
 
                 <td class='light_border'>[% l(
                     HUMAN_NAME_FORMAT,
-                    ctx.user.prefix, 
+                    ctx.user.prefix,
                     ctx.user.first_given_name,
-                    ctx.user.second_given_name, 
+                    ctx.user.second_given_name,
                     ctx.user.family_name,
                     ctx.user.suffix
                 ) | html %]</td>
@@ -27,9 +27,9 @@
 
                 <td class='light_border'>[% l(
                     HUMAN_NAME_FORMAT,
-                    ctx.user.pref_prefix, 
+                    ctx.user.pref_prefix,
                     (ctx.user.pref_first_given_name || ctx.user.first_given_name),
-                    ctx.user.pref_second_given_name, 
+                    ctx.user.pref_second_given_name,
                     (ctx.user.pref_family_name || ctx.user.family_name),
                     ctx.user.pref_suffix
                 ) | html %]</td>
                     # l('[_1] ([_2])', ctx.user.ident_value, ctx.user.ident_type.name) | html
                     # XXX uncomment the above line to show primary
                     # identification. With a minor tweak it could
-                    # alternatively be shown but partially obscured. 
+                    # alternatively be shown but partially obscured.
                     %]
                 </td>
                 <td></td>
                     [% ctx.user.home_ou.name | html %]<br/>
                     [% ctx.user.home_ou.billing_address.street1 %]<br/>
                     [% IF ctx.user.home_ou.billing_address.street2; ctx.user.home_ou.billing_address.street2 _ "<br/>"; END %]
-                    [% ctx.user.home_ou.billing_address.city %], [% ctx.user.home_ou.billing_address.state %] 
+                    [% ctx.user.home_ou.billing_address.city %], [% ctx.user.home_ou.billing_address.state %]
                     [% ctx.user.home_ou.billing_address.post_code %]<br/>
                     <br/>
 
                     [% IF ctx.user.home_ou.phone; ctx.user.home_ou.phone _ "<br/>"; END %]
-                    
+
                     [% IF ctx.user.home_ou.email; ctx.user.home_ou.email _ "<br/>"; END %]
                     [% lib_url = ctx.get_org_setting(ctx.user.home_ou.id, 'lib.info_url');
                         IF lib_url;
                  [%- INCLUDE "opac/parts/locale_picker.tt2" %]
                 </td>
             </tr>
-            
+
         </tbody>
     </table>
-    
+
     <br />
     <hr />
     <br />
-    
+
        <div class="header_middle mb-3">
         <span>Addresses</span>
     </div>
 
 <div class="row">
-            [% 
+            [%
                 # cycle through the non-pending address.  For each non-pending addr
-                # that has a corresponding pending addr, render the pending addr 
+                # that has a corresponding pending addr, render the pending addr
                 # along the right inside it's own edit form
                 pending = {};
                 regular = [];
                     END;
                 END;
             FOR addr IN regular;
-                cur_id = addr.id; 
+                cur_id = addr.id;
                 pending_addr = pending.$cur_id;
             %]
     <div class="col-lg-6 col-12">
         <table class='table' title="[% l('Addresses') %]">
-       
+
             <tbody>
             <tr>
               <td>
                 <!-- pending address form -->
                 [% IF pending_addr OR edit_addr_id == cur_id;
                     update_addr = pending_addr || addr %]
-              
+
                     <form method='post'>
                         [% IF pending_addr %]
                             <input type='hidden' name='pending_addr' value='[% pending_addr.id %]'/>
                             {label => l("ZIP"), name => 'post_code', value => update_addr.post_code},
                         ];
                         FOR field IN addr_fields %]
-                        
+
                             <tr>
-                               
+
                                 <td><label for="addr-form-[% field.name %]">[% field.label %]</label></td>
-                                <td><input name="[% field.name %]" 
+                                <td><input name="[% field.name %]"
                                     id="addr-form-[% field.name %]"
                                     value="[% field.value | html %]" class="form-control">
                                 </td>
                 </td>
                  [% 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>[% l("State") %]</td><td>[% addr.state | html %]</td></tr>
                         <tr><td>[% l("Country") %]</td><td>[% addr.country | html %]</td></tr>
                         <tr><td>[% l("Zip") %]</td><td>[% addr.post_code | html %]</td></tr>
-                        [% IF ctx.get_org_setting(ctx.user.home_ou.id, 'opac.allow_pending_address') 
+                        [% IF ctx.get_org_setting(ctx.user.home_ou.id, 'opac.allow_pending_address')
                                 AND !pending_addr AND edit_addr_id != cur_id %]
                         <tr><td colspan='2'><a class="btn btn-action" href='?edit_address=[% addr.id %]'><i class="fas fa-edit"></i> [% l('Edit Address') %]</a></td></tr>
                         [% END %]
                     </table>
-                 
+
                  </td>
-                [% END %] 
+                [% END %]
                 </tr>
             </tbody>
         </table>
      </div></div>
             [% END %]
-       
-    
+
+
 
 [% END %]
index 1b4420e..da71d72 100755 (executable)
@@ -29,7 +29,7 @@
                                     ctx.user_setting_map.$setting = 10;
                                 END;
                                 FOR val IN [10, 15, 20, 25] %]
-                                <option value='[% val | uri %]' 
+                                <option value='[% val | uri %]'
                                     [% IF ctx.user_setting_map.$setting == val %]
                                         selected='selected'[% END %]>[% val | html %]</option>
                             [% END %]
@@ -48,7 +48,7 @@
                                     ctx.user_setting_map.$setting = 10;
                                 END;
                                 FOR val IN [10, 15, 20, 25, 50] %]
-                                <option value='[% val | uri %]' 
+                                <option value='[% val | uri %]'
                                     [% IF ctx.user_setting_map.$setting == val %]
                                         selected='selected'[% END %]>[% val | html %]</option>
                             [% END %]
@@ -63,5 +63,5 @@
         <button type="submit" class="btn btn-confirm"><i class="fas fa-save"></i> [% l('Save') %]</button>
     </form>
     [% INCLUDE "opac/parts/myopac/prefs_hints.tt2" %]
-    
+
 [% END %]
index c98a8b5..e7c8b80 100755 (executable)
@@ -10,7 +10,7 @@
     <input name='[% setting %]' type="hidden"
         [% IF ctx.user_setting_map.$setting; %] value='[% ctx.user_setting_map.$setting | html %]' [% END %]/>
 
-    <table class="full-width table" id="acct_search_main" 
+    <table class="full-width table" id="acct_search_main"
         title="[% l('Notification Preferences') %]">
         <tbody>
 
 
                 <td><label for='[% setting %].email'>[% email_label %]</label></td>
                 <td>
-                    <input id='[% setting %].email' name='[% setting %].email' 
+                    <input id='[% setting %].email' name='[% setting %].email'
                         type="checkbox" title="[% email_label %]"
                         [% IF (matches = ctx.user_setting_map.$setting.match('email')); %] checked='checked' [% END %]/>
                 </td>
             </tr>
             [%- IF allow_phone_notifications == 'true';
-                setting = 'opac.hold_notify'; 
+                setting = 'opac.hold_notify';
             -%]
             <tr>
                 [% phone_label = l('Notify by Phone by default when a hold is ready for pickup?') %]
                 <td><label for='[% setting %].phone'>[% phone_label %]</label></td>
                 <td>
-                    <input id='[% setting %].phone' name='[% setting %].phone' 
+                    <input id='[% setting %].phone' name='[% setting %].phone'
                         type="checkbox" title="[% phone_label %]"
                         [% IF (matches = ctx.user_setting_map.$setting.match('phone')); %] checked='checked' [% END %]/>
                 </td>
@@ -66,7 +66,7 @@
                 [% sms_label = l('Notify by Text by default when a hold is ready for pickup?') %]
                 <td><label for='[% setting %].sms'>[% sms_label %]</label></td>
                 <td>
-                    <input id='[% setting %].sms' name='[% setting %].sms' 
+                    <input id='[% setting %].sms' name='[% setting %].sms'
                         type="checkbox" title="[% sms_label %]"
                         [% IF (matches = ctx.user_setting_map.$setting.match('sms')); %] checked='checked' [% END %]/>
                 </td>
@@ -89,9 +89,9 @@
             <tr>
                 <td><label for='[% optin.cust.name | uri %]'>[% optin.cust.label | html %]</label></td>
                 <td>
-                    <input type='checkbox' name='setting' 
-                        value='[% optin.cust.name | uri %]' 
-                        id='[% optin.cust.name | uri %]' 
+                    <input type='checkbox' name='setting'
+                        value='[% optin.cust.name | uri %]'
+                        id='[% optin.cust.name | uri %]'
                         title="[% optin.cust.label | html %]"
                         [% IF optin.value %] checked='checked' [% END %]/>
                 </td>
index 947d663..5dafea6 100755 (executable)
@@ -42,7 +42,7 @@
                                     ctx.user_setting_map.$setting = 10;
                                 END;
                                 FOR val IN [5, 8, 10, 15, 20, 25, 50] %]
-                                <option value='[% val | uri %]' 
+                                <option value='[% val | uri %]'
                                     [% IF ctx.user_setting_map.$setting == val %]
                                         selected='selected'[% END %]>[% val | html %]</option>
                             [% END %]
@@ -83,9 +83,9 @@
                     [% circ_name = l('Keep history of checked out items?') %]
                     <td><label for='[% setting %]'>[% circ_name%]</label></td>
                     <td>
-                        <input id='[% setting %]' name='[% setting %]' 
+                        <input id='[% setting %]' name='[% setting %]'
                             type="checkbox" title="[% circ_name %]"
-                            [% IF ctx.user_setting_map.$setting 
+                            [% IF ctx.user_setting_map.$setting
                               AND !ctx.clear_circ_history; %] checked='checked' [% END %]/>
                     </td>
                 </tr>
@@ -94,7 +94,7 @@
                     [% hold_name =  l('Keep history of holds?') %]
                     <td><label for='[% setting %]'>[% hold_name %]</label></td>
                     <td>
-                        <input id='[% setting %]' name='[% setting %]' 
+                        <input id='[% setting %]' name='[% setting %]'
                             type="checkbox" title="[% hold_name %]"
                             [% IF ctx.user_setting_map.$setting
                               AND !ctx.clear_hold_history; %] checked='checked' [% END %]/>
                     [% skip_warn =  l('Skip warning when adding to temporary book list?') %]
                     <td><label for='[% setting %]'>[% skip_warn %]</label></td>
                     <td>
-                        <input id='[% setting %]' name='[% setting %]' 
+                        <input id='[% setting %]' name='[% setting %]'
                             type="checkbox" title="[% skip_warn %]"
                             [% IF ctx.user_setting_map.$setting %] checked='checked' [% END %]/>
                     </td>
                     [% behind_desk = l('Pickup holds from behind the desk when possible?') %]
                     <td><label for='[% setting %]'>[% behind_desk %]</label></td>
                     <td>
-                        <input id='[% setting %]' name='[% setting %]' 
+                        <input id='[% setting %]' name='[% setting %]'
                             type="checkbox" title="[% behind_desk %]"
                             [% IF ctx.user_setting_map.$setting %] checked='checked' [% END %]/>
                     </td>
                             <input type="hidden" name="waiver_id" value="[% waiver.id %]"/>
                             [% l('Name:') %] <input type="textbox" name="waiver_name_[% waiver.id %]" value="[% waiver.name | html %]"/><br/>
                             <label>
-                                <input type="checkbox" name="waiver_place_holds" 
+                                <input type="checkbox" name="waiver_place_holds"
                                     value="[% waiver.id %]" [% waiver.place_holds == 't' ? 'checked="checked"' : '' %]/>
                                 [% l('Place Holds') %]
                             </label>
index ce898cf..a7d0c9d 100755 (executable)
@@ -8,7 +8,7 @@
     <div class="header_middle">
        <span class="float-left">[% l('Update Email') %]</span>
     </div>
-       
+
 [% IF ctx.invalid_email %]
     <div id='account-update-email-error'>
         [% bad_email = ctx.invalid_email | html %]
@@ -26,7 +26,7 @@
     [% IF CGI.param("return_to_referer") %]
     <input type="hidden" name="redirect_to" value="[% ctx.referer | html %]" />
     [% END %]
-    <table> 
+    <table>
         <tr><td>[% l('Current Email') %]</td><td>[% ctx.user.email | html %]</td></tr>
         <tr><td>[% l('Current Password') %]</td><td><input type='password' class="form-control" name='current_pw'/></td></tr>
         <tr><td>[% l('New Email') %]</td><td><input type='text' name='email' class="form-control" value='[% ctx.invalid_email | html %]'/></td></tr>
index 5d40fb6..0e5d0e2 100755 (executable)
@@ -8,7 +8,7 @@
     <div class="header_middle">
         <span class="float-left">[% l('Update Username') %]</span>
     </div>
-       
+
 [% IF ctx.invalid_username %]
     <div id='account-update-email-error'> <!-- borrow css from update-email page -->
         [% bad_user = ctx.invalid_username | html %]
@@ -27,8 +27,8 @@
 
 [% END %]
 
-<form method='post' id='account-update-email' autocomplete='off'> 
-    <table> 
+<form method='post' id='account-update-email' autocomplete='off'>
+    <table>
         <tr><td>[% l('Current Username') %]</td><td>[% ctx.user.usrname | html %]</td></tr>
         <tr><td>[% l('Current Password') %]</td><td><input type='password' name='current_pw' class="form-control"/></td></tr>
         <tr><td>[% l('New Username') %]</td><td><input type='text' name='username' value='[% ctx.invalid_username | html %]' class="form-control"/></td></tr>
index 68ca9f9..243e7d0 100755 (executable)
@@ -9,7 +9,7 @@
             <tr id="adv_expert_row">
                 <td class="py-3">
                    <div class="row">
-                        
+
                         <div class="col-3">
                         <span class="d-inline-block">
                             <label for="expert_tag">[% l("Tag:") %]</label>
@@ -29,7 +29,7 @@
                         </span>
                         </div>
                         <div class="col-2">
-                         <button class="btn btn-remove btn-sm d-inline-block" style="position:absolute;bottom:5px;" aria-label="[% l('Remove row') %]" 
+                         <button class="btn btn-remove btn-sm d-inline-block" style="position:absolute;bottom:5px;" aria-label="[% l('Remove row') %]"
                                 onclick='return killRowIfAtLeast(1, this.parentNode.parentNode);'>
                                <i class="fas fa-times"></i></a>
                             </button>
@@ -47,7 +47,7 @@
                <td  class="py-3">
                    <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 
+                           INCLUDE build_org_selector id=lib_select_id show_loc_groups=1
                        %]
                    </label>
                </td>
index fb4924d..dcc7d59 100755 (executable)
@@ -26,7 +26,7 @@
 <tr[% IF loop.index == 1 %] id="adv_global_row"[% END %]>
 
     <td class="td-left py-3">
-               <div class="row">
+        <div class="row">
             <div class="col-2">
             <!-- bool selector.  hide for first row.  safe to ignore first bool value in form submission -->
                 <select aria-label="[% l('Boolean search operator') %]"
@@ -59,8 +59,9 @@
     <td class="px-2">
         <a href="javascript:;" class="btn btn-remove btn-sm" aria-label="Remove This Row"
             title="[% l('Remove row') %]"
+            aria-label="[% l('Remove row') %]"
             onclick='return killRowIfAtLeast(2, this);'>
-               <i class="fas fa-times"></i>
+               <i class="fas fa-times" aria-hidden="true"></i>
             </a></td>
 </tr>
 [% END %]
index c942dfc..0d4326a 100755 (executable)
@@ -6,7 +6,7 @@
     <input id="detail" type="hidden" name="detail_record_view"
            value="[% show_detail_view %]"/>
     <div id='adv_numeric_block' class='row'>
-       <div class="col-12 my-3">
+        <div class="col-12 my-3">
             <label for="numeric_qtype"><strong>[% l("Field:") %]</strong></label>
                 <select id="numeric_qtype" name="qtype" class="form-control">
                     <!-- TODO: Pull labels from config.metabib_field.label -->
                     <option value="identifier|tcn">[% l('TCN') %]</option>
                     <option value="item_barcode">[% l('Item Barcode') %]</option>
                 </select>
-               </div>
+        </div>
         <div class="col-12 my-3">
-                       <label for="numeric_ident"><strong>[% l("Identifier:") %]</strong></label>
+                <label for="numeric_ident"><strong>[% l("Identifier:") %]</strong></label>
                 <input id="numeric_ident" class="form-control" type="text" name="query" size="16" autofocus placeholder='[% l("Identifier") %]' aria-label='[% l("Identifier") %]' />
         </div>
-           <br/>
+        <br/>
         <div class="col-12 my-3">
             [%- lib_select_id="adv_org_selector" -%]
             <label for="[% lib_select_id %]"><strong>[% l("Search Library:") %]</strong>
@@ -31,7 +31,7 @@
                      INCLUDE build_org_selector id=lib_select_id show_loc_groups=1
                   %]
             </label>
-           <br/>
+        <br/>
 
           </div>
           <div class="col-12 my-3">
index 5e749c1..b766f81 100755 (executable)
@@ -14,7 +14,7 @@
                     <!-- add a new row -->
                     <tr id='adv_global_addrow' >
                         <td class="td-search-left" colspan="2">
-                            <a class="btn btn-opac btn-sm" href="javascript:;" id="myopac_new_global_row" onclick='addSearchRow();'><i class="fas fa-plus-circle"></i> [% l('Add Search Row') %]</a>
+                            <a class="btn btn-opac btn-sm" href="javascript:;" id="myopac_new_global_row" onclick='addSearchRow();'><i class="fas fa-plus-circle" aria-hidden="true"></i> [% l('Add Search Row') %]</a>
                         </td>
                     </tr>
                 </tbody>
                             </button>
                         </h4>
                     </div>
-                    
+
                     <div id="[% IF adv_chunk.id == 'adv_copy_location_selector'; 'adv_copy_location_selector_new';  ELSE; adv_chunk.id; END; %]" class="collapse" aria-labelledby="[% adv_chunk.id %]_card" data-parent="#accordion">
                     [% IF adv_chunk.id != 'adv_copy_location_selector';%]
                         <div class="card-body">
                         <fieldset>
                         <legend class="sr-only"> [% adv_chunk.adv_label %]</legend>
-                       [% END; %]  
+                       [% END %]
                             [% IF adv_chunk.adv_attr;
                                         INCLUDE "opac/parts/check_value_selector.tt2"
                                             id=adv_chunk.id
                                         INCLUDE "opac/parts/filter_group_selector.tt2"
                                             id=adv_chunk.id
                                             filter_group=adv_chunk.adv_filter multiple="multiple"
-                                            size=adv_chunk.adv_size || search.default_adv_select_height || "4"; 
-                            END; %] 
+                                            size=adv_chunk.adv_size || search.default_adv_select_height || "4";
+                            END; %]
                             [% IF adv_chunk.id != 'adv_copy_location_selector';%]
-                        </fieldset>   
-                         [% END; %]   
+                        </fieldset>
+                         [% END %]
                         </div>
-                    </div> 
+                    </div>
                 </div></div>
             </div>
             [%END;%]
         </div>
-    </div>       
-         
+    </div>
+
     <!--Bottom Content (Library/Pub Year/Sort and Limit/Format Checkboxes -->
     <div class="row adv_options">
-        [% FOR adv_chunk IN search.adv_config; NEXT IF adv_chunk.adv_hide || adv_chunk.adv_special == 'copy_location';%]                  
+        [% 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-12 my-2'>
             <div [% IF adv_chunk.js_only %] id='adv_chunk_[% adv_chunk.adv_special %]' class='hidden' [% END %]>
@@ -84,8 +84,9 @@
                                 <option value="[% opt.code %]"[% CGI.param('pubdate') == opt.code ? ' selected="selected"' : '' %]>[% opt.label | html %]</option>
                             [%  END %]
                             </select>
-                            
-                            <div class="mx-3">
+
+                            <br/>
+                            <div id='adv_special_block' class="text-center">
                                 <input title="[% l('Search date') %]" class='form-control' placeholder='Year'
                                   name='date1' type='text' size='4' maxlength='4' value="[% CGI.param('date1') | html %]" />
                                 <span id='adv_global_pub_date_2_span' class='[% CGI.param("pubdate") == "between" ? "" : "hide_me" %]'>
                                         [% l("Limit to Available") %]</label>
                                 </div>
                             </div>
-                    [% END; %]
+                    [% END %]
                 </div>
             </div>
-        [% END; %]
-    [% END; %]
+        [% END %]
+    [% END %]
     </div>
     <div id='adv_search_submit' class="my-3">
         <input type="hidden" name="_adv" value="1" />
index 77e3a79..b241b27 100755 (executable)
@@ -2,26 +2,25 @@
         <div>
         <hr>
         <h3>[% l('Basket') %]</h3>
-       
+
         <form action="[% mkurl(ctx.opac_root _ '/mylist/move') %]" method="post">
         <input type="hidden" name="orig_referrer" value="[% CGI.referer | html %]" />
         <input type="hidden" name="redirect_to" value="[% mkurl('', {}, ['list_none_selected', 'cart_none_selected']) %]" />
         <div class="bbag-action" style="clear:both;">
         <div class="input-group my-3">
-         
-            <button class="btn btn-success m-1" name="action" value="place_hold" id="place_hold" type="submit"><i class="fas fa-book"></i> Place Hold</button>
-             <button class="btn btn-danger m-1" name="action" value="delete" id="delete" type="submit"><i class="fas fa-trash"></i> Delete</button>
-            <button class="btn btn-action m-1" name="action" value="print" id="print" type="submit"><i class="fas fa-print"></i> Print Details</button>
-            <button class="btn btn-action m-1" name="action" value="email" id="email" type="submit"><i class="fas fa-envelope-open-text"></i> Email Details</button>
-           
-            <button class="btn btn-action m-1" name="action" value="new_list" id="new_list" type="submit"><i class="fas fa-plus"></i> Add to New List</button>
-             [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
+
+            <button class="btn btn-success m-1" value="place_hold" id="place_hold" type="submit"><i class="fas fa-book" aria-hidden="true"></i> Place Hold</button>
+            <button class="btn btn-danger m-1" value="delete" id="delete" type="submit"><i class="fas fa-trash" aria-hidden="true"></i> Delete</button>
+            <button class="btn btn-action m-1" value="print" id="print" type="submit"><i class="fas fa-print" aria-hidden="true"></i> Print Details</button>
+            <button class="btn btn-action m-1" value="email" id="email" type="submit"><i class="fas fa-envelope-open-text" aria-hidden="true"></i> Email Details</button>
+
+            <button class="btn btn-action m-1" value="new_list" id="new_list" type="submit"><i class="fas fa-plus" aria-hidden="true"></i> Add to New List</button>
             <div class="dropdown show m-1">
                 [% IF ctx.user AND ctx.bookbags.size %]
                  <a class="btn btn-action dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                    <i class="fas fa-truck-moving"></i> [% l('Move selected items to list:') %]
-                </a>
-              
+                   <i class="fas fa-truck-moving" aria-hidden="true"></i> [% l('Move selected items to list:') %]
+                 </a>
+
                 <div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
                     [% FOR bbag IN ctx.bookbags %]
                          <button name="action" class="dropdown-item" href="#" type="submit" value="[% bbag.id %]"> [% bbag.name | html %]</button>
@@ -38,9 +37,9 @@
             </div>
 </div>
 
-      
 
-        
+
+
             [% IF CGI.param('cart_none_selected') %]
                 <span class="error">[% l('No items were selected') %]</span>
             [% END %]
 
             <div class="d-block d-md-none">
                 <input id="all_check" checked="checked"
-                type="checkbox" onclick="var inputs=document.getElementsByTagName('input'); 
-                                for (i = 0; i < inputs.length; i++) { 
+                type="checkbox" onclick="var inputs=document.getElementsByTagName('input');
+                                for (i = 0; i < inputs.length; i++) {
                                     if (inputs[i].name == 'record' && !inputs[i].disabled) inputs[i].checked = this.checked;}"
-                aria-label="[% l('Check/Uncheck All') %]" />    
-                <label for="all_check">[% l('Check/Uncheck All') %]</label>  
-            </div>   
+                aria-label="[% l('Check/Uncheck All') %]" />
+                <label for="all_check">[% l('Check/Uncheck All') %]</label>
+            </div>
             <table class="container-fluid table table-hover table-bordered mt-4 miniTable bucketTable">
                 <thead id="acct_list_header_anon">
                     <tr>
                         <th class='list_checkbox'>
-                            <input type="checkbox" checked="checked" 
+                            <input type="checkbox" checked="checked"
                             aria-label="[% l('Select all records') %]" onclick="
-                                var inputs=document.getElementsByTagName('input'); 
-                                for (i = 0; i < inputs.length; i++) { 
+                                var inputs=document.getElementsByTagName('input');
+                                for (i = 0; i < inputs.length; i++) {
                                     if (inputs[i].name == 'record' && !inputs[i].disabled) inputs[i].checked = this.checked;}"/>
                         </th>
                         <th><a href="[% mkurl('', {anonsort=>(CGI.param('anonsort') == 'titlesort' ? 'titlesort.descending' : 'titlesort')}) %]">[% l('Title') %]</a></th>
@@ -89,7 +88,7 @@
                             )
                         -%]">[% attrs.author | html %]</a></td>
                         <td class="list_entry" data-label="[% l('Local Call Number') %]">
-                        [% 
+                        [%
                             copy = attrs.holdings.0;
                             IF copy;
                                 copy_org = ctx.get_aou_by_shortname(copy.owner);
index 543d2cf..8c898b5 100755 (executable)
@@ -11,8 +11,8 @@
         <meta name = "viewport" content = "initial-scale = 1.0">
         <!--Added bootstrap dependancies-->
         <link rel="stylesheet" href="[% ctx.media_prefix %]/css/bootstrap/bootstrap.min.css">
-        <link rel="stylesheet"  href="[% ctx.media_prefix %]/css/fontawesome/all.css[% ctx.cache_key %]" /> 
-        <link rel="stylesheet"  href="[% ctx.media_prefix %]/css/datepicker/bootstrap-datepicker.css[% ctx.cache_key %]" /> 
+        <link rel="stylesheet"  href="[% ctx.media_prefix %]/css/fontawesome/all.css[% ctx.cache_key %]" />
+        <link rel="stylesheet"  href="[% ctx.media_prefix %]/css/datepicker/bootstrap-datepicker.css[% ctx.cache_key %]" />
         <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[%
         [% IF ctx.get_i18n_l(ctx.eg_locale).rtl == 't' %]
         <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') %]
             [% custom_css = ctx.get_org_setting(ctx.search_ou, 'opac.patron.custom_css') %]
-        [% '<style>'; custom_css ; '</style>' %]                                          
+        [% '<style>'; custom_css ; '</style>' %]
         [% END %]
 
         [%- libname = ctx.get_aou(ctx.search_ou).name;
             @import "[% ctx.media_prefix %]/js/dojo/dijit/themes/tundra/tundra.css[% ctx.cache_key %]";
         </style>
         [% END %]
-               
+
         [% IF !ctx.is_staff %]
             [% INCLUDE 'opac/parts/goog_analytics.tt2' %]
         [% END %]
         [% PROCESS 'opac/parts/stripe.tt2' %]
 <script  src="[% ctx.media_prefix %]/js/bootstrap/jquery-3.5.1.min.js"></script>
 
-        
+
     </head>
     <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>
@@ -66,7 +66,7 @@
         [% END;%]
         <h2 class="sr-only">[% l('Additional Resources') %]</h2>
         [% INCLUDE 'opac/parts/footer.tt2' %]
-        
+
         [% INCLUDE 'opac/parts/js.tt2' %]
         <script>
     $(document).ready(function(){
@@ -77,7 +77,7 @@
             [%- INCLUDE 'opac/parts/chilifresh.tt2' %]
         [%- END %]
 
-     
+
 
     </body>
 </html>
index d24a25c..bf2c6f8 100755 (executable)
@@ -4,7 +4,7 @@
 
     # Wrap a url to open in a new tab in staff client.
     MACRO opac_wrap(url) BLOCK;
-         IF ctx.is_staff AND NOT ctx.is_browser_staff;
+          IF ctx.is_staff AND NOT ctx.is_browser_staff;
               # void(0) to return false and not go to new page in current tab.
               "javascript:xulG.new_tab(xulG.urls.XUL_OPAC_WRAPPER, {}, {'opac_url' : 'oils://remote" _ url _ "'});void(0);";
           ELSE;
 %]
 
  <div id="btnGroupDrop1" role="button" class="btn btn-action text-left" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-        <i class="fas fa-list"></i>
+        <i class="fas fa-list" aria-hidden="true"></i>
           [% l("Add to my list") %]
         </div>
-    <!--Removal-->    
+    <!--Removal-->
     <div class="dropdown-menu" aria-labelledby="btnGroupDrop1">
     <a class="dropdown-item" href="[% href %]">[% l('Temporary List') %]</a>
-    
+
     [% IF default_list;
        label = (ctx.default_bookbag) ? ctx.default_bookbag : l('Default List');
        class = (ctx.bookbags.size) ? "default divider" : "default";
index 4757449..f8d189b 100755 (executable)
@@ -8,18 +8,18 @@
             <span class="sr-only">[% l('Records In Basket') %]</span>
         </div>
       </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', {}) %]"><i class="fas fa-glasses"></i>[% 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 }) %]"><i class="fas fa-book"></i>[% l('Place Holds') %]</a>
-        <a class="dropdown-item" role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/mylist/print', {}) %]"><i class="fas fa-print"></i>[% l('Print Title Details') %]</a>
-        <a class="dropdown-item" role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/mylist/email', {}) %]"><i class="far fa-envelope"></i>[% l('Email Title Details') %]</a>
+      <div class="dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="cartDropdown">
+        <a class="dropdown-item" role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/mylist', {}) %]"><i class="fas fa-glasses" aria-hidden="true"></i> [% 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 }) %]"><i class="fas fa-book" aria-hidden="true"></i> [% l('Place Holds') %]</a>
+        <a class="dropdown-item" role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/mylist/print', {}) %]"><i class="fas fa-print" aria-hidden="true"></i> [% l('Print Title Details') %]</a>
+        <a class="dropdown-item" role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/mylist/email', {}) %]"><i class="fas fa-envelope" aria-hidden="true"></i> [% l('Email Title Details') %]</a>
         [% IF !ctx.is_browser_staff %]
-        <a class="dropdown-item" role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/myopac/lists', { move_cart_by_default => 1, from_basket => 1 }) %]"><i class="fas fa-list"></i>[% l('Add Basket to Saved List') %]</a>
+        <a class="dropdown-item" role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/myopac/lists', { move_cart_by_default => 1, from_basket => 1 }) %]"><i class="fas fa-list" aria-hidden="true"></i> [% l('Add Basket to Saved List') %]</a>
         [% END %]
         [% IF ctx.is_browser_staff %]
-        <a class="dropdown-item" role="menuitem" tabindex="-1" href="add_cart_to_bucket"><i class="fab fa-bitbucket"></i>[% l('Add Basket to Bucket') %]</a>
+        <a class="dropdown-item" role="menuitem" tabindex="-1" href="add_cart_to_bucket"><i class="fab fa-bitbucket" aria-hidden="true"></i> [% l('Add Basket to Bucket') %]</a>
         [% END %]
-        <a class="dropdown-item" role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/mylist/clear', {}) %]"><i class="fas fa-trash"></i>[% l('Clear Basket') %]</a>
+        <a class="dropdown-item" role="menuitem" tabindex="-1" href="[% mkurl(ctx.opac_root _ '/mylist/clear', {}) %]"><i class="fas fa-trash" aria-hidden="true"></i> [% l('Clear Basket') %]</a>
       </div>
     </div>
   </div>
index 45df6c0..6de5ae1 100644 (file)
@@ -1,6 +1,6 @@
 
-[%- 
-    # If caller passes a list of possible attribute types, 
+[%-
+    # If caller passes a list of possible attribute types,
     # search all until we find some values
 
     IF !attr.size; attr = [attr]; END;
@@ -12,7 +12,7 @@
     END;
     name = name || "fi:" _ attr_class;
     id = id || attr_class _ "_selector";
-    values = values || CGI.param(name); 
+    values = values || CGI.param(name);
     IF size AND size < 1; size = all_values.size; END;
 -%]
 
@@ -21,7 +21,7 @@
 [% IF none_ok %]
     <p value=''>[% none_label ? none_label : l('-- Any --') %]</p>
 [% END;
-# turn the list of objects into a list of hashes to 
+# turn the list of objects into a list of hashes to
 # leverage TT's array.sort('<hashkey>') behavior
 simple_sorter = [];
 sorter = [];
@@ -29,7 +29,7 @@ FOR o IN all_values;
     IF o.is_simple == 't';
         simple_sorter.push({code => o.code, value => (o.search_label ? o.search_label : o.value)});
     ELSE;
-        sorter.push({code => o.code, value  => (o.search_label ? o.search_label : o.value)}); 
+        sorter.push({code => o.code, value  => (o.search_label ? o.search_label : o.value)});
     END;
 END;%]
 <ul class="adv_filters">
index aa2e0d1..a6f0c94 100755 (executable)
@@ -1,9 +1,9 @@
-[%-  IF ENV.OILS_CHILIFRESH_URL AND ENV.OILS_CHILIFRESH_ACCOUNT 
+[%-  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; 
+        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 %]"/>
index 35d8e37..13edbed 100755 (executable)
@@ -1,6 +1,6 @@
 
-[%- 
-    # If caller passes a list of possible attribute types, 
+[%-
+    # If caller passes a list of possible attribute types,
     # search all until we find some values
 
     IF !attr.size; attr = [attr]; END;
     END;
     name = name || "fi:" _ attr_class;
     id = id || attr_class _ "_selector";
-    values = values || CGI.param(name); 
+    values = values || CGI.param(name);
     IF size AND size < 1; size = all_values.size; END;
 -%]
 
-<select class="form-control w-100" id='[% id %]' name='[% name %]'[%
+<select class="form-control form-control-sm w-100" id='[% id %]' name='[% name %]'[%
     multiple ? ' multiple="multiple"' : '';
     size ? (' size="' _ size _ '"') : '';
 %] title="[% filter_label || l('Select item type:') %]">
 [% IF none_ok %]
     <option value=''>[% none_label ? none_label : l('-- Any --') %]</option>
 [% END;
-# turn the list of objects into a list of hashes to 
+# turn the list of objects into a list of hashes to
 # leverage TT's array.sort('<hashkey>') behavior
 simple_sorter = [];
 sorter = [];
@@ -31,7 +31,7 @@ FOR o IN all_values;
     IF o.is_simple == 't';
         simple_sorter.push({code => o.code, value => (o.search_label ? o.search_label : o.value)});
     ELSE;
-        sorter.push({code => o.code, value  => (o.search_label ? o.search_label : o.value)}); 
+        sorter.push({code => o.code, value  => (o.search_label ? o.search_label : o.value)});
     END;
 END;
 FOR o IN simple_sorter.sort('value') %]
index 08f3ae8..0cea9e4 100755 (executable)
@@ -195,7 +195,7 @@ ctx.google_books_preview = 0;
 ctx.maintenance_message = "<b>This OPAC will be unavailable on Month ##, #### at #pm for planned upgrades.</b>";
 # Maintenance types follow Bootstrap4 alert options as follows
 # success = green; info = blue; warning = yellow; danger = red
-# Other colors would require re-coding the alert 
+# Other colors would require re-coding the alert
 ctx.maintenance_type = l('info');
 
 ##############################################################################
@@ -274,7 +274,7 @@ ctx.hide_badge_scores = 'false';
 ctx.max_cart_size = 500;
 
 ##############################################################################
-# Display booking reservations tab in myopac 
+# Display booking reservations tab in myopac
 ##############################################################################
 ctx.show_reservations_tab = 'false';
 
index aab1add..d4e40bb 100755 (executable)
@@ -196,7 +196,7 @@ ctx.google_books_preview = 0;
 #ctx.maintenance_message = "<b>This OPAC will be unavailable part of March 15, 2019 for planned upgrades.</b>";
 # Maintenance types follow Bootstrap4 alert options as follows
 # success = green; info = blue; warning = yellow; danger = red
-# Other colors would require re-coding the alert 
+# Other colors would require re-coding the alert
 #ctx.maintenance_type = l('warning');
 
 ##############################################################################
@@ -275,7 +275,7 @@ ctx.hide_badge_scores = 'false';
 ctx.max_cart_size = 500;
 
 ##############################################################################
-# Display booking reservations tab in myopac 
+# Display booking reservations tab in myopac
 ##############################################################################
 ctx.show_reservations_tab = 'false';
 
index 41d6f50..622fe57 100755 (executable)
@@ -1,20 +1,20 @@
 [%
     css_colors = {
-        
-        
+
+
 #The counts that appear in the navigation when signed into the OPAC -EX. X Ready For Pickup where x is the modified number
 
-       zero_count = "#c1ffbf", #Logged in item/charges count at 0
+            zero_count = "#c1ffbf", #Logged in item/charges count at 0
         non_zero_count = "#ffc107", #Logged in item/charges count NOT at 0
 
-       facets_back = "#00593d", #search list facet backgrounds
+            facets_back = "#006042", #search list facet backgrounds
         facets_text = "#fff",
-       footer_link = "#fff",
+            footer_link = "#fff",
 
-       nav_separation = "#00593d",
-        header_primary = "#00593d", #Primary Header Color
+            nav_separation = "#007a54",
+        header_primary = "#007a54", #Primary Header Color
         header_primary_fade = "#007a54", #Fade Header Color, make equal to header_primary for no fade
-        footer_primary = "#00593d", #Primary Footer Color
+        footer_primary = "#007a54", #Primary Footer Color
         footer_primary_fade = "#007a54", #Fade Footer Color, make equal to footer_primary for no fade
 
         bg_extras = "#007a54",
@@ -26,7 +26,7 @@
         background = "#fff", # white
         background_alert = "#ffcccc", # pink
         background_invert = "#252525", # charcoal
-        text = "black", # black 
+        text = "black", # black
         text_alert = "#c50202", # red
         text_attention = "#ffcc33", # pumpkin orange
         text_badnews = "#c50202", # cherry red
@@ -34,7 +34,7 @@
         text_greatnews = "green", # green
         text_invert = "#fff", # white
         text_match = "#c00", # deep red
-        primary = "#00593d", # dark green
+        primary = "#007a54", # dark green
         primary_fade = "#007a54", # medium green
         primary_offset = "#417860", # light_green
         control = "#69A088", # lighter green
         border_standard = "#e9ebf3", # light grey-blue
         border_dark = "black", # black
         border_alert = "red", # red
-        button_text = "#fbf9f9", # off-white 
+        button_text = "#fbf9f9", # off-white
         button_text_shadow = "#555555", # medium grey
         table_heading = "#d8d8d8", # grey-blue
         mobile_header_text = "#fff", # white
         item_selected = "#ddd", # grey (lighter)
-        link = "#00593d", # dark green
+        link = "#007a54", # dark green
 
 #Buttons are using default Bootstrap styling colors by default with this scheme, changable to match your library colours
 
         button_confirm_border_hover = "#00593d",
         button_confirm_text = "#fff",
 
-#Denial buttons like Cancel. Make all 4 the same color for no hover effect    
-        button_deny = "#dc3545",
-        button_deny_hover = "#c82333",
-        button_deny_border = "#dc3545",
+#Denial buttons like Cancel. Make all 4 the same color for no hover effect
+        button_deny = "#c82333",
+        button_deny_hover = "#b21f2d",
+        button_deny_border = "#bd2130",
         button_deny_border_hover = "#bd2130",
         button_deny_text = "#fff",
 
         button_remove_border_hover = "#bd2130",
         button_remove_text = "#fff",
 
-#Main search buttons and buttons that are not a confirm or deny such as the Less and More details on the record. Make all 4 the same color for no hover effect 
-        opac_button = "#2e3b91",
-        opac_button_hover = "#949cc8",
-        opac_button_border = "#2e3b91",
-        opac_button_border_hover = "#949cc8",
+#Main search buttons and buttons that are not a confirm or deny such as the Less and More details on the record. Make all 4 the same color for no hover effect
+        opac_button = "#424fa6",
+        opac_button_hover = "#4a58b7",
+        opac_button_border = "#2e3b91;",
+        opac_button_border_hover = "#2e3b91;",
         opac_button_text = "#fff",
 
-#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 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 = "#007a54",
@@ -96,5 +96,5 @@
         #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 = "",
 };
-    
+
 %]
index eaf2e7b..e86b319 100755 (executable)
@@ -8,6 +8,6 @@
         size_big = "110%",
         size_bigger = "125%",
         size_biggest = "150%"
-       font_main = "Arial, Helvetica, sans-serif",
+        font_main = "Arial, Helvetica, sans-serif",
     }
 %]
index e03033e..9cabf96 100755 (executable)
@@ -1,4 +1,4 @@
-[%- 
+[%-
     # If caller passes a list of possible filter_groups
     # search all until we find some values
     IF !filter_group.size; filter_group = [filter_group]; END;
@@ -10,7 +10,7 @@
     name = name || "fg:" _ group.code;
     id = id || group.code _ "_selector";
     class = class || '';
-    values = values || CGI.param(name); 
+    values = values || CGI.param(name);
     IF size AND size < 1; size = group.entries.size; END;
 -%]
 
index 2990352..4f029cd 100755 (executable)
@@ -1,5 +1,5 @@
-<select title="[% l('Search sorting') %]" 
-    [% class ? ('class="' _ class _ '"') : '' %] id='[% id || "opac.result.sort" %]' 
+<select title="[% l('Search sorting') %]"
+    [% class ? ('class="' _ class _ '"') : '' %] id='[% id || "opac.result.sort" %]'
     name="[% name || 'sort' %]" [% IF submit_on_change %]onchange='this.form.submit()'[% END %]>
     [% IF mode != 'bookbag' %]<option value=''>[% l("Sort by Relevance") %]</option>[% END %]
     <optgroup label='[% l("Sort by Title") %]'>
index 86ebcaa..e51a4ea 100755 (executable)
@@ -1,23 +1,23 @@
 [% IF !ctx.is_staff %]
 <div id="footer-wrap" class="mt-auto">
-<div id="footer" class="text-center">
+<div id="footer">
 <nav class="navbar navbar-expand-lg navbar-dark ">
 <!--Home-->
-  
+
+
+
   <!--Left Links-->
   <div class="row w-100">
     <div class="col-12">
-        <ul class="navbar-nav justify-content-center ">
+        <ul class="navbar-nav">
             <!--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') %]">[% 
+            <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('Example Link 1') %]</a></li> 
+            <li class="nav-item"><a class="nav-link" href="#">[% l('Example Link 1') %]</a></li>
         [% END %]
-            <li class="nav-item"><a class="nav-link" href="#">[% l('Example Link 2') %]</a></li> 
+            <li class="nav-item"><a class="nav-link" href="#">[% l('Example Link 2') %]</a></li>
             <li class="nav-item"><a class="nav-link" href="#">[% l('Example Link 3') %]</a></li>
             <li class="nav-item"><a class="nav-link" href="#">[% l('Example Link 4') %]</a></li>
         </ul>
         [% END %]
     </div>
     [% END %]
-    
-      <div id="copyright_text" class="mt-3 text-center">
+
+      <div id="copyright_text" class="mt-3">
         [% l('Copyright &copy; 2006-[_1] Georgia Public Library Service, and others', date.format(date.now, '%Y')) %]
     <div id="footer_logo">
         [% l('Powered by') %]
         <a href="http://evergreen-ils.org">
             <img src="[% ctx.media_prefix %]/opac/images/eg_tiny_logo.png[% ctx.cache_key %]"
-                style="border:none; width: 94px; height: 16px;"
                 alt="[% l('Evergreen') %]"
             />
         </a>
     </div>
-   
+
     </div>
-    
+
 </div>
 [% END %]
index 5070537..c5927db 100755 (executable)
@@ -8,10 +8,10 @@
     _gaq.push(['_trackPageview']);
 
     (function() {
-        var ga = document.createElement('script'); 
+        var ga = document.createElement('script');
         ga.type = 'text/javascript'; ga.async = true;
         ga.src = ('oils:' == document.location.protocol || 'https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-        var s = document.getElementsByTagName('script')[0]; 
+        var s = document.getElementsByTagName('script')[0];
         s.parentNode.insertBefore(ga, s);
     })();
 </script>
index e3a0eda..f54b472 100755 (executable)
@@ -42,7 +42,7 @@
     # mkurl('http://flarg.baz/squz', {foo => 'bar', boo => ['baz', 'faz']});
     #
     # New page, clear all existing params before applying new ones:
-    # mkurl('/fuz/buster', {foo => 'bar', boo => 'baz'}, 1); 
+    # mkurl('/fuz/buster', {foo => 'bar', boo => 'baz'}, 1);
     #
     # Current page, clear 'some_param' from the existing params:
     # mkurl('', {foo => 'bar', boo => 'baz'}, ['some_param']);
         cgi.delete('move_cart_by_default');
         cgi.delete('cart_none_selected');
         cgi.delete('list_none_selected');
-        
-        # x and y are artifacts of using <input type="image" /> tags 
+
+        # x and y are artifacts of using <input type="image" /> tags
         # instead of true submit buttons, and their values are never used.
-        cgi.delete('x', 'y'); 
+        cgi.delete('x', 'y');
 
         # apply user params
         FOR k IN params.keys;
     # the full HTML attribute key="value" is produced
     MACRO html_text_attr(name, value) BLOCK;
         IF value.length >= 75;
-            value = value.substr(71, value.length, '...');                        
-        END;                                                                   
-        value = value.replace('\s*$', ''); # remove trailing whitespace          
-        HTML.attributes($name => value); 
+            value = value.substr(71, value.length, '...');
+        END;
+        value = value.replace('\s*$', ''); # remove trailing whitespace
+        HTML.attributes($name => value);
     END;
 
     MACRO img_alt(text) BLOCK;
index f2eb5e6..bb7f6cd 100755 (executable)
@@ -1,5 +1,5 @@
 [% BLOCK get_hold_status %]
-<div>   
+<div>
     [% IF hold.hold.status == 4 %]
             <span class="myopac-hold-available">[% l("Available") %] </span>
               [% IF ahr.shelf_expire_time %]
index 721c060..e79cfb3 100755 (executable)
@@ -1,4 +1,6 @@
-<div id="homeLogo">
-    
-</div>
+
+[%-
+    PROCESS "opac/parts/css/colors.tt2";
+%]
+
 [% PROCESS carousels %]
index 8ddf1a6..488c95b 100755 (executable)
@@ -1,6 +1,6 @@
 
 
-       
+
 <script  src="[% ctx.media_prefix %]/js/ui/default/opac/simple.js[% ctx.cache_key %]"></script>
 [% INCLUDE "opac/i18n_strings.tt2" %]
 
@@ -65,7 +65,7 @@
                 [% FOR summary IN ctx.mfhd_summaries %]
                     [% IF summary.sre_id != -1 %]
                 {
-                    'id' : '[% summary.sre_id %]', 
+                    'id' : '[% summary.sre_id %]',
                     'label' : '[% summary.location | replace("'", "\\'") %]',
                     'entryNum' : [% loop.index %],
                     'owning_lib' : '[% summary.owning_lib %]'
 
 [% INCLUDE "opac/parts/acjs.tt2" IF ctx.page == 'record' %]
 [% IF ctx.page == 'advanced' %]
-<script  
+<script
     src="[% ctx.media_prefix %]/js/ui/default/opac/copyloc.js[% ctx.cache_key %]"></script>
 [% END %]
 
@@ -180,10 +180,10 @@ var aou_hash = {
 
 <script src="[% ctx.media_prefix %]/js/bootstrap/popper.min.js"></script>
 
-<script src="[% ctx.media_prefix %]/js/bootstrap/bootstrap.min.js"></script>  
+<script src="[% ctx.media_prefix %]/js/bootstrap/bootstrap.min.js"></script>
 
 <script  src="[% ctx.media_prefix %]/js/datepicker/bootstrap-datepicker.js"></script>
+
   <script>
     $(document).ready(function(){
     $('[data-toggle="tooltip"]').tooltip();
index 23c405e..9e48741 100755 (executable)
@@ -7,14 +7,14 @@
 <div class="container">
     <div>
     <h2>[% ctx.library.name | html %]</h2>
-    
+
     [%-
         lib_url = ctx.get_org_setting(ctx.library.id, 'lib.info_url');
         IF lib_url;
             '<div id="library-url"><a href="'; lib_url | html; '" property="url">'; l('Library web site'); '</a></div>';
         END;
     -%]
-    
+
     [%- IF ctx.hours; %]
         [%- INCLUDE "opac/parts/library/hours.tt2"; %]
     [% END; -%]
@@ -27,9 +27,9 @@
     [%- END; %]
     [%- IF ctx.library.phone; %]
         <div>[% l('Telephone: ') %]<a href="tel:[% ctx.library.phone | html %]" property="telephone">[% ctx.library.phone | html %]</a></div>
-    [% END; %]
+    [% END %]
     </div>
-    [% END; %]
+    [% END %]
 
     [%- IF ctx.library.mailing_address; %]
     <div class="my-3" id="addresses">
index c3d26f3..dd5e469 100755 (executable)
@@ -5,10 +5,10 @@
     END;
 
   # Allow fleshed circ_libs
-    IF copy_info.circ_lib.name; 
+    IF copy_info.circ_lib.name;
        org_id = copy_info.circ_lib.id;
-       org_name = copy_info.circ_lib.name; 
-       org_sname = copy_info.circ_lib.shortname; 
+       org_name = copy_info.circ_lib.name;
+       org_sname = copy_info.circ_lib.shortname;
     ELSE;
        org_id = copy_info.circ_lib;
        org_name = ctx.get_aou(org_id).name;
@@ -19,7 +19,7 @@
     prefer_external_url = ctx.get_org_setting(org_id, 'lib.prefer_external_url');
     UNLESS lib_url && prefer_external_url;
         lib_url = mkurl(opac_root _ '/library/' _ org_sname, {}, 1);
-    END; 
+    END;
     IF lib_url; '<a target="_blank" property="offeredBy" typeof="Library" href="'; lib_url | html; '">'; END;
     '<span property="name">'; org_name | html; '</span>';
     IF lib_url; '</a>'; END;
index 54e085b..730167e 100755 (executable)
@@ -7,14 +7,14 @@
     # Requires a "fleshed_ou" (aou) object defined.
     # Allow fleshed circ_libs
     org_id = fleshed_ou.id;
-    org_name = fleshed_ou.name; 
+    org_name = fleshed_ou.name;
     org_sname = fleshed_ou.shortname;
 
     lib_url = ctx.get_org_setting(org_id, 'lib.info_url');
     prefer_external_url = ctx.get_org_setting(org_id, 'lib.prefer_external_url');
     UNLESS lib_url && prefer_external_url;
         lib_url = mkurl(opac_root _ '/library/' _ org_sname, {}, 1);
-    END; 
+    END;
     IF lib_url; '<a property="offeredBy" typeof="Library" href="'; lib_url | html; '">'; END;
     '<span property="name">'; org_name | html; '</span>';
     IF lib_url; '</a>'; END;
index de30a46..295aac7 100755 (executable)
@@ -12,7 +12,7 @@
         [%- NEXT IF param.key == 'set_eg_locale'; -%]
         <input type="hidden" name="[% param.key | html %]" value="[% param.value | html %]" />
     [%- END; -%]
-   
+
     <select id="locale_picker" name="set_eg_locale" class="form-control form-control-sm col-6">
     [%- FOREACH locale IN ctx.locales.keys %]
         [%- IF set_locale == locale;
@@ -25,7 +25,7 @@
     [%- END %]
     </select>
     <div class="col-3">
-     <button type="submit" class="btn btn-sm btn-confirm float-right"><i class="fas fa-save"></i>[% l(" Save Changes") %]</button>
+     <button type="submit" class="btn btn-sm btn-confirm float-right"/><i class="fas fa-save" aria-hidden="true"></i>[% l(" Save Changes") %]</button>
     </div>
 </form>
 [%- END %]
index 862308a..525dd38 100755 (executable)
@@ -19,8 +19,8 @@
 %]
 </div>
 [% END %]
-    
+
+
     <div class="mx-auto row w-75 my-5">
         <div class='col-md-6'>
             <label for='username_field' class="lbl1" >[% l('Library Card Number') %]<span title="[% INCLUDE "opac/parts/login/username_hint.tt2" %]" data-html="true" data-toggle="tooltip">
             </div>
                <a href='[% mkurl(ctx.opac_root _ '/register', {}, 1) %]'>[% l('Request A Card') %]</a>
             <br>
-            
+
         </div>
         <div class='col-md-6'>
             <label for="password_field" class="lbl1" >[% l('PIN') %]<span title="[% INCLUDE "opac/parts/login/password_hint.tt2" %]" data-html="true" data-toggle="tooltip">
                         <i class="fas fa-question-circle"></i>
                     </span></label><br>
-             
+
             <div class="input_bg mb-2">
                 <input class="form-control" id="password_field" name="password" type="password"/>
             </div>
@@ -44,7 +44,7 @@
             <a href='[% mkurl(ctx.opac_root _ '/password_reset', {}, 1) %]'>[% l('Forgot Your Password?') %]  </a>
             [% END %]
             <br>
-            
+
         </div>
 
          <div class="col-12 pt-4 text-center">
@@ -54,7 +54,7 @@
                     [% l('Stay logged in?') %]
                 </label>
             </div>
-            <button type="submit" class="btn btn-confirm my-2"><i class="fas fa-sign-in-alt"></i> [% l('Log in') %]</button>
+            <button type="submit" class="btn btn-confirm my-2"><i class="fas fa-sign-in-alt" aria-hidden="true"></i> [% l('Log in') %]</button>
         </div>
         <div style="clear: both; padding-top: 15px;" class="col-12 text-center">
         [%
                 redirect = redirect  | replace('^http:', 'https:');
             %]
             <input type='hidden' name='redirect_to' value='[% redirect | html %]'/>
-          
+
         </div>
         <input id="client_tz_id" name="client_tz" type="hidden" />
         </div>
     </form>
-    
+
 </div>
 
index 9e38988..294d67e 100755 (executable)
@@ -5,13 +5,13 @@
 </div>
 <div class="col-12 text-center">
     <div class="mx-3 d-inline-block">
-        <a href="http://example.com" class="btn btn-confirm"><i class="fas fa-question"></i> [% l('Questions?') %]</a>
+        <a href="http://example.com" class="btn btn-confirm"><i class="fas fa-question" aria-hidden="true"></i> [% l('Questions?') %]</a>
     </div>
-    
+
     <div class="mx-3 d-inline-block">
         <div>
-            <a href="http://example.com" class="btn btn-confirm"><i class="fas fa-tasks"></i> [% l('FAQs') %]</a>
-           </div>
+            <a href="http://example.com" class="btn btn-confirm"><i class="fas fa-tasks" aria-hidden="true"></i> [% l('FAQs') %]</a>
+        </div>
     </div>
 
 </div>
index 252df0c..caded87 100755 (executable)
@@ -1,31 +1,31 @@
-<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
+<div class="modal fade" id="loginModal" tabindex="-1" role="dialog" aria-labelledby="loginModalLabel" aria-hidden="true">
   <div class="modal-dialog modal-dialog-centered" role="document">
     <div class="modal-content">
      <form method='post' action="/eg/opac/login?redirect_to=%2Feg%2Fopac%2Fmyopac%2Fmain">
       <div class="modal-header">
         <h1 class="modal-title" id="exampleModalLabel">Login To Evergreen</h1>
         <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-          <i class="fas fa-times"></i>
+          <i class="fas fa-times" aria-hidden="true"></i>
         </button>
       </div>
       <div class="modal-body">
-      
-       [% IF ctx.login_failed_event %]
-               <div id='login-failed-message'>
-               [%
-               IF ctx.login_failed_event.textcode == 'PATRON_CARD_INACTIVE';
-                       l("The barcode used to login is marked as inactive.  Please contact your local library.");
-               ELSIF ctx.login_failed_event.textcode == 'PATRON_INACTIVE';
-                       l("This account has been deactivated.  Please contact your local library.");
-               ELSE;
-                       l("Login failed. The username or password provided was not valid. " _
-                       "Passwords are case-sensitive.  Check your Caps-Lock key and try again or contact your local library.");
-               END;
-               %]
-               </div>
-               [% END %]
 
-<div class='container text-center'>
+      [% IF ctx.login_failed_event %]
+    <div id='login-failed-message'>
+    [%
+        IF ctx.login_failed_event.textcode == 'PATRON_CARD_INACTIVE';
+            l("The barcode used to login is marked as inactive.  Please contact your local library.");
+        ELSIF ctx.login_failed_event.textcode == 'PATRON_INACTIVE';
+            l("This account has been deactivated.  Please contact your local library.");
+        ELSE;
+            l("Login failed. The username or password provided was not valid. " _
+               "Passwords are case-sensitive.  Check your Caps-Lock key and try again or contact your local library.");
+        END;
+    %]
+    </div>
+    [% END %]
+
+<div class='container'>
     <div class="mx-auto row py-4">
         <div class='col-md-6'>
             <label for='username_field' class="lbl1" >[% l('Library Card Number') %]<span title="[% INCLUDE "opac/parts/login/username_hint.tt2" %]" data-html="true" data-toggle="tooltip">
             </div>
                <a href='[% mkurl(ctx.opac_root _ '/register', {}, 1) %]'>[% l('Request A Card') %]</a>
             <br>
-            
+
         </div>
         <div class='col-md-6'>
             <label for="password_field" class="lbl1" >[% l('PIN') %]<span title="[% INCLUDE "opac/parts/login/password_hint.tt2" %]" data-html="true" data-toggle="tooltip">
                         <i class="fas fa-question-circle"></i>
                     </span></label><br>
-             
+
             <div class="input_bg mb-2">
                 <input class="form-control" id="password_field" name="password" type="password"/>
             </div>
@@ -49,7 +49,7 @@
             <a href='[% mkurl(ctx.opac_root _ '/password_reset', {}, 1) %]'>[% l('Forgot Your Password?') %]  </a>
             [% END %]
             <br>
-            
+
         </div>
         <div style="clear: both; padding-top: 15px;" class="col-12">
         [%
                 redirect = redirect  | replace('^http:', 'https:');
             %]
         </div>
-       
+
         <input id="client_tz_id" name="client_tz" type="hidden" />
         </div>
-       </div>
-               [%# INCLUDE "opac/parts/login/help.tt2" %]
+  </div>
+    [%# INCLUDE "opac/parts/login/help.tt2" %]
 
       </div>
       <div class="modal-footer">
       <div class="mr-auto">
-       <input type='hidden' name='redirect_to' value='[% redirect | html %]'/>
+        <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>
       </div>
-       
-        <button type="button" class="btn btn-secondary" data-dismiss="modal"><i class="fas fa-times"></i> [% l('Close') %]</button>
-        <button type="submit" class="btn btn-confirm"><i class="fas fa-sign-in-alt"></i> [% l('Log in') %]</button>
+
+        <button type="button" class="btn btn-secondary" data-dismiss="modal"><i class="fas fa-times" aria-hidden="true"></i> [% l('Close') %]</button>
+        <button type="submit" class="btn btn-confirm"><i class="fas fa-sign-in-alt" aria-hidden="true"></i> [% l('Log in') %]</button>
       </div>
       </form>
     </div>
index 8175002..c1e2df6 100755 (executable)
@@ -23,14 +23,14 @@ limiting the set of desired records for a given metarecord.
 <div class="row">
   <div class="col-6">
     <div class="metarecord_filter_header">
-      
+
     </div>
     <select multiple='multiple' class="form-control"
       name="metarecord_formats_[% target_id %]">
       [% FOR ccvm IN
           hold_data.metarecord_filters.formats.sort('search_label');
           NEXT IF ccvm.opac_visible == 'f' %]
-        <option value="[% ccvm.code %]"[%- code = ccvm.code; 
+        <option value="[% ccvm.code %]"[%- code = ccvm.code;
             IF selected_formats.$code %] selected='selected'[% END -%]>
           [% ccvm.search_label | html %]
         </option>
@@ -43,12 +43,12 @@ limiting the set of desired records for a given metarecord.
         my_lang = ctx.get_i18n_l(ctx.eg_locale).marc_code;
   %]
   <div class="col-6">
-   
+
     <select multiple='multiple' class="form-control"
       name="metarecord_langs_[% target_id %]">
       [% FOR lang_ccvm IN hold_data.metarecord_filters.langs.sort('value');
             NEXT IF lang_ccvm.opac_visible == 'f';
-            selected = 0; 
+            selected = 0;
             code = lang_ccvm.code;
             IF selected_langs.size;
                 # user has already selected their preferred language(s)
@@ -59,7 +59,7 @@ limiting the set of desired records for a given metarecord.
                 SET selected = 1 IF code == my_lang;
             END;
         %]
-        <option value="[% lang_ccvm.code %]"[%- 
+        <option value="[% lang_ccvm.code %]"[%-
             IF selected %] selected='selected'[%- END %]>
           [% lang_ccvm.value | html %]
         </option>
@@ -71,6 +71,6 @@ limiting the set of desired records for a given metarecord.
     </div>
   </div>
   [% END %]
-  
+
 </div>
 [% END # metarecord_hold_filters_selector %]
index e7e7cc0..359a5e9 100755 (executable)
@@ -1,4 +1,4 @@
-[%- 
+[%-
     # Support multiscript records via alternate graphic 880 fields
     # get_graphic_880s(target_field='100')
     # See "Model A" in http://www.loc.gov/marc/bibliographic/ecbdmulti.html
@@ -95,7 +95,7 @@
         END;
 
         args.df_bib_list = args.bibid;
-        args.bibid = args.bibid.0; 
+        args.bibid = args.bibid.0;
 
         IF args.mr_constituent_ids.size && !args.df_bib_list.size;
             args.df_bib_list = args.mr_constituent_ids;
         END;
         hl_field = args.hl_field;
 
-        junk = ctx.timelog('Fetching display fields and Using data from "' _ hl_field _ '" for rendering'); 
+        junk = ctx.timelog('Fetching display fields and Using data from "' _ hl_field _ '" for rendering');
         args.display_field_list = ctx.fetch_display_fields(args.df_bib_list.list);
 
-        junk = ctx.timelog('Mapping display fields for bib(s) ' _ args.df_bib_list.list.join(', ')); 
+        junk = ctx.timelog('Mapping display fields for bib(s) ' _ args.df_bib_list.list.join(', '));
         FOR df IN args.display_field_list;
             df_map = ctx.search_cdfm('field', df.field).0;
             df_name = df_map.name();
                 args.hl.$df_name = df.$hl_field || df.value;
             END;
         END;
-        junk = ctx.timelog('Finished mapping display fields for bib(s) ' _ args.df_bib_list.list.join(', ')); 
+        junk = ctx.timelog('Finished mapping display fields for bib(s) ' _ args.df_bib_list.list.join(', '));
 
         # Map item types to schema.org types; impedance mismatch :(
         args.schema.itemtype = {};
         # Create a version of the title designed for sorted displays.
         args.sort_title = args.title | upper;
 
-        # If the title has a "non-filing chaaracters" 
+        # If the title has a "non-filing chaaracters"
         # (to logically remove leading "The " for example)
         # chop the title. Otherwise, chop until the first alphanumeric.
         # BTW: Template Toolkit folds 1-element arrays to scalars!
         title_node = xml.findnodes('//*[@tag="245"]');
 
         args.nonfiling_characters = title_node.findvalue('@ind2');
-      
+
         IF (args.nonfiling_characters > 0);
-             args.sort_title = args.sort_title.substr(args.nonfiling_characters); 
+             args.sort_title = args.sort_title.substr(args.nonfiling_characters);
         ELSE;
              args.sort_title = args.sort_title.replace('^[^A-Z0-9]*','');
         END;
-      
+
         args.pubplaces = [];
         pubplace_hunt = xml.findnodes('//*[@tag="260"]/*[@code="a"]') ||
             xml.findnodes('//*[@tag="264" and @ind2="1"]/*[@code="a"]');
         args.publisher = (args.publishers.size) ? args.publishers.0 : '';
 
         args.pubdates = [];
-        pubdates_hunt = xml.findnodes('//*[@tag="260"]/*[@code="c"]') || 
+        pubdates_hunt = xml.findnodes('//*[@tag="260"]/*[@code="c"]') ||
             xml.findnodes('//*[@tag="264" and @ind2="1"]/*[@code="c"]');
         FOR sub IN pubdates_hunt;
             args.pubdates.push(sub.textContent);
             args.marc_cns.push(sub.textContent);
         END;
         args.marc_cn = (args.marc_cns.size ) ? args.marc_cns.0 : '';
-            
+
 
         # clean up the ISBN
         args.isbn_clean = args.isbns.0.replace('\ .*', '');
                 NEXT UNLESS href;
                 # it's possible for multiple $u's to exist within 1 856 tag.
                 # in that case, honor the label/notes data for the first $u, but
-                # leave any subsequent $u's as unadorned href's. 
+                # leave any subsequent $u's as unadorned href's.
                 # use href/link/note keys to be consistent with args.uri's
                 args.online_res.push({
-                    href => href.textContent, 
+                    href => href.textContent,
                     link => (loop.first AND label) ? label.textContent : href.textContent,
                     note => (loop.first) ? notes.textContent : ''
                 });
             END;
         END;
+
         args.holdings = [];
         args.uris = [];
         args.issns = [];
             END;
         END;
 
-        # now snag all issns 
+        # now snag all issns
         FOR rawissn IN xml.findnodes('//*[@tag="022"]/*[@code="a"]');
             args.issns.push(
                 rawissn.textContent.replace('[^\d\-X]', '')
                         LAST IF part_label != '';
                     END;
                     # Check copy visibility
-                    cp.deleted = copy.getAttribute('deleted');    
+                    cp.deleted = copy.getAttribute('deleted');
                     cp.visible = copy.getAttribute('opac_visible');
                     NEXT IF (cp.deleted == 'true' OR cp.visible == 'false');
 
                     END;
 
                     NEXT IF cp.visible == 'false';
-                    
+
                     loc = copy.findnodes('./*[local-name()="location"]');
                     NEXT IF loc.getAttribute('opac_visible') == 'false';
 
         xpath = '//*[local-name()="counts"]/*[local-name()="count"][@type="' _ count_type _ '"]';
         args.copy_counts = {};
         FOR node IN xml.findnodes(xpath);
-            FOR attr IN ['count', 'available', 'unshadow', 'transcendant', 'org_unit']; 
+            FOR attr IN ['count', 'available', 'unshadow', 'transcendant', 'org_unit'];
                 depth = node.getAttribute('depth');
                 count_org_unit = node.getAttribute('org_unit');
                 args.copy_counts.$depth.$attr = node.getAttribute(attr);
         count_type = 'pref_lib';
         xpath = '//*[local-name()="counts"]/*[local-name()="count"][@type="' _ count_type _ '"]';
         FOR node IN xml.findnodes(xpath);
-            FOR attr IN ['count', 'available', 'unshadow', 'transcendant', 'org_unit']; 
+            FOR attr IN ['count', 'available', 'unshadow', 'transcendant', 'org_unit'];
                 depth = node.getAttribute('depth');
                 args.plib_copy_counts.$depth.$attr = node.getAttribute(attr);
             END;
 
     # Get the library or location group
     # get_library()
-    # magically upgrades any use of 'loc' to 'locg', 
+    # magically upgrades any use of 'loc' to 'locg',
     # which is a superset of 'loc'.
     BLOCK get_library;
         loc_name = 'locg';
                 carousel.name = car.override_name;
             END;
             carousels.push(carousel);
-        END; 
+        END;
     END;
     IF carousels.size > 0;
 %]
            <!-- <a href="[% mkurl(ctx.opac_root  _ '/record/' _ bib.id) %]"> -->
             [% bib.title | html %]
            <!-- </a> -->
-            
+
             </span>
             </div>
         </div>
     </li>
-[% END; %]
+[% END %]
     </ul>
   </div>
   <div class="glide__arrows" data-glide-el="controls">
     });
     glide.mount();
 </script>
-[% END; %]
-[% END; %]
+[% END %]
+[% END %]
 </div>
 [% END -%]
 [% END -%]
index be7abb9..15bc336 100755 (executable)
@@ -1,36 +1,36 @@
 [%  WRAPPER "opac/parts/base.tt2" %]
 
 [% myopac_pages = [
-        {children => 0, parent => "parent",url => "main", text => l("<i class='fas fa-home'></i>Home"), name => l("Account Summary")},
+        {children => 0, parent => "parent",url => "main", text => l("<i class='fas fa-home' aria-hidden='true'></i> Home"), name => l("Account Summary")},
 
-        {children => 2, parent => "parent",url => "charges", text => l("<i class='fas fa-money-check-alt'></i><span class='sumNum'>[_1]</span>Charges", money(ctx.user_stats.fines.balance_owed)), name => l("Charges")},
-        {children => 0, parent => "charges",url => "charges", text => l("<i class='fas fa-file-invoice'></i>Current Charges"), name => l("Current Charges")},
-        {children => 0, parent => "charges",url => "main_payments", text => l("<i class='fas fa-history'></i>Payment History"), name => l("Payment History")},
+        {children => 2, parent => "parent",url => "charges", text => l("<i class='fas fa-money-check-alt' aria-hidden='true'></i> <span class='sumNum'>[_1]</span>Charges", money(ctx.user_stats.fines.balance_owed)), name => l("Charges")},
+        {children => 0, parent => "charges",url => "charges", text => l("<i class='fas fa-file-invoice' aria-hidden='true'></i> Current Charges"), name => l("Current Charges")},
+        {children => 0, parent => "charges",url => "main_payments", text => l("<i class='fas fa-history' aria-hidden='true'></i> Payment History"), name => l("Payment History")},
 
-        {children => 0, parent => "parent", url => "messages", text => l("<i class='fas fa-envelope'></i><span class='sumNum'>[_1]</span>Messages",  ctx.user_stats.messages.unread), name => l("Messages")},
+        {children => 0, parent => "parent", url => "messages", text => l("<i class='fas fa-envelope' aria-hidden='true'></i> <span class='sumNum'>[_1]</span>Messages",  ctx.user_stats.messages.unread), name => l("Messages")},
 
-        {children => 3, parent => "parent",url => "circs", text => l("<i class='fas fa-book'></i><span class='sumNum'>[_1]</span>Items Checked Out", ctx.user_stats.checkouts.total_out), name = l("Circulations")},
-        {children => 0, parent => "circs", url => "circs", text => l("<i class='fas fa-book-reader'></i>Current Items Checked Out"), name=> l("Circulations")},
-        {children => 0, parent => "circs", url => "ebook_circs", text => l("<i class='fas fa-desktop'></i>E-Items Currently Checked Out"), name => l("E-Items Currently Checked Out")},
-        {children => 0, parent => "circs", url => "circ_history", text => l("<i class='fas fa-history'></i>Check Out History"), name => l("Check Out History")},
+        {children => 3, parent => "parent",url => "circs", text => l("<i class='fas fa-book' aria-hidden='true'></i> <span class='sumNum'>[_1]</span>Items Checked Out", ctx.user_stats.checkouts.total_out), name = l("Circulations")},
+        {children => 0, parent => "circs", url => "circs", text => l("<i class='fas fa-book-reader' aria-hidden='true'></i> Current Items Checked Out"), name=> l("Circulations")},
+        {children => 0, parent => "circs", url => "ebook_circs", text => l("<i class='fas fa-desktop' aria-hidden='true'></i> E-Items Currently Checked Out"), name => l("E-Items Currently Checked Out")},
+        {children => 0, parent => "circs", url => "circ_history", text => l("<i class='fas fa-history' aria-hidden='true'></i> Check Out History"), name => l("Check Out History")},
 
-        {children => 4, parent => "parent",url => "holds", text => l("<i class='fas fa-clock'></i><span class='sumNum'>[_1]</span>Holds / <span class='sumNum'>[_2]</span> Ready", ctx.user_stats.holds.total, ctx.user_stats.holds.ready), name => l("Holds")},
-        {children => 0, parent => "holds", url => "holds", text => l("<i class='fas fa-hands'></i>Items on Hold"), name => l("Holds")},
-        {children => 0, parent => "holds", url => "ebook_holds", text => l("<i class='fas fa-desktop'></i>E-Items on Hold"), name => l("E-Items on Hold")},
-        {children => 0, parent => "holds", url => "ebook_holds_ready", text => l("<i class='fas fa-download'></i> E-Items Ready for Checkout"), name => l("E-Items Ready for Checkout")},
-        {children => 0, parent => "holds", url => "hold_history", text => l("<i class='fas fa-history'></i>Holds History"), name => l("Holds History")},
+        {children => 4, parent => "parent",url => "holds", text => l("<i class='fas fa-clock' aria-hidden='true'></i> <span class='sumNum'>[_1]</span>Holds / <span class='sumNum'>[_2]</span> Ready", ctx.user_stats.holds.total, ctx.user_stats.holds.ready), name => l("Holds")},
+        {children => 0, parent => "holds", url => "holds", text => l("<i class='fas fa-hands' aria-hidden='true'></i> Items on Hold"), name => l("Holds")},
+        {children => 0, parent => "holds", url => "ebook_holds", text => l("<i class='fas fa-desktop' aria-hidden='true'></i> E-Items on Hold"), name => l("E-Items on Hold")},
+        {children => 0, parent => "holds", url => "ebook_holds_ready", text => l("<i class='fas fa-download' aria-hidden='true'></i>  E-Items Ready for Checkout"), name => l("E-Items Ready for Checkout")},
+        {children => 0, parent => "holds", url => "hold_history", text => l("<i class='fas fa-history' aria-hidden='true'></i> Holds History"), name => l("Holds History")},
 
-        {children => 4, parent => "parent", url => "prefs", text => l("<i class='fas fa-cog'></i>Preferences"),name => l("Preferences")},
-        {children => 0, parent => "prefs", url => "prefs", text => l("<i class='fas fa-user-cog'></i>Personal Information"), name => l("Preferences")},
-        {children => 0, parent => "prefs", url => "prefs_notify", text => l("<i class='fas fa-exclamation-circle'></i>Notifications"), name => l("Notifications")},
-        {children => 0, parent => "prefs", url => "prefs_settings", text => l("<i class='fas fa-search'></i>Search & History"), name => l("Search & History")},
-        {children => 0, parent => "prefs", url => "prefs_my_lists", text => l("<i class='fas fa-list'></i>Lists"), name => l("Lists")},
+        {children => 4, parent => "parent", url => "prefs", text => l("<i class='fas fa-cog' aria-hidden='true'></i> Preferences"),name => l("Preferences")},
+        {children => 0, parent => "prefs", url => "prefs", text => l("<i class='fas fa-user-cog' aria-hidden='true'></i> Personal Information"), name => l("Preferences")},
+        {children => 0, parent => "prefs", url => "prefs_notify", text => l("<i class='fas fa-exclamation-circle' aria-hidden='true'></i> Notifications"), name => l("Notifications")},
+        {children => 0, parent => "prefs", url => "prefs_settings", text => l("<i class='fas fa-search' aria-hidden='true'></i> Search & History"), name => l("Search & History")},
+        {children => 0, parent => "prefs", url => "prefs_my_lists", text => l("<i class='fas fa-list' aria-hidden='true'></i> Lists"), name => l("Lists")},
 
-        
-        {children => 0, parent => "parent", url => "lists", text => l("<i class='fas fa-list'></i>My Lists"), name => l("My Lists")}
+
+        {children => 0, parent => "parent", url => "lists", text => l("<i class='fas fa-list' aria-hidden='true'></i> My Lists"), name => l("My Lists")}
     ];
      IF (ctx.show_reservations_tab == 'true');
-        myopac_pages.push({children => 0, parent => "parent", url => "reservations", text => l("<i class='fas fa-splotch'></i> Reservations"), name => l("Reservations")});
+        myopac_pages.push({children => 0, parent => "parent", url => "reservations", text => l("<i class='fas fa-splotch' aria-hidden='true'></i>  Reservations"), name => l("Reservations")});
     END;
     skin_root = "../"
 %]
     <div>
         [% INCLUDE "opac/parts/searchbar.tt2" %]
     </div>
-
-    <div class="mx-5">
-        <div class="row top-divide">
-            <div class="my_nav col-xl-3 col-lg-3 col-12 mx-auto text-center my-3">
+    <hr />
+    <div class="container">
+        <div class="row">
+            <div class="col-md-3">
+                <div class="my_nav">
                 <div class="btn-group-vertical dropright">
-        
+
                 [%- FOREACH page IN myopac_pages;
                     IF page.url == myopac_page || page.url == parent;
                         active = "active";
                     ELSE;
                         active = "";
                     END -%]
-                    
+
                     [% IF page.parent == "parent" && page.children > 0; %]
-                    <div class="dropdown dropright w-100">
+                    <div class="dropdown dropright">
                         <button class="btn btn-action text-left dropdown-toggle [% active %]" id="dropdownMenuLink-[% page.url %]" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                             [% page.text; %]
                         </button>
-  
+
                         <div class="dropdown-menu" aria-labelledby="dropdownMenuLink-[% page.url %]">
                         [%- FOREACH child IN myopac_pages; -%]
                             [% IF child.parent == page.url;
                         </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.text; %]
   </a>
+
                     [% END %]
                 [% END %]
+                </div>
            </div>
            </div><!-- myopac_tabs -->
-        <div class="col-xl-9 col-12 my-3">
+        <div class="col">
             [% content %]
-            
+
         </div>
         </div>
     </div> <!-- content-wrapper -->
-    
+
+
 [% END %]
index 6d5ba47..ab934b8 100755 (executable)
@@ -1,4 +1,4 @@
-[%# Produce a URL for a given field that cycles for sorting from 
+[%# Produce a URL for a given field that cycles for sorting from
     "nothing" to "ascending" to "descending" then back to "nothing".
 %]
 [% MACRO sort_url(field)
@@ -29,7 +29,7 @@
 %]
 
 [%# Column headers for sortable columns %]
-[% MACRO sort_head(field, field_label) 
+[% MACRO sort_head(field, field_label)
    BLOCK %]
 <a href="[% sort_url(field) %]" [% click_sort %]>[% l(field_label) %]</a>[%- sort_indicator(field) %]
 [% END
index 05b3efc..f63e422 100755 (executable)
@@ -2,7 +2,7 @@
     PROCESS "opac/parts/misc_util.tt2";
     WRAPPER "opac/parts/myopac/base.tt2";
 
-   
+
 %]
 
 [% END %]
index d37f99a..e368399 100755 (executable)
@@ -1,6 +1,6 @@
 [%
 # Org Unit Selector Widget :
-#   INCLUDE build_org_selector id='selector-id' name='selector-name' 
+#   INCLUDE build_org_selector id='selector-id' name='selector-name'
 #       value=org_id show_loc_groups=1/0 can_have_vols_only=1/0
 #       can_have_users_only=1/0 valid_org_list=[1,2,3]
 #
@@ -14,24 +14,24 @@ BLOCK build_org_selector;
     node_stack = [{org => org_unit || ctx.aouct_tree || ctx.aou_tree}];
     inherited_vis = ctx.get_cgf('opac.org_unit.non_inherited_visibility').enabled == 'f';
 
-    IF !name; 
+    IF !name;
         name = loc_name;
     END;
     IF !value;
         value = loc_value;
     END;
 
-    # if the selected org unit is out of hiding scope, 
+    # if the selected org unit is out of hiding scope,
     # disable the ou-hide scoping altogether.
     hiding_disabled = ctx.org_hiding_disabled(value);
 
     -%]
 
     <select [% IF id %] id='[% id %]' [% END -%]
-            title='[% arialabel || l("Select Library") %]' 
+            title='[% arialabel || l("Select Library") %]'
             name='[% name %]' class="form-control w-100">
-    [%- 
-        WHILE node_stack.size > 0; 
+    [%-
+        WHILE node_stack.size > 0;
             node = node_stack.pop();
             org_unit = node.org;
             loc_grp = node.loc_grp;
@@ -73,13 +73,13 @@ BLOCK build_org_selector;
 
             # org is not publicly visible (though its children may be).
             NEXT UNLESS ctx.is_staff OR visible;
-            
+
             # org is not within hiding scope (though its children may be).
             NEXT UNLESS hiding_disabled OR ctx.org_within_hiding_scope(ou_id);
 
             node_value = ou_id;
             IF loc_grp;
-                node_value = node_value _ ':' _ loc_grp.id; 
+                node_value = node_value _ ':' _ loc_grp.id;
                 css_class = 'class="loc_grp"';
             ELSE;
                 css_class = 'class="org_unit"';
@@ -89,13 +89,13 @@ BLOCK build_org_selector;
                 disabled = 'disabled="disabled"';
             ELSIF node_value == value;
                 selected = 'selected="selected"';
-            END; 
+            END;
 
             IF can_have_users_only AND org_unit.ou_type.can_have_users != 't';
                 disabled = 'disabled="disabled"';
             ELSIF node_value == value;
                 selected = 'selected="selected"';
-            END; 
+            END;
 
             IF hold_pickup_lib AND ctx.get_org_setting(
                     org_unit.id, 'opac.holds.org_unit_not_pickup_lib');
@@ -104,7 +104,7 @@ BLOCK build_org_selector;
 
             # caller provided a list of valid org units.
             # all orgs not in the list are marked invalid.
-            IF valid_org_list AND 
+            IF valid_org_list AND
                     !valid_org_list.grep('^' _ org_unit.id _ '$').size;
                 disabled = 'disabled="disabled"';
                 selected = '';
@@ -125,9 +125,9 @@ BLOCK build_org_selector;
             pad_depth = pad_depth * 2;
             display_name = loc_grp ? loc_grp.name : org_unit.name %]
 
-            <option value='[% node_value %]' [% selected %] [% disabled %] [% css_class %]> 
+            <option value='[% node_value %]' [% selected %] [% disabled %] [% css_class %]>
                 [% '&nbsp;' FOR [0..pad_depth]; display_name | html %]
-            </option> 
+            </option>
 
         [%- END %]
     </select>
index 89ca800..419e7c1 100755 (executable)
@@ -15,11 +15,11 @@ function toggleActivationDate() {
     // Check for not equal to block so it works on first click.
     if (block.style.display != "block") {
         block.style.display = "block";
-        anchor.innerHTML = "<i class='fas fa-calendar'></i> " + actText;
+        anchor.innerHTML = "<i class='fas fa-calendar' aria-hidden='true'></i> " + actText;
         if (cb.checked != true) cb.checked = true;
     } else {
         block.style.display = "none";
-        anchor.innerHTML = "<i class='fas fa-calendar'></i> " + inActText;
+        anchor.innerHTML = "<i class='fas fa-calendar' aria-hidden='true'></i> " + inActText;
     }
     // Prevent the href from being followed, thus overriding the CSS.
     return false;
@@ -68,13 +68,13 @@ function maybeToggleNumCopies(obj) {
               ELSE; some_holds_allowed = 1; END;
             END %]
 
-       [% IF loop.first %] 
+       [% IF loop.first %]
     <form method="post" name="PlaceHold" onsubmit="return validateHoldForm()" >
         <input type="hidden" name="hold_type" value="[% CGI.param('hold_type') | html %]" />
-        [%  
+        [%
             redirect = CGI.param('hold_source_page') || CGI.param('redirect_to') || CGI.referer;
             # since we have to be logged in to get this far, return to a secure page
-            redirect = redirect.replace('^http:', 'https:') 
+            redirect = redirect.replace('^http:', 'https:')
         %]
         <input type="hidden" name="redirect_to" value="[% redirect | html %]" />
         <input type="hidden" name="hold_source_page" value="[% CGI.param('hold_source_page') | html %]" />
@@ -106,11 +106,11 @@ function maybeToggleNumCopies(obj) {
             <label for="hold_usr_is_requestor_not">
                 [% l("Place hold for patron by barcode:") %]
             </label>
-            <input type="text" name="hold_usr" id="hold_usr_input" 
+            <input type="text" name="hold_usr" id="hold_usr_input"
               aria-label="[% l('Barcode') %]"
-              value="[% usr_barcode | html %]" 
+              value="[% usr_barcode | html %]"
               onpaste="return debounce_barcode_change(event)"
-              onkeydown="return debounce_barcode_change(event)" autofocus /> 
+              onkeydown="return debounce_barcode_change(event)" autofocus />
             <span id="patron_name"></span>
             <span id="patron_usr_barcode_not_found" style="display: none">
               [% l('Patron barcode was not found') %]
@@ -119,7 +119,7 @@ function maybeToggleNumCopies(obj) {
             <button id="hold_usr_search" type="button" class="opac-button" style="display: none;">[% l('Patron Search') %]</button>
             [% END %]
             <br />
-            <input type="hidden" id="staff_barcode" 
+            <input type="hidden" id="staff_barcode"
               value="[% ctx.staff_recipient.card.barcode | html %]"/>
             <span>
                 <input type="radio" id="hold_usr_is_requestor"
@@ -140,12 +140,12 @@ function maybeToggleNumCopies(obj) {
                     <input type="hidden" name="hold_target" value="[% hdata.target.id | html %]" />
                     [% END %]
                     <div class='hold-items-list-title'>
-                                           <!-- If hold is for grouped formats/editions (metarecord), show short title - else, show complete title --> 
-                                           [% IF CGI.param('hold_type') == 'M' %]
-                                                   [% attrs.title | html %]
-                                               [% ELSE %]
-                                                   [% attrs.title_extended | html %]
-                                               [% END %]
+                        <!-- If hold is for grouped formats/editions (metarecord), show short title - else, show complete title -->
+                        [% IF CGI.param('hold_type') == 'M' %]
+                            [% attrs.title | html %]
+                        [% ELSE %]
+                            [% attrs.title_extended | html %]
+                        [% END %]
                     </div>
                     [% IF hdata.parts AND !this_hold_disallowed %]
                         [% IF hdata.parts.size > 0 %]
@@ -182,8 +182,8 @@ function maybeToggleNumCopies(obj) {
                         <input type='hidden' name='part' value=''/>
                         [% END %]
                     [% END %]
-                   [% INCLUDE "opac/parts/multi_hold_select.tt2" IF NOT (this_hold_disallowed AND hdata.part_required); %]
-                   
+            [% INCLUDE "opac/parts/multi_hold_select.tt2" IF NOT (this_hold_disallowed AND hdata.part_required); %]
+
                 </td>
             </tr>
 
@@ -200,7 +200,7 @@ function maybeToggleNumCopies(obj) {
             [% END %]
 </table>
         [% END %]
-        
+
 
         [% IF some_holds_allowed %]
 
@@ -208,11 +208,11 @@ function maybeToggleNumCopies(obj) {
             [%- org_select_id = 'pickup_lib'; -%]
             <label for="[% org_select_id %]" class="font-weight-bold">[%l('Pickup location:') %]</label>
             [% PROCESS "opac/parts/org_selector.tt2";
-                INCLUDE build_org_selector name='pickup_lib' 
-                    value=ctx.default_pickup_lib id=org_select_id 
+                INCLUDE build_org_selector name='pickup_lib'
+                    value=ctx.default_pickup_lib id=org_select_id
                     can_have_vols_only=1 hold_pickup_lib=1 %]
         </p>
-  
+
             <span class="font-weight-bold">[% l('Notify when hold is ready for pickup?') %]</span>
             <p>
              <div class="form-check m-2">
@@ -223,10 +223,10 @@ function maybeToggleNumCopies(obj) {
                      [% IF !ctx.user.email and !ctx.is_staff; l('<br>No configured Email address. See "My Account" for setting your Email address.'); ELSE; %] : <span id="email_address"><b>[% ctx.user.email %]</b></span>[% END %]
                 </label>
             </div>
-              
-                   
+
+
                 <p>
-                  
+
                 </p>
                 [%- IF allow_phone_notifications == 'true' %]
                 <div class="form-check m-2">
@@ -235,7