table#acct_holds_main_header td:nth-of-type(9):before { content: "[% l('Status') %]"; }
table#acct_holds_main_header td.hold_notes:before { content: "[% l('Notes') %]"; }
}
+
<a href='[% mkurl('circ_history', {limit => limit, offset => (offset + limit)}) %]'
[% IF ctx.circs.size < limit %] class='invisible' [% END %] >[% l('Next') %]<span class="nav_arrow_fix">►</span></a>
</span>
- <span class="float-left">
+ <div class="float-left">
<form action="[% mkurl(ctx.opac_root _ '/myopac/circ_history/export') %]" method="post">
<div>
[%- INCLUDE "opac/parts/preserve_params.tt2" %]
[% END %]
</div>
</form>
- </span>
+ </div>
</div>
<div class="clear-both"></div>
[% ELSE %]
<div id='checked_main'>
- <table id="acct_checked_main_header">
+ <table id="acct_checked_main_header"
+ title="[% l('History of Items Checked Out') %]">
<thead>
<tr>
<th>[% l('Title / Author') %]</th>
<tr>
<td>
<a href="[% mkurl(ctx.opac_root _ '/record/' _ circ.circ.target_copy.call_number.record.id) %]"
- name="[% l('Catalog record') %]">[% attrs.title | html %]</a>
+ [% html_text_attr('title', l('Catalog record [_1]', attrs.title)) %]>
+ [% attrs.title | html %]
+ </a>
[% IF attrs.author %] /
<a href="[% mkurl(ctx.opac_root _ '/results',
{qtype => 'author', query => attrs.author.replace('[,\.:;]', '')}
<div id='checked_main'>
<form method="post" id="circ-form"
onsubmit="return confirm('[% l("Are you sure you wish to renew the selected item(s)?") %]');">
- <table class="table_no_border_space table_no_cell_pad item_list_padding">
- <tr>
- <td>
- <select name="action">
- <option value="renew">[% l('Renew Selected Titles') %]</option>
- </select>
- </td>
- <td style="padding-left:9px;">
- <input type="submit"
- value="[% l('Go') %]"
- alt="[% l('Go') %]" title="[% l('Go') %]"
- class="opac-button" />
- </td>
- <td style="padding-left:5px;">
- <a href="#"><img alt="[% l('Renewing Help') %]"
- src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
- </td>
- </tr>
- </table>
- <table id="acct_checked_main_header" cellpadding='0' cellspacing='0' border='0'>
+ <div>
+ <span>
+ <select name="action" title="[% l('Select Action') %]">
+ <option value="renew">[% l('Renew Selected Titles') %]</option>
+ </select>
+ </span>
+ <span style="padding-left:9px;">
+ <input type="submit"
+ value="[% l('Go') %]"
+ title="[% l('Go') %]"
+ class="opac-button" />
+ </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" /></a>
+ </span>
+ </div>
+
+ <table id="acct_checked_main_header"
+ title="[% l('Items Checked Out') %]"
+ class="table_no_border_space table_no_cell_pad item_list_padding">
<thead>
<tr>
<th class="checkbox_column">
<input type="checkbox" id="check_all_checked"
- onclick="var inputs=document.getElementsByTagName('input'); for (i = 0; i < inputs.length; i++) { if (inputs[i].name == 'circ' && !inputs[i].disabled) inputs[i].checked = this.checked;}"
+ title="[% l('Select All Items') %]"
+ onclick="var inputs=document.getElementsByTagName('input'); for (i = 0; i < inputs.length; i++) { if (inputs[i].name == 'circ' && !inputs[i].disabled) inputs[i].checked = this.checked;}"
/>
</th>
<th>[% l('Title / Author') %]</th>
<th>[% l('Call number') %]</th>
</tr>
</thead>
- <tbody>
+ <tbody>
[% FOR circ IN ctx.circs;
attrs = {marc_xml => circ.marc_xml};
PROCESS get_marc_attrs args=attrs; %]
<tr>
<td class="checkbox_column" valign="top">
<input type="checkbox" name="circ"
+ title="[% l('Item Selected') %]"
[% IF circ.circ.renewal_remaining < 1 %] disabled="disabled" [% END %]
value="[% circ.circ.id %]" />
</td>
</tr>
[% END;
END %]
- </table>
- </div>
- </div>
+ </tbody>
+ </table>
</form>
</div>
[% END %]
<big><strong>[% l('No holds found.') %]</strong></big>
</div>
[% ELSE %]
- <table style='border-collapse:collapse; width: 100%;'>
+ <table style='border-collapse:collapse; width: 100%;'
+ title="[% l('History of items on hold') %]">
<thead id='acct_holds_main_header'>
<tr>
- <td width="138"><span>[% l('Title') %]</span></td>
- <td width="123"><span>[% l('Author') %]</span></td>
- <td width="64"> <span>[% l('Format') %]</span></td>
- <td width="136"><span>[% l('Pickup Location') %]</span> </td>
- <td width="104">[% l('Active On') %]</td>
- <td width="95">[% l('Active') %]</td>
- <td width="106">[% l('Date Fulfilled') %]</td>
- <td width="172"><span>[% l('Status') %]</span></td>
+ <td><span>[% l('Title') %]</span></td>
+ <td><span>[% l('Author') %]</span></td>
+ <td> <span>[% l('Format') %]</span></td>
+ <td><span>[% l('Pickup Location') %]</span> </td>
+ <td>[% l('Active On') %]</td>
+ <td>[% l('Active') %]</td>
+ <td>[% l('Date Fulfilled') %]</td>
+ <td><span>[% l('Status') %]</span></td>
</tr>
</thead>
<tbody>
PROCESS get_marc_attrs args=attrs;
ahr = hold.hold.hold %]
- <tr id="acct_holds_temp" name="acct_holds_temp" class="acct_holds_temp">
+ <tr name="acct_holds_temp" class="acct_holds_temp">
- <td width="138">
+ <td>
<div style="margin-top:10px;margin-bottom:10px;">
<a href="[% mkurl(ctx.opac_root _ '/record/' _ hold.hold.bre_id) %]">[% attrs.title | html %]</a>
</div>
</td>
- <td width="123">
+ <td>
<div style="margin-top:10px;margin-bottom:10px;">
<a href="[% mkurl(ctx.opac_root _ '/results',
{qtype => author, query => attrs.author.replace('[,\.:;]', '')}
) %]">[% attrs.author | html %]</a>
</div>
</td>
- <td width="64">
+ <td>
<div style="width:26px;height:23px;margin-top:6px;margin-bottom:6px;">
[% IF attrs.format_icon %]
<img title="[% attrs.format_label | html %]" alt="[% attrs.format_label | html %]" src="[% attrs.format_icon %]" />
[% END %]
</div>
</td>
- <td width="136">
+ <td>
[% ctx.get_aou(ahr.pickup_lib).name | html %]
</td>
- <td width="104">
+ <td>
[% IF ahr.frozen == 't' AND ahr.thaw_date;
date.format(ctx.parse_datetime(ahr.thaw_date), DATE_FORMAT);
END %]
</td>
- <td width="95">
+ <td>
[% l(ahr.frozen == 'f' ? 'Active' : 'Suspended') %]
</td>
- <td width="106">
+ <td>
[% IF ahr.fulfillment_time;
date.format(ctx.parse_datetime(ahr.fulfillment_time), DATE_FORMAT);
END %]
</td>
- <td width="110">
+ <td>
<div name="acct_holds_status"
style="margin-top:10px;margin-bottom:10px;">
[% PROCESS get_hold_status hold=hold; %]
<div class="clear-both"></div>
<div id='holds_main'>
<form method="post">
- <table class="table_no_border_space table_no_cell_pad" class="opac-auto-097">
+ <table class="table_no_border_space table_no_cell_pad opac-auto-097"
+ title="[% l('Actions for Items on Hold') %]">
<tr>
- <td width="1">
- <select name="action" id="acct_holds_actions" aria-label="[%
- l('Select your action for the selected holds')
- %]">
+ <td>
+ <select name="action" id="acct_holds_actions"
+ aria-label="[% l('Select your action for the selected holds') %]"
+ title="[% l('Select your action for the selected holds') %]">
<option id='myopac_holds_actions_none' value=''>
-- [% l("Actions for selected holds") %] --
</option>
<option value='cancel'>[% l("Cancel") %]</option>
</select>
</td>
- <td width="1" style="padding-left:9px;">
+ <td style="padding-left:9px;">
<input type="submit" value="[% l('Go') %]"
- alt="[% l('Go') %]" title="[% l('Go') %]"
- class="opac-button" />
+ title="[% l('Go') %]" class="opac-button" />
</td>
- <td width="1" style="padding-left:5px;">
+ <td style="padding-left:5px;">
<a href="#"><img
alt="[% l('Holds Help') %]"
+ title="[% l('Actions for selected holds') %]"
src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
</td>
<td style="padding-left:5px;" class='error'>
<strong>[% l("Show all holds") %]</strong> |
<a href="[% mkurl('holds',{available => 1},['limit','offset']) %]">[% l("Show only available holds") %]</a>
[% END -%]
- <select class="hide_me" id="holds_sort">
- <option value="">[% l('-- Sort By --') %]</option>
- <option value="title">[% l('Title') %]</option>
- <option value="pickup">[% l('Pickup Location') %]</option>
- <option value="status">[% l('Status') %]</option>
- </select>
</td>
</tr>
</table>
[% IF ctx.holds.size < 1 %]
<div class="warning_box">[% l('No holds found.') %]</div>
[% ELSE %]
- <div class="hide_me">
- <select id="hold_pickup_lib_temp" name="hold_pickup_lib_sel" class="hide_me"></select>
- </div>
- <table id="acct_holds_main_header" class="table_no_border_space table_no_cell_pad">
+ <table id="acct_holds_main_header" title="[% l('Items on Hold') %]"
+ class="table_no_border_space table_no_cell_pad">
<thead>
<tr>
<th align="center">
- <input type="checkbox" onclick="var inputs=document.getElementsByTagName('input'); for (i = 0; i < inputs.length; i++) { if (inputs[i].name == 'hold_id' && !inputs[i].disabled) inputs[i].checked = this.checked;}"/>
+ <input type="checkbox" title="[% l('Select All Holds') %]"
+ onclick="var inputs=document.getElementsByTagName('input'); for (i = 0; i < inputs.length; i++) { if (inputs[i].name == 'hold_id' && !inputs[i].disabled) inputs[i].checked = this.checked;}"/>
</th>
<th>[% l('Title') %]</th>
<th>[% l('Author') %]</th>
attrs = {marc_xml => hold.marc_xml};
PROCESS get_marc_attrs args=attrs;
ahr = hold.hold.hold %]
- <tr id="acct_holds_temp" name="acct_holds_temp"
+ <tr name="acct_holds_temp"
class="acct_holds_temp[% ahr.frozen == 't' ? ' inactive-hold' : '' %]">
<td align="center" style="text-align:center;">
- <input type="checkbox" name="hold_id" value="[% ahr.id %]" />
+ <input type="checkbox" name="hold_id" value="[% ahr.id %]"
+ [% html_text_attr('title', l('Select hold [_1]', attrs.title)) %]/>
</td>
<td>
<div>
[%- END; END; %]
</td>
<td class="opac-auto-161">
- <a href="[% mkurl(ctx.opac_root _ '/myopac/holds/edit', {id => ahr.id}) %]">Edit</a>
+ <a href="[% mkurl(ctx.opac_root _ '/myopac/holds/edit', {id => ahr.id}) %]"
+ [% html_text_attr('title', l('Edit hold for item [_1]', attrs.title)) %]>
+ [% l('Edit') %]
+ ]</a>
</td>
</tr>
[% END %]
limit = ctx.bookbags_limit;
offset = ctx.bookbags_offset;
item_page = ctx.bookbags_item_page;
+ bb_publish_text = l(
+"Sharing a Bookbag means that the contents " _
+"of the Bookbag will be visible to others. " _
+"To see the public view of a shared Bookbag, " _
+"click on the Bookbag\\'s name in the Bookbag list.");
%]
<div id='myopac_bookbag_div' style="padding:5px;">
<option value="0">[% l('No') %]
<option value="1">[% l('Yes') %]
</select>
- <a href="javascript:void(0);" onclick="alert(document.getElementById('bb_publish_text').innerHTML);"><img alt="[% l('Sharing Help') %]"
- src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
+ <a href="javascript:void(0);"
+ onclick="alert('[% bb_publish_text %]')">
+ <img alt="[% l('Sharing Help') %]"
+ [% html_text_attr('title', bb_publish_text) %]
+ src="[% ctx.media_prefix %]/images/question-mark.png" />
+ </a>
</td>
<td class="list-create-table-buttons">
<input type="submit"
<thead id="acct_list_header">
<tr>
<td class="list_checkbox">
- <input type="checkbox" onclick="
- var inputs=document.getElementsByTagName('input');
+ <input type="checkbox"
+ onclick="var inputs=document.getElementsByTagName('input');
for (i = 0; i < inputs.length; i++) {
- if (inputs[i].name == 'selected_item' && !inputs[i].disabled && inputs[i].getAttribute('bbag') == [% bbag.id %])
+ if (inputs[i].name == 'selected_item' && !inputs[i].disabled && inputs[i].getAttribute('bbag') == [% bbag.id %])
inputs[i].checked = this.checked;}"/>
</td>
[% END %]
</div>
[% END %]
-
- <span id='bb_publish_text' class='hide_me'>
-[% l("Sharing a Bookbag means that the contents " _
-"of the Bookbag will be visible to others. " _
-"To see the public view of a shared Bookbag, " _
-"click on the Bookbag's name in the Bookbag list.") %]
- </span>
</div>
[% END %]
myopac_cc_allowed = 1;
END
%]
+[% IF myopac_cc_allowed;
+ # http://www.w3.org/TR/WCAG20-TECHS/H32.html
+ # avoid forms w/ no submit action %]
<form action="[% ctx.opac_root %]/myopac/main_payment_form" method="get">
+[% END %]
+
[% IF ctx.fines.circulation.size > 0 %]
<div id='myopac_circ_trans_div'>
- <table width='100%' class='data_grid'>
+ <table width='100%' class='data_grid' title="[% l('Items Checked Out') %]">
<thead>
<tr>
<td colspan='10' style='padding: 6px'>
<hr class='opac-auto-013' color="#dcdbdb" />
<br/>
<table width='100%' class='data_grid data_grid_center'
- id='myopac_trans_table'>
+ id='myopac_trans_table' title="[% l('Other Fines and Fees') %]">
<thead>
<tr>
<td colspan='8' style='padding: 6px'>
- <b>[% l("Other Fees") %]</b>
+ <span class="bold">[% l("Other Fees") %]</span>
</td>
</tr>
<tr>
<div class="text-right pad-top-ten">
<input type="submit"
value="[% l('Pay selected fines') %]"
- alt="[% l('Pay selected fines') %]"
title="[% l('Pay selected fines') %]"
class="opac-button" />
</div>
[% END %]
+[% IF myopac_cc_allowed %]
</form>
[% END %]
+
+[% END %]
<input type="hidden" name="xact_misc" value="[% xact | html %]" />
[% END %]
- <table>
+ <table title="[% l('Billing Information') %]">
<tbody>
<tr>
<td colspan='2'><strong>[% l('Billing Information') %]</strong></td>
<td rowspan='13' valign='top'>
<p>[% l('Selected fines you are paying for:') %]</p>
- <table class="table_no_border_space table_no_cell_pad" class="myopac_payments_table">
+ <table title="[% l('List of Transactions') %]"
+ class="table_no_border_space table_no_cell_pad myopac_payments_table">
<thead>
<tr>
<th>[% l('Name') %]</th>
</td>
</tr>
<tr>
- <td>[% l('First Name') %]</td>
- <td><input type="text" name="billing_first" value="[% ctx.user.first_given_name | html %]" /></td>
+ <td><label for="payment-first-name">[% l('First Name') %]</label></td>
+ <td><input type="text" name="billing_first" id="payment-first-name"
+ value="[% ctx.user.first_given_name | html %]" /></td>
</tr>
<tr>
- <td>[% l('Last Name') %]</td>
- <td><input type="text" name="billing_last" value="[% ctx.user.family_name | html %]" /></td>
+ <td><label for="payment-last-name">[% l('Last Name') %]</label></td>
+ <td><input type="text" name="billing_last" id="payment-last-name"
+ value="[% ctx.user.family_name | html %]" /></td>
</tr>
<tr>
- <td>[% l('Email Address') %]</td>
+ <td><label for="payment-email-addr">[% l('Email Address') %]</label></td>
<td>
- <input type="text" disabled="disabled" readonly="readonly" value="[% ctx.user.email | html %]" />
- <a href="[% ctx.opac_root %]/myopac/update_email?return_to_referer=1">[% l("Update") %]</a>
+ <input id="payment-email-addr" type="text" disabled="disabled"
+ readonly="readonly" value="[% ctx.user.email | html %]" />
+ <a title="[% l('Update Email Address') %]"
+ href="[% ctx.opac_root %]/myopac/update_email?return_to_referer=1">[% l("Update") %]</a>
</td>
</tr>
<tr>
- <td>[% l('Street Address') %]</td>
- <td><input type="text" name="billing_address" value="[% ctx.user.billing_address.street1 _ ctx.user.billing_address.street2 | html %]" /></td>
+ <td><label for="payment-billing-address">[% l('Street Address') %]</label></td>
+ <td><input type="text" name="billing_address" id="payment-billing-address"
+ value="[% ctx.user.billing_address.street1 _ ctx.user.billing_address.street2 | html %]" /></td>
</tr>
<tr>
- <td>[% l('City' )%]</td>
- <td><input type="text" name="billing_city" value="[% ctx.user.billing_address.city | html %]" /></td>
+ <td><label for="payment-billing-city">[% l('City' )%]</label></td>
+ <td><input type="text" name="billing_city" id="payment-billing-city"
+ value="[% ctx.user.billing_address.city | html %]" /></td>
</tr>
<tr>
- <td>[% l('State or Province') %]</td>
- <td><input type="text" name="billing_state" value="[% ctx.user.billing_address.state | html %]" /></td>
+ <td><label for="payment-billing-state">[% l('State or Province') %]</label></td>
+ <td><input type="text" name="billing_state" id="payment-billing-state"
+ value="[% ctx.user.billing_address.state | html %]" /></td>
</tr>
<tr>
- <td>[% l('ZIP or Postal Code') %]</td>
- <td><input type="text" name="billing_zip" value="[% ctx.user.billing_address.post_code | html %]" /></td>
+ <td><label for="paymenet-billing-zip">[% l('ZIP or Postal Code') %]</label></td>
+ <td><input type="text" name="billing_zip" id="paymenet-billing-zip"
+ value="[% ctx.user.billing_address.post_code | html %]" /></td>
</tr>
<tr>
<td colspan='2'><strong>[% l('Credit Card Information') %]</strong></td>
</tr>
-->
<tr>
- <td>[% l('Credit Card #') %]</td>
- <td><input type="text" name="number" maxlength="16" /></td>
+ <td><label for="payment-credit-card">[% l('Credit Card #') %]</label></td>
+ <td><input type="text" name="number"
+ id="payment-credit-card" maxlength="16" /></td>
</tr>
<tr>
- <td>[% l('Security Code') %]</td>
+ <td><label for="payment-security-code">[% l('Security Code') %]</label></td>
<td>
- <input type="text" size="4" maxlength="5" name="cvv2" />
+ <input type="text" size="4" maxlength="5"
+ name="cvv2" id="payment-security-code"/>
</td>
</tr>
<tr>
- <td>[% l('Expiration Month') %]</td>
+ <td><label for="payment-expire-month">[% l('Expiration Month') %]</label></td>
<td>
- <select name="expire_month">
+ <select name="expire_month" id="payment-expire-month">
<option value="01">[% l("January") %]</option>
<option value="02">[% l("February") %]</option>
<option value="03">[% l("March") %]</option>
</td>
</tr>
<tr>
- <td>[% l('Expiration Year') %]</td>
+ <td><label for="payment-expire-year">[% l('Expiration Year') %]</label></td>
<td>
- <select name="expire_year">
+ <select name="expire_year" id="payment-expire-year">
[% year = date.format(date.now, '%Y');
y = year;
WHILE y < year + 10; # show ten years starting now %]
<div class="clear-both"></div>
[% IF ctx.payments.size %]
- <table class='myopac_payments_table data_grid' width='100%'>
+ <table title="[% l('Payments') %]"
+ class='myopac_payments_table data_grid' width='100%'>
<thead><tr>
<th>[% l('Payment Date') %]</th>
<th>[% l('Payment For') %]</th>
prefs_page = 'prefs' %]
<div id="acct_info_main">
- <div id='myopac.expired.alert'
- class='hide_me'
- style='margin-bottom: 20px;'>
- <table class='data_grid'
- width='100%'>
- <tbody>
- <tr>
- <td width='100%' class='alert'>
- [% l("Your account expired on") %]
- <span id='myopac.expired.date'></span>!
- [% l("Please see a librarian to renew your account.") %]</td>
- </tr>
- </tbody>
- </table>
- </div>
- <div id='myopac.notes.div'
- class='hide_me'>
- <table class='data_grid'
- width='100%'>
- <thead>
- <tr>
- <td colspan='2'>
- <b>[% l("* Staff Notes *") %]</b></td>
- </tr>
- </thead>
-
- <tbody id='myopac.notes.tbody'>
- <tr id='myopac.notes.tr'>
- <td><b name='title'></b> : <span name=
- 'value'></span></td>
- </tr>
- </tbody>
- </table><br />
- </div>
-
- <table width='70%'
- class='light_border data_grid'>
+ <table width='70%' title="[% l('Account preference') %]"
+ class='light_border data_grid'>
<tbody id='myopac_summary_tbody'>
<tr>
<td width='30%'
<tr>
<td class='color_4 light_border'>
<div style="position:absolute">
- <div class="hide_me" style="position:relative;left:70px;top:-3px;">
- <a href="#"><img alt="[% l('Username Help') %]" src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
- </div>
- </div>[% l("Username") %]
+ </div>[% l("Username") %]
</td>
<td class='light_border'>[% ctx.user.usrname | html %]</td>
[%- IF ctx.username_change_disallowed %]
<td></td>
[%- ELSE %]
- <td class='light_border'><a href='update_username'>[% l("Change") %]</a></td>
+ <td class='light_border'><a href='update_username'
+ title="[% l('Change Username') %]">[% l("Change") %]</a></td>
[%- END %]
</tr>
<tr>
[%- IF disable_password_change == 'true' %]
<td></td>
[%- ELSE %]
- <td class='light_border'><a href='update_password'>[% l("Change") %]</a></td>
+ <td class='light_border'><a href='update_password'
+ title="[% l('Change Password') %]">[% l("Change") %]</a></td>
[%- END %]
</tr>
<tr>
[%- IF disable_email_change == 'true' %]
<td></td>
[%- ELSE %]
- <td class='light_border'><a href='update_email'>[% l('Change') %]</a></td>
+ <td class='light_border'><a href='update_email'
+ title="[% l('Update Email Address') %]">[% l('Change') %]</a></td>
[%- END %]
</tr>
<hr class='opac-auto-013' color="#DCDBDB" />
<br />
- <table width='100%' class='light_border data_grid'>
+ <table width='100%' class='light_border data_grid' title="[% l('Addresses') %]">
<thead>
<tr>
<td><strong>[% l("Addresses") %]</strong></td>
<tr>
<td>
<!-- read-only address display -->
- <table class='light_border'>
+ <table class='light_border' title="[% l('Active Addresses') %]">
<tr><td>[% l("Address Type") %]</td><td>[% addr.address_type | html %]</td></tr>
<tr><td>[% l("Street") %]</td><td>[% addr.street1 | html %]</td></tr>
<tr><td>[% l("Street") %]</td><td>[% addr.street2 | html %]</td></tr>
[% ELSE %]
<input type='hidden' name='replace_addr' value='[% edit_addr_id | html %]'/>
[% END %]
- <table class='pending-addr'>
- <tr>
- <td>[% l("Address Type") %]</td>
- <td><input name='address_type' value='[% update_addr.address_type | html %]'/></td>
- </tr>
- <tr>
- <td>[% l("Street") %]</td>
- <td><input name='street1' value='[% update_addr.street1 | html %]'/></td>
- </tr>
- <tr>
- <td>[% l("Street") %]</td>
- <td><input name='street2' value='[% update_addr.street2 | html %]'/></td>
- </tr>
- <tr>
- <td>[% l("City") %]</td>
- <td><input name='city' value='[% update_addr.city | html %]'/></td>
- </tr>
+ <table class='pending-addr' title="[% l('Pending Addresses') %]">
+ [% addr_fields = [
+ {label => l("Address Type"), name => 'address_type', value => update_addr.address_type},
+ {label => l("Street"), name => 'street1', value => update_addr.street1},
+ {label => l("Street"), name => 'street2', value => update_addr.street2},
+ {label => l("City"), name => 'city', value => update_addr.city},
+ {label => l("County"), name => 'county', value => update_addr.county},
+ {label => l("State"), name => 'state', value => update_addr.state},
+ {label => l("Country"), name => 'country', value => update_addr.country},
+ {label => l("ZIP"), name => 'post_code', value => update_addr.post_code},
+ ];
+ FOR field IN addr_fields %]
<tr>
- <td>[% l("County") %]</td>
- <td><input name='county' value='[% update_addr.county| html %]'/></td>
- </tr>
- <tr>
- <td>[% l("State") %]</td>
- <td><input name='state' value='[% update_addr.state | html %]'</td>
- </tr>
- <tr>
- <td>[% l("Country") %]</td>
- <td><input name='country' value='[% update_addr.country | html %]'/></td>
- </tr>
-
- <tr>
- <td>[% l("Zip") %]</td>
- <td><input name='post_code' value='[% update_addr.post_code | html %]'/></td>
+ <td><label for="addr-form-[% field.name %]">[% field.label %]</label></td>
+ <td><input name="[% field.name %]"
+ id="addr-form-[% field.name %]"
+ value="[% field.value | html %]">
+ </td>
</tr>
+ [% END %]
<tr>
<td><input type='submit' value="[% l('Save Changes') %]"/></td>
<td>
<form method='post'>
- <table class="full-width data_grid" id="acct_search_main">
+ <table class="full-width data_grid" id="acct_search_main"
+ title="[% l('List Preferences') %]">
<tbody>
[% IF ctx.updated_user_settings %]
</tr>
</tbody>
</table>
- <input type="submit" value="[% l('Save') %]" alt="[% l('Save') %]" class="opac-button"/>
+ <input type="submit" value="[% l('Save') %]" class="opac-button"/>
</form>
[% INCLUDE "opac/parts/myopac/prefs_hints.tt2" %]
[% END %]
<input name='[% setting %]' type="hidden"
[% IF ctx.user_setting_map.$setting; %] value='[% ctx.user_setting_map.$setting | html %]' [% END %]/>
- <table class="full-width data_grid" id="acct_search_main">
+ <table class="full-width data_grid" id="acct_search_main"
+ title="[% l('Search Preferences') %]">
<tbody>
[% IF ctx.updated_user_settings %]
[% setting = 'opac.hold_notify' %]
<tr>
- <td><label for='[% setting %].email'>[%
- l('Notify by Email by default when a hold is ready for pickup?')
- %]</label></td>
+ [%# WCAG insists that labels for checkboxes contain the input
+ or directly follow the input, which would not look right
+ with the rest of the table. As an alternative, we can
+ repeat the label as a title attr.
+ http://www.w3.org/TR/WCAG20-TECHS/H44.html %]
+ [% email_label = l('Notify by Email by default when a hold is ready for pickup?') %]
+
+ <td><label for='[% setting %].email'>[% email_label %]</label></td>
<td>
- <input id='[% setting %].email' name='[% setting %].email' type="checkbox"
+ <input id='[% setting %].email' name='[% setting %].email'
+ type="checkbox" title="[% email_label %]"
[% IF (matches = ctx.user_setting_map.$setting.match('email')); %] checked='checked' [% END %]/>
</td>
</tr>
setting = 'opac.hold_notify';
-%]
<tr>
- <td><label for='[% setting %].phone'>[%
- l('Notify by Phone by default when a hold is ready for pickup?')
- %]</label></td>
+ [% phone_label = l('Notify by Phone by default when a hold is ready for pickup?') %]
+ <td><label for='[% setting %].phone'>[% phone_label %]</label></td>
<td>
- <input id='[% setting %].phone' name='[% setting %].phone' type="checkbox"
+ <input id='[% setting %].phone' name='[% setting %].phone'
+ type="checkbox" title="[% phone_label %]"
[% IF (matches = ctx.user_setting_map.$setting.match('phone')); %] checked='checked' [% END %]/>
</td>
</tr>
setting = 'opac.hold_notify';
-%]
<tr>
- <td><label for='[% setting %].sms'>[%
- l('Notify by Text by default when a hold is ready for pickup?')
- %]</label></td>
+ [% sms_label = l('Notify by Text by default when a hold is ready for pickup?') %]
+ <td><label for='[% setting %].sms'>[% sms_label %]</label></td>
<td>
- <input id='[% setting %].sms' name='[% setting %].sms' type="checkbox"
+ <input id='[% setting %].sms' name='[% setting %].sms'
+ type="checkbox" title="[% sms_label %]"
[% IF (matches = ctx.user_setting_map.$setting.match('sms')); %] checked='checked' [% END %]/>
</td>
</tr>
<td>
<input type='checkbox' name='setting'
value='[% optin.cust.name | uri %]'
+ title="[% optin.cust.label | html %]"
[% IF optin.value %] checked='checked' [% END %]/>
</td>
</tr>
</table>
</div>
[% END %]
- <input type='submit' value="[% l('Save') %]" alt="[% l('Save') %]" class="opac-button" />
+ <input type='submit' value="[% l('Save') %]" class="opac-button" />
</form>
[% END %]
<form method='post'>
- <table class="full-width data_grid" id="acct_search_main">
+ <table class="full-width data_grid" id="acct_search_main"
+ title="[% l('Search and History Preferences') %]">
<tbody>
[% IF ctx.updated_user_settings %]
</tr>
[%- setting = 'history.circ.retention_start' -%]
<tr>
- <td><label for='[% setting %]'>[% l('Keep history of checked out items?') %]</label></td>
+ [% circ_name = l('Keep history of checked out items?') %]
+ <td><label for='[% setting %]'>[% circ_name%]</label></td>
<td>
- <input id='[% setting %]' name='[% setting %]' type="checkbox"
+ <input id='[% setting %]' name='[% setting %]'
+ type="checkbox" title="[% circ_name %]"
[% IF ctx.user_setting_map.$setting; %] checked='checked' [% END %]/>
</td>
</tr>
[%- setting = 'history.hold.retention_start' -%]
<tr>
- <td><label for='[% setting %]'>[% l('Keep history of holds?') %]</label></td>
+ [% hold_name = l('Keep history of holds?') %]
+ <td><label for='[% setting %]'>[% hold_name %]</label></td>
<td>
- <input id='[% setting %]' name='[% setting %]' type="checkbox"
+ <input id='[% setting %]' name='[% setting %]'
+ type="checkbox" title="[% hold_name %]"
[% IF ctx.user_setting_map.$setting; %] checked='checked' [% END %]/>
</td>
</tr>
[%- setting = 'opac.temporary_list_no_warn' -%]
<tr>
- <td><label for='[% setting %]'>[% l('Skip warning when adding to temporary book list?') %]</label></td>
+ [% skip_warn = l('Skip warning when adding to temporary book list?') %]
+ <td><label for='[% setting %]'>[% skip_warn %]</label></td>
<td>
- <input id='[% setting %]' name='[% setting %]' type="checkbox"
+ <input id='[% setting %]' name='[% setting %]'
+ type="checkbox" title="[% skip_warn %]"
[% IF ctx.user_setting_map.$setting %] checked='checked' [% END %]/>
</td>
</tr>
[%- setting = 'circ.holds_behind_desk'; IF ctx.behind_desk_supported -%]
<tr>
- <td><label for='[% setting %]'>[% l('Pickup holds from behind the desk when possible?') %]</label></td>
+ [% behind_desk = l('Pickup holds from behind the desk when possible?') %]
+ <td><label for='[% setting %]'>[% behind_desk %]</label></td>
<td>
- <input id='[% setting %]' name='[% setting %]' type="checkbox"
+ <input id='[% setting %]' name='[% setting %]'
+ type="checkbox" title="[% behind_desk %]"
[% IF ctx.user_setting_map.$setting %] checked='checked' [% END %]/>
</td>
</tr>
</tbody>
</table>
- <input type="submit" value="[% l('Save') %]" alt="[% l('Save') %]" class="opac-button"/>
+ <input type="submit" value="[% l('Save') %]" class="opac-button"/>
</form>
[% INCLUDE "opac/parts/myopac/prefs_hints.tt2" %]
[% END %]
rec_anchor => ctx.bre_id;
END;
+ record_title = attrs.title; # same for either context
+
IF ctx.user_setting_map.defined(dsetting);
default_list = ctx.user_setting_map.$dsetting;
END;
%]
<ul class="popmenu">
<li><a href="#" class="no-dec">
- <img src="[% ctx.media_prefix %]/images/clipboard.png" alt="" />
+ <img src="[% ctx.media_prefix %]/images/clipboard.png"
+ [% html_text_attr('alt', 'Add item to a list: [_1]', record_title) %]/>
[% l("Add to my list") %]
</a>
<ul>
want_dojo = 1;
END;
- # Recommend max length for image alt text is 75 for screen
- # reader support / WCAG compliance. This macro trims the text
- # to this length and and produces a full alt="abc" attribute.
+ # Especially useful for image 'alt' tags and link title tags,
+ # where the content may need to be unique (making it longer)
+ # but should not exceed 75 chars for ideal screen reader support.
+ # usage: html_text_attr('title', 'Link to item I Have A Super Long Title')
+ # the full HTML attribute key="value" is produced
+ MACRO html_text_attr(name, value) BLOCK;
+ IF value.length >= 75;
+ value = value.substr(71, value.length, '...');
+ END;
+ value = value.replace('\s*$', ''); # remove trailing whitespace
+ HTML.attributes($name => value);
+ END;
+
MACRO img_alt(text) BLOCK;
- IF text.length >= 75;
- text = text.substr(71, text.length, '...');
- END;
- text = text.replace('\s*$', ''); # remove trailing whitespace
- HTML.attributes(alt => text);
+ html_text_attr('alt', text);
END;
%]
class="[% cls_which %]">[% page.name; %]</a>
[% END %]
</div>
- <!- Select box navigation for media view ->
- <div id="acct_select">
- <form name="acct_nav">
- <select name="acct_url" aria-label="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">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']) %]">[% page.name; %]</option>
- [% ELSE; %]
- <option value="" disabled>[% page.name; %]</option>
- [% END;
- END; %]
- </select>
- </div>
- </form>
- </div>
+
+ <!-- Select box navigation for media view -->
+ <div id="acct_select">
+ <form name="acct_nav">
+
+ <select name="acct_url"
+ aria-label="[% l('Select an account page') %]"
+ 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']) %]">[% page.name; %]</option>
+ [% ELSE; %]
+ <option value="" disabled>[% page.name; %]</option>
+ [% END;
+ END; %]
+ </select>
+ </form>
+ </div>
+ </div><!-- myopac_tabs -->
<div id="main-content">
[% content %]
<div class="common-full-pad"></div>
</div>
- </div>
+ </div> <!-- content-wrapper -->
[% END %]
<div id="myopac_sum_fines">
<div style="position:absolute;">
<div style="position:relative;top:-15px;left:-23px;">
- <img src="[% ctx.media_prefix %]/images/acct_sum_fines_tl.png" />
+ <img src="[% ctx.media_prefix %]/images/acct_sum_fines_tl.png"
+ alt="[% l('Account Fines Border Image 1') %]"/>
</div>
</div>
<div style="position:absolute;">
<div style="position:relative;top:-15px;left:172px;">
- <img src="[% ctx.media_prefix %]/images/acct_sum_fines_tr.png" />
+ <img src="[% ctx.media_prefix %]/images/acct_sum_fines_tr.png"
+ alt="[% l('Account Fines Border Image 2') %]"/>
</div>
</div>
<div style="position:absolute;">
<div style="position:relative;top:161px;left:-23px;">
- <img src="[% ctx.media_prefix %]/images/acct_sum_fines_bl.png" />
+ <img src="[% ctx.media_prefix %]/images/acct_sum_fines_bl.png"
+ alt="[% l('Account Fines Border Image 3') %]"/>
</div>
</div>
<div style="position:absolute;">
<div style="position:relative;top:161px;left:172px;">
- <img src="[% ctx.media_prefix %]/images/acct_sum_fines_br.png" />
+ <img src="[% ctx.media_prefix %]/images/acct_sum_fines_br.png"
+ alt="[% l('Account Fines Border Image 4') %]"/>
</div>
</div>
[% l('Fines:') %]
</span><br />
[% IF (ctx.fines.grocery.size OR ctx.fines.circulation.size) AND ctx.get_org_setting(ctx.user.home_ou, 'credit.payments.allow') == 1 %]
<form action="[% ctx.opac_root %]/myopac/main_payment_form" method="get"><input
- type="submit" title="[% l('Pay Fines') %]" alt="[% l('Pay Fines') %]"
+ type="submit" title="[% l('Pay Fines') %]"
value="[% l('Pay Fines') %]" class="pos-rel-top-5 opac-button" /></form>
[% END %]
</div>
<span class="alert">[% l("Your library card expired on [_1]. Please contact a librarian to resolve this issue.", fmt_expire_date) %]</span>
[% END %]
</div>
- <table class="acct_sum_table">
+ <table class="acct_sum_table" title="[% l('Account Summary') %]">
<tr>
- <td>[% l("Items Currently Checked out ([_1])", ctx.user_stats.checkouts.total_out) %]</td>
- <td align="right">
- <a href="[% mkurl(ctx.opac_root _ '/myopac/circs') %]">[% l("View All") %]</a>
- </td>
+ <td>[% l("Items Currently Checked out ([_1])", ctx.user_stats.checkouts.total_out) %]</td>
+ <td align="right">
+ <a href="[% mkurl(ctx.opac_root _ '/myopac/circs') %]"
+ title="[% l('View My Checked Out Items') %]">
+ [% l("View All") %]
+ </a>
+ </td>
</tr>
<tr>
- <td>[% l('Items Currently on Hold ([_1])', ctx.user_stats.holds.total) %]</td>
- <td align="right">
- <a href="[% mkurl(ctx.opac_root _ '/myopac/holds') %]">[% l('View All') %]</a>
- </td>
+ <td>[% l('Items Currently on Hold ([_1])', ctx.user_stats.holds.total) %]</td>
+ <td align="right">
+ <a href="[% mkurl(ctx.opac_root _ '/myopac/holds') %]"
+ title="[% l('View My Holds') %]">
+ [% l('View All') %]
+ </a>
+ </td>
</tr>
<tr>
- <td>[% l('Items ready for pickup ([_1])', ctx.user_stats.holds.ready) %]</td>
- <td align="right">
- <a href="[% mkurl(ctx.opac_root _ '/myopac/holds', {available => 1}) %]">[% l('View All') %]</a>
- </td>
+ <td>[% l('Items ready for pickup ([_1])', ctx.user_stats.holds.ready) %]</td>
+ <td align="right">
+ <a href="[% mkurl(ctx.opac_root _ '/myopac/holds', {available => 1}) %]"
+ title="[% l('View My Holds Ready for Pickup') %]">
+ [% l('View All') %]
+ </a>
+ </td>
</tr>
</table>
</div>
[%- # Select box navigation for mobile view %]
<div id="acct_prefs_select">
<form name="acct_prefs_nav">
- <select name="acct_prefs_url" aria-label="[% l('Select a preference page') %]" onchange="window.location.href=document.acct_prefs_nav.acct_prefs_url.options[document.acct_prefs_nav.acct_prefs_url.selectedIndex].value">
+ <select name="acct_prefs_url"
+ [% select_title = l('Select a preference page') %]
+ aria-label="[% select_title %]" title="[% select_title %]"
+ onchange="window.location.href=document.acct_prefs_nav.acct_prefs_url.options[document.acct_prefs_nav.acct_prefs_url.selectedIndex].value">
[% FOREACH page IN acct_prefs_pages;
IF page.url != prefs_page; -%]
<option value="[% mkurl(ctx.opac_root _ '/myopac/' _ page.url, {}, ['bbid', 'offset', 'limit']) %]">[% page.name; %]</option>
<abbr class="unapi-id" title='tag:[% ctx.hostname %],[% date.format(date.now, '%Y') %]:biblio-record_entry/[% rec.id %]'></abbr>
<a class='record_title search_link' name='record_[% rec.id %]'
href="[% mkurl(ctx.opac_root _ '/record/' _ rec.id) %]"
- [% HTML.attributes(title => l('Display record details for "[_1]"', attrs.title)) %]
+ [% html_text_attr('title', l('Display record details for "[_1]"', attrs.title)) %]
>[% attrs.title | html %]</a>
[%-
FOR entry IN attrs.graphic_titles;
<div class="results_aux_utils place_hold"><a
href="[% mkurl(ctx.opac_root _ '/place_hold',
{hold_target => rec.id, hold_type => 'T', hold_source_page => mkurl()}, ['query']) %]"
- [% HTML.attributes(title => l('Place Hold on [_1]', attrs.title)) %]
+ [% html_text_attr('title', l('Place Hold on [_1]', attrs.title)) %]
name="place_hold_link" class="no-dec"><img
src="[% ctx.media_prefix %]/images/green_check.png"
alt=""/><span class="result_place_hold">[% l('Place Hold') %]</span></a>
href = mkurl(ctx.opac_root _ '/mylist/' _ operation,
{record => rec.id, anchor => 'record_' _ rec.id}, 1);
%]
- <a href="[% href %]" class="no-dec" [% HTML.attributes(title => title_label) %]>
+ <a href="[% href %]" class="no-dec"
+ [% html_text_attr('title', title_label) %]>
<img src="[% ctx.media_prefix %]/images/clipboard.png" alt="" />
[% label %]
</a>
[% ident = attrs.isbn_clean || attrs.upc %]
<div class="results_aux_utils result_util">
<a target='_blank'
- [% HTML.attributes(title => l('Reviews and More for [_1]', attrs.title)) %]
+ [% html_text_attr('title', l('Reviews and More for [_1]', attrs.title)) %]
href="[% ctx.ext_proto %]://contentcafe2.btol.com/ContentCafeClient/ContentCafe.aspx?UserID=[%-
ENV.OILS_CONTENT_CAFE_USER %]&Password=[%-
ENV.OILS_CONTENT_CAFE_PASS %]&ItemKey=[% ident | uri %]&Options=Y">