Refactor Member Index View Tooltips (#17170)
* Adjusts Member Index View tooltips to include resource type * Adds .compact to the list of resource_types in #format_role_tooltip * Updates users_helper.rb#format_role_tooltip tests * right align tooltip * Update app/views/admin/users/_member_index.html.erb Co-authored-by: Suzanne Aitchison <suzanne@forem.com> Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
This commit is contained in:
parent
8276d1d8c6
commit
bf67ae2fbb
5 changed files with 61 additions and 8 deletions
|
|
@ -51,4 +51,10 @@
|
|||
transition-delay: 0s;
|
||||
}
|
||||
}
|
||||
|
||||
// Variant allowing placement in line with right edge instead of left
|
||||
&.crayons-hover-tooltip--right:after {
|
||||
left: revert;
|
||||
right: 0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,5 +21,15 @@ module Admin
|
|||
"Resource Admin"
|
||||
end
|
||||
end
|
||||
|
||||
def format_role_tooltip(user)
|
||||
if user.super_admin?
|
||||
"Super Admin"
|
||||
elsif user.admin?
|
||||
"Admin"
|
||||
elsif user.single_resource_admin_for?(:any)
|
||||
"Resource Admin: #{user.roles.pluck(:resource_type).compact.join(', ')}"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
<div>
|
||||
<%= render "admin/users/index/status_indicator", user: user %>
|
||||
</div>
|
||||
<span class="c-indicator ml-2 crayons-hover-tooltip" data-tooltip="<%= cascading_high_level_roles(user) %>">
|
||||
<span class="c-indicator ml-2 crayons-hover-tooltip crayons-hover-tooltip--right" data-tooltip="<%= format_role_tooltip(user) %>">
|
||||
<%= cascading_high_level_roles(user) %>
|
||||
</span>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<% if organizations.any? %>
|
||||
<% organizations.each do |organization| %>
|
||||
<span class="crayons-hover-tooltip" data-tooltip="<%= organization.name %>">
|
||||
<span class="crayons-hover-tooltip crayons-hover-tooltip--right" data-tooltip="<%= organization.name %>">
|
||||
<img src="<%= organization.profile_image_url_for(length: 64) %>" width="32" height="32" alt="<%= organization.name %>" class="c-link crayons-logo crayons-logo--l">
|
||||
</span>
|
||||
<% end %>
|
||||
|
|
|
|||
|
|
@ -25,21 +25,23 @@ describe Admin::UsersHelper do
|
|||
end
|
||||
|
||||
describe "#cascading_high_level_roles" do
|
||||
let(:user) { create(:user) }
|
||||
|
||||
it "renders the proper role for a Super Admin" do
|
||||
super_admin = create(:user, :super_admin)
|
||||
role = helper.cascading_high_level_roles(super_admin)
|
||||
user.add_role(:super_admin)
|
||||
role = helper.cascading_high_level_roles(user)
|
||||
expect(role).to eq "Super Admin"
|
||||
end
|
||||
|
||||
it "renders the proper role for an Admin" do
|
||||
admin = create(:user, :admin)
|
||||
role = helper.cascading_high_level_roles(admin)
|
||||
user.add_role(:admin)
|
||||
role = helper.cascading_high_level_roles(user)
|
||||
expect(role).to eq "Admin"
|
||||
end
|
||||
|
||||
it "renders the proper role for a Resource Admin" do
|
||||
resource_admin = create(:user, :single_resource_admin)
|
||||
role = helper.cascading_high_level_roles(resource_admin)
|
||||
user.add_role(:single_resource_admin, Article)
|
||||
role = helper.cascading_high_level_roles(user)
|
||||
expect(role).to eq "Resource Admin"
|
||||
end
|
||||
|
||||
|
|
@ -49,4 +51,39 @@ describe Admin::UsersHelper do
|
|||
expect(role).to be_nil
|
||||
end
|
||||
end
|
||||
|
||||
describe "#format_role_tooltip" do
|
||||
let(:user) { create(:user) }
|
||||
|
||||
it "renders the proper tooltip for a Super Admin" do
|
||||
user.add_role(:super_admin)
|
||||
role = helper.format_role_tooltip(user)
|
||||
expect(role).to eq "Super Admin"
|
||||
end
|
||||
|
||||
it "renders the proper tooltip for an Admin" do
|
||||
user.add_role(:admin)
|
||||
role = helper.format_role_tooltip(user)
|
||||
expect(role).to eq "Admin"
|
||||
end
|
||||
|
||||
it "renders the proper tooltip for a Resource Admin" do
|
||||
user.add_role(:single_resource_admin, Article)
|
||||
role = helper.format_role_tooltip(user)
|
||||
expect(role).to eq "Resource Admin: Article"
|
||||
end
|
||||
|
||||
it "renders the proper, comma-separated tooltip for a Resource Admin with multiple resource_types" do
|
||||
user.add_role(:single_resource_admin, Article)
|
||||
user.add_role(:single_resource_admin, Badge)
|
||||
role = helper.format_role_tooltip(user)
|
||||
expect(role).to eq "Resource Admin: Article, Badge"
|
||||
end
|
||||
|
||||
it "does not render a the resource_type for a Trusted user" do
|
||||
user.add_role(:trusted)
|
||||
role = helper.format_role_tooltip(user)
|
||||
expect(role).to be_nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue