LP1778063: Autocomplete Adjustments user/jboyer/lp1778063_autocomplete
authorJason Boyer <JBoyer@library.in.gov>
Mon, 5 Nov 2018 21:50:29 +0000 (16:50 -0500)
committerJason Boyer <JBoyer@library.in.gov>
Tue, 6 Nov 2018 16:48:20 +0000 (11:48 -0500)
This branch disables autocomplete everywhere except
where it can be beneficial for patrons or staff, such
as hints for password managers, etc.

Signed-off-by: Jason Boyer <JBoyer@library.in.gov>
107 files changed:
Open-ILS/src/templates/opac/browse.tt2
Open-ILS/src/templates/opac/mylist/clear.tt2
Open-ILS/src/templates/opac/mylist/email.tt2
Open-ILS/src/templates/opac/mylist/print.tt2
Open-ILS/src/templates/opac/myopac/circ_history.tt2
Open-ILS/src/templates/opac/myopac/circs.tt2
Open-ILS/src/templates/opac/myopac/holds.tt2
Open-ILS/src/templates/opac/myopac/holds/edit.tt2
Open-ILS/src/templates/opac/myopac/lists.tt2
Open-ILS/src/templates/opac/myopac/main.tt2
Open-ILS/src/templates/opac/myopac/main_payment_form.tt2
Open-ILS/src/templates/opac/myopac/prefs.tt2
Open-ILS/src/templates/opac/myopac/prefs_notify.tt2
Open-ILS/src/templates/opac/myopac/update_email.tt2
Open-ILS/src/templates/opac/myopac/update_password.tt2
Open-ILS/src/templates/opac/myopac/update_username.tt2
Open-ILS/src/templates/opac/parts/advanced/expert.tt2
Open-ILS/src/templates/opac/parts/advanced/numeric.tt2
Open-ILS/src/templates/opac/parts/advanced/search.tt2
Open-ILS/src/templates/opac/parts/login/form.tt2
Open-ILS/src/templates/opac/parts/place_hold.tt2
Open-ILS/src/templates/opac/parts/searchbar.tt2
Open-ILS/src/templates/opac/password_reset.tt2
Open-ILS/src/templates/opac/register.tt2
Open-ILS/src/templates/opac/results.tt2
Open-ILS/src/templates/staff/acq/requests/t_cancel.tt2
Open-ILS/src/templates/staff/acq/requests/t_clear.tt2
Open-ILS/src/templates/staff/acq/requests/t_edit.tt2
Open-ILS/src/templates/staff/acq/requests/t_set_no_hold.tt2
Open-ILS/src/templates/staff/acq/requests/t_set_yes_hold.tt2
Open-ILS/src/templates/staff/admin/actor/org_unit/t_main_tab.tt2
Open-ILS/src/templates/staff/admin/local/actor/edit_closed_dates.tt2
Open-ILS/src/templates/staff/admin/local/autoGridEditor/acas.tt2
Open-ILS/src/templates/staff/admin/local/autoGridEditor/ccat.tt2
Open-ILS/src/templates/staff/admin/local/rating/edit_badge.tt2
Open-ILS/src/templates/staff/admin/serials/t_attr_edit.tt2
Open-ILS/src/templates/staff/admin/t_user_perms_lookup.tt2
Open-ILS/src/templates/staff/cat/bucket/copy/t_apply_tags.tt2
Open-ILS/src/templates/staff/cat/bucket/copy/t_pending.tt2
Open-ILS/src/templates/staff/cat/bucket/record/t_bucket_export.tt2
Open-ILS/src/templates/staff/cat/bucket/record/t_load_shared.tt2
Open-ILS/src/templates/staff/cat/bucket/record/t_search.tt2
Open-ILS/src/templates/staff/cat/bucket/share/t_bucket_create.tt2
Open-ILS/src/templates/staff/cat/bucket/share/t_bucket_edit.tt2
Open-ILS/src/templates/staff/cat/bucket/share/t_load_shared.tt2
Open-ILS/src/templates/staff/cat/catalog/t_choose_vol_target_lib.tt2
Open-ILS/src/templates/staff/cat/catalog/t_conjoined_selector.tt2
Open-ILS/src/templates/staff/cat/catalog/t_request_items.tt2
Open-ILS/src/templates/staff/cat/catalog/t_retrieve_by_authority_id.tt2
Open-ILS/src/templates/staff/cat/catalog/t_retrieve_by_id.tt2
Open-ILS/src/templates/staff/cat/catalog/t_retrieve_by_tcn.tt2
Open-ILS/src/templates/staff/cat/item/index.tt2
Open-ILS/src/templates/staff/cat/item/missing_pieces.tt2
Open-ILS/src/templates/staff/cat/share/t_replace_barcode.tt2
Open-ILS/src/templates/staff/cat/volcopy/t_copy_alerts.tt2
Open-ILS/src/templates/staff/cat/volcopy/t_copy_notes.tt2
Open-ILS/src/templates/staff/cat/volcopy/t_copy_tags.tt2
Open-ILS/src/templates/staff/cat/z3950/t_list.tt2
Open-ILS/src/templates/staff/cat/z3950/t_raw_search.tt2
Open-ILS/src/templates/staff/circ/checkin/t_checkin.tt2
Open-ILS/src/templates/staff/circ/in_house_use/index.tt2
Open-ILS/src/templates/staff/circ/patron/bucket/t_bucket_create.tt2
Open-ILS/src/templates/staff/circ/patron/bucket/t_bucket_edit.tt2
Open-ILS/src/templates/staff/circ/patron/bucket/t_changesets.tt2
Open-ILS/src/templates/staff/circ/patron/bucket/t_delete_all.tt2
Open-ILS/src/templates/staff/circ/patron/bucket/t_load_shared.tt2
Open-ILS/src/templates/staff/circ/patron/bucket/t_pending.tt2
Open-ILS/src/templates/staff/circ/patron/bucket/t_rollback.tt2
Open-ILS/src/templates/staff/circ/patron/bucket/t_update_all.tt2
Open-ILS/src/templates/staff/circ/patron/bucket/t_update_statcats.tt2
Open-ILS/src/templates/staff/circ/patron/t_bcsearch.tt2
Open-ILS/src/templates/staff/circ/patron/t_bills.tt2
Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2
Open-ILS/src/templates/staff/circ/patron/t_credentials.tt2
Open-ILS/src/templates/staff/circ/patron/t_edit.tt2
Open-ILS/src/templates/staff/circ/patron/t_edit_due_date_dialog.tt2
Open-ILS/src/templates/staff/circ/patron/t_new_note_dialog.tt2
Open-ILS/src/templates/staff/circ/patron/t_patron_cards_dialog.tt2
Open-ILS/src/templates/staff/circ/patron/t_patron_groups_dialog.tt2
Open-ILS/src/templates/staff/circ/renew/t_renew.tt2
Open-ILS/src/templates/staff/circ/share/t_abort_transit_dialog.tt2
Open-ILS/src/templates/staff/circ/share/t_bill_patron_dialog.tt2
Open-ILS/src/templates/staff/circ/share/t_cancel_hold_dialog.tt2
Open-ILS/src/templates/staff/circ/share/t_circ_exists_dialog.tt2
Open-ILS/src/templates/staff/circ/share/t_event_override_dialog.tt2
Open-ILS/src/templates/staff/circ/share/t_hold_note_dialog.tt2
Open-ILS/src/templates/staff/circ/share/t_hold_notification_dialog.tt2
Open-ILS/src/templates/staff/circ/share/t_noncat_dialog.tt2
Open-ILS/src/templates/staff/circ/share/t_precat_dialog.tt2
Open-ILS/src/templates/staff/circ/share/t_uncancel_hold_dialog.tt2
Open-ILS/src/templates/staff/serials/t_apply_binding_template.tt2
Open-ILS/src/templates/staff/serials/t_batch_receive.tt2
Open-ILS/src/templates/staff/serials/t_clone_subscription.tt2
Open-ILS/src/templates/staff/serials/t_holding_code_dialog.tt2
Open-ILS/src/templates/staff/serials/t_link_mfhd.tt2
Open-ILS/src/templates/staff/serials/t_notes.tt2
Open-ILS/src/templates/staff/serials/t_prediction_wizard.tt2
Open-ILS/src/templates/staff/serials/t_print_routing_list.tt2
Open-ILS/src/templates/staff/serials/t_receive_alerts.tt2
Open-ILS/src/templates/staff/serials/t_routing_list.tt2
Open-ILS/src/templates/staff/serials/t_select_pattern_dialog.tt2
Open-ILS/src/templates/staff/serials/t_subscription_manager.tt2
Open-ILS/src/templates/staff/share/t_add_copy_alert_dialog.tt2
Open-ILS/src/templates/staff/share/t_copy_alert_editor_dialog.tt2
Open-ILS/src/templates/staff/share/t_fm_record_editor.tt2
Open-ILS/src/templates/staff/share/t_patron_search_form.tt2
Open-ILS/src/templates/staff/t_login.tt2

