summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/admin_controller.rb2
-rw-r--r--app/views/admin/plugins.rhtml12
-rw-r--r--lib/redmine/plugin.rb17
3 files changed, 20 insertions, 11 deletions
diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb
index 90ec59098..119e2b922 100644
--- a/app/controllers/admin_controller.rb
+++ b/app/controllers/admin_controller.rb
@@ -50,7 +50,7 @@ class AdminController < ApplicationController
end
def plugins
- @plugins = Redmine::Plugin.registered_plugins
+ @plugins = Redmine::Plugin.registered_plugins.values.sort
end
# Loads the default configuration
diff --git a/app/views/admin/plugins.rhtml b/app/views/admin/plugins.rhtml
index 5a208fe02..9cabd42ae 100644
--- a/app/views/admin/plugins.rhtml
+++ b/app/views/admin/plugins.rhtml
@@ -2,13 +2,13 @@
<% if @plugins.any? %>
<table class="list">
- <% @plugins.keys.sort {|x,y| x.to_s <=> y.to_s}.each do |plugin| %>
+ <% @plugins.each do |plugin| %>
<tr class="<%= cycle('odd', 'even') %>">
- <td><%=h @plugins[plugin].name %></td>
- <td><%=h @plugins[plugin].description %></td>
- <td><%=h @plugins[plugin].author %></td>
- <td><%=h @plugins[plugin].version %></td>
- <td><%= link_to(l(:button_configure), :controller => 'settings', :action => 'plugin', :id => plugin.to_s) if @plugins[plugin].configurable? %></td>
+ <td><%=h plugin.name %></td>
+ <td><%=h plugin.description %></td>
+ <td><%=h plugin.author %></td>
+ <td><%=h plugin.version %></td>
+ <td><%= link_to(l(:button_configure), :controller => 'settings', :action => 'plugin', :id => plugin.id) if plugin.configurable? %></td>
</tr>
<% end %>
</table>
diff --git a/lib/redmine/plugin.rb b/lib/redmine/plugin.rb
index 87a6ce4d3..17953ef8c 100644
--- a/lib/redmine/plugin.rb
+++ b/lib/redmine/plugin.rb
@@ -56,12 +56,21 @@ module Redmine #:nodoc:
end
end
def_field :name, :description, :author, :version, :settings
-
+ attr_reader :id
+
# Plugin constructor
- def self.register(name, &block)
- p = new
+ def self.register(id, &block)
+ p = new(id)
p.instance_eval(&block)
- Plugin.registered_plugins[name] = p
+ Plugin.registered_plugins[id] = p
+ end
+
+ def initialize(id)
+ @id = id.to_sym
+ end
+
+ def <=>(plugin)
+ self.id.to_s <=> plugin.id.to_s
end
# Adds an item to the given +menu+.