--- /dev/null
+/////////////////////DATEPICKER///////////////////////////////////////////
+ <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>
+
+/////////////////////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>
+</a>
+<!--This is needed to activate the tooltips on the page and is activated Globally by default in js.tt2-->
+<script>
+jQuery(document).ready(function(){
+ jQuery('[data-toggle="tooltip"]').tooltip();
+});
+</script>
+
<span class="sr-only">[% l('Advanced Search') %]</span>
<div class="container">
<div id="search-wrapper">
- [% IF pane == 'advanced' %]
- <h1 class="h1 text-center pt-3">Advanced Search</h1>
- <h2 class="text-center pt-3">Refine your search by filling out one or more fields to search by below.</h2>
- [% ELSIF pane == 'numeric' %]
- <h1 class="h1 text-center pt-3">Numeric Search</h1>
- <h2 class="text-center pt-3">Search by a field and numeric identifier.</h2>
- [% ELSIF pane == 'expert' %]
- <h1 class="h1 text-center pt-3">Expert Search</h1>
- <h2 class="text-center pt-3">Search the MARC record.</h2>
- [% END %]
<div class="mt-3">
<ul class="nav nav-tabs">
<li class="nav-item">
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>
+ <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"
src="[% ctx.media_prefix %]/opac/images/progressbar_green.gif[% ctx.cache_key %]"
class="hidden" style="width: 16px; height: 16px;"
<div class="browse-pager text-center col-12">
<div class="mx-auto">
[% IF ctx.back_pivot %]
- <a class="btn btn-outline-primary btn-sm" href="[% mkurl('', {bpivot => ctx.back_pivot}) %]" onclick="$('browse-pager-spinner-[% id %]').className = '';">← [%l ('Back') %]</a>
+ <a class="btn btn-action btn-sm" href="[% mkurl('', {bpivot => ctx.back_pivot}) %]" onclick="$('browse-pager-spinner-[% id %]').className = '';">← [%l ('Back') %]</a>
[% END %]
[% IF ctx.pager_shortcuts;
current_qtype = CGI.param('qtype') || 'title' %]
class="hidden" style="width: 16px; height: 16px;"
alt="[% l('Search in progress icon') %]" />
[% IF ctx.forward_pivot %]
- <a class="btn btn-outline-primary btn-sm" href="[% mkurl('', {bpivot => ctx.forward_pivot}) %]" onclick="$('browse-pager-spinner-[% id %]').className = '';">[%l ('Next') %] →</a>
+ <a class="btn btn-action btn-sm" href="[% mkurl('', {bpivot => ctx.forward_pivot}) %]" onclick="$('browse-pager-spinner-[% id %]').className = '';">[%l ('Next') %] →</a>
[% END %]
--- /dev/null
+/*
+Mini Table Styling
+*/
+@media
+only screen and (max-width: 650px) {
+ .miniTable{
+ width: 100% !important;
+ }
+
+ /* Force table to not be like tables anymore */
+ .miniTable table, .miniTable thead, .miniTable tbody, .miniTable th, .miniTable td, .miniTable tr
+ {
+ display: block;
+ }
+
+ .miniTable th{
+ display:none;
+ }
+
+ /* 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;
+ }
+
+
+ .miniTable td
+ {
+ 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;
+ 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 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(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 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(4):before { content: "Status"; 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(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(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(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; }
+ .circTable td:nth-of-type(4):before { content: "Renewals Left"; display: flex; }
+ .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; }
+ .circHistTable td:nth-of-type(4):before { content: "Checkout Date"; display: flex; }
+ .circHistTable td:nth-of-type(5):before { content: "Due Date"; display: flex; }
+ .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; }
+ .bookbagTable td:nth-of-type(4):before { content: "Local Call number"; display: flex; }
+ .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; }
+ .ecircsTable td:nth-of-type(4):before { content: "Actions"; display: flex; }
+
+ .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%;
+ }
+
+ .paginateText{
+ display:none;
+ }
+
+ .modal-dialog {
+ max-width: 600px !important;
+ }
+
+}/*Micro Tables End*/
+
+@media only screen and (max-width: 600px) {
+ input, select {
+ font-size: [% css_fonts.size_big %];
+ }
+ span .nav_arrow_fix {
+ display: none;
+ }
+ #header {
+ padding: 0px;
+ margin: 0px;
+ }
+ #homesearch_main_logo img {
+ width:75%;
+ }
+ #format_selector {
+ display:none;
+ }
+ #your-acct-login {
+ padding: 0px;
+ padding-top: 5px;
+ }
+ #your-acct-login a {
+ margin: 0px;
+ padding: 5px;
+ }
+ #topnav_logo {
+ margin: 0;
+ }
+ #topnav_logo img {
+ width: 200px;
+ }
+
+ #gold-links-holder {
+ display: none;
+ }
+ #simple-detail-view-links {
+ display: none;
+ }
+ #acct_tabs a, #acct_fines_tabs a {
+ [% IF rtl == 't' -%]
+ border-radius: 6px 0px 0px 6px;
+ margin: 0px 0px 0px 5px;
+ [% ELSE -%]
+ border-radius: 6px 6px 0px 0px;
+ margin: 0px 5px 0px 0px;
+ [% END -%]
+ padding: 2px 4px 3px 4px;
+ font-size: [% css_fonts.size_base %];
+ }
+ .bookbag-controls-title-block {
+ [% IF rtl == 't' -%]
+ clear:right;
+ [% ELSE -%]
+ clear:left;
+ [% END -%]
+ width:90%;
+ }
+ .bookbag-controls-button-block {
+ [% IF rtl == 't' -%]
+ clear:right;
+ [% ELSE -%]
+ clear:left;
+ [% END -%]
+ width;90%;
+ }
+ .bookbag-specific {
+ [% IF rtl == 't' -%]
+ margin-right: 0px;
+ [% ELSE -%]
+ margin-left: 0px;
+ [% END -%]
+ }
+ .bookbag-specific div.sort {
+ [% IF rtl == 't' -%]
+ float: right;
+ text-align: right;
+ [% ELSE -%]
+ float: left;
+ text-align: left;
+ [% END -%]
+ width: 95%;
+ margin: 5px 0px 5px 0px;
+ border: 1px solid [% css_colors.accent_light %];
+ padding:5px;
+ }
+ .bookbag-specific div.meta {
+ [% IF rtl == 't' -%]
+ float: right;
+ margin-right:0px;
+ text-align: right;
+ [% ELSE -%]
+ float: left;
+ margin-left:0px;
+ text-align: left;
+ [% END -%]
+ width: 95%;
+ margin-bottom:5px;
+ padding:5px;
+ }
+ #bbag-edit-name {
+ [% IF rtl == 't' -%]
+ float: right;
+ [% ELSE -%]
+ float: left;
+ [% END -%]
+ width: 220px;
+ }
+ #bbag-edit-description {
+ width: 220px;
+ margin-top:5px;
+ }
+ .bbag-content {
+ padding:5px;
+ border:1px solid [% css_colors.accent_light %];
+ }
+ .bbag-action {
+ [% IF rtl == 't' -%]
+ margin-right:0px;
+ [% ELSE -%]
+ margin-left:0px;
+ [% END -%]
+ margin-bottom:5px;
+ }
+ .bbag-action-field {
+ width:230px;
+ }
+ .bookbag-specific div.sort select {
+ width:180px;
+ }
+ .bookbag-specific tr {
+ display: block;
+ border-bottom: 1px solid [% css_colors.border_standard %];
+ }
+ .bookbag-specific td.list_checkbox {
+ [% IF rtl == 't' -%]
+ padding-right: 0px !important;
+ [% ELSE -%]
+ padding-left: 0px !important;
+ [% END -%]
+ }
+ .bookbag-specific td.list_entry {
+ display: inline-block;
+ min-width: 5em;
+ [% IF rtl == 't' -%]
+ padding-right: 40% !important;
+ [% ELSE -%]
+ padding-left: 40% !important;
+ [% END -%]
+ }
+ .bookbag-specific td.list_entry:before {
+ content: attr(data-label);
+ position: absolute;
+ [% IF rtl == 't' -%]
+ right: 10px;
+ [% ELSE -%]
+ left: 10px;
+ [% END -%]
+ }
+ .bbag-navigate-list {
+ display: none;
+ }
+ .bbag-navigate-list-pages {
+ [% IF rtl == 't' -%]
+ text-align:left;
+ float:left;
+ [% ELSE -%]
+ text-align:right;
+ float:right;
+ [% END -%]
+ }
+ #dash_wrapper div {
+ background-color: transparent;
+ padding: 0px;
+ }
+ #dash_wrapper {
+ position: static;
+ top: auto;
+ }
+ #dash_wrapper .opac-button {
+ top: 0px;
+ }
+ .small_view_only, #filter_hits {
+ display: inline !important;
+ }
+ #dash_identity a {
+ [% IF rtl == 't' -%]
+ float:right;
+ [% ELSE -%]
+ float:left;
+ [% END -%]
+ }
+
+ #holds_box form blockquote {
+ [% IF rtl == 't' -%]
+ margin-right: 10px;
+ margin-left: 2px;
+ [% ELSE -%]
+ margin-left: 10px;
+ margin-right: 2px;
+ [% END -%]
+ }
+ #holds_box form blockquote select {
+ width: 100%;
+ }
+ #myopac_sum_fines_placehold {
+ display:none;
+ }
+ #myopac_sum_fines {
+ display: none;
+ }
+ #list_description, #list_create_name {
+ width: 170px;
+ }
+ .results_header_lbl {
+ display: none;
+ }
+ .results_header_nav1 span.h1 {
+ display: none;
+ }
+ .preflib {
+ display: none;
+ }
+ .start_end_links_span {
+ display: block;
+ }
+ .invisible {
+ display: none;
+ }
+ .result_table_pic_header {
+ [% IF rtl == 't' -%]
+ padding-right: 0px !important;
+ padding-left: 5px;
+ [% ELSE -%]
+ padding-left: 0px !important;
+ padding-right: 5px;
+ [% END -%]
+ width: 0px !important;
+ margin: 0px;
+ }
+ .result_table_pic {
+ width: 55px;
+ padding: 0px;
+ margin: 0px;
+ }
+ tr[name=results_isbn_tr], tr[name=results_phys_desc_tr], tr[name=results_pub_tr] strong, .result_count {
+ display: none;
+ }
+ tr.result_table_title_cell[name=bib_cn_list] .result_holdings_table th:nth-child(4),
+ tr.result_table_title_cell[name=bib_cn_list] .result_holdings_table td:nth-child(4) {
+ display:none;
+ }
+ #results_header_bar {
+ background-color: inherit;
+ }
+ .results_header_btns a {
+ margin: 0.3em;
+ }
+ .adv_filter_results_hide {
+ display: none;
+ }
+ .adv_filter_results_show {
+ display: block;
+ }
+ .adv_filter_results_block_label {
+ display: block;
+ }
+ .adv_filter_results_group_wrapper {
+ display: block;
+ }
+ #main-content {
+ margin: 0 1px;
+ }
+ #rdetails_status thead {
+ display: none;
+ }
+ #rdetails_status tr {
+ display: block;
+ margin-top: 3px;
+ }
+ #rdetails_status td {
+ display: block;
+ padding: 1px;
+ }
+ .copy_details_row {
+ background-color: [% css_colors.accent_lightest %];
+ }
+ .copy_details_offers_row {
+ background-color: [% css_colors.accent_lightest %];
+ }
+ select#pickup_lib.search-wrapper-locg {
+ width: 100%;
+ }
+ #search-wrapper #search-box {
+ width: 85%;
+ padding-top: 5px;
+ }
+ #main-content-home {
+ padding: 0px;
+ margin: 0px;
+ }
+ /* Make use of full width in mobile mode */
+ .facet_box_wrapper .box_wrapper .box,
+ .facet_template .facet,
+ .facet_box_temp {
+ width: inherit;
+ }
+ .facet_template .count {
+ [% IF rtl == 't' -%]
+ padding-right: 1em;
+ [% ELSE -%]
+ padding-left: 1em;
+ [% END -%]
+ }
+ #facet_sidebar {
+ margin-top: 0.5em;
+ }
+ #adv_search_parent {
+ font-size: [% css_fonts.size_smaller %];
+ }
+ #adv_search_filters {
+ position: relative;
+ width: 300px;
+ }
+ #format_actions {
+ [% IF rtl == 't' -%]
+ float: right;
+ [% ELSE -%]
+ float: left;
+ [% END -%]
+ }
+ .rdetail_aux_utils {
+ padding: 0px;
+ border: none;
+ }
+ .result_metadata {
+ width: inherit;
+ }
+ div#rdetail_actions_div {
+ float: none;
+ }
+ h2.rdetail_uris {
+ clear: both;
+ }
+ #metarecord_population {
+ overflow: hidden;
+ width: 100%;
+ }
+ .metarecord_population_span_link {
+ }
+ .metarecord_population_item_lang {
+ float: none;
+ }
+ .search_catalog_lbl {
+ [% IF rtl == 't' -%]
+ margin-right: 0;
+ [% ELSE -%]
+ margin-left: 0;
+ [% END -%]
+ white-space: nowrap;
+ }
+ .adv_search_catalog_lbl {
+ margin-top: 0;
+ white-space: nowrap;
+ }
+ .browse_the_catalog_lbl {
+ white-space: nowrap;
+ }
+ .mobile_hide {
+ display: none;
+ }
+ #dash_user {
+ display: block;
+ padding: 0.5em;
+ font-size: 18px;
+ text-align: center;
+ }
+ .dash_divider {
+ 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%;
+ }
+ .bookshelf table thead tr {
+ display: block;
+ }
+ #lowhits_help { width: inherit; }
+ #adv_search_tabs a{
+ font-size: [% css_fonts.size_small %];
+ margin: 2px 2px 0px 2px;
+ padding: 2px 2px 5px 2px;
+ [% IF rtl == 't' -%]
+ border-radius: 7px 0px 0px 7px;
+ [% ELSE -%]
+ border-radius: 7px 7px 0px 0px;
+ [% END -%]
+ }
+ #adv_global_tbody td {
+ border-bottom: thin solid [% css_colors.accent_light %];
+ }
+ #adv_global_addrow td {
+ border-bottom: none;
+ }
+ /* Force table to not be like tables anymore */
+ table#acct_checked_main_header thead tr th, table#acct_holds_main_header thead tr th, table#acct_checked_hist_header thead tr th, table#acct_holds_hist_header thead tr th, table#ebook_circs_main_table thead tr th, table#ebook_holds_main_table thead tr th {
+ display: none;
+ }
+ table#acct_checked_main_header tbody tr td, table#acct_holds_main_header tbody tr td, table#acct_checked_hist_header tbody tr td, table#acct_holds_hist_header tbody tr td, table#ebook_circs_main_table tbody tr td, table#ebook_holds_main_table tbody tr td {
+ display: block;
+ }
+
+ /* Hide table headers (but not display: none;, for accessibility) */
+ /* thead tr {
+ position: absolute;
+ top: -9999px;
+ [% IF rtl == 't' -%]
+ right: -9999px;
+ [% ELSE -%]
+ left: -9999px;
+ [% END -%]
+ }*/
+
+ table#acct_checked_main_header, table#acct_holds_main_header, table#acct_checked_hist_header, table#acct_holds_hist_header, table#ebook_circs_main_table, table#ebook_holds_main_table {
+ width: 90%;
+ }
+
+ table#acct_checked_main_header tr, table#acct_holds_main_header tr, table#acct_checked_hist_header tr { border: 1px solid #ddd; }
+
+ /* Holds history gets large white border to mimic header cell on other
+ account screens that provide visual cue for next title. We should do
+ the same for ebook tables too since we have no actions on those
+ tables. If actions get added, we should move those tables out of
+ 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_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" */
+ border: none;
+ border-bottom: 1px solid #eee;
+ position: relative;
+ [% IF rtl == 't' -%]
+ padding-right: 40%;
+ [% ELSE -%]
+ padding-left: 40%;
+ [% END -%]
+ }
+
+ table#acct_checked_main_header td:before, table#acct_holds_main_header td:before, table#acct_checked_hist_header td:before, table#acct_holds_hist_header td:before, table#ebook_circs_main_table td:before, table#ebook_holds_main_table td:before {
+ /* Now like a table header */
+ position: absolute;
+ /* Top/left values mimic padding */
+ top: 2px;
+ width: 40%;
+ [% IF rtl == 't' -%]
+ right: 2px;
+ padding-left: 10px;
+ [% ELSE -%]
+ left: 2px;
+ padding-right: 10px;
+ [% END -%]
+ white-space: nowrap;
+ }
+
+ table#acct_checked_main_header td:nth-of-type(1) { border-top: 5px solid #aaa; padding-top: 15px; background-color: #fff;}
+ table#acct_checked_main_header td:nth-of-type(2):before { content: "[% l('Title') %]";}
+ table#acct_checked_main_header td:nth-of-type(3):before { content: "[% l('Author') %]"; }
+ table#acct_checked_main_header td:nth-of-type(4):before { content: "[% l('Renewals Left') %]"; }
+ table#acct_checked_main_header td:nth-of-type(5):before { content: "[% l('Due Date') %]"; }
+ table#acct_checked_main_header td:nth-of-type(6):before { content: "[% l('Barcode') %]"; }
+ table#acct_checked_main_header td:nth-of-type(7):before { content: "[% l('Call number') %]"; }
+
+ table#acct_checked_hist_header td:nth-of-type(1) { border-top: 5px solid #aaa; padding-top: 15px; background-color: #fff;}
+ table#acct_checked_hist_header td:nth-of-type(2):before { content: "[% l('Title') %]";}
+ table#acct_checked_hist_header td:nth-of-type(3):before { content: "[% l('Author') %]"; }
+ table#acct_checked_hist_header td:nth-of-type(4):before { content: "[% l('Checkout Date') %]"; }
+ table#acct_checked_hist_header td:nth-of-type(5):before { content: "[% l('Due Date') %]"; }
+ table#acct_checked_hist_header td:nth-of-type(6):before { content: "[% l('Date Returned') %]"; }
+ table#acct_checked_hist_header td:nth-of-type(7):before { content: "[% l('Barcode') %]"; }
+ table#acct_checked_hist_header td:nth-of-type(8):before { content: "[% l('Call number') %]"; }
+
+ table#acct_holds_main_header td:nth-of-type(1) { border-top: 5px solid #aaa; padding-top: 15px; background-color: #fff;}
+ table#acct_holds_main_header td:nth-of-type(2):before { content: "[% l('Title') %]";}
+ table#acct_holds_main_header td:nth-of-type(3):before { content: "[% l('Author') %]"; }
+ table#acct_holds_main_header td:nth-of-type(4):before { content: "[% l('Format') %]"; }
+ table#acct_holds_main_header td:nth-of-type(5):before { content: "[% l('Pickup Location') %]"; }
+ table#acct_holds_main_header td:nth-of-type(6):before { content: "[% l('Cancel on') %]"; }
+ table#acct_holds_main_header td:nth-of-type(7):before { content: "[% l('Status') %]"; }
+ table#acct_holds_main_header td.hold_notes:before { content: "[% l('Notes') %]"; }
+
+ table#acct_holds_hist_header td:nth-of-type(1):before { content: "[% l('Title') %]";}
+ table#acct_holds_hist_header td:nth-of-type(2):before { content: "[% l('Author') %]"; }
+ table#acct_holds_hist_header td:nth-of-type(3):before { content: "[% l('Format') %]"; }
+ table#acct_holds_hist_header td:nth-of-type(4):before { content: "[% l('Pickup Location') %]"; }
+ table#acct_holds_hist_header td:nth-of-type(8):before { content: "[% l('Status') %]"; }
+
+ table#ebook_circs_main_table td:nth-of-type(1):before { content: "[% l('Title') %]"; }
+ table#ebook_circs_main_table td:nth-of-type(2):before { content: "[% l('Author') %]"; }
+ table#ebook_circs_main_table td:nth-of-type(3):before { content: "[% l('Due Date') %]"; }
+ table#ebook_circs_main_table td:nth-of-type(4):before { content: "[% l('Actions') %]"; }
+
+ table#ebook_holds_main_table td:nth-of-type(1):before { content: "[% l('Title') %]"; }
+ table#ebook_holds_main_table td:nth-of-type(2):before { content: "[% l('Author') %]"; }
+ table#ebook_holds_main_table td:nth-of-type(3):before { content: "[% l('Due Date') %]"; }
+ table#ebook_holds_main_table td:nth-of-type(4):before { content: "[% l('Actions') %]"; }
+
+
+
+ /*Want to see these in mobile ONLY */
+ .mobile_view{
+ display:block;
+ }
+
+ .mobile_search_lbl_clr{
+ color:[% css_colors.mobile_header_text %];
+ }
+}
+
+@media only screen and (min-width: 992px) {
+ .nav-fr{
+ float: right;
+ }
+ .nav-fl{
+ float: left;
+ }
+ #nav-divide{
+ display:none !important;
+ }
+}
+@media only screen and (max-width: 800px) {
+ .facet_sidebar_hidden, .result_block_hidden {
+ display: none;
+ }
+ .facet_sidebar_visible, .result_block_visible {
+ display: inline ! important;
+ }
+ #acct_select, #acct_prefs_select {
+ display: inline-block;
+ }
+ #acct_tabs, #acct_prefs_tabs {
+ display:none;
+ }
+ .radio-parts-selection { width: 90%; }
+ #list_description, #list_create_name {
+ width: 300px;
+ }
+}
rtl = ctx.get_i18n_l(ctx.eg_locale).rtl;
%]
+.adv_filters{
+
+ -moz-column-count: 4;
+ -moz-column-gap: 20px;
+ -webkit-column-count: 4;
+ -webkit-column-gap: 20px;
+ column-count: 4;
+ column-gap: 20px;
+ list-style: none;
+}
+.fas, .far{
+ margin: 5px 0px;
+}
+.top-divide{
+ border-top: 1px solid rgba(0,0,0,.1);
+}
+
/*
Mini Table Styling
*/
}
}/*Micro Tables End*/
+ .my_nav .active{background-color:#afffbf;}.my_nav a{text-align:left !important; min-width:17em;border-radius: 0px;}.sumNum{
+ font-weight:700;
+}
+
+.coverImage{position: relative;}
+.carousel .glide__arrow{background: unset;}
+
/*
Novelist Styling
*/
background-color:#e8e8e8;
}
-.red{
- color:red;
+.danger, .validate{
+ color: [% css_colors.text_alert %] !important;
+}
+
+.danger{
+ font-weight: 600;
+ font-style: italic;
}
+.success{
+ color: green !important;
+}
+.dropdown-menu{
+ border: 1px solid black;
+ box-shadow: 2px 2px #00000054;
+}
+.dropdown-item.active, .dropdown-item:active{
+ color : #000 !important;
+}
.login:focus{
outline:none;
}
height:18px;
}
*/
-h1 {
- margin:0;
- margin-bottom: 5px;
- font-size: [% css_fonts.size_biggest %];
- font-weight:normal;
-}
-h2 {
- font-size: [% css_fonts.size_bigger %];
- font-weight:bold;
+#adv_numeric_block{
+ max-width: 600px;
}
+
h2.graphic880 {
font-size: [% css_fonts.size_bigger %];
font-weight:normal;
display:inline-block;
}
-#dashboard, #dashboard_e {
- margin-top: 1em;
- height: 2em;
-}
-#dashboard span.dash-align a, #dashboard_e span.dash-align a {
- font-weight: bold;
- text-decoration: none;
-}
#dash_user {
font-weight: bold;
margin-top: 5px;
}
-#adv_search_submit {
- [% IF rtl == 't' -%]
- margin-right: 10px;
- [%- ELSE %]
- margin-left: 10px;
- [%- END %]
- position: relative;
-}
.checkbox_col {
width: 1%;
.facet_template .count {
text-align: right;
- color: [% css_colors.accent_mediumdark %];
+ color: [% css_colors.accent_dark %];
}
+.page-item.active .page-link {
+ background-color: #00593d;
+ border-color: #00593d;
+}
+.page-link
+{
+ color: #00593d;
+}
+
+.filter-header{
+ background-color: [% css_colors.bg_filter %];
+ color: [% css_colors.text_filter %];
+}
+
+.filter-header:hover{
+ background-color: [% css_colors.bg_filter_hover %];
+}
+
+.extra_header{
+ background-color: [% css_colors.bg_extras %];
+}
.facet_template_selected {
background-color: [% css_colors.accent_lighter2 %];
border: 1px solid [% css_colors.accent_medium %];
padding-left: 2em;
[% END -%]
}
-.expert-search-row { padding-top: 10px; }
#adv_expert_row label { font-weight: bold; }
.bookshelf tr.browse_border td {
float:left;
[% END -%]
}
- #dashboard, #dashboard_e {
- display: none;
- }
+
#holds_box form blockquote {
[% IF rtl == 't' -%]
margin-right: 10px;
display: inline-block;
}
.carousel .glide__arrow--right {
- right: -5em;
+ right: -8em;
}
.carousel .glide__arrow--left {
- left: -5em;
+ left: -8em;
}
.search-filter{
transform: translateY(-50%);
}
+.sumNum{
+ margin-right:5px;
+}
+
+.my_nav .dropdown-toggle::after{
+ margin: 5px 0px !important;
+}
\ No newline at end of file
--- /dev/null
+<!--
+This file allows us to bring TT2 i18n'ized strings
+to js source files, via js blob.
+-->
+<script>
+ // Add a boost-style format function to JavaScript string.
+ // Implementation stolen from StackOverflow:
+ // https://stackoverflow.com/questions/610406/javascript-equivalent-to-printf-string-format
+ String.prototype.format = function() {
+ var args = arguments;
+ return this.replace(/{(\d+)}/g, function(match, number) {
+ return typeof args[number] != 'undefined'
+ ? args[number]
+ : match;
+ });
+ };
+
+ var eg_opac_i18n = {};
+
+ eg_opac_i18n.EG_MISSING_REQUIRED_INPUT = "[% l('Please fill out all required fields') %]";
+ // For multiple holds placement confirmation dialog. {0} is replaced by number of copies requested.
+ eg_opac_i18n.EG_MULTIHOLD_MESSAGE = "[% l('Do you really want to place {0} holds for this title?') %]";
+</script>
[% END %]
</div>
</div>
+
[%- END %]
ctx.page_title = l("Confirm Clearing of Basket") %]
[% INCLUDE "opac/parts/searchbar.tt2" %]
- <div class="container">
- <hr>
- <h3>[% l('Confirm Clearing of Basket') %]</h3>
- <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>
- </form>
- </div>
+<div class="container">
+ <hr>
+ <h3>[% l('Confirm Clearing of Basket') %]</h3>
+ <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>
+ </form>
+</div>
[%- END %]
INCLUDE "opac/parts/topnav.tt2";
ctx.page_title = l("Confirm Basket Email") %]
- [% INCLUDE "opac/parts/searchbar.tt2" %]
- <div class="container">
- <hr>
- [% IF ctx.mylist.size %]
- <h3>[% l('Confirm Basket Email') %]</h3>
- <p class="big-strong">[% l('Please confirm that you want to email the [_1] titles in the basket.', ctx.mylist.size) %]
- <form method="post" action="[% mkurl(ctx.opac_root _ '/mylist/doemail', {}, 1) %]">
- <input type="hidden" name="redirect_to" value="[% ctx.referer %]" />
- <div class="form-check m-2">
- <input class="form-check-input" type="checkbox" value="" id="clear_cart">
- <label class="form-check-label" for="clear_cart">
- [% l('Clear entire basket after email is sent.') %]
- </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>
- </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>
- [% END %]
+[% INCLUDE "opac/parts/searchbar.tt2" %]
+<div class="container top-divide">
+ [% IF ctx.mylist.size %]
+ <h3>[% l('Confirm Basket Email') %]</h3>
+ <p class="big-strong">[% l('Please confirm that you want to email the [_1] titles in the basket.', ctx.mylist.size) %]
+ <form method="post" action="[% mkurl(ctx.opac_root _ '/mylist/doemail', {}, 1) %]">
+ <input type="hidden" name="redirect_to" value="[% ctx.referer %]" />
+ <div class="form-check m-2">
+ <input class="form-check-input" type="checkbox" value="" id="clear_cart" />
+ <label class="form-check-label" for="clear_cart">
+ [% l('Clear entire basket after email is sent.') %]
+ </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>
+ </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>
+ [% END %]
+</div>
[%- END %]
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>
- <p class="big-strong">[% l('Please confirm that you want to print the [_1] titles in the basket.', ctx.mylist.size) %]
- <form method="post" action="[% mkurl(ctx.opac_root _ '/mylist/doprint', {}, 1) %]">
- <input type="hidden" name="redirect_to" value="[% ctx.referer %]" />
- <div class="form-check m-2">
- <input class="form-check-input" type="checkbox" value="" id="clear_cart">
- <label class="form-check-label" for="clear_cart">
- [% l('Clear entire basket after printing.') %]
- </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>
- </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>
- [% END %]
-
- </div>
+<div class="container">
+ [% IF ctx.mylist.size %]
+ <h3>[% l('Confirm Basket Printing') %]</h3>
+ <p class="big-strong">[% l('Please confirm that you want to print the [_1] titles in the basket.', ctx.mylist.size) %]
+ <form method="post" action="[% mkurl(ctx.opac_root _ '/mylist/doprint', {}, 1) %]">
+ <input type="hidden" name="redirect_to" value="[% ctx.referer %]" />
+ <div class="form-check m-2">
+ <input class="form-check-input" type="checkbox" value="" id="clear_cart">
+ <label class="form-check-label" for="clear_cart">
+ [% l('Clear entire basket after printing.') %]
+ </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>
+ </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>
+ [% END %]
+</div>
[%- END %]
[% PROCESS "opac/parts/header.tt2";\r
PROCESS "opac/parts/misc_util.tt2";\r
- WRAPPER "opac/parts/myopac/prefs_base.tt2";\r
+ WRAPPER "opac/parts/myopac/base.tt2";\r
myopac_page = "charges";\r
myopac_main_page = "main";\r
parent = "charges";\r
\r
[% IF ctx.fines.circulation.size > 0 %]\r
<div id='myopac_circ_trans_div'>\r
- <!--moved tables heading to outside of the table itself - took internal styling -->\r
<div class="header_middle">\r
<span class="acct_fines_header">\r
<!-- Different heading when not able to pay -->\r
</span>\r
\r
</div>\r
+\r
+ \r
\r
<table id="acct_fines_main_header" class="table table-hover table-responsive table-bordered miniTable chargesMainTable" title="[% l('Items Checked Out') %]">\r
<thead>\r
<tr>\r
\r
[% IF myopac_cc_allowed %]\r
- <th nowrap="nowrap" style="white-space:nowrap;">\r
+ <th style="white-space:nowrap;">\r
<input id="pay_fines_box1" checked="checked"\r
type="checkbox" onclick="select_all_checkboxes('xact', this.checked)"\r
title="[% l('Click to (un)select all charges') %]" />\r
<!-- XXX TODO fines aren't really accruing\r
if circ has hit maxfines. more clarity\r
here? --> \r
- <span class="alert">[% l('(fines accruing)') %]</span>\r
+ <span class="danger">[% l('(fines accruing)') %]</span>\r
[% END %]\r
</td>\r
\r
<h3>\r
[% l("Charges On Your Account") %]\r
</h3>\r
- \r
+\r
+ [% IF myopac_cc_allowed %]\r
+ <div class="d-block d-md-none">\r
+ <input id="pay_fines_check" checked="checked"\r
+ type="checkbox" onclick="select_all_checkboxes('xact_misc', this.checked)"\r
+ aria-label="[% l('Check/Uncheck All') %]" /> \r
+ <label for="pay_fines_check">[% l('Check/Uncheck All') %]</label> \r
+ </div> \r
+ [% END %]\r
\r
<table id="acct_fees_main_header" class="table table-hover table-bordered miniTable chargesTable my-3" title="[% l('Other Fines and Fees') %]">\r
<thead>\r
<tr>\r
\r
[% IF myopac_cc_allowed %]\r
- <th nowrap="nowrap" style="white-space:nowrap;">\r
+ <td style="white-space:nowrap;">\r
<input id="pay_fines_box2" checked="checked"\r
type="checkbox" onclick="select_all_checkboxes('xact_misc', this.checked)"\r
- title="[% l('Click to (un)select all fines') %]" />\r
- </th>\r
+ aria-label="[% l('Check/Uncheck All') %]" />\r
+ </td>\r
[% END %]\r
<th >[% l("Owed") %]</th>\r
<th >[% l("Billing Type") %]</th>\r
[% c = c + 1; %]\r
[% IF myopac_cc_allowed %]\r
<td class="checkCell">\r
- <span class="sr-only">Billing Number [% c %]</span>\r
- <input class="fineCheck" type="checkbox" title='[% l("Pay this fine") %]' name="xact_misc" value="[% f.xact.id %]" checked="checked" />\r
+ <label class="sr-only">Billing Number [% c %]</label>\r
+ <input aria-label="Pay This Bill" class="fineCheck" type="checkbox" name="xact_misc" value="[% f.xact.id %]" checked="checked" />\r
</td>\r
[% END %]\r
\r
- <td class="red">\r
+ <td class="danger">\r
<span class="sr-only">Amount Owed</span>\r
<strong>\r
[% money(f.xact.balance_owed) %]\r
</strong>\r
- <input class="fineAmount" value="[% f.xact.balance_owed %]" hidden />\r
+ <input type="hidden" aria-label="Amount Owing" class="fineAmount" value="[% f.xact.balance_owed %]" hidden />\r
</td>\r
\r
<td>\r
[% IF myopac_cc_allowed %]\r
</form>\r
[% END %]\r
-<script>\r
-jQuery("input[type=checkbox]").click(function () {\r
+<script >\r
+$( document ).ready(function() {\r
+ $("input[type=checkbox]").click(function () {\r
var amount = 0;\r
- jQuery("td input:checked").each(function () {\r
+ $("td input:checked").each(function () {\r
var item = jQuery( this ).parent().parent().children("td").children(".fineAmount").attr("value");\r
item = parseFloat(item);\r
amount += item;\r
});\r
- jQuery("#total").val(amount);\r
- jQuery("#selectPay").html('<i class="fas fa-money-bill-wave"></i> Pay Selected Charges - $' + amount.toFixed(2));\r
+ $("#total").val(amount);\r
+ $("#selectPay").html('<i class="fas fa-money-bill-wave"></i> Pay Selected Charges - $' + amount.toFixed(2));\r
+});\r
});\r
+\r
</script>\r
[% END %]\r
\r
<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">◄</span>[% l('Previous') %]</a>[% END %]
- <button name="action" class="btn btn-danger my-2" value="delete" id="delete" value="delete" type="submit" onclick="return confirm('[% l("Are you sure you wish to delete the selected item(s)?") %]');">
+ <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>
</div>
<div class="col-6 text-center"></div>
class="btn btn-action" >[% l('Next') %]<span class="nav_arrow_fix">►</span></a>[% END %] </div>
</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>
<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>
<th class="checkCell">
- <input 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;}"/>
+ <input 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;}" aria-label="[% l('Click to (un)select all items') %]"/>
</th>
<th>[% sort_head("sort_title", l("Title")) %]</th>
<th>[% sort_head("author", l("Author")) %]</th>
<form method="post" id="circ-form"
onsubmit="return confirm('[% l("Are you sure you wish to renew the selected item(s)?") %]');">
<div class="my-3">
- <button name="action" class="btn btn-primary" value="renew" id="renew" value="renew" type="submit"><i class="fas fa-redo-alt"></i> Renew Selected</button>
+ <button name="action" class="btn btn-confirm" id="renew" value="renew" type="submit"><i class="fas fa-redo-alt"></i> Renew Selected</button>
</div>
+ <div class="d-block d-md-none">
+ <input id="check_all_checked" 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' && !inputs[i].disabled) inputs[i].checked = this.checked;}"/>
+ <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>
- <th class="checkbox_column">
+ <td class="checkbox_column">
<input type="checkbox" id="check_all_checked"
- title="[% 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' && !inputs[i].disabled) inputs[i].checked = this.checked;}"
/>
- </th>
+ </td>
<th>[% sort_head("sort_title", l("Title")) %]</th>
<th>[% sort_head("author", l("Author")) %]</th>
<th>[% sort_head("renews", l("Renewals Left")) %]</th>
<tr>
<td class="checkCell">
<input type="checkbox" name="circ"
- title="[% l('Item Selected') %]"
+ aria-label="[% l('Select Item') %]"
[% IF circ.circ.renewal_remaining < 1 %] disabled="disabled" [% END %]
value="[% circ.circ.id %]" />
</td>
WRAPPER "opac/parts/myopac/base.tt2";
myopac_page = "ebook_place_hold";
%]
-<h3 class="sr-only">[% l('Place Hold on E-Item') %]</h3>
-<div id='myopac_holds_div'>
- <div class="header_middle">
- <span class="float-left">[% l('Place Hold on E-Item') %]</span>
- </div>
+<div id='myopac_holds_div'>
+ <h3>[% l('Place Hold on E-Item') %]</h3>
<div class="clear-both"></div>
<div id="ebook_place_hold_failed" class="warning_box hidden">[% l('Hold could not be placed.') %]</div>
<div id="ebook_place_hold_succeeded" class="success hidden">[% l('E-item is now on hold.') %]</div>
<div>
<div>
- <span>
- [% IF offset != 0 %]<a href='[% mkurl('hold_history', {limit => limit,offset => (offset - limit)}) %]'><span class="nav_arrow_fix">◄</span>[% l('Previous') %]</a>[% END %]
+ <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('hold_history', {limit => limit,offset => (offset - limit)}) %]'><span class="nav_arrow_fix">◄</span> <span class="d-none d-md-inline-block">[% l('Previous') %]</span></a></li>
+ [% END; %]
[% IF offset > 0 || count > limit;
curpage = 0;
WHILE curpage * limit < count;
IF curpage * limit == offset;
%]
- [% curpage + 1 %]
+ <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 %]
- <a href='[% mkurl('hold_history', {limit => limit, offset => (curpage * limit)}) %]'>[% curpage + 1 %]</a>
+ <li class="page-item"><a href="[% mkurl('hold_history', {limit => limit, offset => (curpage * limit)}) %]" class="btn page-link">[% curpage + 1%]</a></li>
+
[%- END;
curpage = curpage + 1;
END;
END %]
[% IF count >= limit + offset %]
- <a href='[% mkurl('hold_history', {limit => limit, offset => (offset + limit)}) %]'
- >[% l('Next') %]<span class="nav_arrow_fix">►</span></a> [% END %]
- </span>
+ <li class="page-item"><a class='np_nav_link classic_link btn btn-action' title='[% l("Next Page") %]'
+ href='[% mkurl('hold_history', {limit => limit, offset => (offset + limit)}) %]'><span class="d-none d-md-inline-block">[% l('Next') %]</span> <span class="nav_arrow_fix">►</span></a></li>
+
+[% END; %]
+</ul>
<span style="float:right;">
<a class="hide_me" href="#">[% l('Export List') %]</a>
</span>
<form method="post">
<div class="row">
<div class="col-4 text-left">
- [% IF offset != 0 %]<a href='[% mkurl('holds', {limit => limit,offset => (offset - limit)}) %]'
- ><span class="np_nav_link classic_link btn btn-outline-primary">◄[% l('Previous') %]</span></a> [% END %]
+
<div>
- <button name="action" class="btn btn-action my-2" value="suspend" id="suspend" value="suspend" type="submit"><i class="fas fa-hand-paper"></i> [% l("Suspend") %]</button>
- <button name="action" class="btn btn-success my-2" value="activate" id="activate" value="activate" type="submit"><i class="fas fa-play"></i> [% l("Activate") %] </button>
- <button name="action" class="btn btn-danger my-2" value="cancel" 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"></i> [% l("Suspend") %]</button>
+ <button name="action" class="btn btn-success 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>
<p class="my-2">
[% IF CGI.param("available") -%]
<a href="[% mkurl('holds', {}, ['limit','offset','available']) %]">[% l('Show all holds') %]</a> |
</div>
</div>
- <div class="col-6 text-center">
+ <div class="col-8">
+ [% IF offset != 0 %]<a href='[% mkurl('holds', {limit => limit,offset => (offset - limit)}) %]'
+ ><span class="np_nav_link classic_link btn btn-action">◄[% l('Previous') %]</span></a> [% END %]
+
[% IF offset > 0 || count > limit; curpage = 0; WHILE curpage * limit < count; IF curpage * limit == offset; %]
- [% curpage + 1 %]
+ <span class="np_nav_link classic_link btn btn-action disabled">[% curpage + 1 %]</span>
+
[%- ELSE %]
- <a href='[% mkurl('holds', {limit => limit, offset => (curpage * limit)}) %]' class="np_nav_link classic_link btn btn-outline-primary">[% curpage + 1 %]</a>
+ <a href='[% mkurl('holds', {limit => limit, offset => (curpage * limit)}) %]' class="np_nav_link classic_link btn btn-action">[% curpage + 1 %]</a>
[%- END; curpage = curpage + 1; END; END %]
<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') %]►</span></a>[% END %]
+
</div>
- <div class="col-2 text-right">
- [% IF count > limit + offset %]<a href='[% mkurl('holds', {limit => limit, offset => (offset + limit)}) %]'
- ><span class="np_nav_link classic_link btn btn-outline-primary">[% l('Next') %]►</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' && !inputs[i].disabled) inputs[i].checked = this.checked;}"/>
+
+ <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>
<h3>[% l('Edit Hold') %]</h3>
<a href="[% ctx.opac_root %]/myopac/holds" class="float-right"><i class="fas fa-list"></i> [% l('List all holds') %]</a>
</div>
+ <form method="post">
<div id="hold_editor" class="mt-4">
- [% IF hold;
- title = attrs.title;
+ [% IF hold; title = attrs.title;
IF ahr.hold_type == 'P';
title = l('[_1] ([_2])', title, hold.hold.part.label);
END
- %]<div class="my-4">
+ %]
+ <div class="my-4">
<h1>[% title | html %]</h1>
<h2>[% attrs.author | html %]</h2>
- [% IF attrs.format_icon %]<p>
- <strong>[% l('Format:') %]</strong>
+ [% IF attrs.format_icon %]
+ <strong>[% l('Format:') %]</strong>
<img src="[% attrs.format_icon %]" alt="[% attrs.format_label | html %]" title="[% attrs.format_label | html %]" />
- </p>[% END %]</div>
- <p>
- <strong>[% l('Status') %]</strong>: [% hold.human_status %]
- </p>
- <form method="post">
- <table id="hold_editor_table" >
- <tr>
- <th>
- <input type="hidden" name="action" value="edit" />
+ [% END %]
+ </div>
+
+ <div class="row">
+ <div class="col-12">
+ <strong>[% l('Status') %]</strong>: [% hold.human_status %]
+ </div>
+ <div class="col-12">
+ <input type="hidden" name="action" value="edit" />
<input type="hidden" name="hold_id"
value="[% ahr.id %]" />
[% l('Pickup library') %]
- </th>
- <td>
+
[% INCLUDE build_org_selector
name='pickup_lib' value=ahr.pickup_lib
can_have_vols_only=1 hold_pickup_lib=1 %]
- </td>
- </tr>
- [% IF hold.hold.status < 3 OR hold.hold.status == 7 %]
+ </div>
+ <div class="col-12">
+ [% IF hold.hold.status < 3 OR hold.hold.status == 7 %]
[%# The following actions cannot be performed on holds that
have already been captured... %]
- <tr>
- <th>
+
[% l('Cancel unless filled by') %]
- </th>
- <td>
+
<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">
</div>
</div>
- </td>
- </tr>
- <tr>
- <th>
+
[% l('Active?') %]
- </th>
- <td>
+
<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>
- </td>
- </tr>
- <tr>
- <th>
+
[% l('If suspended, activate on') %]
- </th>
- <td>
+
<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">
</div>
</div>
- </td>
- </tr>
+
[% END %]
- <tr><td colspan='4'>
+ </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
hold_data=hold; END %]
- </td></tr>
- <tr>
- <td colspan="2">
- <a href="[% ctx.opac_root %]/myopac/holds" class="btn btn-deny"><i class="fas fa-arrow-circle-left"></i> [% l('Go Back') %]</a>
- <button class="btn btn-confirm m-2" type='submit'/><i class="fas fa-save"></i> [% l('Save Changes') %]</button>
- </td>
- </tr>
- </table>
+ </div>
+ <div class="col-12">
+ <a href="[% ctx.opac_root %]/myopac/holds" class="btn btn-deny"><i class="fas fa-arrow-circle-left"></i> [% l('Go Back') %]</a>
+ <button class="btn btn-confirm m-2" type='submit'><i class="fas fa-save"></i> [% l('Save Changes') %]</button>
+ </div>
+ </div>
</form>
[% ELSE;
l('Hold not found');
[% IF ctx.bucket_action_failed %]
<div id='bookbag_udpate_failures'>
-
- <div>
- <strong>[% l("Problem with list management:") %]</strong>
- </div>
-
- <div>
- <ul>
- [% IF ctx.bucket_action == 'create' %]
- [% IF ctx.bucket_failure_noname %]
- <li>[% l('A list name is required') %]</li>
- [% END %]
- [% END %]
- </ul>
- </div>
-
- <div>
- [% url = ctx.referer;
- # The return link should return the user to the page where the edit
- # failure occurred.
- # mkurl() does not support 'page' params w/ existing CGI params.
- # build the URL manually.
- IF ctx.where_from;
- from = ctx.where_from | uri;
- IF url.match('\?');
- url = url _ ';where_from=' _ from;
- ELSE;
- url = url _ '?where_from=' _ from;
- END;
- END; %]
- <a href="[% url %]">[% l('Return') %]</a>
- </div>
+ <h3>[% l("Problem with list management:") %]</h3>
+ <div>
+ [% IF ctx.bucket_action == 'create' %]
+ [% IF ctx.bucket_failure_noname %]
+ <h4 class="text-danger">[% l('A list name is required') %]</h4>
+ [% END %]
+ [% END %]
+ </div>
+ <div>
+ [% url = ctx.referer;
+ # The return link should return the user to the page where the edit
+ # failure occurred.
+ # mkurl() does not support 'page' params w/ existing CGI params.
+ # build the URL manually.
+ IF ctx.where_from;
+ from = ctx.where_from | uri;
+ IF url.match('\?');
+ url = url _ ';where_from=' _ from;
+ ELSE;
+ url = url _ '?where_from=' _ from;
+ END;
+ END; %]
+ <a class="btn btn-success" href="[% url %]"><i class="fas fa-undo"></i> [% l('Return') %]</a>
+ </div>
</div>
[% END %]
[% END %]
</table>
</form>
- [% IF CGI.param('from_basket'); %]
+ [% IF CGI.param('from_basket'); %]
<h1>[% l("... from basket") %]</h1>
[% INCLUDE "opac/parts/anon_list.tt2" %]
[% ELSE %]
[% 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="far fa-plus-square"></i> [% l('Add to this list') %]</button>
</div>
</form>
[% END %]
<div>
[% IF bbag.items.size %]
<div class="my-2">
- <select name="action" class="form-control float-left w-75">
- <option disabled="disabled" selected="selected">[% l('-- Actions for these items --') %]</option>
- <option value="place_hold">[% l('Place hold') %]</option>
- <option value="print">[% l('Print title details') %]</option>
- <option value="email">[% l('Email title details') %]</option>
- <option value="del_item">[% l('Remove from list') %]</option>
- </select>
- [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
- <input class="btn btn-confirm btn-sm m-1" type="submit" value="[% l('Go') %]" />
- [% IF CGI.param('list_none_selected') %]
- <span class="error">[% l('No items were selected') %]</span>
- [% END %]
+ <button name="action" class="btn btn-action" type="submit" value="place_hold" id="place_hold">[% l('Place hold') %]</button>
+ <button name="action" class="btn btn-action" type="submit" value="print">[% l('Print title details') %]</button>
+ <button name="action" class="btn btn-action" type="submit" value="email">[% l('Email title details') %]</button>
+ <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' && !inputs[i].disabled && inputs[i].getAttribute('bbag') == [% bbag.id %])
+ inputs[i].checked = this.checked;}"/>
+
+ <label for="check_all_list_items">[% l('Check/Uncheck All') %]</label>
+ </div>
<table class="table table-hover miniTable w-100 bookbagTable">
<thead>
<tr>
</div>
[% END %][% END %]
</div>
+
[% END %]
<div>
<div id="acct_sum_block" class="container">
<h3>[% l('My Account Summary') %]</h3>
- <table class="acct_sum_table mx-auto" title="[% l('Account Summary') %]">
- <tr>
- <td colspan="2" class="text-center">[% l("Account Expiration Date - ") %]
- <span [% IF ctx.expired_card %]style="color:red;"[% END %]>
+ <div class="row">
+ <div class="col-12">
+ <span [% IF ctx.expired_card %]class="danger"[% END %]>
+ [% l("Account Expiration Date - ") %]
[% date.format(ctx.parse_datetime(ctx.user.expire_date), DATE_FORMAT) %]
</span>
- [% IF ctx.expired_card %]
+ </div>
+ <div class="col-12">
+ [% IF ctx.expired_card %]
<span>
<em>
[% l("<br>Your library card has expired.<br>Please contact a librarian to resolve this issue.", fmt_expire_date) %]
</em>
</span>
[% END %]
- </td>
- </tr>
- <tr>
- <td class="text-center"> <a href="[% mkurl(ctx.opac_root _ '/myopac/circs') %]"
+ </div>
+ <div class="col-12">
+ <a href="[% mkurl(ctx.opac_root _ '/myopac/circs') %]"
title="[% l('View My Checked Out Items') %]">
[% l("Items Currently Checked out ([_1])", ctx.user_stats.checkouts.total_out) %]
</a>
- </td>
- <td class="td-right hidden" id="acct_sum_ebook_circs">
- <a href="[% mkurl(ctx.opac_root _ '/myopac/ebook_circs') %]"
+ </div>
+ <div class="col-12">
+ <a href="[% mkurl(ctx.opac_root _ '/myopac/ebook_circs') %]"
title="[% l('View My Checked Out E-Items') %]">
[% l("E-Items Currently Checked out") %] (<span id="acct_sum_ebook_circ_total">-</span>)
</a>
- </td>
- </tr>
- <tr>
- <td class="text-center"><a href="[% mkurl(ctx.opac_root _ '/myopac/holds') %]"
+ </div>
+ <div class="col-12">
+ <a href="[% mkurl(ctx.opac_root _ '/myopac/holds') %]"
title="[% l('View My Holds') %]">
[% l('Items Currently on Hold ([_1])', ctx.user_stats.holds.total) %]
- </a></td>
- <td class="td-right hidden" id="acct_sum_ebook_holds">
- <a href="[% mkurl(ctx.opac_root _ '/myopac/ebook_holds') %]"
+ </a>
+ </div>
+ <div class="col-12">
+ <a href="[% mkurl(ctx.opac_root _ '/myopac/ebook_holds') %]"
title="[% l('View My E-Items On Hold') %]">
[% l("E-Items Currently on Hold") %] (<span id="acct_sum_ebook_hold_total">-</span>)
</a>
- </td>
- </tr>
- <tr>
- <td class="text-center"> <a href="[% mkurl(ctx.opac_root _ '/myopac/holds', {available => 1}) %]"
+ </div>
+ <div class="col-12">
+ <a href="[% mkurl(ctx.opac_root _ '/myopac/holds', {available => 1}) %]"
title="[% l('View My Holds Ready for Pickup') %]">
[% l('Items ready for pickup ([_1])', ctx.user_stats.holds.ready) %]
- </a></td>
-
- <td class="td-right hidden" id="acct_sum_ebook_holds_ready">
- <a href="[% mkurl(ctx.opac_root _ '/myopac/ebook_holds_ready') %]"
+ </a>
+ </div>
+ <div class="col-12">
+ <a href="[% mkurl(ctx.opac_root _ '/myopac/ebook_holds_ready') %]"
title="[% l('View My E-Items Ready for Pickup') %]">
[% l("E-Items ready for pickup") %] (<span id="acct_sum_ebook_hold_ready_total">-</span>)
</a>
- </td>
- </tr>
- </table>
+ </div>
+
+ </div>
+
</div>
</div>
[% content %]
<div class="col-3 text-left">
[% IF offset != 0 %]
<a href='main_payments?limit=[% limit %]&offset=[% offset - limit %]'
- ><span class="np_nav_link classic_link btn btn-outline-primary">◄[% l('Previous') %]</span>
+ ><span class="np_nav_link classic_link btn btn-action">◄[% l('Previous') %]</span>
</a>
[% END %]
</div>
<div class="col-3 text-right">
[% IF ctx.payments.size > limit %]
<a href='main_payments?limit=[% limit %]&offset=[% offset + limit %]'
- ><span class="np_nav_link classic_link btn btn-outline-primary">[% l('Next') %] ►</span>
+ ><span class="np_nav_link classic_link btn btn-action">[% l('Next') %] ►</span>
+ </a>
[% END %]
- </a>
+
</div>
</div>
<span class="sr-only">Receipt Options: </span>
<form action="[% ctx.opac_root %]/myopac/receipt_print" method="post" class="d-inline m-1">
<input class="btn btn-sm btn-confirm my-1" type="hidden" name="payment" value="[% payment.mp.id %]" />
- <button class="btn btn-sm btn-action my-1" type="submit" /><i class='fas fa-print'></i> Print</button>
+ <button class="btn btn-sm btn-action my-1" type="submit"><i class='fas fa-print'></i> Print</button>
</form>
<form action="[% ctx.opac_root %]/myopac/receipt_email" method="post" class="d-inline m-1">
<input class="btn btn-sm btn-confirm my-1" type="hidden" name="payment" value="[% payment.mp.id %]" />
- <button class="btn btn-sm btn-action my-1" type="submit" value="[% l('Email') %]" /><i class="fas fa-envelope-open-text"></i> Email</button>
+ <button class="btn btn-sm btn-action my-1" type="submit" value="[% l('Email') %]"><i class="fas fa-envelope-open-text"></i> Email</button>
</form>
</td>
</tr>
<div id="myopac_messages_div">
<h3>[% l("Messages") %]</h3>
<div>
-
- <span class='float-left' style='padding-left: 10px;'>
- [% IF offset != 0 %] <a href='[% mkurl('messages', { limit => limit, offset => (offset - limit)} ) %]'><span class="nav_arrow_fix">◄</span>[% l('Previous') %]</a>[% END %]
+
+
+
+<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">◄</span> <span class="d-none d-md-inline-block">[% l('Previous') %]</span></a></li>
+ [% END; %]
[% IF offset > 0 || count > limit;
curpage = 0;
WHILE curpage * limit < count;
IF curpage * limit == offset;
%]
- [% curpage + 1 %]
+ <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 %]
- <a href='[% mkurl('messages', {limit => limit, offset => (curpage * limit)}) %]'>[% curpage + 1 %]</a>
+ <li class="page-item"><a href="[% mkurl('messages', {limit => limit, offset => (curpage * limit)}) %]" class="btn page-link">[% curpage + 1%]</a></li>
+
[%- END;
curpage = curpage + 1;
END;
END %]
- [% IF count >= limit + offset %]<a href='[% mkurl('messages', {limit => limit, offset => (offset + limit)}) %]'
- >[% l('Next') %]<span class="nav_arrow_fix">►</span></a>[% END %]
- </span>
+ [% 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">►</span></a></li>
+
+[% END; %]
+</ul>
+
+
</div>
[% IF ctx.message_update_action.defined %]
[% IF ctx.message_update_changed > 0 %]
<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" value="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" value="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" value="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"></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>
</div>
[% IF count < 1 %]
<div class="warning_box">[% l('No messages found.') %]</div>
[% ELSE %]
+ <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' && !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>
<table id="acct_messages_main_header" title="[% l('Messages') %]"
class="table table-hover table-bordered miniTable messagesTable">
<thead>
<tr>
- <th>
- <input type="checkbox" title="[% l('Select All Messages') %]"
+ <td>
+ <input type="checkbox" aria-label="[% l('Select All Messages') %]"
onclick="var inputs=document.getElementsByTagName('input'); for (i = 0; i < inputs.length; i++) { if (inputs[i].name == 'message_id' && !inputs[i].disabled) inputs[i].checked = this.checked;}"/>
- </th>
+ </td>
<th>[% l('Date') %]</th>
<th>[% l('Library') %]</th>
<th>[% l('Subject') %]</th>
- <th></th>
+ <td></td>
</tr>
</thead>
<tbody>
<td class="checkCell">
<span class="sr-only">Message Number [% count; %]</span>
<input type="checkbox" name="message_id" value="[% message.id %]"
- [% html_text_attr('title', l('Select message [_1]', message.title)) %]/>
+ [% html_text_attr('aria-label', l('Select message [_1]', message.title)) %]/>
</td>
<td>
<span class="sr-only">Date of Message</span>
</td>
<td>
<span class="sr-only">Message Options</span>
- <a href="[% mkurl('messages', { single => 1, message_id => message.id } ) %]" title="Read [% message.title | html %]">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"></i> Read</a>
</td>
</tr>
[% END %]
<div id="myopac_messages_div">
-
- <h3>[% l("Messages") %]</h3>
-
+ <h3>[% l("Messages") %]</h3>
<div id="single_message_main">
<form method="post" id="messages-form" action="[% ctx.opac_root %]/myopac/messages" class="my-2">
<input type="hidden" name="message_id" value="[% ctx.patron_message_id %]" />
</button>
</span>
</form>
-
- <table title="[% l('Message') %]"
- class='light_border table'>
- <tbody id='myopac_message_tbody'>
- <tr>
- <td class='color_4 light_border'>[% l("Date") %]</td>
- <td class='myopac_message_date'>[% date.format(ctx.parse_datetime(ctx.patron_messages.0.create_date), DATE_FORMAT); %]</td>
- </tr>
- <tr>
- <td class='color_4 light_border'>[% l("Library") %]</td>
- <td class='myopac_message_library'>[% ctx.patron_messages.0.library | html %]</td>
- </tr>
- <tr>
- <td class='color_4 light_border'>[% l("Subject") %]</td>
- <td class='myopac_message_subject'>[% ctx.patron_messages.0.title | html %]</td>
- </tr>
- <tr>
- <td class='color_4 light_border'>[% l("Message") %]</td>
- <td class='myopac_message_message'>[% ctx.patron_messages.0.message | html %]</td>
- </tr>
- </tbody>
- </table>
+ <div class="row">
+ <div class="my-2 col-12">
+ <b>[% l("Date") %]</b>
+ <span class="mx-2">[% date.format(ctx.parse_datetime(ctx.patron_messages.0.create_date), DATE_FORMAT); %]</span>
+ </div>
+ <div class="my-2 col-12">
+ <b>[% l("Library") %]</b>
+ <span class="mx-2">[% ctx.patron_messages.0.library | html %]</span>
+ </div>
+ <div class="my-2 col-12">
+ <b>[% l("Subject") %]</b>
+ <span class="mx-2">[% ctx.patron_messages.0.title | html %]</span>
+ </div>
+ <div class="my-2 col-12">
+ <b>[% l("Message") %]</b>
+ <span class="mx-2">[% ctx.patron_messages.0.message | html %]</span>
+ </div>
+ </div>
</div>
</div>
[% PROCESS "opac/parts/header.tt2";
- WRAPPER "opac/parts/myopac/prefs_base.tt2";
+ WRAPPER "opac/parts/myopac/base.tt2";
myopac_page = "prefs";
parent="prefs";
prefs_page = 'prefs' %]
<tr>
<td class='color_4 light_border'>[% l("Home Library") %]</td>
- <td class='light_border'>[% ctx.user.home_ou.name | html %]</td>
- <td></td>
+ <td class='light_border'>
+ [% ctx.get_aou(ctx.user.home_ou.parent_ou).name %]<br/>
+ [% 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.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;
+ '<a href="'; lib_url | html; '" property="url">'; lib_url; '</a>';
+ END;
+ %]
+ </td> <td></td>
</tr>
<tr>
<td class='color_4 light_border'>[% l("Account Creation Date") %]</td>
<td class='color_4 light_border'>[% l("Account Expiration Date") %]</td>
<td class='light_border'>
[%- IF date.format(ctx.parse_datetime(ctx.user.expire_date), '%s') < date.format(date.now , '%s'); -%]
- <span class="alert" style="font-weight:bold;">[% date.format(ctx.parse_datetime(ctx.user.expire_date), DATE_FORMAT) %]</span>
-
+ <span class="danger">[% date.format(ctx.parse_datetime(ctx.user.expire_date), DATE_FORMAT) %]</span>
[% ELSE %]
[% date.format(ctx.parse_datetime(ctx.user.expire_date), DATE_FORMAT) %]
[% END %]
</tr>
[% END %]
<tr>
- <td><button type='submit' class="btn btn-confirm "/><i class="fas fa-save"></i> [% l('Save Changes') %]
+ <td><button type='submit' class="btn btn-confirm "><i class="fas fa-save"></i> [% l('Save Changes') %]
</button></td>
<td>
[% PROCESS "opac/parts/header.tt2";
- WRAPPER "opac/parts/myopac/prefs_base.tt2";
+ WRAPPER "opac/parts/myopac/base.tt2";
myopac_page = "prefs_my_lists";
parent="prefs";
prefs_page = 'prefs_my_lists' %]
[%- setting = 'opac.lists_per_page' -%]
<tr >
- <td width='20%'><label for='[% setting %]'>[%l("Lists per page") %]</label></td>
+ <td><label for='[% setting %]'>[%l("Lists per page") %]</label></td>
<td>
<select class="d-inline-block form-control mini-control" id='[% setting %]' name='[% setting %]'>
[% UNLESS ctx.user_setting_map.$setting;
</tr>
</tbody>
</table>
- <button type="submit" class="btn btn-confirm"/><i class="fas fa-save"></i> [% l('Save') %]</button>
+ <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 %]
[% PROCESS "opac/parts/header.tt2";
- WRAPPER "opac/parts/myopac/prefs_base.tt2";
+ WRAPPER "opac/parts/myopac/base.tt2";
myopac_page = "prefs_notify";
parent="prefs";
prefs_page = 'prefs_notify' %]
</tbody>
</table>
- <button type='submit' class="btn btn-confirm"/><i class="fas fa-save"></i> [% l('Save') %]</button>
+ <button type='submit' class="btn btn-confirm"><i class="fas fa-save"></i> [% l('Save') %]</button>
</form>
[% END %]
[% PROCESS "opac/parts/header.tt2";
PROCESS "opac/parts/org_selector.tt2";
- WRAPPER "opac/parts/myopac/prefs_base.tt2";
+ WRAPPER "opac/parts/myopac/base.tt2";
myopac_page = "prefs_settings";
parent="prefs";
prefs_page = 'prefs_settings' %]
[%- setting = 'opac.hits_per_page' -%]
<tr >
- <td width='20%'><label for='[% setting %]'>[% l("Search hits per page") %]</label></td>
+ <td><label for='[% setting %]'>[% l("Search hits per page") %]</label></td>
<td>
<select class="d-inline-block form-control mini-control" id='[% setting %]' name='[% setting %]'>
[% UNLESS ctx.user_setting_map.$setting;
</tr>
[%- setting = 'opac.default_pickup_location'; -%]
<tr>
- <td width='20%'><label for='[% setting %]'>[% l("Preferred pickup location") %]</label></td>
+ <td><label for='[% setting %]'>[% l("Preferred pickup location") %]</label></td>
<td>
[%- thang = ctx.user.home_ou.id;
IF ctx.user_setting_map.$setting;
<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>
</table>
- <button class="btn btn-confirm m-2" type='submit'/><i class="fas fa-save"></i> [% l('Save Changes') %]</button>
+ <button class="btn btn-confirm m-2" type='submit'><i class="fas fa-save"></i> [% l('Save Changes') %]</button>
</form>
</div>
[% END %]
<tr><td>[% l('New Password') %]</td><td><label><input class="form-control" type='password' name='new_pw' autocomplete='off'/></label></td></tr>
<tr><td>[% l('New Password Again') %]</td><td><label><input class="form-control" type='password' name='new_pw2'/></label></td></tr>
</table>
-<button class="btn btn-confirm m-2" type='submit'/><i class="fas fa-save"></i> [% l('Save Changes') %]</button>
+<button class="btn btn-confirm m-2" type='submit'><i class="fas fa-save"></i> [% l('Save Changes') %]</button>
</form>
</div>
[% END %]
<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>
- <tr><td colspan='2' align='center'><button class="btn btn-confirm m-2" type='submit'/><i class="fas fa-save"></i> [% l('Save Changes') %]</button></td></tr>
+ <tr><td colspan='2' align='center'><button class="btn btn-confirm m-2" type='submit'><i class="fas fa-save"></i> [% l('Save Changes') %]</button></td></tr>
</table>
</form>
<form action="[% ctx.opac_root %]/results" method="get">
- <div class="header_middle">[% l("Expert Search") %]</div>
+ <h1 class="text-center">Expert Search</h1>
+ <h2 class="text-center">Search the MARC record.</h2>
<input type="hidden" name="_special" value="1" />
<input id="detail" type="hidden" name="detail_record_view"
value="[% show_detail_view %]"/>
<tr id="adv_expert_row">
<td class="py-3">
<div class="row">
- <div class="col-2">
- <span class="d-inline-block" style="position:absolute;bottom:10px;">
- <a href="javascript:;" class="btn btn-remove btn-sm"
- title="[% l('Remove row') %]"
- onclick='return killRowIfAtLeast(1, this.parentNode.parentNode);'>
- <i class="fas fa-times"></i></a>
- </span>
- </div>
+
<div class="col-3">
<span class="d-inline-block">
<label for="expert_tag">[% l("Tag:") %]</label>
<input class="form-control" id="expert_term" type="text" name="term" size="16" />
</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') %]"
+ onclick='return killRowIfAtLeast(1, this.parentNode.parentNode);'>
+ <i class="fas fa-times"></i></a>
+ </button>
+ </div>
</div>
</td>
</tr>
</tbody>
<tfoot>
<tr>
- <td class="py-3" ><a class="btn btn-opac btn-sm" href="javascript:addExpertRow();"><i class="fas fa-plus-circle"></i> [% l("Add Search Row") %]</a></td>
+ <td><a class="btn btn-opac btn-sm" href="javascript:addExpertRow();"><i class="fas fa-plus-circle"></i> [% l("Add Search Row") %]</a></td>
</tr>
<tr>
- [%- lib_select_id = "expert_search_library"; -%]
- <td class="py-3 expert-search-row">
+ [%- lib_select_id = "adv_org_selector"; -%]
+ <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
</td>
</tr>
<tr>
- <td class="expert-search-row">
+ <td class="py-3">
<button type="submit" class="btn btn-confirm"><i class="fas fa-search"></i> [% l('Search') %]</button>
</td>
</tr>
queries = CGI.param('query');
bools = CGI.param('bool');
qtypes = CGI.param('qtype');
- rowcount = 3;
+ rowcount = 2;
# scalar.merge treats the scalar as a 1-item array
WHILE queries.size < rowcount; queries = queries.merge(['']); END;
<div class="row">
<div class="col-2">
<!-- bool selector. hide for first row. safe to ignore first bool value in form submission -->
- <select title="[% l('Boolean search operator') %]"
+ <select aria-label="[% l('Boolean search operator') %]"
name='bool' [% IF loop.first %] class='d-none' [% ELSE %] class='form-control' [% END %]>
<option value='and' [% b == 'and' ? 'selected="selected"' : '' %]>[% l('And') %]</option>
<option value='or' [% b == 'or' ? 'selected="selected"' : '' %]>[% l('Or') %]</option>
</span>
</div>
<div class="col-3">
- <select class='form-control' title="[% l('Search phrase match strictness') %]"
+ <select class='form-control w-100' aria-label="[% l('Search phrase match strictness') %]"
name='contains'>
[% FOR o IN contains_options; -%]
<option value="[% o.value %]" [% c == o.value ? ' selected="selected"' : '' %]>[% o.label %]</option>
</select>
</div>
<div class="col-4">
- <input class="form-control" title="[% l('Search term') %]" aria-label="[% l('Search term') %]"
+ <input class="form-control" aria-label="[% l('Search term') %]"
type='text' size='18' name='query' value="[% q | html %]" [% IF loop.index == 0 %] autofocus [% END %] />
</div>
</div>
</td>
<td class="px-2">
- <a href="javascript:;" class="btn btn-remove btn-sm"
+ <a href="javascript:;" class="btn btn-remove btn-sm" aria-label="Remove This Row"
title="[% l('Remove row') %]"
onclick='return killRowIfAtLeast(2, this);'>
<i class="fas fa-times"></i>
<form action="[% ctx.opac_root %]/results" method="get">
- <div class="header_middle">[% l("Numeric Search") %]</div>
+ <h1 class="text-center">Numeric Search</h1>
+ <h2 class="text-center">Search by a field and numeric identifier.</h2>
<input type="hidden" name="contains" value="contains" />
<input type="hidden" name="_special" value="1" />
<input id="detail" type="hidden" name="detail_record_view"
value="[% show_detail_view %]"/>
<div id='adv_numeric_block' class='row'>
- <div class="col-md-6 col-xs-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="item_barcode">[% l('Item Barcode') %]</option>
</select>
</div>
- <div class="col-md-6 col-xs-12 my-3">
- <label for="numeric_qtype"><strong>[% l("Identifier:") %]</strong></label>
- <input class="form-control" type="text" name="query" size="16" autofocus placeholder='[% l("Identifier") %]' aria-label='[% l("Identifier") %]' />
+ <div class="col-12 my-3">
+ <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/>
- <div class="col-12 my-3 text-center">
- [%- lib_select_id="numeric_search_library" -%]
+ <div class="col-12 my-3">
+ [%- lib_select_id="adv_org_selector" -%]
<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
%]
</label>
<br/>
- <button type="submit" class="btn btn-confirm"><i class="fas fa-search"></i> [% l('Search') %]</button>
</div>
+ <div class="col-12 my-3">
+ <button type="submit" class="btn btn-confirm"><i class="fas fa-search"></i> [% l('Search') %]</button>
+
+ </div>
</div>
</form>
%]
<form action="[% ctx.opac_root %]/results" method="get">
<div id='adv_global_search' class='data_grid data_grid_center'>
- <div id='adv_search_rows' class="container mb-3">
- <!-- Contains the user-adda
- ble(?) rows to define search class, containment and text -->
- <div class="header_middle">[% l('Search Input') %]</div>
- <div class='adv_global_input_container row'>
- <table role="presentation" class="mx-auto mb-5 col-lg-8">
+ <div id='adv_search_rows' class="container">
+ <h1 class="text-center">Advanced Search</h1>
+ <h2 class="text-center">Refine your search by filling out one or more fields to search by below.</h2>
+ <div class='adv_global_input_container row'>
+ <table role="presentation" id="adv_global_input_table" class="mx-auto col-12">
<tbody id="adv_global_tbody">
[% INCLUDE "opac/parts/advanced/global_row.tt2" %]
<!-- add a new row -->
</tbody>
</table>
</div>
- <div id='adv_search_submit' class="text-center">
- <input type="hidden" name="_adv" value="1" />
- <input id="detail" type="hidden" name="detail_record_view"
- value="[% show_detail_view %]"/>
- <span>
- <button id='search-submit-go' type="submit" class="btn btn-confirm"
- onclick='setTimeout(function(){$("search-submit-spinner").className=""; $("search-submit-go").className="hidden"}, 2000)'><i class="fas fa-search"></i> [% l("Submit") %]</button>
- <img id='search-submit-spinner' src='/opac/images/progressbar_green.gif[% ctx.cache_key %]'
- class='hidden' alt="[% l('Search in progress icon') %]"/>
- </span>
-
- <a href="[% mkurl(ctx.opac_root _ '/advanced', {$loc_name => loc_value}, 1) %]"
- class="btn btn-deny"><i class="fas fa-ban"></i> [% l('Clear Form') %]</a>
- </div>
</div>
-
-
- <div class="container">
- <div class="header_middle">[% l('Search Filters') %]</div>
-<div class='row'>
-[% FOR adv_chunk IN search.adv_config; NEXT IF adv_chunk.adv_hide || (adv_chunk.adv_special && adv_chunk.adv_special != 'copy_location'); %]
- <div class='col-xl-3 col-sm-6 col-md-4 col-xs-12 pt-3'>
- <div [% IF adv_chunk.js_only %]
- id='adv_chunk_[% adv_chunk.adv_special %]'
- class='hidden mx-auto' [%ELSE%] class='mx-auto' [% END %]>
- <strong><label for="[% adv_chunk.id %]">
- [% adv_chunk.adv_label %] </label></strong><br />
-
-[% IF adv_chunk.adv_attr;
- INCLUDE "opac/parts/coded_value_selector.tt2"
- id=adv_chunk.id
- attr=adv_chunk.adv_attr multiple="multiple"
- size=adv_chunk.adv_size || search.default_adv_select_height || "4";
- ELSIF adv_chunk.adv_filter;
- 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; %]
-[% IF adv_chunk.adv_special == 'copy_location' %]
-<select id="adv_copy_location_selector"
- title="[% l('Select Shelving Location') %]"
- name="fi:locations" size="4" multiple="multiple" class="form-control">
- </select>
- [%END;%]</div></div>[%END;%]</div>
-
-
+ <div class="my-5">
+ <h3>Search Filters</h3>
+ <div>
+ [% FOR adv_chunk IN search.adv_config; NEXT IF adv_chunk.adv_hide || (adv_chunk.adv_special && adv_chunk.adv_special != 'copy_location'); %]
+ <div class="pt-3">
+ <div [% IF adv_chunk.js_only %] id='adv_chunk_[% adv_chunk.adv_special %]' class='hidden accordion' [%ELSE%] class='accordion' [% END %]>
+ <div class="card">
+ <div class="card-header p-0" id="[% adv_chunk.id %]_card">
+ <h4 class="mb-0">
+ <button type="button" class="btn filter-header w-100 text-left" data-toggle="collapse" data-target="#[% IF adv_chunk.id == 'adv_copy_location_selector'; 'adv_copy_location_selector_new'; ELSE; adv_chunk.id; END; %]" aria-expanded="true" aria-controls="[% IF adv_chunk.id == 'adv_copy_location_selector'; 'adv_copy_location_selector_new'; ELSE; adv_chunk.id; END; %]">
+ [% adv_chunk.adv_label %]
+ </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> [% adv_chunk.adv_label %]</legend>
+ [% END; %]
+ [% IF adv_chunk.adv_attr;
+ INCLUDE "opac/parts/check_value_selector.tt2"
+ id=adv_chunk.id
+ attr=adv_chunk.adv_attr multiple="multiple"
+ size=adv_chunk.adv_size || search.default_adv_select_height || "4";
+ ELSIF adv_chunk.adv_filter;
+ 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; %]
+ [% IF adv_chunk.id != 'adv_copy_location_selector';%]
+ </fieldset>
+ [% END; %]
+ </div>
+ </div>
+ </div></div>
+ </div>
+ [%END;%]
+ </div>
+ </div>
-<!--Bottom Content (Library/Pub Year/Sort and Limit/Format Checkboxes -->
- <div class="row">
-[% FOR adv_chunk IN search.adv_config; NEXT IF adv_chunk.adv_hide || adv_chunk.adv_special == 'copy_location';%]
-[% IF adv_chunk.adv_special;%]
- <div class='col-md-4 col-sm-6 col-xs-12 pt-3'>
- <div [% IF adv_chunk.js_only %]
- id='adv_chunk_[% adv_chunk.adv_special %]'
- class='hidden mx-auto' [%ELSE%] class='mx-auto' [% END %]>
- <strong><label for="[% adv_chunk.id %]">
- [% adv_chunk.adv_label %] </label></strong><br />
-
- [% IF adv_chunk.adv_special == "lib_selector";
- PROCESS "opac/parts/org_selector.tt2";
- INCLUDE build_org_selector show_loc_groups=1 id=adv_chunk.id %]
-
-
-
-[% ELSIF adv_chunk.adv_special == "pub_year"; %]
- <select name='pubdate' class='form-control'
- id="[% adv_chunk.id %]"
- onchange='if(this.selectedIndex == 3)
- unHideMe($("adv_global_pub_date_2_span"));
- else
- hideMe($("adv_global_pub_date_2_span"));'>
-
- [% FOR opt IN [
- {"code" => "is", "label" => l("Is")},
- {"code" => "before", "label" => l("Before")},
- {"code" => "after", "label" => l("After")},
- {"code" => "between", "label" => l("Between")} ] %]
- <option value="[% opt.code %]"[% CGI.param('pubdate') == opt.code ? ' selected="selected"' : '' %]>[% opt.label | html %]</option>
- [% END %]
-
+ <!--Bottom Content (Library/Pub Year/Sort and Limit/Format Checkboxes -->
+ <div class="row">
+ [% FOR adv_chunk IN search.adv_config; NEXT IF adv_chunk.adv_hide || adv_chunk.adv_special == 'copy_location';%]
+ [% IF adv_chunk.adv_special;%]
+ <div class='col-md-4 col-sm-6 col-xs-12 pt-3'>
+ <div [% IF adv_chunk.js_only %] id='adv_chunk_[% adv_chunk.adv_special %]' class='hidden mx-auto' [%ELSE%] class='mx-auto' [% END %]>
+ <strong><label for="[% adv_chunk.id %]"> [% adv_chunk.adv_label %] </label></strong><br />
+ [% IF adv_chunk.adv_special == "lib_selector"; PROCESS "opac/parts/org_selector.tt2"; INCLUDE build_org_selector show_loc_groups=1 id=adv_chunk.id %]
+ [% ELSIF adv_chunk.adv_special == "pub_year"; %]
+ <select name='pubdate' class='form-control' id="[% adv_chunk.id %]" onchange='if(this.selectedIndex == 3) $("#adv_global_pub_date_2_span").removeClass("hide_me"); else $("#adv_global_pub_date_2_span").addClass("hide_me");'>
+ [% FOR opt IN [
+ {"code" => "is", "label" => l("Is")},
+ {"code" => "before", "label" => l("Before")},
+ {"code" => "after", "label" => l("After")},
+ {"code" => "between", "label" => l("Between")} ] %]
+ <option value="[% opt.code %]"[% CGI.param('pubdate') == opt.code ? ' selected="selected"' : '' %]>[% opt.label | html %]</option>
+ [% END %]
</select>
- [% IF !ctx.exclude_electronic_checkbox %]
+
<br/>
<div id='adv_special_block' class="text-center">
- [% END %]
<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("AND") %] <input name='date2' class='form-control' placeholder='Year'
title="[% l('Secondary search date') %]" type='text' size='4' maxlength='4' value="[% CGI.param('date2') | html %]" />
</span>
- [% IF !ctx.exclude_electronic_checkbox %]
</div>
- [% END %]
+
[% IF ctx.exclude_electronic_checkbox %]
<div class="adv_search_available">
<input type='checkbox' name="fi:-search_format" value="electronic"
<label for='opac.result.excludeelec'>
[% l("Exclude Electronic Resources") %]
</label>
- </div>
+ </div>a
[% END %]
-[% ELSIF adv_chunk.adv_special == "sort_selector"; default_sort=ctx.default_sort;
- IF CGI.param('sort');
- default_sort=CGI.param('sort');
- END;
+ [% ELSIF adv_chunk.adv_special == "sort_selector"; default_sort=ctx.default_sort;
+ IF CGI.param('sort'); default_sort=CGI.param('sort'); END;
INCLUDE "opac/parts/filtersort.tt2"
id=adv_chunk.id
value=default_sort class='results_header_sel form-control'; %]
-<div class="mt-5">
- [% IF NOT metarecords.disabled %]
- <br/><!-- <br> may seem redundant, but it allows the
- <input> (below) to drop down inline w/ its label -->
- <div>
- <input type='checkbox' name="modifier" value="metabib"
- [%- CGI.param('modifier').grep('metabib').size || search.metarecord_default ?
- ' checked="checked"' : '' %]
- id='opac.result.ismetabib' />
- <label for='opac.result.ismetabib'>
- [% l("Group Formats and Editions") %]</label>
- </div>
- [% END %]
- <div>
- <input type='checkbox' name="modifier"
- value="available"[% CGI.param('modifier').grep('available').size ? ' checked="checked"' : '' %]
- id='opac.result.limit2avail' />
- <label for='opac.result.limit2avail'>
- [% l("Limit to Available") %]</label>
+ <div class="mt-5">
+ [% IF NOT metarecords.disabled %]<br/>
+ <div>
+ <input type='checkbox' name="modifier" value="metabib"
+ [%- CGI.param('modifier').grep('metabib').size || search.metarecord_default ?
+ ' checked="checked"' : '' %]
+ id='opac.result.ismetabib' />
+ <label for='opac.result.ismetabib'>
+ [% l("Group Formats and Editions") %]</label>
+ </div>
+ [% END %]
+ <div>
+ <input type='checkbox' name="modifier"
+ value="available"[% CGI.param('modifier').grep('available').size ? ' checked="checked"' : '' %]
+ id='opac.result.limit2avail' />
+ <label for='opac.result.limit2avail'>
+ [% l("Limit to Available") %]</label>
+ </div>
</div>
+ [% END; %]
+ </div>
+ </div>
+ [% END; %]
+ [% END; %]
+ </div>
</div>
- [% END; %]
- </div></div>
- [% END; %]
-
-
+ <div id='adv_search_submit' class="my-3">
+ <input type="hidden" name="_adv" value="1" />
+ <input id="detail" type="hidden" name="detail_record_view"
+ value="[% show_detail_view %]"/>
+ <span>
+ <button id='search-submit-go' type="submit" class="btn btn-confirm"
+ onclick='setTimeout(function(){$("search-submit-spinner").className=""; $("search-submit-go").className="hidden"}, 2000)'><i class="fas fa-search"></i> [% l("Submit") %]</button>
+ <img id='search-submit-spinner' src='/opac/images/progressbar_green.gif[% ctx.cache_key %]'
+ class='hidden' alt="[% l('Search in progress icon') %]"/>
+ </span>
-
-[% END; %]
-</div>
- </div>
+ <a href="[% mkurl(ctx.opac_root _ '/advanced', {$loc_name => loc_value}, 1) %]"
+ class="btn btn-deny"><i class="fas fa-ban"></i> [% l('Clear Form') %]</a>
</div>
-
</form>
<div class="bbag-content">
-
+ <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++) {
+ 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>
<table class="container-fluid table table-hover table-bordered mt-4 miniTable bucketTable">
<thead id="acct_list_header_anon">
<tr>
<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 %]" />
-
-
- <script src="[% ctx.media_prefix %]/js/ui/default/common/build/js/jquery.min.js[% ctx.cache_key %]"></script>
- <script src="[% ctx.media_prefix %]/js/datepicker/bootstrap-datepicker.js[% ctx.cache_key %]"></script>
-
-
<link rel="stylesheet" href="[% ctx.media_prefix %]/css/skin/default/opac/semiauto.css[% ctx.cache_key %]" />
<link rel="stylesheet" href="[% ctx.opac_root %]/css/style.css[% ctx.cache_key %]&dir=[%
IF ctx.get_i18n_l(ctx.eg_locale).rtl == 't' %]rtl[%
ELSE %]ltr[% END %]" />
+ <link rel="stylesheet" href="[% ctx.opac_root %]/css/mediaQuery.css[% ctx.cache_key %]" />
[% 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 %]
[% 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>
[% END;%]
<h2 class="sr-only">[% l('Additional Resources') %]</h2>
[% INCLUDE 'opac/parts/footer.tt2' %]
+
[% INCLUDE 'opac/parts/js.tt2' %]
+ <script>
+ $(document).ready(function(){
+ $('.tooltip').tooltip();
+ });
+</script>
[%- IF ENV.OILS_CHILIFRESH_ACCOUNT %]
[%- INCLUDE 'opac/parts/chilifresh.tt2' %]
[%- END %]
+
+
+
</body>
</html>
</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>
+ <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>
[% 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"></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"></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"></i>[% l('Clear Basket') %]</a>
</div>
</div>
</div>
--- /dev/null
+
+[%-
+ # If caller passes a list of possible attribute types,
+ # search all until we find some values
+
+ IF !attr.size; attr = [attr]; END;
+ all_values = [];
+ attr_class = '';
+ FOR attr_class IN attr;
+ all_values = ctx.search_ccvm('ctype', attr_class, 'opac_visible', 't');
+ IF all_values.size > 0; LAST; END;
+ END;
+ name = name || "fi:" _ attr_class;
+ id = id || attr_class _ "_selector";
+ values = values || CGI.param(name);
+ IF size AND size < 1; size = all_values.size; END;
+-%]
+
+<div class="w-100">
+
+[% IF none_ok %]
+ <p value=''>[% none_label ? none_label : l('-- Any --') %]</p>
+[% END;
+# turn the list of objects into a list of hashes to
+# leverage TT's array.sort('<hashkey>') behavior
+simple_sorter = [];
+sorter = [];
+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)});
+ END;
+END;%]
+<ul class="adv_filters">
+[% FOR o IN simple_sorter.sort('value') %]
+<li>
+ <div class="form-check">
+ <label class="form-check-label">
+ <input type="checkbox" class="form-check-input" name='[% name %]' value='[% o.code | html | replace("'","'") %]'[% values.grep('^' _ o.code _ '$').size ? ' checked' : '' %]>
+ [% o.value | html %]
+ </label>
+ </div>
+ </li>
+[% END;%]
+</ul>
+[%IF simple_sorter.size && sorter.size %]
+ <p disabled='true'>-----</p>
+[% END; %]
+<ul class="adv_filters">
+[% FOR o IN sorter.sort('value') %]
+<li>
+<div class="form-check">
+ <label class="form-check-label">
+ <input type="checkbox" class="form-check-input" name='[% name %]' value='[% o.code | html | replace("'","'") %]'[% values.grep('^' _ o.code _ '$').size ? ' checked' : '' %]>
+ [% o.value | html %]
+ </label>
+ </div>
+ </li>
+[% END -%]
+</ul>
+
+
+</div>
\ No newline at end of file
footer_primary = "#00593d", #Primary Footer Color
footer_primary_fade = "#007a54", #Fade Footer Color, make equal to footer_primary for no fade
+ bg_extras = "#007a54",
+ bg_filter = "#007a54",
+ bg_filter_hover = "#00593d"
+
+ text_filter = "#fff",
+
background = "#fff", # white
background_alert = "#ffcccc", # pink
background_invert = "#252525", # charcoal
text = "black", # black
- text_alert = "red", # red
+ text_alert = "#c50202", # red
text_attention = "#ffcc33", # pumpkin orange
text_badnews = "#f41d36", # cherry red
text_goodnews = "#1dd93c", # lime green
#Buttons are using default Bootstrap styling colors by default with this scheme, changable to match your library colours
#Submit buttons and confirmations likle login. Make all 4 the same color for no hover effect
- button_confirm = "#28a745",
- button_confirm_hover = "#218838",
- button_confirm_border = "#28a745",
- button_confirm_border_hover = "#1e7e34",
+ button_confirm = "#007a54",
+ button_confirm_hover = "#00593d",
+ button_confirm_border = "#007a54",
+ button_confirm_border_hover = "#00593d",
button_confirm_text = "#fff",
#Denial buttons like Cancel. Make all 4 the same color for no hover effect
<li class="nav-item"><a class="nav-link" href="[% mkurl(ctx.opac_root _ '/register') %]">[%
l('Request Library Card') %]</a></li>
[% ELSE %]
- <li class="nav-item"><a class="nav-link" href="#">[% l('Link 1') %]</a></li>
+ <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('Link 2') %]</a></li>
- <li class="nav-item"><a class="nav-link" href="#">[% l('Link 3') %]</a></li>
- <li class="nav-item"><a class="nav-link" href="#">[% l('Link 4') %]</a></li>
+ <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>
</div>
</div>
-<!-- JS imports, etc. -->
+
+
<script src="[% ctx.media_prefix %]/js/ui/default/opac/simple.js[% ctx.cache_key %]"></script>
[% INCLUDE "opac/i18n_strings.tt2" %]
/* Don't error out if the object doesn't exist, like on advanced search pages */
if (dojo.byId('search_box')) {
dijit.byId('search_box').focus();
-
var sb_value = dijit.byId('search_box').value;
/* Dojo won't trigger a change if the value doesn't change */
if (sb_value) {
};
</script>
-<script >if ($('client_tz_id')) { $('client_tz_id').value = OpenSRF.tz }</script>
+<script >if ($('#client_tz_id')) { $('#client_tz_id').value = OpenSRF.tz }</script>
[%- END; # want_dojo -%]
[%- IF ctx.max_cart_size; %]
<link rel="stylesheet" href="[% ctx.media_prefix %]/js/ui/default/common/build/js/glide/css/glide.core.min.css[% ctx.cache_key %]">
<link rel="stylesheet" href="[% ctx.media_prefix %]/js/ui/default/common/build/js/glide/css/glide.theme.min.css[% ctx.cache_key %]">
- <script src="[% ctx.media_prefix %]/js/bootstrap/popper.min.js"></script>
+<!-- JS imports, etc. -->
+<script src="[% ctx.media_prefix %]/js/bootstrap/jquery-3.5.1.min.js"></script>
- <script src="[% ctx.media_prefix %]/js/bootstrap/bootstrap.min.js"></script>
+<script src="[% ctx.media_prefix %]/js/bootstrap/popper.min.js"></script>
-<script>
-jQuery(document).ready(function(){
- jQuery('[data-toggle="tooltip"]').tooltip();
-});
+<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();
+ });
</script>
\ No newline at end of file
opac_root = ctx.kpac_root;
END;
-%]
-<div id="content-wrapper">
- <div id="main-content" class="content-wrapper-library-page" vocab="http://schema.org/" typeof="Library">
- <h1 property="name">[% ctx.library.name | html %]</h1>
-
+<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; -%]
[%- IF (ctx.library.email OR ctx.library.phone); %]
- <h2 id="contact-info">[% l('Contact information') %]</h2>
+ <div class="my-3">
+ <h3 id="contact-info">[% l('Contact information') %]</h3>
[%- IF ctx.library.email; %]
<div>[% l('Email address: ') %]<a href="mailto:[% ctx.library.email | html %]" property="email">[% ctx.library.email | html %]</a></div>
[%- END; %]
[%- IF ctx.library.phone; %]
<div>[% l('Telephone: ') %]<a href="tel:[% ctx.library.phone | html %]" property="telephone">[% ctx.library.phone | html %]</a></div>
[% END; %]
+ </div>
[% END; %]
[%- IF ctx.library.mailing_address; %]
- <div id="addresses">
+ <div class="my-3" id="addresses">
<div id="mailing" property="location address" typeof="PostalAddress">
<h3 property="contactType">[% l('Mailing address') %]</h3>
<span property="streetAddress">[% ctx.mailing_address.street1 | html %]
[%- END; %]
[%- IF ctx.library.parent_ou; %]
- <h2>[% l('Branch relationship') %]</h2>
+ <div>
+ <h3>[% l('Branch relationship') %]</h3>
<div id="branch-info">[% l('Parent library: ') %]
<a property="branchOf" href="[% mkurl(opac_root _ '/library/' _ ctx.parent.shortname, {}, 1) %]">[% ctx.parent.name | html %]</a>
</div>
+ </div>
[% END; -%]
-
- <div class="common-full-pad"></div>
</div>
</div>
today = date.format(format = '%Y-%m-%d ');
# We need to add "today" to the opening/closing hours for Date input
-%]
-<h2>[% l('Opening hours') %]</h2>
+<div class="my-3">
+<h3>[% l('Opening hours') %]</h3>
[%-
open = today _ ctx.hours.dow_0_open;
'<time property="closes" content="' _ date.format(close, format => '%H:%M:%S') _ '">' _ date.format(close) _ '</time>') -%]
</div>
[%- END %]
+</div>
\ No newline at end of file
[%- 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"></i>[% l(" Save Changes") %]</button>
</div>
</form>
[%- END %]
<div class="mx-auto row w-75 my-5">
- <div class='col-md-6 text-center'>
- <label for='username_field' class="lbl1" >[% l('Library Card Number') %]
- <a href="#" title="[% INCLUDE "opac/parts/login/username_hint.tt2" %]" data-html="true" data-toggle="tooltip">
- <i class="fas fa-question-circle"></i>
- </a>
- </label>
- <div class="input_bg">
- <input class="form-control" type='text' id="username_field" name="username" autofocus />
+ <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">
+ <i class="fas fa-question-circle"></i></span></label> <br>
+ <div class="input_bg mb-2">
+ <input class="form-control" type='text' id="username_field" name="username"/>
</div>
- <a href='[% mkurl(ctx.opac_root _ '/register', {}, 1) %]'>[% l('Request A Card') %]</a>
-
+ <a href='[% mkurl(ctx.opac_root _ '/register', {}, 1) %]'>[% l('Request A Card') %]</a>
+ <br>
+
</div>
- <div class='col-md-6 text-center'>
- <label for="password_field" class="lbl1" >[% l('PIN') %]
- <a href="#" title="[% INCLUDE "opac/parts/login/password_hint.tt2" %]" data-html="true" data-toggle="tooltip">
+ <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>
- </a>
- </label>
- <div class="input_bg">
- <input class="form-control" id="password_field" name="password" type="password" />
+ </span></label><br>
+
+ <div class="input_bg mb-2">
+ <input class="form-control" id="password_field" name="password" type="password"/>
</div>
-
- [% IF reset_password == 'true' %]
- <a href='[% mkurl(ctx.opac_root _ '/password_reset', {}, 1) %]'>[% l('Forgot your password?') %]</a>
+ [% IF reset_password == 'true' %]
+ <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">
<div class="modal-content">
<form method='post' action="/eg/opac/login?redirect_to=%2Feg%2Fopac%2Fmyopac%2Fmain">
<div class="modal-header">
- <h5 class="modal-title" id="exampleModalLabel">Login To Evergreen</h5>
+ <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>
</button>
<div class='container text-center'>
<div class="mx-auto row py-4">
<div class='col-md-6'>
- <label for='username_field' class="lbl1" >[% l('Library Card Number') %]<a href="#" title="[% INCLUDE "opac/parts/login/username_hint.tt2" %]" data-html="true" data-toggle="tooltip">
- <i class="fas fa-question-circle"></i></a></label> <br>
+ <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">
+ <i class="fas fa-question-circle"></i></span></label> <br>
<div class="input_bg mb-2">
- <input class="form-control" type='text' id="username_field" name="username" tabindex="1" />
+ <input class="form-control" type='text' id="username_field" name="username"/>
</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') %]<a href="#" title="[% INCLUDE "opac/parts/login/password_hint.tt2" %]" data-html="true" data-toggle="tooltip">
+ <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>
- </a></label><br>
+ </span></label><br>
<div class="input_bg mb-2">
- <input class="form-control" id="password_field" name="password" type="password" tabindex="2" />
+ <input class="form-control" id="password_field" name="password" type="password"/>
</div>
[% IF reset_password == 'true' %]
<a href='[% mkurl(ctx.opac_root _ '/password_reset', {}, 1) %]'>[% l('Forgot Your Password?') %] </a>
IF carousels.size > 0;
%]
<script src="[% ctx.media_prefix %]/js/ui/default/common/build/js/glide/glide.min.js[% ctx.cache_key %]"></script>
-<style>
-.coverImage{position: relative;}
-.titleText{}
-</style>
+
<div class="carousels">
[% FOREACH carousel IN carousels;
IF carousel.bibs.size > 0;
%]
<div class="carousel">
-<div class="carousel-title">[% carousel.name %]</div>
+<h2 class="carousel-title">[% carousel.name %]</h2>
<div class="carousel-body glide" id="carousel-[% carousel.id %]">
<div class="glide__track" data-glide-el="track">
<ul class="glide__slides">
[% FOREACH bib IN carousel.bibs; %]
<li class="glide__slide">
<div class="carousel-entry">
- <div class="coverImage"><a href="[% mkurl(ctx.opac_root _ '/record/' _ bib.id) %]">
- <img alt="[% l('Book cover') %]" class="carousel-entry-image" src="[% ctx.media_prefix %]/opac/extras/ac/jacket/medium/r/[% bib.id | uri %]" />
- </a></div>
+ <div class="coverImage">
+ <a href="[% mkurl(ctx.opac_root _ '/record/' _ bib.id) %]">
+ <img alt="[% bib.title | html %] [% l('Book cover') %]" class="carousel-entry-image img-fluid" src="[% ctx.media_prefix %]/opac/extras/ac/jacket/medium/r/[% bib.id | uri %]" />
+ </a>
+ </div>
<div class="titleText">
- <span class="carousel-entry-title"><a href="[% mkurl(ctx.opac_root _ '/record/' _ bib.id) %]">[% bib.title | html %]</a></span></div>
+ <span class="carousel-entry-title">
+ <!-- <a href="[% mkurl(ctx.opac_root _ '/record/' _ bib.id) %]"> -->
+ [% bib.title | html %]
+ <!-- </a> -->
+
+ </span>
+ </div>
</div>
</li>
[% END; %]
</ul>
</div>
<div class="glide__arrows" data-glide-el="controls">
- <button class="glide__arrow glide__arrow--left btn btn-confirm" data-glide-dir="<">prev</button>
- <button class="glide__arrow glide__arrow--right btn btn-confirm" data-glide-dir=">">next</button>
+ <button class="glide__arrow glide__arrow--left btn" data-glide-dir="<"><i class="fas fa-arrow-left"></i> Prev</button>
+ <button class="glide__arrow glide__arrow--right btn" data-glide-dir=">">Next <i class="fas fa-arrow-right"></i></button>
</div>
</div>
</div>
[% 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'></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("Current Charges"), name => l("Current Charges")},
- {children => 0, parent => "charges",url => "main_payments", text => l("Payment History"), name => l("Payment History")},
+ {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 => 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'></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("Current Items Checked Out"), name=> l("Circulations")},
- {children => 0, parent => "circs", url => "ebook_circs", text => l("E-Items Currently Checked Out"), name => l("E-Items Currently Checked Out")},
- {children => 0, parent => "circs", url => "circ_history", text => l("Check Out History"), name => l("Check Out History")},
+ {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 => 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("Items on Hold"), name => l("Holds")},
- {children => 0, parent => "holds", url => "ebook_holds", text => l("E-Items on Hold"), name => l("E-Items on Hold")},
- {children => 0, parent => "holds", url => "ebook_holds_ready", text => l("E-Items Ready for Checkout"), name => l("E-Items Ready for Checkout")},
- {children => 0, parent => "holds", url => "hold_history", text => l("Holds History"), name => l("Holds 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 => "prefs", text => l("<i class='fas fa-cog'></i> Preferences"),name => l("Preferences")},
- {children => 0, parent => "prefs", url => "prefs", text => l("Personal Information"), name => l("Preferences")},
- {children => 0, parent => "prefs", url => "prefs_notify", text => l("Notifications"), name => l("Notifications")},
- {children => 0, parent => "prefs", url => "prefs_settings", text => l("Search & History"), name => l("Search & History")},
- {children => 0, parent => "prefs", url => "prefs_my_lists", text => l("Lists"), name => l("Lists")},
+ {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 => 0, parent => "parent", url => "lists", text => l("<i class='fas fa-list'></i> My Lists"), name => l("My Lists")}
];
IF (ctx.show_reservations_tab == 'true');
- myopac_pages.push({children => 0, parent => "parent", url => "reservations", text => l("Reservations"), name => l("Reservations")});
+ myopac_pages.push({children => 0, parent => "parent", url => "reservations", text => l("<i class='fas fa-splotch'></i> Reservations"), name => l("Reservations")});
END;
skin_root = "../"
%]
-<style>
-/* Optional For caret */
-.dropdown-toggle:after {
- margin: 10px 0px 10px 5px;
- float:right;
-} .my_nav .active{background-color:#afffbf;}.my_nav a{text-align:left !important; min-width:17em;border-radius: 0px;}.sumNum{
- font-weight:700;
-}</style>
<h2 class="sr-only">[% l('My Account') %]</h2>
[% INCLUDE "opac/parts/topnav.tt2" %]
<div>
- [% INCLUDE "opac/parts/searchbar.tt2" %]
+ [% INCLUDE "opac/parts/searchbar.tt2" %]
</div>
<div class="mx-5">
- <div class="row">
- <hr class="w-100">
- <div class="my_nav col-xl-3 col-lg-3 col-12 mx-auto text-center my-3">
- <div class="btn-group-vertical">
+ <div class="row top-divide">
+ <div class="my_nav col-xl-3 col-lg-3 col-12 mx-auto text-center my-3">
+ <div class="btn-group-vertical dropright">
[%- FOREACH page IN myopac_pages;
IF page.url == myopac_page || page.url == parent;
END -%]
[% IF page.parent == "parent" && page.children > 0; %]
- <div class="dropdown w-100">
- <a class="btn btn-action dropdown-toggle [% active %]" href="[% mkurl(ctx.opac_root _ '/myopac/' _ page.url, {}, ['bbid', 'offset', 'limit','sort','sort_type', 'hid']) %]" role="button" id="dropdownMenuLink-[% page.url %]" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ <div class="dropdown dropright w-100">
+ <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; %]
- </a>
+ </button>
- <div class="dropdown-menu" aria-labelledby="dropdownMenuLink-[% page.url %]">
+ <div class="dropdown-menu" aria-labelledby="dropdownMenuLink-[% page.url %]">
[%- FOREACH child IN myopac_pages; -%]
[% IF child.parent == page.url;
IF myopac_page == child.url;
[%- IF (ebook_api.enabled == 'true' && child.url.search('ebook')) || !child.url.search('ebook') %]
<a role="button" href="[% mkurl(ctx.opac_root _ '/myopac/' _ child.url, {}, ['bbid', 'offset', 'limit','sort','sort_type', 'hid']) %]"
- class="dropdown-item btn btn-action [% cactive %]">[% child.text; %]</a>
+ class="dropdown-item [% cactive %]">[% child.text; %]</a>
[% END %]
[% END %]
[% END %]
-</div></div>
+ </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']) %]">
[% content %]
</div>
- </div></div>
+ </div>
</div> <!-- content-wrapper -->
- <!--Table functions ~ Controlling TH checkbox dynamically and allowing for row clicks to select items -->
- <script>
- jQuery('td input:checkbox').change(function(){
- jQuery('th input:checkbox').prop('checked',jQuery('td input:checkbox:checked').length == jQuery('td input:checkbox').length);
-});
-
-jQuery( document ).ready(function( $ ) {
- $('tr').click(function(event) {
- if (event.target.type !== 'checkbox') {
- $(':checkbox', this).trigger('click');
- }
- });
-});
-</script>
+
[% END %]
END;
END %]
<div class="py-3">
- <button id="place_hold_submit" type="submit" name="submit" class="btn btn-confirm" /><i class="fas fa-check"></i> [% l('Submit') %]</button>
+ <button id="place_hold_submit" type="submit" name="submit" class="btn btn-confirm" ><i class="fas fa-check"></i> [% l('Submit') %]</button>
[% END # some_holds_allowed %]
<button type="reset" name="cancel" onclick="window.location='[% redirect | html %]'" id="holds_cancel" class="btn btn-deny"><i class="fas fa-ban"></i> [% l('Cancel') %]</button>
</div>
[% IF hdata.hold_success %]
- <h5>[% l("Hold was successfully placed for: "); %]</h5>
+ <h5 class="success"><i class="fas fa-check-circle"></i> [% l("Hold was successfully placed for: "); %]</h5>
[%
title = attrs.title_extended;
IF hdata.selected_part AND hdata.parts AND hdata.parts.size > 0;
[% ELSIF hdata.hold_failed; any_failures = 1 %]
- <div><big><strong>[% l("Hold was not successfully placed"); %]</strong></big></div>
+ <div><big><strong class="danger"><i class="fas fa-times-circle"></i> [% l("Hold was not successfully placed"); %]</strong></big></div>
[% IF hdata.hold_local_block %]
<div>[% l("There is already a copy available at your local library.") %]</div>
[% ELSIF hdata.hold_failed_event || hdata.hold_local_alert %]
END;
-%]
-<select class="form-control w-100" name="[% name || 'qtype' %]"[% IF id; ' id="'; id ; '"' ; END -%]
- title="[% l('Select query type:') %]">
+<select aria-label="[% l('Select query type:') %]" class="form-control w-100" name="[% name || 'qtype' %]"[% IF id; ' id="'; id ; '"' ; END -%]>
[% query_type = query_type || CGI.param('qtype') || search.default_qtypes.0;
FOR qt IN query_types;
NEXT IF browse_only AND NOT qt.browse -%]
[% l("You are now browsing [_1]", ctx.browsing_ou.name) | html %]
</p>
<br>
- <table class='data_grid bookshelf'>
+ <table class="w-100">
<tr>
- <td>
- <a class='np_nav_link classic_link btn btn-outline-primary'
+ <td class="text-left">
+ <a class='btn btn-action'
href="[% mkurl('', {cnoffset => cnoffset - 1}) %]#cnbrowse">[% l("<< Previous Page") %]</a>
</td>
- <td colspan='1' class="h3">[% l("Shelf Browser") %]</td>
- <td>
- <a class='np_nav_link classic_link btn btn-outline-primary'
+ <td colspan='1' class="h3 text-center">[% l("Shelf Browser") %]</td>
+ <td class="text-right">
+ <a class='btn btn-action'
href="[% mkurl('', {cnoffset => cnoffset + 1}) %]#cnbrowse">[% l("Next Page >>") %]</a>
</td>
</tr>
- <tr class='browse_border'>
- <td colspan='3'> </td>
- </tr>
<tbody>
[%- tr_open = 0;
PROCESS get_library;
END;
%]
<a id='[% name %]' href='[% href %]' class="text-white" rel="nofollow" vocab="" style="text-decoration:none;">
- <div class="card-header bg-success">
+ <div class="card-header extra_header">
<span>[% arrow %] [% extra.label | html %]</span>
</div>
END;
ctx.prev_rec_url = mkurl(ctx.prev_search_record, prev_args, stop_parms);
%]
- <a class='np_nav_link classic_link btn btn-outline-primary' title='[% l("Previous Record") %]'
+ <a class='np_nav_link classic_link btn btn-action' title='[% l("Previous Record") %]'
href='[% ctx.prev_rec_url %]'><span class="nav_arrow_fix">◄</span> <span class="d-none d-md-inline-block">[% l('Previous') %]</span></a>
[% END %]
</div>
END;
ctx.next_rec_url = mkurl(ctx.next_search_record, next_args, stop_parms);
%]
- <a class='np_nav_link classic_link btn btn-outline-primary' title='[% l("Next Record") %]'
+ <a class='np_nav_link classic_link btn btn-action' title='[% l("Next Record") %]'
href='[% ctx.next_rec_url %]'><span class="d-none d-md-inline-block">[% l('Next') %]</span> <span class="nav_arrow_fix">►</span></a>
[% END %]
</div>
END;
%]
<a href='http://obalkyknih.cz/view?isbn=[% isbnissn %]'>
- <img alt="[% l('Image of item') %]" class='img-thumbnail w-auto'
+ <img alt="[% attrs.title _ ' Cover Image' %]" class='img-thumbnail w-auto'
src='[% ctx.media_prefix %]/opac/extras/ac/jacket/[% record.summary.jacket_size %]/r/[% ctx.bre_id | uri %]' />
</a>
[% ELSE %]
<a href='[% ctx.media_prefix %]/opac/extras/ac/jacket/large/r/[% ctx.bre_id | uri %]'><img
- alt="[% l('Image of item') %]" class='img-thumbnail w-auto'
+ alt="[% attrs.title _ ' Cover Image' %]" class='img-thumbnail w-auto'
src='[% ctx.media_prefix %]/opac/extras/ac/jacket/[% record.summary.jacket_size %]/r/[% ctx.bre_id | uri %]' />
</a>
[%- END %]
[%- IF attrs.format_label %]
[% FOR format IN attrs.all_formats %]
<span style="font-size:14px;" class="mt-3 d-block">
- <img title="[% format.label | html %]" alt="[% format.label | html %]" src="[% format.icon %]" />
+ <img alt="[% format.label | html %]" src="[% format.icon %]" />
[% format.label | html %]
</span>
[% END %]
</div>
<!--rdetail_title_div-->
- <div class="col-lg-4 text-center">
+ <div class="col-lg-4 text-right">
<div class="mx-auto btn-group btn-group-vertical text-left dropright mt-3">
[%- search_ou = ctx.search_ou;
IF ctx.place_unfillable ||
-<div>
+
<div id="zero_search_hits">
<div class="facet_sidebar_hidden" id="facet_sidebar">
<h3 class="sr-only">[% l('Search Results filters') %]</h3>
</p>
[% INCLUDE "opac/parts/result/lowhits_purchase.tt2" %]
</div>
- </div>
-</div>
+ </div>
\ No newline at end of file
</div>
[% END %]
- <table id="result_table_table" title="[% l('Search Results') %]" class="table_no_border_space container-fluid">
- <thead class="sr-only">
- <tr>
- <th>[% l('Search result number') %]</th>
- <th>[% l('Book jacket cover art') %]</th>
- <th>[% l('Item details and Actions') %]</th>
- </tr>
- </thead>
-
- <tbody id="result_table">
+
[% FOR rec IN ctx.records;
attrs = {};
attrs.marc_xml = rec.marc_xml;
hold_type = 'T';
END; -%]
- <tr class="result_table_row">
- <td colspan="3">
- <div class="row">
+ <div class="row" style="border-top: 1px solid grey;">
+
<!--Count&Checkboxes-->
<div class="col-lg-1">
<div class="results_row_count"> [% IF !ctx.is_meta; %]
</div>
<!--Cover Image-->
<div class='my-auto col-lg-2 text-center' id="result[% rec.bre_id %]">
- <a href="[% record_url %]"><img alt="[% l('Book cover') %]"
+ <a href="[% mkurl(record_url_path, add_parms, del_parms); %]"><img alt="[% attrs.title | html;%]"
id='item_jacket[% rec.bre_id %]' class='my-2'
src='[% ctx.media_prefix %]/opac/extras/ac/jacket/large/r/[% rec.bre_id | uri %]' style="max-height:150px;" /></a><br />
</div>
<!--Info-->
<div class='result_table_title_cell col-lg-9'>
- <div class="row h-100">
+ <dRecord Holdings Summaryiv class="row h-100">
<div class="result_metadata col-md-8 col-12">
[% IF rec.mmr_id %]
<abbr class="unapi-id" title='tag:[% ctx.hostname %],[% date.format(date.now, '%Y') %]:metabib-metarecord/[% rec.mmr_id %]'></abbr>
<span class="mx-2">
[%- IF attrs.format_label; %]
[% FOR format IN attrs.all_formats %]
- <img title="[% format.label | html %]"
- alt="[% format.label | html %]"
+ <img alt="[% format.label | html %]"
src="[% format.icon %]" />
[% format.label | html %]
[% END %]
[%- END; END; -%]
<div>
+ [% IF attrs.author; %]
<a title="[% l("Perform an Author Search") %]"
class="record_author"
href="[%-
authorquery = attrs.author | replace('[#"^$\+\-,\.:;&|\[\]()]', ' ');
mkurl(ctx.opac_root _ '/results', {qtype => 'author', query => authorquery}, general_search_parms.merge(expert_search_parms, browse_search_parms, facet_search_parms))
-%]" rel="nofollow" vocab="">[% IF attrs.hl.author; attrs.hl.author; ELSE; attrs.author | html; END %]</a>
+ [% END; %]
+
+
[%-
FOR entry IN attrs.graphic_authors;
FOR alt IN entry.graphic;
[% END %]
[% IF attrs.phys_desc %]
<tr >
- <td nowrap="nowrap" valign="top"><strong>[% l('Phys. Desc.:') %]</strong></td>
+ <td valign="top"><strong>[% l('Phys. Desc.:') %]</strong></td>
<td>[% args.phys_desc | html %]</td>
</tr>
[% END %]
</div>
</div>
</div>
- </div>
- </div>
- </td>
- </tr>
+ </dRecord>
+ </div></div>
+
[%- IF ENV.OILS_CHILIFRESH_ACCOUNT %]
- <tr>
- <td/>
- <td align='center'> <!-- Chilifresh reviews link -->
+
<span class="chili_review" id="isbn_[% attrs.isbn_clean | html %]"> </span>
- </td>
- </tr>
- <tr>
- <td/>
- <td> <!-- Chilifresh reviews panel -->
+
<div id="chili_review_[% attrs.isbn_clean | html %]" style="display: none;" align="center"></div>
- </td>
- </tr>
+
[%- END %]
[% END %]
- </tbody>
- </table>
+
</div>
-</div>
[% IF ctx.saved_searches.size %]
<div id="accordion">
<div class="card">
- <div class="card-header" id="headingOne">
+ <div class="card-header" id="headRecent">
<h5 class="mb-0">
<button class="btn btn-link" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
[% l("Recent searches") %]
</h5>
</div>
- <div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#accordion">
+ <div id="collapseOne" class="collapse" aria-labelledby="headRecent" data-parent="#accordion">
<div class="card-body">
[% FOR s IN ctx.saved_searches %]
<ul>
<ul class="navbar-nav nav-fl px-3">
<!--Link 1-->
<li class="nav-item">
- <a class="nav-link" href="[% ctx.link_one %]">Link 1<span class="sr-only">(current)</span></a>
+ <a class="nav-link" href="[% ctx.link_one %]">Example Link 1<span class="sr-only">(current)</span></a>
</li>
<!--Link 2-->
<li class="nav-item">
- <a class="nav-link" href="[% ctx.link_two %]">Link 2</a>
+ <a class="nav-link" href="[% ctx.link_two %]">Example Link 2</a>
</li>
<!--Link 3-->
<li class="nav-item">
- <a class="nav-link" href="[% ctx.link_three %]">Link 3</a>
+ <a class="nav-link" href="[% ctx.link_three %]">Example Link 3</a>
</li>
<!--Link 4-->
<li class="nav-item">
- <a class="nav-link" href="[% ctx.link_four %]">Link 4</a>
+ <a class="nav-link" href="[% ctx.link_four %]">Example Link 4</a>
</li>
</ul>
<!--Right Links-->
</li>
<!--User is signed in-->
[% ELSE %]
- <div class="dropdown-divider"></div>
+ <li><div class="dropdown-divider"></div></li>
<!--User-->
<li class="nav-item">
<a class="nav-link disabled active mx-2" href="#">Hello, [% l('[_1] [_2]', ctx.user.first_given_name, ctx.user.family_name) | html %]</a>
</nav>
-<script>
-jQuery(document).ready(function(){
- var item = jQuery('#dashboard_e .dash-link');
- item.children('.count').each(function() {
- if(jQuery(this).text() == "0")
- jQuery(this).addClass("dash-unclear");
- else
- jQuery(this).addClass("dash-clear");
- });
-});
-</script>
\ No newline at end of file
{class => 'stgu', name = 'usrname', label => l('Requested Username')}
];
-# The dojo date widget in the patron edit UI only accepts default
-# values in ISO8601 format. It will not accept locale-shaped dates.
-IF !ctx.register.settings.stgu.dob.example;
- ctx.register.settings.stgu.dob.example = l('YYYY-MM-DD or YYYY/MM/DD');
-END;
+
%]
<div id="content-wrapper">
<div id="main-content-register" class="container">
<h1>[% l('Request a Library Card')%]</h1>
- <span style="color:red;">★ = Required Field</span>
+ <span class="validate">★ = Required Field</span>
<hr/>
[% IF ctx.register.success %]
) | html %]</h4>
[% END %]
- <form method='POST' class="needs-validation" onSubmit="return dobValidate(document.getElementById('stgu.dob'))" novalidate>
+ <form method='POST' class="needs-validation" novalidate>
<table class="w-100">
<tr>
<td width="30">
<label for='[% field_path %]'>[% field_def.label | html %]</label>
</td>
<td class="py-3">
+ [% IF fname == "dob"; %]
+ <div class="input-group date" data-provide="datepicker-inline">
+ <input type="text" class="form-control datepicker" id='[% field_path %]'
+ name='[% field_path %]' value='[% value || CGI.param(field_path) | html %]' [% IF require %]required[% END %] data-date-format="yyyy-mm-dd" />
+ <div class="input-group-addon">
+ <span class="glyphicon glyphicon-th"></span>
+ </div>
+ </div>
+ [% ELSE; %]
<input
class='form-control'
type='text'
id='[% field_path %]'
name='[% field_path %]'
value='[% value || CGI.param(field_path) | html %]' [% IF require %]required[% END %]/>
+ [% END; %]
<div class="invalid-feedback">
Please enter a [% field_def.label | html %]
</div>
</td>
<td>
[% IF require %]
- <span style="color:red;">★</span>
+ <span class="validate">★</span>
[% END %]
<!-- display errors and example text -->
});
}, false);
})();
+
+$(document).ready(function(){
+ $('.datepicker').datepicker({
+ weekStart: 1,
+ autoclose: true,
+ todayHighlight: true,
+ });
+ $('.datepicker').datepicker("setDate", new Date());
+});
</script>
\ No newline at end of file
PROCESS "opac/parts/misc_util.tt2";
PROCESS get_library;
--%]<div>
+-%]
<h2 class="sr-only">[% l('Search Results') %]</h2>
<form action="[% ctx.opac_root %]/results" method="get">
[% INCLUDE "opac/parts/searchbar.tt2" took_care_of_form=1 %]
<div class="mx-auto">
<!-- ===== Drop Down ===== -->
<div class="search-option my-2">
- <label for="opac.result.sort">[% l('') %]</label>
+ <label for="opac.result.sort">[% l('Sort Results') %]</label>
[% INCLUDE "opac/parts/filtersort.tt2" value=CGI.param('sort') submit_on_change=1 class="form-control" %]
</div>
[%- IF show_more_details.default != 'hide' -%]
var list = resp.content();
if (list && list.length) {
render_adv_copy_locations(list);
+ render_adv_copy_locations_new(list);
} else {
dojo.addClass('adv_chunk_copy_location', 'hidden');
}
}).send();
}
+function render_adv_copy_locations_new(locations) {
+ var sel = dojo.byId('adv_copy_location_selector_new');
+ if(sel)
+ {
+ var cgi = new openils.CGI();
+
+ // collect any location values from the URL to re-populate the list
+ var url_selected = cgi.param('fi:locations');
+ if (url_selected) {
+ if (!dojo.isArray(url_selected))
+ url_selected = [url_selected];
+ }
+
+ dojo.removeClass('adv_chunk_copy_location', 'hidden');
+
+ // sort by name
+ locations = locations.sort(
+ function(a, b) {return a.name < b.name ? -1 : 1}
+ );
+
+
+ var ulist = dojo.create('ul', {class: "adv_filters"});
+ // append the new list of locations
+ dojo.forEach(locations, function(loc) {
+ var attrs = {value : loc.id, name : "fi:locations", type: "checkbox", class: "form-check-input"};
+ if (url_selected && url_selected.indexOf(''+loc.id) > -1) {
+ attrs.selected = true;
+ }
+
+
+ ulist.appendChild(dojo.create('li')).appendChild(dojo.create('div', {class: "form-check"})).appendChild(dojo.create('label', {innerHTML : loc.name, class: "form-check-label"})).prepend(dojo.create('input', attrs));
+ });
+ sel.appendChild(dojo.create("div", {class: "card-body"})).appendChild(ulist);}
+}
+
+
+
function render_adv_copy_locations(locations) {
var sel = dojo.byId('adv_copy_location_selector');
+ if(sel){
+
+
var cgi = new openils.CGI();
// collect any location values from the URL to re-populate the list
sel.appendChild(dojo.create('option', attrs));
});
}
+}
// load the locations on page load
dojo.addOnLoad(function() {
/* Keep this dead simple. No dojo. */
-function $(s) { return document.getElementById(s); }
+
+function get(s) { return document.getElementById(s); }
function removeClass(node, cls) {
if (!node || !node.className) return;
node.className =
var _search_row_template, _expert_row_template;
function addSearchRow() {
if (!_search_row_template) {
- t = $("adv_global_row").cloneNode(true);
+ t = get("adv_global_row").cloneNode(true);
t.id = null;
_search_row_template = t;
}
- $("adv_global_tbody").insertBefore(
+ get("adv_global_tbody").insertBefore(
_search_row_template.cloneNode(true),
- $("adv_global_addrow")
+ get("adv_global_addrow")
);
- $("adv_global_input_table").rows[$("adv_global_input_table").rows.length - 2].getElementsByTagName("input")[0].value = "";
+ get("adv_global_input_table").rows[get("adv_global_input_table").rows.length - 2].getElementsByTagName("input")[0].value = "";
}
-(function($){
+(function(get){
var _search_row_template, _expert_row_template, t;
-var _el_adv_global_row = $("adv_global_row"), _el_adv_expert_row = $("adv_expert_row");
+var _el_adv_global_row = get("adv_global_row"), _el_adv_expert_row = get("adv_expert_row");
if (_el_adv_global_row) {
t = _el_adv_global_row.cloneNode(true);
t.id = null;
_expert_row_template = t;
}
function addExpertRow() {
- $("adv_expert_rows_here").appendChild(
+ get("adv_expert_rows_here").appendChild(
_expert_row_template.cloneNode(true)
);
}
window.addSearchRow = addSearchRow;
window.addExpertRow = addExpertRow;
-})($);
+})(get);
function killRowIfAtLeast(min, link) {
var row = link.parentNode.parentNode;
if (row.parentNode.getElementsByTagName("tr").length > min)
}
function print_node(node_id) {
var iframe = document.createElement("iframe");
- var source_node = $(node_id);
+ var source_node = get(node_id);
source_node.parentNode.appendChild(iframe);
var iwin = iframe.contentWindow;
function search_modifier_onchange(type, checkbox, submitOnChange) {
if (checkbox.form._adv && !checkbox.checked) {
- var search_box = $('search_box');
+ var search_box = get('search_box');
var reg = new RegExp('#' + type + ' ?', 'g');
search_box.value = search_box.value.replace(reg, "");
}
function exclude_onchange(checkbox) {
if (checkbox.form._adv && !checkbox.checked) {
- var search_box = $('search_box');
+ var search_box = get('search_box');
// Other functions' form submits may create duplicates of this, so /g
var reg = /-search_format\(electronic\)/g;
search_box.value = search_box.value.replace(reg, "");
return isValid;
}
}
-
alert("No option selected.");
return isValid;
}