index dbaaa35..82b31a6 100644 (file)
@@ -44,7 +44,7 @@
         <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 %]" />
 
index 7795c48..95627b7 100644 (file)
@@ -8,7 +8,7 @@
     <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') %]"
index 04a7a3b..c5dfd0e 100644 (file)
@@ -9,7 +9,7 @@
         <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>
index ac53a21..ac3ebd9 100644 (file)
@@ -9,7 +9,7 @@
         <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>
index 1faffe6..e8a5d60 100644 (file)
@@ -46,7 +46,7 @@
             [% IF no_next %] class='invisible' [% END %] >[% l('Next') %]<span class="nav_arrow_fix">&#9658;</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 %]
@@ -64,7 +64,7 @@
     [% 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>
index 1b0683c..a6ec98f 100644 (file)
@@ -39,7 +39,7 @@
     [% 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') %]">
index d881d9f..1239e39 100644 (file)
@@ -59,7 +59,7 @@
     </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>
index 6b567a6..98d7490 100644 (file)
@@ -39,7 +39,7 @@
             <p>
                 <strong>[% l('Status') %]</strong>: [% hold.human_status %]
             </p>
-            <form method="post">
+            <form method="post" autocomplete="off">
                 <table id="hold_editor_table">
                     <tr>
                         <th>
index 3f76517..662103c 100644 (file)
@@ -15,7 +15,7 @@
 <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']) %]" />
index e6d7f13..0daa8fe 100644 (file)
@@ -12,7 +12,7 @@
 [%  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 %]
index 455af6a..8f0cbfa 100644 (file)
@@ -31,7 +31,7 @@
     <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 %]
index 4608f1e..c174cbb 100644 (file)
                         <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 %]
