diff --git a/app/models/member.rb b/app/models/member.rb
index 92e1228d446..5e5c5b39857 100644
--- a/app/models/member.rb
+++ b/app/models/member.rb
@@ -126,7 +126,7 @@ class Member < ApplicationRecord
end
def self.newest_first
- order "#{table_name}.created_at DESC"
+ order(created_at: :desc)
end
protected
diff --git a/app/models/news.rb b/app/models/news.rb
index 5ae5b9a067e..ad65e03028a 100644
--- a/app/models/news.rb
+++ b/app/models/news.rb
@@ -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 = {})
diff --git a/frontend/src/app/shared/components/grids/widgets/news/news.component.html b/frontend/src/app/shared/components/grids/widgets/news/news.component.html
index d82ef9f8717..4c2dd0b5ea7 100644
--- a/frontend/src/app/shared/components/grids/widgets/news/news.component.html
+++ b/frontend/src/app/shared/components/grids/widgets/news/news.component.html
@@ -6,6 +6,4 @@
[resource]="resource" />
-
-
-
+
diff --git a/frontend/src/app/shared/components/grids/widgets/project-status-beta/project-status-beta.component.html b/frontend/src/app/shared/components/grids/widgets/project-status-beta/project-status-beta.component.html
index 578f40e907e..1d0e28d6a65 100644
--- a/frontend/src/app/shared/components/grids/widgets/project-status-beta/project-status-beta.component.html
+++ b/frontend/src/app/shared/components/grids/widgets/project-status-beta/project-status-beta.component.html
@@ -10,6 +10,4 @@
[resource]="resource" />
-
-
-
+
diff --git a/frontend/src/app/shared/components/grids/widgets/subprojects/subprojects.component.html b/frontend/src/app/shared/components/grids/widgets/subprojects/subprojects.component.html
index d82ef9f8717..4c2dd0b5ea7 100644
--- a/frontend/src/app/shared/components/grids/widgets/subprojects/subprojects.component.html
+++ b/frontend/src/app/shared/components/grids/widgets/subprojects/subprojects.component.html
@@ -6,6 +6,4 @@
[resource]="resource" />
-
-
-
+
diff --git a/modules/overviews/app/components/overviews/widgets/members_component.html.erb b/modules/overviews/app/components/overviews/widgets/members_component.html.erb
index e19ca7b58d2..825f7b87d23 100644
--- a/modules/overviews/app/components/overviews/widgets/members_component.html.erb
+++ b/modules/overviews/app/components/overviews/widgets/members_component.html.erb
@@ -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
%>
diff --git a/modules/overviews/app/components/overviews/widgets/members_component.rb b/modules/overviews/app/components/overviews/widgets/members_component.rb
index 9b41bfaa1d6..9e3ac0edf61 100644
--- a/modules/overviews/app/components/overviews/widgets/members_component.rb
+++ b/modules/overviews/app/components/overviews/widgets/members_component.rb
@@ -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
diff --git a/modules/overviews/app/components/overviews/widgets/news_component.rb b/modules/overviews/app/components/overviews/widgets/news_component.rb
index c434f564d9e..d477cb021bf 100644
--- a/modules/overviews/app/components/overviews/widgets/news_component.rb
+++ b/modules/overviews/app/components/overviews/widgets/news_component.rb
@@ -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
diff --git a/modules/overviews/app/components/overviews/widgets/news_component/item_component.html.erb b/modules/overviews/app/components/overviews/widgets/news_component/item_component.html.erb
index ed0be9a0b55..fa9055dbe23 100644
--- a/modules/overviews/app/components/overviews/widgets/news_component/item_component.html.erb
+++ b/modules/overviews/app/components/overviews/widgets/news_component/item_component.html.erb
@@ -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
)
diff --git a/modules/overviews/spec/components/overviews/widgets/members_component_spec.rb b/modules/overviews/spec/components/overviews/widgets/members_component_spec.rb
index 34905ad9469..1bc94a7e234 100644
--- a/modules/overviews/spec/components/overviews/widgets/members_component_spec.rb
+++ b/modules/overviews/spec/components/overviews/widgets/members_component_spec.rb
@@ -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
diff --git a/modules/overviews/spec/controllers/overviews/widgets/members_controller_spec.rb b/modules/overviews/spec/controllers/overviews/widgets/members_controller_spec.rb
index 9047d3fb32e..6af21db724f 100644
--- a/modules/overviews/spec/controllers/overviews/widgets/members_controller_spec.rb
+++ b/modules/overviews/spec/controllers/overviews/widgets/members_controller_spec.rb
@@ -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
diff --git a/modules/overviews/spec/permissions/widgets/members_spec.rb b/modules/overviews/spec/permissions/widgets/members_spec.rb
index e201bfae510..311d651b34b 100644
--- a/modules/overviews/spec/permissions/widgets/members_spec.rb
+++ b/modules/overviews/spec/permissions/widgets/members_spec.rb
@@ -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