[% USE raw %] [% USE Asset %] [% USE AuthorisedValues %] [% USE Categories %] [% USE Koha %] [% USE Branches %] [% USE KohaDates %] [% USE Math %] [% USE AdditionalContents %] [% SET OpacNav = AdditionalContents.get( location => "OpacNav", lang => lang, library => logged_in_user.branchcode, blocktitle => 0 ) %] [% SET userupdateview = 1 %] [% BLOCK streetnumber %] [% UNLESS hidden.defined('streetnumber') %]
  • Required
  • [% END %] [% END %] [% INCLUDE 'doc-head-open.inc' %] [% IF action == 'edit' %]Update your personal details[% ELSE %]Register a new account[% END %] › [% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha online[% END %] catalog [% INCLUDE 'doc-head-close.inc' %] [% BLOCK cssinclude %][% END %] [% IF action == 'edit' %] [% INCLUDE 'bodytag.inc' bodyid='opac-patron-update' %] [% ELSE %] [% END %] [% INCLUDE 'masthead.inc' %]

    Your personal details

    [% IF action == 'edit' %]
    [% ELSE %]
    [% END %] [% IF action == 'edit' %] [% UNLESS OPACPatronDetails %]
    To make changes to your record please contact the library.
    [% END %] [% IF nochanges %]
    No changes were made.
    [% END %] [% END %] [% IF empty_mandatory_fields %]
    You have not filled out all required fields. Please fill in all missing fields and resubmit.
    [% END %] [% IF invalid_form_fields %]
    The following fields contain invalid information:
      [% FOREACH field IN invalid_form_fields %] [% IF field == "email" %]
    • Contact information: primary email address
    • [% END %] [% IF field == "emailpro" %]
    • Contact information: secondary email address
    • [% END %] [% IF field == "B_email" %]
    • Alternate address information: email address
    • [% END %] [% IF field == "password_match" %]
    • Passwords do not match! password
    • [% END %] [% IF field == "password_too_short" %]
    • Password must be at least [% patron.category.effective_min_password_length | html %] characters long.
    • [% END %] [% IF field == "password_too_weak" %]
    • Password must contain at least one digit, one lowercase and one uppercase.
    • [% END %] [% IF field == "password_has_whitespaces" %]
    • Password must not contain leading or trailing whitespaces.
    • [% END %] [% IF field == "duplicate_email" %]
    • This email address already exists in our database.
    • [% END %] [% IF field == "email_match" %]
    • Emails do not match! confirm email address
    • [% END %] [% END %]
    Please correct and resubmit.
    [% END %] [% IF cardnumber_wrong_length || cardnumber_already_exists %]
    [% IF cardnumber_wrong_length %] The entered card number is the wrong length. [% ELSIF cardnumber_already_exists %] The entered card number is already in use. [% END %] Please correct and resubmit.
    [% END %] [% IF failed_captcha %]
    You typed in the wrong characters in the box before submitting. Please try again.
    [% END %] [% IF has_guarantor_flag && !Koha.Preference('OPACPrivacy') && ( Koha.Preference('AllowPatronToSetCheckoutsVisibilityForGuarantor') || Koha.Preference('AllowPatronToSetFinesVisibilityForGuarantor') ) %]
    Privacy
      [% IF Koha.Preference('AllowPatronToSetCheckoutsVisibilityForGuarantor') %]
    1. Update
    2. [% END %] [% IF Koha.Preference('AllowPatronToSetFinesVisibilityForGuarantor') %]
    3. Update
    4. [% END %]
    5. Guaranteed by [% FOREACH gr IN patron.guarantor_relationships %] [% SET g = gr.guarantor %] [% g.firstname | html %] [% g.surname | html %] [%- IF ! loop.last %], [% END %] [% END %]
    [% END %] [% IF ( extended_unique_id_failed_code ) %]
    [% extended_unique_id_failed_description _ ': ' | html %] Value is already in use ([% extended_unique_id_failed_value | html %])
    [% END %]
    [% FOREACH field = ['streetnumber' 'streettype' 'cardnumber' 'branchcode' 'categorycode' 'title' 'surname' 'firstname' 'dateofbirth' 'initials' 'othernames' 'address' 'address2' 'city' 'state' 'zipcode' 'country' 'phone' 'phonepro' 'mobile' 'email' 'emailpro' 'fax' 'B_streettype' 'B_address' 'B_address2' 'B_city' 'B_state' 'B_zipcode' 'B_country' 'B_phone' 'B_email' 'contactnote' 'altcontactsurname' 'altcontactfirstname' 'altcontactaddress1' 'altcontactaddress2' 'altcontactaddress3' 'altcontactstate' 'altcontactzipcode' 'altcontactcountry' 'altcontactphone' 'password' ] %] [% IF mandatory.defined( field ) %] [% SET required.$field = 'required' %] [% END %] [% END %] [%# Following on one line for translatability %] [% UNLESS ( hidden.defined('cardnumber') || ( !borrower && Koha.Preference('autoMemberNum') ) ) && hidden.defined('dateexpiry') && hidden.defined('branchcode') && hidden.defined('categorycode') %]
    Library
      [% UNLESS hidden.defined('cardnumber') || ( !borrower && Koha.Preference('autoMemberNum') ) %]
    1. [% IF borrower && !(cardnumber_wrong_length || cardnumber_already_exists) && action == 'edit' %] [% borrower.cardnumber | html %] [% ELSE %] [% IF minlength_cardnumber == maxlength_cardnumber %]
      Required
      Card number must be exactly [% minlength_cardnumber | html %] characters.
      [% ELSIF minlength_cardnumber && maxlength_cardnumber %]
      Required
      Card number must be between [% minlength_cardnumber | html %] and [% maxlength_cardnumber | html %] characters.
      [% ELSIF maxlength_cardnumber %]
      Required
      Card number can be up to [% maxlength_cardnumber | html %] characters.
      [% ELSE %]
      Required
      There is no minimum or maximum character length.
      [% END %] [% END %]
    2. [% END %] [% UNLESS hidden.defined('dateexpiry') %]
    3. [% borrower.dateexpiry | $KohaDates %]
    4. [% END %] [% UNLESS hidden.defined('branchcode') %]
    5. [% IF ( libraries.size > 1 ) %]
      Required
      [% ELSE %] Home library: [% FOREACH l IN libraries %] [% l.branchname | html %] [% END %] [% END %]
    6. [% END %] [% UNLESS hidden.defined('categorycode') %]
    7. [% IF borrower %] [% Categories.GetName( borrower.categorycode ) | html %] [% ELSE %]
      Required
      [% END %]
    8. [% END %]
    [% END # / defined 'branchcode' %] [%# Following on one line for translatability %] [% UNLESS hidden.defined('title') && hidden.defined('surname') && hidden.defined('firstname') && hidden.defined('dateofbirth') && hidden.defined('initials') && hidden.defined('othernames') && hidden.defined('sex') %]
    Identity
      [% UNLESS hidden.defined('title') || !Koha.Preference('BorrowersTitles') %]
    1. Required
    2. [% END %] [% UNLESS hidden.defined('surname') %]
    3. Required
    4. [% END %] [% UNLESS hidden.defined('firstname') %]
    5. Required
    6. [% END %] [% UNLESS hidden.defined('dateofbirth') %]
    7. [% UNLESS action == 'edit' && !OPACPatronDetails %] [% UNLESS ( mandatory.defined('dateofbirth') ) %] Clear date [% END %] [% END %]
      Required
    8. [% END %] [% UNLESS hidden.defined('initials') %]
    9. Required
    10. [% END %] [% UNLESS hidden.defined('othernames') %]
    11. Required
    12. [% END %] [% UNLESS hidden.defined('sex') %]
    13. [% IF borrower.sex == 'F' %] [% ELSE %] [% END %] [% IF borrower.sex == 'M' %] [% ELSE %] [% END %] [% IF borrower.sex == 'O' %] [% ELSE %] [% END %] [% IF borrower.sex == '' %] [% ELSE %] [% END %]
    14. [% END %]
    [% IF ( display_patron_image ) %]

    [% END %]
    [% END # /UNLESS fields hidden %] [%# Following on one line for translatability %] [% UNLESS hidden.defined('streetnumber') && hidden.defined('address') && hidden.defined('address2') && hidden.defined('city') && hidden.defined('state') && hidden.defined('zipcode') && hidden.defined('country') %]
    Main address
      [% IF Koha.Preference('AddressFormat') != 'de' %][% INCLUDE streetnumber %][% END %] [% SET roadtypes = AuthorisedValues.GetAuthValueDropbox('ROADTYPE') %] [% IF roadtypes %] [% UNLESS hidden.defined('streettype') %]
    1. Required
    2. [% END %] [% END %] [% UNLESS hidden.defined('address') %]
    3. Required
    4. [% END %] [% IF Koha.Preference('AddressFormat') == 'de' %][% INCLUDE streetnumber %][% END %] [% UNLESS hidden.defined('address2') %]
    5. Required
    6. [% END %] [% UNLESS hidden.defined('city') %]
    7. Required
    8. [% END %] [% UNLESS hidden.defined('state') %]
    9. Required
    10. [% END %] [% UNLESS hidden.defined('zipcode') %]
    11. Required
    12. [% END %] [% UNLESS hidden.defined('country') %]
    13. Required
    14. [% END %]
    [% END %] [%# Following on one line for translatability %] [% UNLESS hidden.defined('phone') && hidden.defined('phonepro') && hidden.defined('mobile') && hidden.defined('email') && hidden.defined('emailpro') && hidden.defined('fax') %]
    Contact information
      [% UNLESS hidden.defined('phone') %]
    1. Required
    2. [% END %] [% UNLESS hidden.defined('phonepro') %]
    3. Required
    4. [% END %] [% UNLESS hidden.defined('mobile') %]
    5. Required
    6. [% END %] [% UNLESS hidden.defined('email') %]
    7. Required
    8. [% IF action != 'edit' and Koha.Preference('PatronSelfRegistrationConfirmEmail') %]
    9. Required
    10. [% END %] [% END %] [% UNLESS hidden.defined('emailpro') %]
    11. Required
    12. [% END %] [% UNLESS hidden.defined('fax') %]
    13. Required
    14. [% END %] [% UNLESS hidden.defined('primary_contact_method') %]
    15. [% IF ( mandatory.defined('primary_contact_method') ) %] [% ELSE %] [% END %] [% IF ( mandatory.defined('primary_contact_method') ) %]Required[% END %]
    16. [% END %]
    [% END %] [%# Following on one line for translatability %] [% UNLESS hidden.defined('B_address') && hidden.defined('B_address2') && hidden.defined('B_city') && hidden.defined('B_state') && hidden.defined('B_zipcode') && hidden.defined('B_country') && hidden.defined('B_phone') && hidden.defined('B_email') && hidden.defined('contactnote') %]
    Alternate address
      [% SET roadtypes = AuthorisedValues.GetAuthValueDropbox('ROADTYPE') %] [% IF roadtypes %] [% UNLESS hidden.defined('B_streettype') %]
    1. Required
    2. [% END %] [% END %] [% UNLESS hidden.defined('B_address') %]
    3. Required
    4. [% END %] [% UNLESS hidden.defined('B_address2') %]
    5. Required
    6. [% END %] [% UNLESS hidden.defined('B_city') %]
    7. Required
    8. [% END %] [% UNLESS hidden.defined('B_state') %]
    9. Required
    10. [% END %] [% UNLESS hidden.defined('B_zipcode') %]
    11. Required
    12. [% END %] [% UNLESS hidden.defined('B_country') %]
    13. Required
    14. [% END %] [% UNLESS hidden.defined('B_phone') %]
    15. Required
    16. [% END %] [% UNLESS hidden.defined('B_email') %]
    17. Required
    18. [% END %] [% UNLESS hidden.defined('contactnote') %]
    19. Required
    20. [% END %]
    [% END %] [%# Following on one line for translatability %] [% UNLESS hidden.defined('altcontactsurname') && hidden.defined('altcontactfirstname') && hidden.defined('altcontactaddress1') && hidden.defined('altcontactaddress2') && hidden.defined('altcontactaddress3') && hidden.defined('altcontactstate') && hidden.defined('altcontactzipcode') && hidden.defined('altcontactcountry') && hidden.defined('altcontactphone') %]
    Alternate contact
      [% UNLESS hidden.defined('altcontactsurname') %]
    1. Required
    2. [% END %] [% UNLESS hidden.defined('altcontactfirstname') %]
    3. Required
    4. [% END %] [% UNLESS hidden.defined('altcontactaddress1') %]
    5. Required
    6. [% END %] [% UNLESS hidden.defined('altcontactaddress2') %]
    7. Required
    8. [% END %] [% UNLESS hidden.defined('altcontactaddress3') %]
    9. Required
    10. [% END %] [% UNLESS hidden.defined('altcontactstate') %]
    11. Required
    12. [% END %] [% UNLESS hidden.defined('altcontactzipcode') %]
    13. Required
    14. [% END %] [% UNLESS hidden.defined('altcontactcountry') %]
    15. Required
    16. [% END %] [% UNLESS hidden.defined('altcontactphone') %]
    17. Required
    18. [% END %]
    [% END %] [% UNLESS action == 'edit' || hidden.defined('password') %]
    Password
    [% IF patron %] [% IF ( patron.category.effective_require_strong_password ) %]

    Your password must contain at least [% patron.category.effective_min_password_length | html %] characters, including UPPERCASE, lowercase and numbers.

    [% ELSE %]

    Your password must be at least [% patron.category.effective_min_password_length | html %] characters long.

    [% END %] [% ELSE %]

    [% END %] [% UNLESS mandatory.defined('password') %]

    If you do not enter a password a system generated password will be created.

    [% END %]
    1. Required
    2. Required
    [% END %] [% IF ( Koha.Preference('ExtendedPatronAttributes') && patron_attribute_classes.size && ! ( action == 'new' && Koha.Preference('PatronSelfRegistrationVerifyByEmail') ) ) %]
    [% FOREACH pa_class IN patron_attribute_classes %] [% IF pa_class.class %]
    [% pa_class.lib | html %] [% ELSE %]
    Additional information [% END %]
      [% FOREACH pa IN pa_class.items %] [% FOREACH pa_value IN pa.values %] [% IF loop.first %][% END %] [% form_id = 'patron-attr-' _ Math.int( Math.rand(1000000) ) %]
    1. [% IF pa.type.mandatory && pa.type.opac_editable %] [% ELSE %] [% END %] [% IF pa.type.opac_editable %] [% IF ( pa.type.authorised_value_category ) %] [% ELSE %] [% END %] [% IF pa.type.mandatory %]
      Required
      [% END %] Clear [% IF ( pa.type.repeatable ) %] New [% END %] [% ELSE %] [% IF ( pa.type.authorised_value_category ) %] [% AuthorisedValues.GetByCode( pa.type.authorised_value_category, pa_value, 1 ) | html_line_break %] [% ELSE %] [% pa_value | html_line_break %] [% END %] [% END %]
    2. [% END %] [% END %]
    [% END %]
    [% END %] [% IF Koha.Preference('GDPR_Policy') && action != 'edit' %]
    [% END %] [% UNLESS action == 'edit' %]
    Verification
    1. Required
      Please type the following characters into the preceding box: [% captcha | html %]
    [% END %]
    [% IF action == 'edit' %] [% IF OPACPatronDetails %]
    [% END %] [% ELSE %]
    [% END %]
    [% INCLUDE 'opac-bottom.inc' %] [% BLOCK jsinclude %] [% INCLUDE 'validator-strings.inc' %] [% Asset.js("lib/jquery/plugins/jquery.validate.min.js") | $raw %] [% INCLUDE 'calendar.inc' %] [% PROCESS 'password_check.inc' new_password => 'borrower_password', category_selector => '#borrower_categorycode', RequireStrongPassword => patron ? patron.category.effective_require_strong_password : defaultCategory.effective_require_strong_password, minPasswordLength => patron ? patron.category.effective_min_password_length : defaultCategory.effective_min_password_length %] [% END %]