Fine tune members widget and remove doubled body class which caused additional spacing

This commit is contained in:
Henriette Darge
2025-09-24 15:23:17 +02:00
parent 78f310789d
commit ad5a86f8e9
12 changed files with 35 additions and 48 deletions
+1 -1
View File
@@ -126,7 +126,7 @@ class Member < ApplicationRecord
end
def self.newest_first
order "#{table_name}.created_at DESC"
order(created_at: :desc)
end
protected
+1 -2
View File
@@ -89,9 +89,8 @@ class News < ApplicationRecord
end
end
# table_name shouldn't be needed :(
def self.newest_first
order "#{table_name}.created_at DESC"
order(created_at: :desc)
end
def new_comment(attributes = {})
@@ -6,6 +6,4 @@
[resource]="resource" />
</widget-header>
<div class="op-widget-box--body -allow-inner-overflow">
<turbo-frame [id]="frameId" [src]="src" loading="lazy" />
</div>
<turbo-frame [id]="frameId" [src]="src" loading="lazy" />
@@ -10,6 +10,4 @@
[resource]="resource" />
</widget-header>
<div class="op-widget-box--body -allow-inner-overflow">
<turbo-frame [id]="frameId" [src]="src" />
</div>
<turbo-frame [id]="frameId" [src]="src" loading="lazy" />
@@ -6,6 +6,4 @@
[resource]="resource" />
</widget-header>
<div class="op-widget-box--body -allow-inner-overflow">
<turbo-frame [id]="frameId" [src]="src" loading="lazy" />
</div>
<turbo-frame [id]="frameId" [src]="src" loading="lazy" />
@@ -29,17 +29,21 @@ See COPYRIGHT and LICENSE files for more details.
<%=
widget_wrapper do
flex_layout do |flex|
@newest_members.each do |item|
flex.with_row(mb: 3) do
render Users::AvatarComponent.new(user: item.principal, size: :mini, link: false, show_name: true)
end
end
flex.with_row do
render Primer::Beta::Link.new(href: project_members_path(@project)) do
I18n.t(:"overviews.widgets.members.view_all_members")
if @newest_members.present?
flex_layout do |flex|
@newest_members.each do |item|
flex.with_row(mb: 3) do
render Users::AvatarComponent.new(user: item.principal, size: :mini, link: false, show_name: true)
end
end
flex.with_row do
render Primer::Beta::Link.new(href: project_members_path(@project)) do
I18n.t(:"overviews.widgets.members.view_all_members")
end
end
end
else
render(Primer::Beta::Text.new(color: :subtle)) { t(:"js.grid.widgets.members.no_results") }
end
end
%>
@@ -33,19 +33,15 @@ module Overviews
class MembersComponent < Grids::WidgetComponent
MEMBERS_LIMIT = 5
attr_reader :project, :current_user
param :project
def initialize(project)
super()
def initialize(*)
super
@project = project
@current_user = current_user
@members =
if project
project.members.visible(current_user).newest_first
end
@newest_members = @members.limit(MEMBERS_LIMIT).to_a
if project
@members = project.members.visible(current_user).newest_first
@newest_members = @members.limit(MEMBERS_LIMIT).to_a
end
end
def title
@@ -53,7 +49,7 @@ module Overviews
end
def render?
current_user.allowed_in_project?(:view_members, project) && @newest_members.present?
current_user.allowed_in_project?(:view_members, project)
end
end
end
@@ -33,17 +33,11 @@ module Overviews
class NewsComponent < Grids::WidgetComponent
NEWS_LIMIT = 5
include ApplicationHelper
include OpPrimer::ComponentHelpers
include OpTurbo::Streamable
param :project, optional: true
attr_reader :project, :current_user
def initialize(*)
super
def initialize(project)
super()
@project = project
@current_user = current_user
@news =
if project
project.news.visible(current_user).newest_first
@@ -45,7 +45,7 @@ See COPYRIGHT and LICENSE files for more details.
end
layout.with_column do
render(Primer::Beta::Link.new(ml: 1, font_weight: :bold, href: news_path(item))) { item.title }
render(Primer::Beta::Link.new(font_weight: :bold, href: news_path(item))) { item.title }
end
end
)
@@ -51,8 +51,8 @@ RSpec.describe Overviews::Widgets::MembersComponent, type: :component do
let(:user) { create(:admin) }
context "with no members" do
it "does not render" do
expect(rendered_component).not_to have_element "#overviews-widgets-members-component-box"
it "does render" do
expect(rendered_component).to have_content I18n.t(:"js.grid.widgets.members.no_results")
end
end
@@ -30,9 +30,9 @@
require "rails_helper"
RSpec.describe Overviews::Widgets::Members do
RSpec.describe Overviews::Widgets::MembersController do
shared_let(:project) { create(:project) }
shared_let(:user) { create(:user, member_with_permissions: { project => %i[view_member] }) }
shared_let(:user) { create(:user, member_with_permissions: { project => %i[view_members] }) }
current_user { user }
describe "GET #show" do
@@ -34,5 +34,5 @@ require "support/permission_specs"
RSpec.describe Overviews::Widgets::MembersController, "permissions", type: :controller do # rubocop:disable RSpec/EmptyExampleGroup,RSpec/SpecFilePathFormat
include PermissionSpecs
check_permission_required_for("overviews/widgets/members#show", :view_member)
check_permission_required_for("overviews/widgets/members#show", :view_members)
end