Fixes plugin activity SVG icons broken when multiple plugins are loaded (#42509).

Patch by Stefan Rinkes (user:srinkes).

git-svn-id: https://svn.redmine.org/redmine/trunk@23683 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Marius Balteanu
2025-04-19 07:24:46 +00:00
parent de96d418b1
commit ae566b3bf9
2 changed files with 10 additions and 7 deletions

View File

@@ -4,7 +4,7 @@
<dl>
<% sort_activity_events(events_by_day[day]).each do |e, in_group| -%>
<dt class="<%= e.event_type %> icon icon-<%= e.event_type %> <%= "grouped" if in_group %> <%= User.current.logged? && e.respond_to?(:event_author) && User.current == e.event_author ? 'me' : nil %>">
<%= activity_event_type_icon e.event_type, plugin: Redmine::Activity.plugin_name(e.activity_provider_options.keys[0]) %>
<%= activity_event_type_icon e.event_type, plugin: Redmine::Activity.plugin_name(e.class) %>
<%= avatar(e.event_author) if e.respond_to?(:event_author) %>
<span class="time"><%= format_time(e.event_datetime, false) %></span>
<%= content_tag('span', e.project, :class => 'project') if @project.nil? || @project != e.project %>

View File

@@ -19,11 +19,11 @@
module Redmine
module Activity
mattr_accessor :available_event_types, :default_event_types, :plugins_event_types, :providers
mattr_accessor :available_event_types, :default_event_types, :plugins_event_classes, :providers
@@available_event_types = []
@@default_event_types = []
@@plugins_event_types = {}
@@plugins_event_classes = {}
@@providers = Hash.new {|h, k| h[k]=[]}
class << self
@@ -41,19 +41,22 @@ module Redmine
@@available_event_types << event_type unless @@available_event_types.include?(event_type)
@@default_event_types << event_type unless options[:default] == false
@@plugins_event_types = { event_type => options[:plugin].to_s } unless options[:plugin].nil?
if options[:plugin]
providers.each do | provider |
@@plugins_event_classes[provider] = options[:plugin].to_s
end
end
@@providers[event_type] += providers
end
def delete(event_type)
@@available_event_types.delete event_type
@@default_event_types.delete event_type
@@plugins_event_types.delete(event_type)
@@providers.delete(event_type)
end
def plugin_name(event_type)
@@plugins_event_types[event_type]
def plugin_name(class_name)
@@plugins_event_classes[class_name.to_s]
end
end
end