mirror of
https://github.com/docusealco/docuseal
synced 2026-11-08 07:42:32 -05:00
adjust mobile tables
This commit is contained in:
1 parent
9e89cb92a9
commit
e3e5c237d4
9 files changed
+205
-56
No files matched your search
@@ -2,8 +2,8 @@
|
||||
<div class="flex-wrap space-y-4 md:flex md:flex-nowrap md:space-y-0 md:space-x-10">
|
||||
<%= render 'shared/settings_nav' %>
|
||||
<div class="md:flex-grow">
|
||||
<div class="flex flex-col md:flex-row md:flex-wrap gap-2 md:justify-between md:items-end mb-4 min-h-12">
|
||||
<h1 class="text-3xl md:text-4xl font-bold">
|
||||
<div class="flex flex-wrap items-center md:items-end gap-x-4 gap-y-2 mb-4 min-h-12">
|
||||
<h1 class="text-3xl md:text-4xl font-bold truncate min-w-0 mr-auto md:order-1">
|
||||
<% if params[:status] == 'archived' %>
|
||||
<%= t('archived_users') %>
|
||||
<% elsif params[:status] == 'integration' %>
|
||||
@@ -12,30 +12,94 @@
|
||||
<%= t('users') %>
|
||||
<% end %>
|
||||
</h1>
|
||||
<div class="flex flex-col md:flex-row gap-y-2 gap-x-4 md:items-center">
|
||||
<% if params[:status].blank? %>
|
||||
<% if can?(:create, User.new(account: current_account)) %>
|
||||
<%= render 'users/extra_buttons' %>
|
||||
<% if content_for(:add_user_button) %>
|
||||
<%= content_for(:add_user_button) %>
|
||||
<% else %>
|
||||
<%= link_to new_user_path, class: 'btn btn-primary btn-md gap-2 w-full md:w-fit', data: { turbo_frame: 'modal' } do %>
|
||||
<%= svg_icon('plus', class: 'w-6 h-6') %>
|
||||
<span><%= t('new_user') %></span>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<div class="md:tooltip" data-tip="<%= t('contact_your_administrator_to_add_new_users') %>">
|
||||
<%= link_to '#', class: 'btn btn-primary btn-md gap-2 w-full md:w-fit btn-disabled', data: { turbo_frame: 'modal' } do %>
|
||||
<%= svg_icon('plus', class: 'w-6 h-6') %>
|
||||
<span><%= t('new_user') %></span>
|
||||
<% end %>
|
||||
</div>
|
||||
<% 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') %>
|
||||
<span class="md:hidden"><%= t('new') %></span>
|
||||
<span class="hidden md:inline"><%= t('new_user') %></span>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<div class="shrink-0 md:order-3 md:tooltip" data-tip="<%= t('contact_your_administrator_to_add_new_users') %>">
|
||||
<%= 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') %>
|
||||
<span class="md:hidden"><%= t('new') %></span>
|
||||
<span class="hidden md:inline"><%= t('new_user') %></span>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
<% if params[:status].blank? && can?(:create, User.new(account: current_account)) %>
|
||||
<div class="basis-full md:basis-auto md:order-2 flex flex-col md:flex-row gap-y-2 gap-x-4 md:items-center">
|
||||
<%= render 'users/extra_buttons' %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="overflow-x-auto">
|
||||
<div class="md:hidden divide-y divide-base-300">
|
||||
<% @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? %>
|
||||
<div class="flex items-center gap-3 py-4">
|
||||
<span class="flex items-center justify-center w-10 h-10 rounded-full bg-base-300 text-sm">
|
||||
<%= user.initials.presence || user.email.first.upcase %>
|
||||
</span>
|
||||
<div class="flex-1 min-w-0">
|
||||
<div class="flex items-center gap-2">
|
||||
<span class="font-semibold truncate"><%= user.full_name.presence || user.email %></span>
|
||||
<span class="badge badge-info badge-outline badge-sm whitespace-nowrap shrink-0"><%= t(user.role) %></span>
|
||||
</div>
|
||||
<% if user.try(:pending_reconfirmation?) %>
|
||||
<div class="text-sm text-base-content/70 truncate"><%= user.unconfirmed_email %> (<%= t('unconfirmed') %>)</div>
|
||||
<% elsif user.full_name.present? %>
|
||||
<div class="text-sm text-base-content/70 truncate"><%= user.email %></div>
|
||||
<% end %>
|
||||
</div>
|
||||
<% if can_edit || can_remove || can_unarchive %>
|
||||
<native-menu class="<%= 'dropdown dropdown-end' unless turbo_native_app? %>">
|
||||
<label tabindex="0" aria-label="<%= t('more') %>" class="btn btn-ghost btn-circle btn-sm">
|
||||
<%= svg_icon('dots_vertical', class: 'w-5 h-5') %>
|
||||
</label>
|
||||
<ul tabindex="0" class="<%= turbo_native_app? ? 'hidden' : 'z-10 dropdown-content p-2 mt-2 shadow menu bg-base-100 rounded-box min-w-[160px]' %>">
|
||||
<% if can_edit %>
|
||||
<li>
|
||||
<native-menu-action data-icon="pencil" data-label="<%= t('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') %>
|
||||
<span><%= t('edit') %></span>
|
||||
<% end %>
|
||||
</native-menu-action>
|
||||
</li>
|
||||
<% end %>
|
||||
<% if can_remove %>
|
||||
<li>
|
||||
<native-menu-action data-icon="trash" data-label="<%= t('remove') %>" data-destructive="true">
|
||||
<button form="<%= dom_id(user, :remove) %>" class="flex items-center gap-2 w-full text-error" data-turbo-confirm="<%= t('are_you_sure_') %>">
|
||||
<%= svg_icon('trash', class: 'w-5 h-5 flex-shrink-0') %>
|
||||
<span><%= t('remove') %></span>
|
||||
</button>
|
||||
<%= button_to '', user_path(user), method: :delete, form: { id: dom_id(user, :remove) }, form_class: 'hidden' %>
|
||||
</native-menu-action>
|
||||
</li>
|
||||
<% end %>
|
||||
<% if can_unarchive %>
|
||||
<li>
|
||||
<native-menu-action data-icon="rotate" data-label="<%= t('unarchive') %>">
|
||||
<button form="<%= dom_id(user, :unarchive) %>" class="flex items-center gap-2 w-full" data-turbo-confirm="<%= t('are_you_sure_') %>">
|
||||
<%= svg_icon('rotate', class: 'w-5 h-5 flex-shrink-0') %>
|
||||
<span><%= t('unarchive') %></span>
|
||||
</button>
|
||||
<%= button_to '', user_path(user), method: :put, params: { user: { archived_at: nil } }, form: { id: dom_id(user, :unarchive) }, form_class: 'hidden' %>
|
||||
</native-menu-action>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</native-menu>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="hidden md:block overflow-x-auto">
|
||||
<table class="table w-full table-lg rounded-b-none overflow-hidden">
|
||||
<thead class="bg-base-200">
|
||||
<tr class="text-neutral uppercase">
|
||||
|
||||
Reference in new issue
Block a user