<%= error_messages_for 'user' %>

<div id="user_form">
<!--[form:user]-->
<div class="splitcontent">
<div class="splitcontentleft">
<fieldset class="box tabular">
  <legend><%=l(:label_information_plural)%></legend>
  <p><%= f.text_field :login, :required => true, :size => 25  %></p>
  <p><%= f.text_field :firstname, :required => true %></p>
  <p><%= f.text_field :lastname, :required => true %></p>
  <p><%= f.text_field :mail, :required => true %></p>
  <% unless @user.force_default_language? %>
  <p><%= f.select :language, lang_options_for_select %></p>
  <% end %>
  <% if Setting.openid? %>
  <p><%= f.text_field :identity_url  %></p>
  <% end %>

  <% @user.custom_field_values.each do |value| %>
    <p><%= custom_field_tag_with_label :user, value %></p>
  <% end %>

  <p><%= f.check_box :admin, :disabled => (@user == User.current) %></p>
  <%= call_hook(:view_users_form, :user => @user, :form => f) %>
</fieldset>

<fieldset class="box tabular">
  <legend><%=l(:label_authentication)%></legend>
  <% unless @auth_sources.empty? %>
  <p><%= f.select :auth_source_id, ([[l(:label_internal), ""]] + @auth_sources.collect { |a| [a.name, a.id] }), {}, :onchange => "if (this.value=='') {$('#password_fields').show();} else {$('#password_fields').hide();}" %></p>
  <% end %>
  <div id="password_fields" style="<%= 'display:none;' if @user.auth_source %>">
  <p>
    <%= f.password_field :password, :required => @user.new_record?, :size => 25  %>
    <em class="info"><%= l(:text_caracters_minimum, :count => Setting.password_min_length) %></em>
    <% if Setting.password_required_char_classes.any? %>
      <em class="info"><%= l(:text_characters_must_contain, :character_classes => Setting.password_required_char_classes.collect{|c| l("label_password_char_class_#{c}")}.join(", ")) %></em>
    <% end %>
  </p>
  <p><%= f.password_field :password_confirmation, :required => @user.new_record?, :size => 25  %></p>
  <p><%= f.check_box :generate_password %></p>
  <p><%= f.check_box :must_change_passwd %></p>
  </div>
  <% if Setting.twofa? && !@user.new_record? -%>
  <p>
    <label><%=l :setting_twofa -%></label>
    <% if @user.twofa_active? %>
      <%=l 'twofa_currently_active', twofa_scheme_name: l("twofa__#{@user.twofa_scheme}__name") -%><br/>
      <% if @user == User.current # administrators cannot deactivate their own 2FA without confirmation code %>
        <%= link_to l('button_disable'), { controller: 'twofa', action: 'deactivate_init', scheme: @user.twofa_scheme }, method: :post -%>
      <% else %>
        <%= link_to l('button_disable'), { controller: 'twofa', action: 'admin_deactivate', user_id: @user }, method: :post -%>
      <% end %>
    <% else %>
      <%=l 'twofa_not_active' %>
    <% end %>
  </p>
  <% end -%>
</fieldset>
</div>

<div class="splitcontentright">
<fieldset class="box">
  <legend><%=l(:field_mail_notification)%></legend>
  <%= render :partial => 'users/mail_notifications' %>
</fieldset>

<fieldset class="box tabular">
  <legend><%=l(:label_preferences)%></legend>
  <%= render :partial => 'users/preferences' %>
  <%= call_hook(:view_users_form_preferences, :user => @user, :form => f) %>
</fieldset>
</div>
</div>
</div>
<div style="clear:left;"></div>
<!--[eoform:user]-->

<%= javascript_tag do %>
$(document).ready(function(){
  $('#user_generate_password').change(function(){
    var passwd = $('#user_password, #user_password_confirmation');
    if ($(this).is(':checked')){
      passwd.val('').attr('disabled', true);
    }else{
      passwd.removeAttr('disabled');
    }
  }).trigger('change');
});
<% end %>
