<div id="main-content">
<div id="browse-the-catalog">
<div id="browse-controls" class='searchbar'>
- <form method="get" onsubmit="$('browse-submit-spinner').className = ''; return true">
+ <form method="get" onsubmit="$('browse-submit-spinner').className = ''; return true" autocomplete="off">
<input type="hidden" name="blimit"
value="[% blimit %]" />
<div id="content-wrapper">
<div id="main-content">
<p class="big-strong">[% l('Please confirm that you want to remove all [_1] titles from the basket.', ctx.mylist.size) %]
- <form method="post" action="[% mkurl(ctx.opac_root _ '/cache/clear', {}, 1) %]">
+ <form method="post" action="[% mkurl(ctx.opac_root _ '/cache/clear', {}, 1) %]" autocomplete="off">
<input type="hidden" name="redirect_to" value="[% ctx.referer %]" />
<input id="print_cart_submit" type="submit" name="submit"
value="[% l('Confirm') %]" title="[% l('Confirm') %]"
<div id="main-content">
[% IF ctx.mylist.size %]
<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) %]">
+ <form method="post" action="[% mkurl(ctx.opac_root _ '/mylist/doemail', {}, 1) %]" autocomplete="off">
<input type="hidden" name="redirect_to" value="[% ctx.referer %]" />
<input type="checkbox" name="clear_basket" value="on" />
<label for="clear_basket">[% l('Clear basket after emailing it.') %]</label>
<div id="main-content">
[% IF ctx.mylist.size %]
<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) %]">
+ <form method="post" action="[% mkurl(ctx.opac_root _ '/mylist/doprint', {}, 1) %]" autocomplete="off">
<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>
[% IF no_next %] class='invisible' [% END %] >[% l('Next') %]<span class="nav_arrow_fix">►</span></a>
</span>
<div class="float-left">
- <form action="[% mkurl(ctx.opac_root _ '/myopac/circ_history/export') %]" method="post">
+ <form action="[% mkurl(ctx.opac_root _ '/myopac/circ_history/export') %]" method="post" autocomplete="off">
<div>
[%- INCLUDE "opac/parts/preserve_params.tt2" %]
[% IF ctx.circs.size > 0 %]
[% ELSE %]
<form method="post" id="circ-form"
- onsubmit="return confirm('[% l("Are you sure you wish to delete the selected item(s)?") %]');">
+ onsubmit="return confirm('[% l("Are you sure you wish to delete the selected item(s)?") %]');" autocomplete="off">
<table cellpadding='0' cellspacing='0' class="item_list_padding">
<tr>
<td>
[% END %]
<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)?") %]');">
+ onsubmit="return confirm('[% l("Are you sure you wish to renew the selected item(s)?") %]');" autocomplete="off">
<div>
<span>
<select name="action" title="[% l('Select Action') %]">
</div>
<div class="clear-both"></div>
<div id='holds_main'>
- <form method="post">
+ <form method="post" autocomplete="off">
<table class="table_no_border_space table_no_cell_pad opac-auto-097"
title="[% l('Actions for Items on Hold') %]">
<tr>
<p>
<strong>[% l('Status') %]</strong>: [% hold.human_status %]
</p>
- <form method="post">
+ <form method="post" autocomplete="off">
<table id="hold_editor_table">
<tr>
<th>
<div id='myopac_bookbag_div' style="padding:5px;">
<!-- new list creation -->
- <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" id="create_form">
+ <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" id="create_form" autocomplete="off">
<h1>[% l('Create New List') %]</h1><a name="createnewlist"></a>
<table class="table_no_cell_pad" id="list_create_table">
<tr>
</div>
<div class="bookbag-controls-button-block">
[% IF ctx.add_rec %]
- <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update', {}, 1) %]" method="post">
+ <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update', {}, 1) %]" method="post" autocomplete="off">
<div class="bookbag-controls">
<input type="hidden" name="action" value="add_rec" />
<input type="hidden" name="list" value="[% bbag.id %]" />
</div>
</form>
[% END %]
- <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post">
+ <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" autocomplete="off">
<div class="bookbag-share">
<input type="hidden" name="list" value="[% bbag.id %]" />
[%- INCLUDE "opac/parts/preserve_params.tt2"; %]
[% END %]
</div>
</form>
- <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" onsubmit="return confirm('[% l('Do you really want to delete this list?') %]')">
+ <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" onsubmit="return confirm('[% l('Do you really want to delete this list?') %]')" autocomplete="off">
<div class="bookbag-controls">
<input type="hidden" name="list" value="[% bbag.id %]" />
<input type="hidden" name="action" value="delete" />
<input type="submit" value="[% l('Delete List') %]" />
</div>
</form>
- <form action="[% mkurl(ctx.opac_root _ '/myopac/list/print') %]" method="post">
+ <form action="[% mkurl(ctx.opac_root _ '/myopac/list/print') %]" method="post" autocomplete="off">
<div class="bookbag-controls">
<input type="hidden" name="list" value="[% bbag.id %]" />
<input type="hidden" name="sort" value="[% CGI.param('sort') | html %]" />
</div>
</form>
[% setting = 'opac.default_list'; %]
- <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post">
+ <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" autocomplete="off">
<div class="bookbag-controls">
<input type="hidden" name="list" value="[% bbag.id %]" />
[%- INCLUDE "opac/parts/preserve_params.tt2"; %]
<div class="bookbag-specific">
[% IF bbag.items.size %]
<div class="sort">
- <form method="get">
+ <form method="get" autocomplete="off">
<label for="opac.result.sort">[% l("Sort list items by: ") %]</label>
[%- INCLUDE "opac/parts/preserve_params.tt2" params=['loc', 'query', 'qtype']; %]
[% INCLUDE "opac/parts/filtersort.tt2"
</div>
[% END %]
<div class="meta">
- <form method="post">
+ <form method="post" autocomplete="off">
<input type="hidden" name="bbid" value="[% bbag.id %]" />
<input type="hidden" name="action" value="editmeta" />
<input type="hidden" name="limit" value="[% limit %]" />
</div>
</div>
<br class="clear-both" />
- <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post">
+ <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" autocomplete="off">
<input type="hidden" name="list" value="[% bbag.id %]" />
<input type="hidden" name="sort" value="[% CGI.param('sort') | uri %]" />
<input type="hidden" name="redirect_to" value="[% mkurl('', {}, ['list_none_selected', 'cart_none_selected']) %]" />
[% 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#payment" method="get" id="selected_fines">
+<form action="[% ctx.opac_root %]/myopac/main_payment_form#payment" method="get" id="selected_fines" autocomplete="off">
[% END %]
[% IF ctx.fines.circulation.size > 0 %]
<p><big>[% l("Are you sure you are ready to charge ") %]
<strong> [% l("[_1] ", money(ctx.fines.balance_owed))%]</strong>
[% l("to your credit card?") %]</big></p>
- <form action="[% ctx.opac_root %]/myopac/main_pay_init" method="post">
+ <form action="[% ctx.opac_root %]/myopac/main_pay_init" method="post" autocomplete = "off">
[% FOR k IN CGI.Vars;
NEXT UNLESS k;
FOR val IN CGI.param(k) %]
<tr>
<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>
+ value="[% ctx.user.first_given_name | html %]" autocomplete="given-name"/></td>
</tr>
<tr>
<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>
+ value="[% ctx.user.family_name | html %]" autocomplete="family-name"/></td>
</tr>
<tr>
<input id="payment-email-addr" type="text"
value="[% ctx.user.email | html %]" disabled="disabled"
- readonly="readonly" />
+ readonly="readonly" autocomplete="off"/>
<a title="[% l('Update Email Address') %]"
href="[% ctx.opac_root %]/myopac/update_email?return_to_referer=1">[% l("Update") %]</a>
- </td
+ </td>
</tr>
<tr>
<td><label for="payment-billing-address">[% l('Street Address') %]</label></td>
<td><input type="text" name="billing_address" id="payment-billing-address"
- value="[% ctx.user.billing_address.street1 _ ctx.user.billing_address.street2 | html %]" /></td>
+ value="[% ctx.user.billing_address.street1 _ ctx.user.billing_address.street2 | html %]" autocomplete="street-address"/></td>
</tr>
<tr>
<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>
+ value="[% ctx.user.billing_address.city | html %]" autocomplete="address-level2"/></td>
</tr>
<tr>
<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>
+ value="[% ctx.user.billing_address.state | html %]" autocomplete="address-level1"/></td>
</tr>
<tr>
<td><label for="paymenet-billing-zip">[% l('ZIP or Postal Code') %]</label></td>
[% USE zip=String(ctx.user.billing_address.post_code) %]
<td><input type="tel" pattern="[0-9]*" maxlength="5" size="5" name="billing_zip" id="paymenet-billing-zip"
- value="[% zip.truncate(5) %]" /></td>
+ value="[% zip.truncate(5) %]" autocomplete="postal-code"/></td>
</tr>
</tbody>
</table>
[% ELSE %]
name="number"
[% END %]
- /></td>
+ autocomplete="cc-number"/></td>
</tr>
<tr>
<td><label for="payment-security-code">[% l('Security Code') %]</label></td>
[% ELSE %]
name="cvv2"
[% END %]
- /></td>
+ autocomplete="cc-csc"/></td>
</tr>
<tr>
<td><label for="payment-expire-month">[% l('Expiration Month') %]</label></td>
[% ELSE %]
name="expire_month"
[% END %]
- >
+ autocomplete="cc-exp-month">
<option value="-1"></option>
<option value="01">[% l("January (1)") %]</option>
<option value="02">[% l("February (2)") %]</option>
[% ELSE %]
name="expire_year"
[% END -%]
- >
+ autocomplete="cc-exp-year">
[% year = date.format(date.now, '%Y');
y = year;
WHILE y < year + 10; # show ten years starting now %]
<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},
+ {label => l("Street"), name => 'street1', value => update_addr.street1, acomp => 'street-address address-line1'},
+ {label => l("Street"), name => 'street2', value => update_addr.street2, acomp => 'street-address address-line2'},
+ {label => l("City"), name => 'city', value => update_addr.city, acomp => 'address-level2'},
+ {label => l("County"), name => 'county', value => update_addr.county, acomp='off'},
+ {label => l("State"), name => 'state', value => update_addr.state, acomp => 'address-level1'},
+ {label => l("Country"), name => 'country', value => update_addr.country, acomp => 'country-name'},
+ {label => l("ZIP"), name => 'post_code', value => update_addr.post_code, acomp => 'postal-code'},
];
FOR field IN addr_fields %]
<tr>
<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 %]">
+ value="[% field.value | html %]"
+ autocomplete="[% field.acomp %]"
+ >
</td>
</tr>
[% END %]
<td><label for='[% setting %].email'>[% email_label %]</label></td>
<td>
<input id='[% setting %].email' name='[% setting %].email'
- type="checkbox" title="[% email_label %]"
+ type="checkbox" title="[% email_label %]" autocomplete="email"
[% IF (matches = ctx.user_setting_map.$setting.match('email')); %] checked='checked' [% END %]/>
</td>
</tr>
<tr>
<td><label for='[% setting %]'>[% l('Default Phone Number') %]</label></td>
<td>
- <input id='[% setting %]' name='[% setting %]' type="text"
+ <input id='[% setting %]' name='[% setting %]' type="text" autocomplete="tel-national"
[% IF ctx.user_setting_map.$setting; %] value='[% ctx.user_setting_map.$setting | html %]' [% END %]/>
</td>
</tr>
<tr>
<td><label for='[% setting %]'>[% l('Default Mobile Number') %]</label></td>
<td>
- <input id='[% setting %]' name='[% setting %]' type="text"
+ <input id='[% setting %]' name='[% setting %]' type="text" autocomplete="tel-national"
[% IF ctx.user_setting_map.$setting; %] value='[% ctx.user_setting_map.$setting | html %]' [% END %]/>
[% l('Hint: use the full 10 digits of your phone #, no spaces, no dashes'); %]
</td>
[% END %]
<table>
<tr><td>[% l('Current Email') %]</td><td>[% ctx.user.email | html %]</td></tr>
- <tr><td>[% l('Current Password') %]</td><td><input type='password' name='current_pw'/></td></tr>
- <tr><td>[% l('New Email') %]</td><td><input type='text' name='email' value='[% ctx.invalid_email | html %]'/></td></tr>
+ <tr><td>[% l('Current Password') %]</td><td><input type='password' name='current_pw' autocomplete='current-password'/></td></tr>
+ <tr><td>[% l('New Email') %]</td><td><input type='text' name='email' value='[% ctx.invalid_email | html %]' autocomplete='email'/></td></tr>
<tr><td colspan='2' align='center'><input value="[% l('Submit') %]" type='submit'/></td></tr>
</table>
</form>
</div>
[% END %]
-<form method='post' id='account-update-email' autocomplete='off'>
+<form method='post' id='account-update-email'>
<table>
- <tr><td>[% l('Current Password') %]</td><td><input type='password' name='current_pw'/></td></tr>
- <tr><td>[% l('New Password') %]</td><td><input type='password' name='new_pw'/></td></tr>
- <tr><td>[% l('New Password Again') %]</td><td><input type='password' name='new_pw2'/></td></tr>
+ <tr><td>[% l('Current Password') %]</td><td><input type='password' name='current_pw' autocomplete='current-password'/></td></tr>
+ <tr><td>[% l('New Password') %]</td><td><input type='password' name='new_pw' autocomplete='new-password'/></td></tr>
+ <tr><td>[% l('New Password Again') %]</td><td><input type='password' name='new_pw2' autocomplete='new-password'/></td></tr>
<tr><td colspan='2' align='center'><input value="[% l('Submit') %]" type='submit'/></td></tr>
</table>
</form>
[% END %]
-<form method='post' id='account-update-email' autocomplete='off'>
+<form method='post' id='account-update-email'>
<table>
<tr><td>[% l('Current Username') %]</td><td>[% ctx.user.usrname | html %]</td></tr>
- <tr><td>[% l('Current Password') %]</td><td><input type='password' name='current_pw'/></td></tr>
- <tr><td>[% l('New Username') %]</td><td><input type='text' name='username' value='[% ctx.invalid_username | html %]'/></td></tr>
+ <tr><td>[% l('Current Password') %]</td><td><input type='password' name='current_pw' autocomplete='current-password'/></td></tr>
+ <tr><td>[% l('New Username') %]</td><td><input type='text' name='username' value='[% ctx.invalid_username | html %]' autocomplete='username'/></td></tr>
<tr><td colspan='2' align='center'><input value="[% l('Submit') %]" type='submit'/></td></tr>
</table>
</form>
-<form action="[% ctx.opac_root %]/results" method="get">
+<form action="[% ctx.opac_root %]/results" method="get" autocomplete="off">
<div class="header_middle">[% l("Expert Search") %]</div>
<input type="hidden" name="_special" value="1" />
<input id="detail" type="hidden" name="detail_record_view"
-<form action="[% ctx.opac_root %]/results" method="get">
+<form action="[% ctx.opac_root %]/results" method="get" autocomplete="off">
<div class="header_middle">[% l("Numeric Search") %]</div>
<input type="hidden" name="contains" value="contains" />
<input type="hidden" name="_special" value="1" />
PROCESS "opac/parts/misc_util.tt2";
PROCESS get_library;
%]
-<form action="[% ctx.opac_root %]/results" method="get">
+<form action="[% ctx.opac_root %]/results" method="get" autocomplete="off">
<div id='adv_global_search' class='data_grid data_grid_center'>
<div id='adv_search_rows'>
<!-- Contains the user-addable(?) rows to define search class, containment and text -->
<div class='login-form-left'>
<label for='username_field' class="lbl1" >[% l('Library Card Number or Username') %]</label>
<div class="input_bg">
- <input type='text' id="username_field" name="username" autofocus />
+ <input type='text' id="username_field" name="username" autofocus autocomplete="username" autocapitalize="off"/>
</div>
[% INCLUDE "opac/parts/login/username_hint.tt2" %]
</div>
<div class='float-left'>
<label for="password_field" class="lbl1" >[% l('PIN Number or Password') %]</label>
<div class="input_bg">
- <input id="password_field" name="password" type="password" />
+ <input id="password_field" name="password" type="password" autocomplete="current-password"/>
</div>
[% INCLUDE "opac/parts/login/password_hint.tt2" %]
[% IF reset_password == 'true' %]
value="[% usr_barcode | html %]"
onchange="staff_hold_usr_barcode_changed();"
onpaste="setTimeout(staff_hold_usr_barcode_changed,1);"
- onkeypress="return no_hold_submit(event)" autofocus />
+ onkeypress="return no_hold_submit(event)" autofocus autocomplete="off"/>
<span id="patron_name"></span>
<span id="patron_usr_barcode_not_found" style="display: none">
[% l('Patron barcode was not found') %]
<div id="search-wrapper">
[% UNLESS took_care_of_form -%]
- <form action="[% ctx.opac_root %]/results" method="get">
+ <form action="[% ctx.opac_root %]/results" method="get" autocomplete="off">
[%- END %]
[% IF ctx.page == 'rresult' && ctx.metarecord && search.metarecord_default %]
<input type="hidden" name="modifier" value="metabib"/>
<table>
<tr>
<td><label for="pwd1">[% l('New password:') %]</label></td>
- <td><input type="password" name="pwd1"/></td>
+ <td><input type="password" name="pwd1" autocomplete="new-password"/></td>
</tr>
<tr>
<td><label for="pwd2">[% l('Re-enter new password:') %]</label></td>
- <td><input type="password" name="pwd2"/></td>
+ <td><input type="password" name="pwd2" autocomplete="new-password"/></td>
</tr>
<tr>
<td>
</tr>
<tr>
<td><label for="username">[% l('User name:') %] </label></td>
- <td><input type="text" id="username" name="username"/></td>
+ <td><input type="text" id="username" name="username" autocomplete="username"/></td>
</tr>
</table>
[% IF ctx.get_org_setting(ctx.physical_loc || ctx.aou_tree.id, 'circ.password_reset_request_requires_matching_email') %]
- <label for="email">[% l('Email address associated with the account:') %] </label><input type="text" name="email"/><br/>
+ <label for="email">[% l('Email address associated with the account:') %] </label><input type="text" name="email" autocomplete="email"/><br/>
[% END %]
<button name="submit" id="submitButton" class="opac-button" type="submit">[% l('Submit') %]</button>
</form>
# an address will be made (and post_code will no longer be required).
register_fields = [
- {class => 'stgu', name = 'first_given_name', label => l('First Name')},
- {class => 'stgu', name = 'second_given_name', label => l('Middle Name')},
- {class => 'stgu', name = 'family_name', label => l('Last Name')},
- {class => 'stgu', name = 'pref_first_given_name', label => l('Preferred First Name')},
- {class => 'stgu', name = 'pref_second_given_name', label => l('Preferred Middle Name')},
- {class => 'stgu', name = 'pref_family_name', label => l('Preferred Last Name')},
- {class => 'stgma', name = 'street1', label => l('Street Address')},
- {class => 'stgma', name = 'street2', label => l('Street Address (2)')},
- {class => 'stgma', name = 'city', label => l('City')},
- {class => 'stgma', name = 'county', label => l('County')},
- {class => 'stgma', name = 'state', label => l('State')},
- {class => 'stgma', name = 'post_code', label => l('Zip Code')},
- {class => 'stgu', name = 'dob', label => l('Date of Birth')},
- {class => 'stgu', name = 'day_phone', label => l('Phone Number')},
- {class => 'stgu', name = 'email', label => l('Email Address')}
- {class => 'stgu', name = 'usrname', label => l('Requested Username')}
+ {class => 'stgu', name = 'first_given_name', acomp => 'given-name', label => l('First Name')},
+ {class => 'stgu', name = 'second_given_name', acomp => 'additional-name', label => l('Middle Name')},
+ {class => 'stgu', name = 'family_name', acomp => 'family-name', label => l('Last Name')},
+ {class => 'stgu', name = 'pref_first_given_name', acomp => 'off', label => l('Preferred First Name')},
+ {class => 'stgu', name = 'pref_second_given_name', acomp => 'off', label => l('Preferred Middle Name')},
+ {class => 'stgu', name = 'pref_family_name', acomp => 'off', label => l('Preferred Last Name')},
+ {class => 'stgma', name = 'street1', acomp => 'street-address address-line1', label => l('Street Address')},
+ {class => 'stgma', name = 'street2', acomp => 'street-address address-line2', label => l('Street Address (2)')},
+ {class => 'stgma', name = 'city', acomp => 'address-level2', label => l('City')},
+ {class => 'stgma', name = 'county', acomp => 'off', label => l('County')},
+ {class => 'stgma', name = 'state', acomp => 'address-level1', label => l('State')},
+ {class => 'stgma', name = 'post_code', acomp => 'postal-code', label => l('Zip Code')},
+ {class => 'stgu', name = 'dob', acomp => 'bday', label => l('Date of Birth')},
+ {class => 'stgu', name = 'day_phone', acomp => 'tel-national', label => l('Phone Number')},
+ {class => 'stgu', name = 'email', acomp => 'email', label => l('Email Address')}
+ {class => 'stgu', name = 'usrname', acomp => 'username', label => l('Requested Username')}
];
# The dojo date widget in the patron edit UI only accepts default
orig_name = fname;
field_path = fclass _ "." _ fname;
-
+
IF fname.match('^pref_');
# Preferred name fields adopt most visibility, etc.
# settings from the primary name counterparts.
invalid_require = ctx.register.invalid.$fclass.$fname.require;
invalid_regex = ctx.register.invalid.$fclass.$fname.regex;
- IF orig_name.match('^pref_');
+ IF orig_name.match('^pref_');
show = show || require;
require = 0; # pref name values never required
END;
<input
type='text'
id='[% field_path %]'
- name='[% field_path %]'
+ name='[% field_path %]'
+ autocomplete='[% field_def.acomp %]'
value='[% value || CGI.param(field_path) | html %]'/>
[% IF require %]
<span class='patron-reg-invalid'>*</span>
PROCESS get_library;
-%]
<h2 class="sr-only">[% l('Search Results') %]</h2>
- <form action="[% ctx.opac_root %]/results" method="get">
+ <form action="[% ctx.opac_root %]/results" method="get" autocomplete="off">
[% INCLUDE "opac/parts/searchbar.tt2" took_care_of_form=1 %]
<h3 class="sr-only">[% l('Additional search filters and navigation') %]</h3>
<div class="almost-content-wrapper">
[% ctx.page_title = l("Cancel Selected Patron Requests"); %]
<!-- use <form> so we get submit-on-enter for free -->
-<form class="form-validated" novalidate name="form" ng-submit="ok(cancel_reason)">
+<form class="form-validated" novalidate name="form" ng-submit="ok(cancel_reason)" autocomplete="off">
<div> <!-- modal-content -->
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
[% ctx.page_title = l("Clear Completed Patron Requests"); %]
<!-- use <form> so we get submit-on-enter for free -->
-<form class="form-validated" novalidate name="form" ng-submit="ok(true)">
+<form class="form-validated" novalidate name="form" ng-submit="ok(true)" autocomplete="off">
<div> <!-- modal-content -->
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
[% ctx.page_title = l("Create/Edit/View patron Request"); %]
<!-- use <form> so we get submit-on-enter for free -->
<form class="form-validated" novalidate name="form"
- ng-submit="ok(request,extra)">
+ ng-submit="ok(request,extra)" autocomplete="off">
<div> <!-- modal-content -->
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
[% ctx.page_title = l('Set "No Hold" on Selected Patron Requests'); %]
<!-- use <form> so we get submit-on-enter for free -->
-<form class="form-validated" novalidate name="form" ng-submit="ok(true)">
+<form class="form-validated" novalidate name="form" ng-submit="ok(true)" autocomplete="off">
<div> <!-- modal-content -->
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
[% ctx.page_title = l('Set "Hold" on Selected Patron Requests'); %]
<!-- use <form> so we get submit-on-enter for free -->
-<form class="form-validated" novalidate name="form" ng-submit="ok(true)">
+<form class="form-validated" novalidate name="form" ng-submit="ok(true)" autocomplete="off">
<div> <!-- modal-content -->
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
<div id="edit-org-container" class="container">
-<form name="orgForm" novalidate class="simple-form">
+<form name="orgForm" novalidate class="simple-form" autocomplete="off">
<div class="row">
<div class="col-md-2">
<span>[% l('Name') %]</span>
-<form ng-submit="ok(args)" role="form" class="form-validated">
+<form ng-submit="ok(args)" role="form" class="form-validated" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
[% ctx.page_title = l("Item Alert Suppression"); %]
<!-- use <form> so we get submit-on-enter for free -->
-<form class="form-validated" novalidate name="form" ng-submit="ok(record)">
+<form class="form-validated" novalidate name="form" ng-submit="ok(record)" autocomplete="off">
<div>
<div class="modal-header">
<button type="button" class="close"
[% ctx.page_title = l("Item Alert Types"); %]
<!-- use <form> so we get submit-on-enter for free -->
-<form class="form-validated" novalidate name="form" ng-submit="ok(record)">
+<form class="form-validated" novalidate name="form" ng-submit="ok(record)" autocomplete="off">
<div>
<div class="modal-header">
<button type="button" class="close"
-<form ng-submit="ok(record)" role="form" class="form-validated">
+<form ng-submit="ok(record)" role="form" class="form-validated" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
}
</style>
-<form role="form">
+<form role="form" autocomplete="off">
<div class="container-fluid">
<div class="row bg-info vertical-align">
<div class="col-md-3">
-<form ng-submit="submitBarcode(args)" role="form" class="form-inline">
+<form ng-submit="submitBarcode(args)" role="form" class="form-inline" autocomplete="off">
<div class="input-group">
<label class="input-group-addon"
-<form ng-submit="ok(note)" role="form">
+<form ng-submit="ok(note)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
<div class="row">
<div class="col-md-6">
- <form ng-submit="search()">
+ <form ng-submit="search()" autocomplete="off">
<div class="input-group">
<span class="input-group-addon">[% l('Scan Item') %]</span>
<input type="text" class="form-control" select-me="context.selectPendingBC"
<!-- export bucket dialog -->
-<form ng-submit="ok(args)">
+<form ng-submit="ok(args)" autocomplete="off">
<div>
<div class="modal-header">
<button type="button" class="close"
<!-- load bucket by id ("shared") -->
-<form class="form-validated" novalidate name="form" ng-submit="ok(args)">
+<form class="form-validated" novalidate name="form" ng-submit="ok(args)" autocomplete="off">
<div>
<div class="modal-header">
<button type="button" class="close"
<!-- search bar -->
<div class="row">
<div class="col-md-6">
- <form ng-submit="search()">
+ <form ng-submit="search()" autocomplete="off">
<div class="input-group">
<span class="input-group-addon">[% l('Record Query') %]</span>
<input type="text" class="form-control" focus-me="focusMe"
<!-- edit bucket dialog -->
<!-- use <form> so we get submit-on-enter for free -->
-<form class="form-validated" novalidate name="form" ng-submit="ok(args)">
+<form class="form-validated" novalidate name="form" ng-submit="ok(args)" autocomplete="off">
<div>
<div class="modal-header">
<button type="button" class="close"
<!-- edit bucket dialog -->
-<form class="form-validated" novalidate ng-submit="ok(args)" name="form">
+<form class="form-validated" novalidate ng-submit="ok(args)" name="form" autocomplete="off">
<div>
<div class="modal-header">
<button type="button" class="close"
<!-- load bucket by id ("shared") -->
-<form class="form-validated" novalidate name="form" ng-submit="ok(args)">
+<form class="form-validated" novalidate name="form" ng-submit="ok(args)" autocomplete="off">
<div>
<div class="modal-header">
<button type="button" class="close"
-<form ng-submit="ok(org)" role="form">
+<form ng-submit="ok(org)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
-<form ng-submit="ok(type)" role="form">
+<form ng-submit="ok(type)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
-<form ng-submit="ok(hold_data)" role="form">
+<form ng-submit="ok(hold_data)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
<div class="col-md-3">
-<form ng-submit="submitAuthorityId(args)" role="form" class="form-inline">
+<form ng-submit="submitAuthorityId(args)" role="form" class="form-inline" autocomplete="off">
<div class="input-group">
<label class="input-group-addon"
<div class="col-md-3">
-<form ng-submit="submitId(args)" role="form" class="form-inline">
+<form ng-submit="submitId(args)" role="form" class="form-inline" autocomplete="off">
<div class="input-group">
<label class="input-group-addon"
<div class="col-md-3">
-<form ng-submit="submitTCN(args)" role="form" class="form-inline">
+<form ng-submit="submitTCN(args)" role="form" class="form-inline" autocomplete="off">
<div class="input-group">
<label class="input-group-addon"
<h2>[% l('Scan Item') %]</h2>
-<form id="item-status-form" ng-submit="context.search(args)" role="form">
+<form id="item-status-form" ng-submit="context.search(args)" role="form" autocomplete="off">
<!-- the upload button drops down to the line below when it sits in the
same col-md-x as the text input and submit. avoid by using a flex-row -->
<div class="flex-row">
</div>
</div>
-<form ng-submit="submitBarcode(args)" role="form" class="form-inline">
+<form ng-submit="submitBarcode(args)" role="form" class="form-inline" autocomplete="off">
<div class="input-group">
<label class="input-group-addon"
<div class="row pad-vert">
<div class="col-md-1"></div>
<div ng-class="{'col-md-6': !isModal, 'col-md-10': isModal}">
- <form role="form" ng-submit="updateBarcode()">
+ <form role="form" ng-submit="updateBarcode()" autocomplete="off">
<div class="form-group">
<label for="barcode1">[% l('Enter Original Barcode for Item') %]</label>
<input type="text" class="form-control" id="barcode1" required
-<form ng-submit="ok(copy_alert)" role="form">
+<form ng-submit="ok(copy_alert)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
-<form ng-submit="ok(note)" role="form">
+<form ng-submit="ok(note)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
-<form ng-submit="ok(note)" role="form">
+<form ng-submit="ok(note)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
<div class="row">
<div class="col-xs-6">
<strong>[% l('Query') %]</strong>
- <form ng-keyup="$event.keyCode == 13 && search()">
+ <form ng-keyup="$event.keyCode == 13 && search()" autocomplete="off">
<eg-z3950-search-field-list ng-show="show_search_form()"></eg-z3950-search-field-list>
</form>
</div>
<div class="row" id="z3950-search-form-row" ng-show="show_search_form()">
<form ng-submit="search()" id="z3950-search-form"
- role="form" class="form-inline">
+ role="form" class="form-inline" autocomplete="off">
<div class="button-group">
<input type="submit" class="btn btn-primary" value="[% l('Search') %]"/>
-<form class="form-validated" novalidate name="form" ng-submit="ok(args)">
+<form class="form-validated" novalidate name="form" ng-submit="ok(args)" autocomplete="off">
<div>
<div class="modal-header">
<button type="button" class="close"
<!-- checkin form -->
<div class="row pad-vert">
<div class="col-md-5">
- <form ng-submit="checkin(checkinArgs)" role="form" class="form-inline">
+ <form ng-submit="checkin(checkinArgs)" role="form" class="form-inline" autocomplete="off">
<div class="input-group">
<label class="input-group-addon"
#in-house-use-form { margin-bottom: 20px }
</style>
-<form id="in-house-use-form" ng-submit="checkout(args)" role="form">
+<form id="in-house-use-form" ng-submit="checkout(args)" role="form" autocomplete="off">
<div class="row">
<div class="col-md-2">
<!-- edit bucket dialog -->
<!-- use <form> so we get submit-on-enter for free -->
-<form class="form-validated" novalidate name="form" ng-submit="ok(args)">
+<form class="form-validated" novalidate name="form" ng-submit="ok(args)" autocomplete="off">
<div>
<div class="modal-header">
<button type="button" class="close"
<!-- edit bucket dialog -->
-<form class="form-validated" novalidate ng-submit="ok(args)" name="form">
+<form class="form-validated" novalidate ng-submit="ok(args)" name="form" autocomplete="off">
<div>
<div class="modal-header">
<button type="button" class="close"
<!-- manage batch changes dialog -->
-<form class="form-validated" novalidate ng-submit="ok()" name="form">
+<form class="form-validated" novalidate ng-submit="ok()" name="form" autocomplete="off">
<div>
<div class="modal-header">
<button type="button" class="close"
}
</style>
-<form class="form-validated" novalidate ng-submit="ok(args)" name="form">
+<form class="form-validated" novalidate ng-submit="ok(args)" name="form" autocomplete="off">
<div>
<div class="modal-header">
<button type="button" class="close"
<!-- load bucket by id ("shared") -->
-<form class="form-validated" novalidate name="form" ng-submit="ok(args)">
+<form class="form-validated" novalidate name="form" ng-submit="ok(args)" autocomplete="off">
<div>
<div class="modal-header">
<button type="button" class="close"
-<form ng-submit="search()">
+<form ng-submit="search()" autocomplete="off">
<div class="row">
<div class="col-md-6">
<div class="input-group">
}
</style>
-<form class="form-validated" novalidate ng-submit="ok(args)" name="form">
+<form class="form-validated" novalidate ng-submit="ok(args)" name="form" autocomplete="off">
<div>
<div class="modal-header">
<button type="button" class="close"
}
</style>
-<form class="form-validated" novalidate ng-submit="ok(args)" name="form">
+<form class="form-validated" novalidate ng-submit="ok(args)" name="form" autocomplete="off">
<div>
<div class="modal-header">
<button type="button" class="close"
}
</style>
-<form class="form-validated" novalidate ng-submit="ok(args)" name="form">
+<form class="form-validated" novalidate ng-submit="ok(args)" name="form" autocomplete="off">
<div>
<div class="modal-header">
<button type="button" class="close"
-<form ng-submit="submitBarcode(args)" role="form" class="form-inline">
+<form ng-submit="submitBarcode(args)" role="form" class="form-inline" autocomplete="off">
<div class="input-group">
<label class="input-group-addon"
</div><!-- col -->
<div class="col-md-5">
- <form role="form" class="form-horizontal" ng-submit="applyPayment()">
+ <form role="form" class="form-horizontal" ng-submit="applyPayment()" autocomplete="off">
<fieldset>
<legend>[% l('Pay Bill') %]</legend>
</label>
</div>
</div>
- <form class="form-inline" role="form">
+ <form class="form-inline" role="form" autocomplete="off">
<div class="checkbox">
<label>
<input id="receipt_on_pay" type="checkbox" ng-model="receipt_on_pay.isChecked" ng-change="onReceiptOnPayChanged()"/>
<div class="row pad-vert">
<div class="col-md-6">
- <form ng-submit="checkout(checkoutArgs)" role="form" class="form-inline">
+ <form ng-submit="checkout(checkoutArgs)" role="form" class="form-inline" autocomplete="off">
<div class="input-group">
<div class="input-group-btn" uib-dropdown>
<fieldset>
<legend>[% l('Verify Credentials') %]</legend>
<form ng-submit="verify()"
- name="verify-creds-form" class="form-horizontal" role="form">
+ name="verify-creds-form" class="form-horizontal" role="form" autocomplete="off">
<div class="form-group">
<label class="col-md-4 control-label"
type="[% type %]"
class="form-control"
name="[% model %]"
+ autocomplete="nah"
ng-change="field_modified()"
ng-required="field_required('[% cls %]', '[% field %]')"
ng-blur="handle_field_changed([% base_obj %], '[% field %]')"
<div class="col-md-3 reg-field-input"> <!-- field form input -->
<input type="text"
name="barcode"
+ autocomplete="off"
ng-model="patron.card.barcode"
ng-pattern="field_pattern('ac', 'barcode')"
ng-required="field_required('ac', 'barcode')"
<div class="col-md-3 reg-field-input">
<input type="text"
name='usrname'
+ autocomplete="nerp"
ng-required="field_required('au', 'usrname')"
focus-me="focus_usrname"
ng-change="field_modified()"
-<form ng-submit="ok(args)" role="form">
+<form ng-submit="ok(args)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
-<form ng-submit="ok(args)" role="form">
+<form ng-submit="ok(args)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
-<form ng-submit="ok(args)" role="form">
+<form ng-submit="ok(args)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
-<form ng-submit="ok(args)" role="form">
+<form ng-submit="ok(args)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
<div class="row">
<div class="col-md-6">
- <form ng-submit="renew(renewalArgs)" role="form" class="form-inline">
+ <form ng-submit="renew(renewalArgs)" role="form" class="form-inline" autocomplete="off">
<div class="input-group">
<label class="input-group-addon"
-<form ng-submit="ok()" role="form" class="form-horizontal">
+<form ng-submit="ok()" role="form" class="form-horizontal" autocomplete="off">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close"
<!-- edit bucket dialog -->
-<form ng-submit="ok(billArgs)" role="form" class="form-horizontal">
+<form ng-submit="ok(billArgs)" role="form" class="form-horizontal" autocomplete="off">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close"
-<form ng-submit="ok()" role="form" class="form-horizontal">
+<form ng-submit="ok()" role="form" class="form-horizontal" autocomplete="off">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close"
-<form class="form-validated" novalidate ng-submit="ok()" name="form">
+<form class="form-validated" novalidate ng-submit="ok()" name="form" autocomplete="off">
<div>
<div class="modal-content">
<div class="modal-header">
-<form ng-submit="ok()" role="form">
+<form ng-submit="ok()" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close"
ng-click="cancel()" aria-hidden="true">×</button>
-<form ng-submit="ok(args)" role="form">
+<form ng-submit="ok(args)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
-<form ng-submit="ok(args)" role="form">
+<form ng-submit="ok(args)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
<!-- edit bucket dialog -->
-<form ng-submit="ok(count)" role="form">
+<form ng-submit="ok(count)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close"
ng-click="cancel()" aria-hidden="true">×</button>
<!-- edit bucket dialog -->
-<form ng-submit="ok(precatArgs)" role="form">
+<form ng-submit="ok(precatArgs)" role="form" autocomplete="off">
<div class="">
<div class="modal-content">
<div class="modal-header">
-<form ng-submit="ok()" role="form" class="form-horizontal">
+<form ng-submit="ok()" role="form" class="form-horizontal" autocomplete="off">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close"
-<form ng-submit="ok(args)" role="form">
+<form ng-submit="ok(args)" role="form" autocomplete="off">
<style>
/* odd/even row styling */
-<form name="batch_receive_form" ng-submit="ok(items)" role="form">
+<form name="batch_receive_form" ng-submit="ok(items)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
-<form ng-submit="ok(args)" role="form">
+<form ng-submit="ok(args)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
-<form ng-submit="ok(args)" role="form">
+<form ng-submit="ok(args)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
-<form ng-submit="ok(args)" role="form">
+<form ng-submit="ok(args)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
-<form ng-submit="ok(note)" role="form">
+<form ng-submit="ok(note)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
</div>
<uib-tabset active="tab.active">
<uib-tab index="0" disable="tab.active != 0" heading="[% l('Enumeration Labels') %]">
- <form name="tab.enum_form">
+ <form name="tab.enum_form" autocomplete="off">
<fieldset ng-disabled="viewOnly">
<div class="row">
<div class="radio">
</form>
</uib-tab>
<uib-tab index="1" disable="tab.active != 1" heading="[% l('Chronology Display') %]">
- <form name="tab.chron_form">
+ <form name="tab.chron_form" autocomplete="off">
<fieldset ng-disabled="viewOnly">
<div>
<div class="checkbox">
</form>
</uib-tab>
<uib-tab index="2" disable="tab.active != 2" heading="[% l('MFHD Indicators') %]">
- <form name="tab.ind_form">
+ <form name="tab.ind_form" autocomplete="off">
<fieldset ng-disabled="viewOnly">
<div class="row">
<div class="col-md-6">
</form>
</uib-tab>
<uib-tab index="3" disable="tab.active != 3" heading="[% l('Frequency and Regularity') %]">
- <form name="tab.freq_form">
+ <form name="tab.freq_form" autocomplete="off">
<fieldset ng-disabled="viewOnly">
<div class="row">
<div class="col-md-2">
-<form ng-submit="ok()" role="form">
+<form ng-submit="ok()" role="form" autocomplete="off">
<div class="modal-body">
<eg-embed-frame handlers="xulg" url="url" afterload="page_init"/>
</div>
-<form ng-submit="ok(list)" role="form">
+<form ng-submit="ok(list)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
-<form ng-submit="ok(args)" role="form">
+<form ng-submit="ok(args)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
-<form ng-submit="ok()" role="form">
+<form ng-submit="ok()" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
[% l('No subscriptions are owned by this library') %]
</span>
</div>
-<form name="ssubform" class="pad-vert">
+<form name="ssubform" class="pad-vert" autocomplete="off">
<div class="form-inline" ng-repeat="ssub in subscriptions">
<div class="row form-inline">
<div class="form-group col-sm-2">
-<form ng-submit="ok(copy_alert)" role="form">
+<form ng-submit="ok(copy_alert)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
-<form ng-submit="ok(copy_alert)" role="form">
+<form ng-submit="ok(copy_alert)" role="form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close" ng-click="cancel()"
aria-hidden="true">×</button>
-<form role="form" class="form-validated eg-edit-fm-record" name="fm_record_form">
+<form role="form" class="form-validated eg-edit-fm-record" name="fm_record_form" autocomplete="off">
<div class="modal-header">
<button type="button" class="close"
<div class="row" id="patron-search-form-row">
<div class="col-md-11">
<form ng-submit="search(searchArgs)" id="patron-search-form"
- role="form" class="form-horizontal">
+ role="form" class="form-horizontal" autocomplete="off">
<div class="form-group">
<div class="col-md-8">
<input type="text" id="login-username" class="form-control"
focus-me="focusMe" select-me="focusMe"
- placeholder="Username" ng-model="args.username"/>
+ placeholder="Username" ng-model="args.username" autocomplete="username" autocapitalize="off"/>
</div>
</div>
<label class="col-md-4 control-label" for="login-password">[% l('Password') %]</label>
<div class="col-md-8">
<input type="password" id="login-password" class="form-control"
- placeholder="Password" ng-model="args.password"/>
+ placeholder="Password" ng-model="args.password" autocomplete="current-password"/>
</div>
</div>