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:
Julianna Tetreault 2022-04-11 09:20:26 -06:00 committed by GitHub
parent 8276d1d8c6
commit bf67ae2fbb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 61 additions and 8 deletions

View file

@ -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;
}
}

View file

@ -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

View file

@ -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>

View file

@ -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 %>

View file

@ -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