index 47b7f72..d62b307 100644 (file)
@@ -33,7 +33,7 @@
                 <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>
@@ -53,7 +53,7 @@
             <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>
@@ -78,7 +78,7 @@
             <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>
index a729953..142d257 100644 (file)
@@ -28,8 +28,8 @@
     [% 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>
index bef8b99..7975e7f 100644 (file)
     </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>
index 5c32c24..3d0e90c 100644 (file)
 
 [% 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>
index a424bc4..d7be7db 100644 (file)
@@ -1,4 +1,4 @@
-<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"
index f768c10..4b573d0 100644 (file)
@@ -1,4 +1,4 @@
-<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" />
index 1ac3b67..5c60fca 100644 (file)
@@ -2,7 +2,7 @@
     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 -->
index 3146d5b..7ca78ba 100644 (file)
         <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' %]
index c4e7e25..13e6f6a 100644 (file)
@@ -109,7 +109,7 @@ function maybeToggleNumCopies(obj) {
               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') %]
index 1b6b7cf..bcec314 100644 (file)
@@ -31,7 +31,7 @@ END;
 
 <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"/>
index 2856e47..f32f8a0 100644 (file)
                 <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>
index d108651..e503430 100644 (file)
@@ -24,22 +24,22 @@ ctx_org = ctx.physical_loc || ctx.search_ou || ctx.aou_tree.id;
 # 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 
@@ -129,7 +129,7 @@ FOR field_def IN register_fields;
     orig_name = fname;
 
     field_path = fclass _ "." _ fname;
-
     IF fname.match('^pref_');
         # Preferred name fields adopt most visibility, etc.
         # settings from the primary name counterparts.
@@ -144,7 +144,7 @@ FOR field_def IN register_fields;
     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;
@@ -159,7 +159,8 @@ FOR field_def IN register_fields;
         <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>
index 53b8dfd..5868d3b 100644 (file)
@@ -20,7 +20,7 @@
     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">
index ba1db9d..5010122 100644 (file)
@@ -1,6 +1,6 @@
 [% 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()"
index b15206a..687d4d7 100644 (file)
@@ -1,6 +1,6 @@
 [% 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()"
index a62a228..fa262ab 100644 (file)
@@ -1,7 +1,7 @@
 [% 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()"
index 77c5d4e..c2e5ce9 100644 (file)
@@ -1,6 +1,6 @@
 [% 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()"
index 45acd4e..a08c598 100644 (file)
@@ -1,6 +1,6 @@
 [% 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()"
index daba717..cfa6b0f 100644 (file)
@@ -1,6 +1,6 @@
 <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>
index e2579d2..9bc679d 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index 2702366..7ebe871 100644 (file)
@@ -1,6 +1,6 @@
 [% 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" 
index 4ca9b8b..6bbc2cb 100644 (file)
@@ -1,6 +1,6 @@
 [% 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" 
index 9a1426b..0827932 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index 538549f..59178bc 100644 (file)
@@ -8,7 +8,7 @@
     }
 </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">
index 3a23cc5..c2f78de 100644 (file)
@@ -1,4 +1,4 @@
-<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" 
index e218ade..77adcf1 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index 431d2d4..0bf2731 100644 (file)
@@ -1,6 +1,6 @@
 <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"
index 7f09aa4..d505913 100644 (file)
@@ -1,5 +1,5 @@
 <!-- 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" 
index 9aab308..9312709 100644 (file)
@@ -1,5 +1,5 @@
 <!-- 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" 
index 02506bc..f9177a7 100644 (file)
@@ -3,7 +3,7 @@
 <!-- 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"
index 210ab8f..9d63f41 100644 (file)
@@ -1,7 +1,7 @@
 <!-- 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" 
index 81b8cf6..457c880 100644 (file)
@@ -1,5 +1,5 @@
 <!-- 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" 
index 9aab308..9312709 100644 (file)
@@ -1,5 +1,5 @@
 <!-- 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" 
index 0191d70..05a61f9 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index aac05ae..c5e944d 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index f28a521..c3d8051 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index 7a9572a..e7407f7 100644 (file)
@@ -1,6 +1,6 @@
 
 <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"
index 9b0cfa1..ddc4467 100644 (file)
@@ -1,6 +1,6 @@
 
 <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" 
index 5b102b2..ee38402 100644 (file)
@@ -1,6 +1,6 @@
 
 <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" 
index 0a78281..9c865ad 100644 (file)
@@ -52,7 +52,7 @@
 
 <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">
index 387cc4a..267178e 100644 (file)
@@ -27,7 +27,7 @@ s.CIRC_NOT_FOUND =
   </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" 
index f15a831..b5fbdce 100644 (file)
@@ -9,7 +9,7 @@
 <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
index f602ae9..6d23855 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index 007dbcc..84965cd 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index 13194cb..1a73422 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index 9d7ef21..38d3dc5 100644 (file)
@@ -14,7 +14,7 @@
 <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>
@@ -31,7 +31,7 @@
 
 <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') %]"/>
 
index 3ce559c..6542385 100644 (file)
@@ -1,4 +1,4 @@
-<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"
index 31b0b61..37b1ceb 100644 (file)
@@ -50,7 +50,7 @@
 <!-- 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" 
index 5f4e873..9267bad 100644 (file)
@@ -19,7 +19,7 @@
   #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">
index 9068724..0209061 100644 (file)
@@ -1,7 +1,7 @@
 <!-- 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" 
index 852ba46..d335541 100644 (file)
@@ -1,5 +1,5 @@
 <!-- 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" 
index dce5481..87d810e 100644 (file)
@@ -1,5 +1,5 @@
 <!-- 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" 
index 5cb6d92..aa71910 100644 (file)
@@ -14,7 +14,7 @@ progress:before {
 }
 </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" 
index 9aab308..9312709 100644 (file)
@@ -1,5 +1,5 @@
 <!-- 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" 
index 2df627e..8e07583 100644 (file)
@@ -1,4 +1,4 @@
-<form ng-submit="search()">
+<form ng-submit="search()" autocomplete="off">
 <div class="row">
   <div class="col-md-6">
       <div class="input-group">
index 792c5ee..e860e88 100644 (file)
@@ -14,7 +14,7 @@ progress:before {
 }
 </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" 
index d0d12dd..87e97d3 100644 (file)
@@ -14,7 +14,7 @@ progress:before {
 }
 </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" 
index 0102b6f..70202e9 100644 (file)
@@ -14,7 +14,7 @@ progress:before {
 }
 </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" 
index 6a9e8fa..6dbe756 100644 (file)
@@ -1,5 +1,5 @@
 
-<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" 
index 58e3322..9f8850c 100644 (file)
@@ -40,7 +40,7 @@
   </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>
 
@@ -113,7 +113,7 @@ not sure what's up, there. -->
       </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()"/>
index d4fce7c..2c4cb4f 100644 (file)
@@ -2,7 +2,7 @@
 
 <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>
index 1a14bab..9ba25b6 100644 (file)
@@ -4,7 +4,7 @@
       <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" 
index 3a502a7..bb1e783 100644 (file)
@@ -116,6 +116,7 @@ MACRO draw_form_input(cls, field, path, type, disable) BLOCK;
       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 %]')"
@@ -161,6 +162,7 @@ within the "form" by name for validation.
   <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')"
@@ -188,6 +190,7 @@ within the "form" by name for validation.
   <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()" 
index e1384b7..d457a38 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index 6e9919a..99c60bb 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index b171d71..042ef59 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index 7c7f6b0..ebf002f 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index 886e93f..297e0ce 100644 (file)
@@ -8,7 +8,7 @@
 
 <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" 
index df89279..c308bfc 100644 (file)
@@ -1,4 +1,4 @@
-<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" 
index dd10c8b..5abb70b 100644 (file)
@@ -1,5 +1,5 @@
 <!-- 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" 
index ed56d77..b663178 100644 (file)
@@ -1,4 +1,4 @@
-<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" 
index 0e55b1e..2aaa99f 100644 (file)
@@ -1,4 +1,4 @@
-<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">
index 398796f..8662b5e 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index 92113da..a1415d6 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index 01b5b48..3e28dab 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index 345848e..2c4726f 100644 (file)
@@ -1,5 +1,5 @@
 <!-- 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">&times;</button>
index f9944b9..cc93419 100644 (file)
@@ -1,5 +1,5 @@
 <!-- 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">
index bceb1f7..9f1a672 100644 (file)
@@ -1,4 +1,4 @@
-<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" 
index dbdb21d..671b63d 100644 (file)
@@ -1,4 +1,4 @@
-<form ng-submit="ok(args)" role="form">
+<form ng-submit="ok(args)" role="form" autocomplete="off">
 
 <style>
 /* odd/even row styling */
index 00eddac..a31aa1d 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index 038a57f..d3741bf 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index 8346f0c..3815a4a 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index 03820d2..32da41b 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index d0fe48e..9aab244 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index aeb8222..1a081fe 100644 (file)
@@ -18,7 +18,7 @@
   </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">
index e5da6f1..c64b649 100644 (file)
@@ -1,4 +1,4 @@
-<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>
index 28c9b90..42a77bf 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index 1520c5c..7568278 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index 1f900d7..fdc0067 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index ab8b572..3f9514e 100644 (file)
@@ -7,7 +7,7 @@
     [% 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">
index 32c6196..18792a0 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index 81b7a66..d977a42 100644 (file)
@@ -1,4 +1,4 @@
-<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">&times;</button>
index b34fb4c..909ba9a 100644 (file)
@@ -1,4 +1,4 @@
-<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"
index e9de365..e7bd6da 100644 (file)
@@ -6,7 +6,7 @@
 <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">
 
index 0f58cea..f34c6e0 100644 (file)
@@ -17,7 +17,7 @@
               <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>
 
@@ -25,7 +25,7 @@
               <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>