<% if params[:status] == 'archived' %>
<%= t('archived_users') %>
<% elsif params[:status] == 'integration' %>
<%= t('embedding_users') %>
<% else %>
<%= t('users') %>
<% end %>
<% if params[:status].blank? %>
<% if can?(:create, User.new(account: current_account)) %>
<%= link_to new_user_path, class: 'shrink-0 md:order-3 btn btn-primary btn-md gap-2', title: t('new_user'), data: { turbo_frame: 'modal' } do %>
<%= svg_icon('plus', class: 'w-6 h-6') %>
<%= t('new') %>
<%= t('new_user') %>
<% end %>
<% else %>
<%= link_to '#', class: 'btn btn-primary btn-md gap-2 btn-disabled', title: t('new_user'), data: { turbo_frame: 'modal' } do %>
<%= svg_icon('plus', class: 'w-6 h-6') %>
<%= t('new') %>
<%= t('new_user') %>
<% end %>
<% end %>
<% end %>
<% if params[:status].blank? && can?(:create, User.new(account: current_account)) %>
<%= render 'users/extra_buttons' %>
<% end %>
<% @users.each do |user| %>
<% can_edit = params[:status].blank? && can?(:update, user) && user.archived_at.blank? %>
<% can_remove = params[:status] != 'archived' && can?(:destroy, user) && user != current_user %>
<% can_unarchive = params[:status] == 'archived' && can?(:create, user) && user != current_user && user.archived_at? %>
<%= user.initials.presence || user.email.first.upcase %>
<%= user.full_name.presence || user.email %>
<%= t(user.role) %>
<% if user.try(:pending_reconfirmation?) %>
<%= user.unconfirmed_email %> (<%= t('unconfirmed') %>)
<% elsif user.full_name.present? %>
<%= user.email %>
<% end %>
<% if can_edit || can_remove || can_unarchive %>
<% if can_edit %>
-
<%= link_to edit_user_path(user), class: 'flex items-center gap-2', data: { turbo_frame: 'modal' } do %>
<%= svg_icon('pencil', class: 'w-5 h-5 flex-shrink-0') %>
<%= t('edit') %>
<% end %>
<% end %>
<% if can_remove %>
-
<%= button_to '', user_path(user), method: :delete, form: { id: dom_id(user, :remove) }, form_class: 'hidden' %>
<% end %>
<% if can_unarchive %>
-
<%= button_to '', user_path(user), method: :put, params: { user: { archived_at: nil } }, form: { id: dom_id(user, :unarchive) }, form_class: 'hidden' %>
<% end %>
<% end %>
<% end %>
|
<%= t('name') %>
|
<%= t('email') %>
|
<%= t('role') %>
|
<%= t('last_session') %>
|
|
<% @users.each do |user| %>
|
<%= user.full_name %>
|
<% if user.try(:pending_reconfirmation?) %>
<%= user.unconfirmed_email %>
(<%= t('unconfirmed') %>)
<% else %>
<%= user.email %>
<% end %>
|
<%= t(user.role) %>
|
<%= user.current_sign_in_at ? l(user.current_sign_in_at.in_time_zone(current_account.timezone), format: :short, locale: current_account.locale) : '-' %>
|
<% if params[:status].blank? && can?(:update, user) && user.archived_at.blank? %>
<%= link_to edit_user_path(user), class: 'btn btn-outline btn-xs', title: t('edit'), data: { turbo_frame: 'modal' } do %>
<%= t('edit') %>
<% end %>
<% end %>
<% if params[:status] != 'archived' && can?(:destroy, user) && user != current_user %>
<%= button_to user_path(user), method: :delete, class: 'btn btn-outline btn-error btn-xs', title: t('remove'), data: { turbo_confirm: t('are_you_sure_') } do %>
<%= t('remove') %>
<% end %>
<% end %>
<% if params[:status] == 'archived' && can?(:create, user) && user != current_user && user.archived_at? %>
<%= button_to user_path(user), method: :put, params: { user: { archived_at: nil } }, class: 'btn btn-outline btn-xs', title: t('unarchive'), data: { turbo_confirm: t('are_you_sure_') } do %>
<%= t('unarchive') %>
<% end %>
<% end %>
|
<% end %>
<% if @pagy.pages > 1 %>
<%= render 'shared/pagination', pagy: @pagy, items_name: 'users', left_additional_html: render('bottom_links') %>
<% else %>
<%= render 'bottom_links' %>
<% end %>