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