mirror of
https://github.com/opf/openproject.git
synced 2026-06-14 03:30:14 +00:00
[#69599] Do not show News widget when module deactivated
https://community.openproject.org/work_packages/69599
This commit is contained in:
@@ -28,13 +28,13 @@ See COPYRIGHT and LICENSE files for more details.
|
||||
++#%>
|
||||
<%=
|
||||
widget_wrapper do |container|
|
||||
if no_news?
|
||||
if newest.empty?
|
||||
render(Primer::Beta::Blankslate.new(test_selector: "news-widget-empty")) do |component|
|
||||
component.with_visual_icon(icon: :megaphone)
|
||||
component.with_heading(tag: :h3).with_content(title)
|
||||
component.with_description { t("grids.widgets.empty") }
|
||||
|
||||
if project.present? && can_manage_news?
|
||||
if project_scoped? && can_manage_news?
|
||||
component.with_primary_action(
|
||||
tag: :a,
|
||||
href: new_project_news_path(project),
|
||||
|
||||
@@ -38,17 +38,13 @@ module Grids
|
||||
|
||||
option :limit, default: -> { NEWS_LIMIT }
|
||||
|
||||
def no_news?
|
||||
news_module_disabled? || newest.empty?
|
||||
end
|
||||
|
||||
def newest
|
||||
@newest ||= news.limit(limit).to_a
|
||||
end
|
||||
|
||||
def news
|
||||
@news ||=
|
||||
if project
|
||||
if project_scoped?
|
||||
project.news.visible(current_user).newest_first
|
||||
else
|
||||
::News
|
||||
@@ -62,10 +58,16 @@ module Grids
|
||||
Project.human_attribute_name(:news)
|
||||
end
|
||||
|
||||
def news_module_disabled?
|
||||
project.present? && !project.module_enabled?("news")
|
||||
def render?
|
||||
global_scoped? || project.module_enabled?("news")
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def project_scoped? = project.present?
|
||||
|
||||
def global_scoped? = !project_scoped?
|
||||
|
||||
def can_manage_news?
|
||||
current_user.allowed_in_project?(:manage_news, project)
|
||||
end
|
||||
|
||||
@@ -121,7 +121,9 @@ RSpec.describe Grids::Widgets::News, type: :component do
|
||||
project.enabled_module_names -= %w[news]
|
||||
end
|
||||
|
||||
it_behaves_like "empty-state with action"
|
||||
it "renders nothing" do
|
||||
expect(rendered_component.to_s).to be_empty
|
||||
end
|
||||
end
|
||||
|
||||
context "when the user does not have permission to manage news" do
|
||||
|
||||
Reference in New Issue
Block a user