{% import 'macros/form.html' as form %}

<form id="user-edit-form" class="dataset-form" method="post" action="{{ action }}" enctype="multipart/form-data">
  {{ form.errors(error_summary) }}

  <fieldset>
    <legend>{{ _('Change details') }}</legend>
    {{ form.input('name', label=_('Username'), id='field-username', value=data.name, error=errors.name, classes=['control-medium'], attrs={'readonly': '', 'class': 'form-control'}) }}

    {{ form.input('fullname', label=_('Full name'), id='field-fullname', value=data.fullname, error=errors.fullname, placeholder=_('eg. Joe Bloggs'), classes=['control-medium']) }}

    {{ form.input('email', label=_('Email'), id='field-email', type='email', value=data.email, error=errors.email, placeholder=_('eg. joe@example.com'), classes=['control-medium'], is_required=true) }}

    {{ form.markdown('about', label=_('About'), id='field-about', value=data.about, error=errors.about, placeholder=_('A little information about yourself')) }}

    {% if show_email_notifications %}
      {% call form.checkbox('activity_streams_email_notifications', label=_('Subscribe to notification emails'), id='field-activity-streams-email-notifications', value=True, checked=g.userobj.activity_streams_email_notifications) %}
      {% set helper_text = _("You will receive notification emails from {site_title}, e.g. when you have new activities on your dashboard."|string) %}
      {{ form.info(helper_text.format(site_title=g.site_title), classes=['info-help-tight']) }}
      {% endcall %}
    {% endif %}

    {% set is_upload = data.image_url and not data.image_url.startswith('http') %}
    {% set is_url = data.image_url and data.image_url.startswith('http') %}

    {{ form.image_upload(data, errors, is_upload_enabled=h.uploads_enabled(), is_url=is_url, is_upload=is_upload, upload_label=_('Profile picture'), url_label=_('Profile picture URL') ) }}

  </fieldset>

  <fieldset>
    <legend>{{ _('Change password') }}</legend>
    {{ form.input('old_password',
                  type='password',
                  label=_('Sysadmin Password') if is_sysadmin else _('Old Password'),
                  id='field-password-old',
                  value=data.oldpassword,
                  error=errors.oldpassword,
                  classes=['control-medium'],
                  attrs={'autocomplete': 'off', 'class': 'form-control'}
                  ) }}

    {{ form.input('password1', type='password', label=_('Password'), id='field-password', value=data.password1, error=errors.password1, classes=['control-medium'], attrs={'autocomplete': 'off', 'class': 'form-control'} ) }}

    {{ form.input('password2', type='password', label=_('Confirm Password'), id='field-password-confirm', value=data.password2, error=errors.password2, classes=['control-medium'], attrs={'autocomplete': 'off', 'class': 'form-control'}) }}
  </fieldset>

  <div class="form-actions">
    {% block delete_button %}
      {% if h.check_access('user_delete', {'id': data.id})  %}
        <a class="btn btn-danger pull-left" href="{% url_for 'user_delete', id=data.id %}" data-module="confirm-action" data-module-content="{{ _('Are you sure you want to delete this User?') }}">{% block delete_button_text %}{{ _('Delete') }}{% endblock %}</a>
      {% endif %}
    {% endblock %}
    {% block generate_button %}
      {% if h.check_access('user_generate_apikey', {'id': data.id})  %}
        <a class="btn btn-warning" href="{% url_for 'user.generate_apikey', id=data.id %}" data-module="confirm-action" data-module-content="{{ _('Are you sure you want to regenerate the API key?') }}">{% block generate_button_text %}{{ _('Regenerate API Key') }}{% endblock %}</a>
      {% endif %}
    {% endblock %}
    {{ form.required_message() }}
    <button class="btn btn-primary" type="submit" name="save">{{ _('Update Profile') }}</button>
  </div>
</form>
