Actualiza el plugin Additionals a 3.0.2-master
This commit is contained in:
parent
3b6a41320c
commit
cfa0d58b18
164 changed files with 2027 additions and 58190 deletions
|
@ -1,3 +1,5 @@
|
|||
require 'additionals/version'
|
||||
|
||||
module Additionals
|
||||
MAX_CUSTOM_MENU_ITEMS = 5
|
||||
SELECT2_INIT_ENTRIES = 20
|
||||
|
@ -5,17 +7,15 @@ module Additionals
|
|||
GOTO_LIST = " \xc2\xbb".freeze
|
||||
LIST_SEPARATOR = "#{GOTO_LIST} ".freeze
|
||||
|
||||
RenderAsync.configuration.jquery = true
|
||||
|
||||
class << self
|
||||
def setup
|
||||
incompatible_plugins %w[redmine_issue_control_panel
|
||||
redmine_editauthor
|
||||
RenderAsync.configuration.jquery = true
|
||||
|
||||
incompatible_plugins %w[redmine_editauthor
|
||||
redmine_changeauthor
|
||||
redmine_auto_watch]
|
||||
|
||||
patch %w[AccountController
|
||||
ApplicationController
|
||||
patch %w[ApplicationController
|
||||
AutoCompletesController
|
||||
Issue
|
||||
IssuePriority
|
||||
|
@ -60,22 +60,7 @@ module Additionals
|
|||
require_dependency 'additionals/hooks'
|
||||
|
||||
# Macros
|
||||
load_macros %w[cryptocompare date fa gist gmap google_docs group_users iframe
|
||||
issue redmine_issue redmine_wiki
|
||||
last_updated_at last_updated_by meteoblue member new_issue project
|
||||
recently_updated reddit slideshare tradingview twitter user vimeo youtube asciinema]
|
||||
end
|
||||
|
||||
def settings_compatible(plugin_name)
|
||||
if Setting[plugin_name].class == Hash
|
||||
# convert Rails 4 data (this runs only once)
|
||||
new_settings = ActiveSupport::HashWithIndifferentAccess.new(Setting[plugin_name])
|
||||
Setting.send("#{plugin_name}=", new_settings)
|
||||
new_settings
|
||||
else
|
||||
# Rails 5 uses ActiveSupport::HashWithIndifferentAccess
|
||||
Setting[plugin_name]
|
||||
end
|
||||
load_macros
|
||||
end
|
||||
|
||||
# support with default setting as fall back
|
||||
|
@ -91,6 +76,15 @@ module Additionals
|
|||
true? setting(value)
|
||||
end
|
||||
|
||||
# required multiple times because of this bug: https://www.redmine.org/issues/33290
|
||||
def redmine_database_ready?(with_table = nil)
|
||||
ActiveRecord::Base.connection
|
||||
rescue ActiveRecord::NoDatabaseError
|
||||
false
|
||||
else
|
||||
with_table.nil? || ActiveRecord::Base.connection.table_exists?(with_table)
|
||||
end
|
||||
|
||||
def true?(value)
|
||||
return false if value.is_a? FalseClass
|
||||
return true if value.is_a?(TrueClass) || value.to_i == 1 || value.to_s.casecmp('true').zero?
|
||||
|
@ -98,6 +92,17 @@ module Additionals
|
|||
false
|
||||
end
|
||||
|
||||
def debug(message)
|
||||
return if Rails.env.production?
|
||||
|
||||
Rails.logger.debug "#{Time.current.strftime('%H:%M:%S')} DEBUG [#{caller_locations(1..1).first.label}]: #{message}"
|
||||
end
|
||||
|
||||
def class_prefix(klass)
|
||||
klass_name = klass.is_a?(String) ? klass : klass.name
|
||||
klass_name.underscore.tr '/', '_'
|
||||
end
|
||||
|
||||
def now_with_user_time_zone(user = User.current)
|
||||
if user.time_zone.nil?
|
||||
Time.zone.now
|
||||
|
@ -108,7 +113,7 @@ module Additionals
|
|||
|
||||
def incompatible_plugins(plugins = [], title = 'additionals')
|
||||
plugins.each do |plugin|
|
||||
raise "\n\033[31m#{title} plugin cannot be used with #{plugin} plugin'.\033[0m" if Redmine::Plugin.installed?(plugin)
|
||||
raise "\n\033[31m#{title} plugin cannot be used with #{plugin} plugin.\033[0m" if Redmine::Plugin.installed?(plugin)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -124,10 +129,19 @@ module Additionals
|
|||
end
|
||||
end
|
||||
|
||||
def load_macros(macros = [], plugin_id = 'additionals')
|
||||
macro_dir = Rails.root.join("plugins/#{plugin_id}/lib/#{plugin_id}/wiki_macros")
|
||||
macros.each do |macro|
|
||||
require_dependency "#{macro_dir}/#{macro.underscore}_macro"
|
||||
def load_macros(plugin_id = 'additionals')
|
||||
Dir[File.join(plugin_dir(plugin_id),
|
||||
'lib',
|
||||
plugin_id,
|
||||
'wiki_macros',
|
||||
'**/*_macro.rb')].sort.each { |f| require f }
|
||||
end
|
||||
|
||||
def plugin_dir(plugin_id = 'additionals')
|
||||
if Gem.loaded_specs[plugin_id].nil?
|
||||
File.join Redmine::Plugin.directory, plugin_id
|
||||
else
|
||||
Gem.loaded_specs[plugin_id].full_gem_path
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -135,7 +149,7 @@ module Additionals
|
|||
cached_settings_name = "@load_settings_#{plugin_id}"
|
||||
cached_settings = instance_variable_get cached_settings_name
|
||||
if cached_settings.nil?
|
||||
data = YAML.safe_load(ERB.new(IO.read(Rails.root.join("plugins/#{plugin_id}/config/settings.yml"))).result) || {}
|
||||
data = YAML.safe_load(ERB.new(IO.read(File.join(plugin_dir(plugin_id), '/config/settings.yml'))).result) || {}
|
||||
instance_variable_set cached_settings_name, data.symbolize_keys
|
||||
else
|
||||
cached_settings
|
||||
|
@ -156,7 +170,31 @@ module Additionals
|
|||
private
|
||||
|
||||
def settings
|
||||
settings_compatible :plugin_additionals
|
||||
Setting[:plugin_additionals]
|
||||
end
|
||||
end
|
||||
|
||||
# Run the classic redmine plugin initializer after rails boot
|
||||
class Plugin < ::Rails::Engine
|
||||
require 'deface'
|
||||
require 'emoji'
|
||||
require 'render_async'
|
||||
require 'rss'
|
||||
require 'slim'
|
||||
|
||||
config.after_initialize do
|
||||
# engine_name could be used (additionals_plugin), but can
|
||||
# create some side effencts
|
||||
plugin_id = 'additionals'
|
||||
|
||||
# if plugin is already in plugins directory, use this and leave here
|
||||
next if Redmine::Plugin.installed? plugin_id
|
||||
|
||||
# gem is used as redmine plugin
|
||||
require File.expand_path '../init', __dir__
|
||||
AdditionalTags.setup
|
||||
Additionals::Gemify.install_assets plugin_id
|
||||
Additionals::Gemify.create_plugin_hint plugin_id
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue