<div class="mui-container">
    <div class="mui-panel">
%= form_for $target => (class => 'mui-form') => begin
<div class="mui-textfield">
  % my $name_title = 'Полето „Име за вход“ може да съдържа от 4 до 12 букви, цифри и знаците „.“,„-“ и „$“';
  %= text_field 'login_name', placeholder => $name_title,title=> $name_title
  %= label_for login_name =>'Име за вход', title => $name_title
</div>
% my $l_p_title = 'Създайте случаен таен ключ, като използвате бутона (+).';
<div class="mui-textfield">
  <button id="generate_pass"
      class ="mui-btn mui-btn--small mui-btn--primary mui-btn--fab"
      title="Нов таен ключ" style="float:right;font-weight:700">+</button>
  <%=
  text_field login_password => (
                                readonly    => '',
                                required    => '',
                                size        => 40,
                                title       => $l_p_title,
                                placeholder => $l_p_title,
                                style =>'width:92%'
                               )
  %>
  %= label_for login_password =>'Таен ключ за вход', title => $l_p_title
</div>
<div class="mui-textfield">
  %= text_field first_name => required => 1, size => 40
  %= label_for first_name =>'Име'
</div>
<div class="mui-textfield">
  %= text_field last_name => required => 1, size => 40
  %= label_for last_name =>'Фамилия'
</div>
<div class="mui-textfield">
  %= text_field email => required => 1, size => 40
  %= label_for email =>'Е-поща'
</div>
<div class="mui-textfield">
  %= text_field description =>size => 65, class => 'mui--is-empty mui--is-untouched mui--is-pristine'
  %= label_for description =>'Описание'
</div>
%= select_box disabled => [['Не'=>1],['Да'=>0]], label =>'Действащ'
<div class="mui-textfield">
  %= number_field 'start_date'
  %= label_for start_date => 'Start_date'
</div>
<div class="mui-textfield">
  %= number_field 'stop_date'
  %= label_for stop_date => 'Stop_date'
</div>
  % if($target eq 'update_users' && stash->{id}) {
    <%
    my $groups   = groups->all_with_member(stash->{id});
    my $is_admin = !!groups->is_admin($user->{id});
    $groups = $groups->map(sub {
      return [
        $_->{name} => $_->{id},
        $_->{is_member} ? (checked => undef) : (),
        !$is_admin || ($_->{id} == $user->{group_id}) ? (disabled => '') : ()];
    });
    %>
    <%= checkboxes(groups => $groups, label =>'Множества') %>
    <div class="mui-textfield">
    %= label_for group_id => 'Главно множество'
    <b><%= groups->find_where({id => $users->{group_id}})->{name} %></b>
    %= hidden_field group_id => $users->{group_id}
    </div>

% }
<%= input_tag cancel => 'Отказъ',
    (type=>'reset', class => 'mui-btn mui-btn--secondary', style => 'float :right;') %>
% my $button_txt = $caption eq 'Create' ? 'Създаване':'Записъ';
%= submit_button $button_txt => (class => 'mui-btn mui-btn--raised mui-btn--primary')
% end
<script>
    let same_user = <%=
        ($user->{id} == ($users->{id} || 0)) ? 'true' : 'false'
        %>;
    let form_target = '<%= $target %>';
</script>
%= javascript '/js/CryptoJS-v3.1.2/sha1.js'
%= javascript begin
"use strict";
function generate_password(e) {
  e.preventDefault();
  const name_field = $('[name="login_name"]');
  const passw_field = $('[name="login_password"]');
  if (name_field.val() === "") {
    alert(
      "Моля, въведете име за потребителя," +
        " преди да създадете тайния ключ за вход" +
        " и не го променяйте след това."
    );
    return false;
  }
  let length = 8;
  let charset =
    "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЮЯ" +
    "абвгдежзийклмнопрстуфхцчшщъьюя" +
    "1234567890!@#$%^&*()_+-=[];:,.~/<>";
  let pass = "";
  for (let i = 0, n = charset.length; i < length; ++i) {
    pass += charset.charAt(Math.floor(Math.random() * n));
  }
  if (same_user) {
    pass = prompt(
      `Новият таен ключ за вход е "${pass}" без ограждащите кавички. ` +
        "Състои се от букви от българската азбука, числа и печатаеми знаци. " +
        "Можете да го промените, но го запомнете, защото няма да го видите повече.",
      pass
    );
    if (Boolean(pass)) passw_field.val(pass);
    else return;
  } else {
    let change_pass =
      form_target === "update_users"
        ? confirm(
            "Наистина ли искате да промените тайната дума за вход на " +
              $('[name="login_name"]').val() +
              "?"
          )
        : true;
    if (Boolean(change_pass)) passw_field.val(pass);
    else return;
  }
  const concat_ln_lp = name_field.val() + passw_field.val();
  const passw_sha1 = CryptoJS.SHA1(concat_ln_lp);
  passw_field.val(passw_sha1);
  return;
}

$("#generate_pass").click(generate_password);
% end
    </div>
  </div>