##// END OF EJS Templates
Search custom fields and journals with different queries to take advantage of indexes on text columns if present....
Search custom fields and journals with different queries to take advantage of indexes on text columns if present. git-svn-id: http://svn.redmine.org/redmine/trunk@13855 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r13459:1a851318fdce
r13473:742895183aeb
Show More
10-patches.rb
195 lines | 5.9 KiB | text/x-ruby | RubyLexer
Jean-Philippe Lang
Rails 2.3.5 deprecation....
r3121 require 'active_record'
Jean-Philippe Lang
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
r2430
module ActiveRecord
class Base
include Redmine::I18n
# Translate attribute names for validation errors display
Jean-Philippe Lang
human_attribute_name accepts optional argument....
r8166 def self.human_attribute_name(attr, *args)
Jean-Philippe Lang
Support for subforums (#3831)....
r9959 attr = attr.to_s.sub(/_id$/, '')
l("field_#{name.underscore.gsub('/', '_')}_#{attr}", :default => ["field_#{attr}".to_sym, attr])
Jean-Philippe Lang
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
r2430 end
end
Jean-Philippe Lang
Fixed that open scope on Project#issues raises an error (#11545)....
r10016
# Undefines private Kernel#open method to allow using `open` scopes in models.
# See Defect #11545 (http://www.redmine.org/issues/11545) for details.
Jean-Philippe Lang
Prevents "Overwriting existing method Issue.open" warning (#11545)....
r10025 class Base
class << self
undef open
end
end
Jean-Philippe Lang
Fixed that open scope on Project#issues raises an error (#11545)....
r10016 class Relation ; undef open ; end
Jean-Philippe Lang
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
r2430 end
module ActionView
module Helpers
module DateHelper
# distance_of_time_in_words breaks when difference is greater than 30 years
def distance_of_date_in_words(from_date, to_date = 0, options = {})
from_date = from_date.to_date if from_date.respond_to?(:to_date)
to_date = to_date.to_date if to_date.respond_to?(:to_date)
distance_in_days = (to_date - from_date).abs
I18n.with_options :locale => options[:locale], :scope => :'datetime.distance_in_words' do |locale|
case distance_in_days
Jean-Philippe Lang
Fixes distance of date in words calculation....
r2902 when 0..60 then locale.t :x_days, :count => distance_in_days.round
Jean-Philippe Lang
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
r2430 when 61..720 then locale.t :about_x_months, :count => (distance_in_days / 30).round
Jean-Philippe Lang
Fixes distance of date in words calculation....
r2902 else locale.t :over_x_years, :count => (distance_in_days / 365).floor
Jean-Philippe Lang
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
r2430 end
end
end
end
end
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346
class Resolver
def find_all(name, prefix=nil, partial=false, details={}, key=nil, locals=[])
cached(key, [name, prefix, partial], details, locals) do
if details[:formats] & [:xml, :json]
details = details.dup
details[:formats] = details[:formats].dup + [:api]
end
find_templates(name, prefix, partial, details)
end
end
end
Jean-Philippe Lang
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
r2430 end
Jean-Philippe Lang
Merged Rails 2.1 compatibility branch....
r1609
Jean-Philippe Lang
Fixed that some input fields are escaped on validation failures (#11027)....
r9528 ActionView::Base.field_error_proc = Proc.new{ |html_tag, instance| html_tag || ''.html_safe }
Jean-Philippe Lang
Adds :async_smtp and :async_sendmail delivery methods to perform email deliveries asynchronously....
r2337
Jean-Philippe Lang
Replaces <option value=""></option> which is not HTML5 valid (#15191)....
r12007 # HTML5: <option value=""></option> is invalid, use <option value="">&nbsp;</option> instead
module ActionView
module Helpers
Jean-Philippe Lang
Merged rails-4.1 branch (#14534)....
r13100 module Tags
class Base
private
def add_options_with_non_empty_blank_option(option_tags, options, value = nil)
if options[:include_blank] == true
options = options.dup
options[:include_blank] = '&nbsp;'.html_safe
end
add_options_without_non_empty_blank_option(option_tags, options, value)
Jean-Philippe Lang
Replaces <option value=""></option> which is not HTML5 valid (#15191)....
r12007 end
Jean-Philippe Lang
Merged rails-4.1 branch (#14534)....
r13100 alias_method_chain :add_options, :non_empty_blank_option
Jean-Philippe Lang
Replaces <option value=""></option> which is not HTML5 valid (#15191)....
r12007 end
end
module FormTagHelper
def select_tag_with_non_empty_blank_option(name, option_tags = nil, options = {})
if options.delete(:include_blank)
options[:prompt] = '&nbsp;'.html_safe
end
select_tag_without_non_empty_blank_option(name, option_tags, options)
end
alias_method_chain :select_tag, :non_empty_blank_option
end
module FormOptionsHelper
def options_for_select_with_non_empty_blank_option(container, selected = nil)
if container.is_a?(Array)
container = container.map {|element| element.blank? ? ["&nbsp;".html_safe, ""] : element}
end
options_for_select_without_non_empty_blank_option(container, selected)
end
alias_method_chain :options_for_select, :non_empty_blank_option
end
end
end
Jean-Philippe Lang
Port async delivery methods to Rails 3....
r9350 require 'mail'
module DeliveryMethods
class AsyncSMTP < ::Mail::SMTP
def deliver!(*args)
Thread.start do
super *args
end
end
end
class AsyncSendmail < ::Mail::Sendmail
def deliver!(*args)
Jean-Philippe Lang
Adds :async_smtp and :async_sendmail delivery methods to perform email deliveries asynchronously....
r2337 Thread.start do
Jean-Philippe Lang
Port async delivery methods to Rails 3....
r9350 super *args
Toshi MARUYAMA
remove trailing white-spaces from config/initializers/10-patches.rb....
r6572 end
Jean-Philippe Lang
Adds :async_smtp and :async_sendmail delivery methods to perform email deliveries asynchronously....
r2337 end
end
Jean-Philippe Lang
Adds a delivery method that writes emails in tmp/emails for testing purpose....
r7726
Jean-Philippe Lang
Port async delivery methods to Rails 3....
r9350 class TmpFile
def initialize(*args); end
def deliver!(mail)
dest_dir = File.join(Rails.root, 'tmp', 'emails')
Dir.mkdir(dest_dir) unless File.directory?(dest_dir)
File.open(File.join(dest_dir, mail.message_id.gsub(/[<>]/, '') + '.eml'), 'wb') {|f| f.write(mail.encoded) }
end
Jean-Philippe Lang
Adds a delivery method that writes emails in tmp/emails for testing purpose....
r7726 end
Jean-Philippe Lang
Adds :async_smtp and :async_sendmail delivery methods to perform email deliveries asynchronously....
r2337 end
Jean-Philippe Lang
Port async delivery methods to Rails 3....
r9350 ActionMailer::Base.add_delivery_method :async_smtp, DeliveryMethods::AsyncSMTP
ActionMailer::Base.add_delivery_method :async_sendmail, DeliveryMethods::AsyncSendmail
ActionMailer::Base.add_delivery_method :tmp_file, DeliveryMethods::TmpFile
Eric Davis
Workaround for i18n 0.4.x with the old style syntax. #6428 #5608...
r4069
Jean-Philippe Lang
Adds cc and bcc to email log messages (#12090)....
r10472 # Changes how sent emails are logged
# Rails doesn't log cc and bcc which is misleading when using bcc only (#12090)
module ActionMailer
class LogSubscriber < ActiveSupport::LogSubscriber
def deliver(event)
recipients = [:to, :cc, :bcc].inject("") do |s, header|
r = Array.wrap(event.payload[header])
if r.any?
s << "\n #{header}: #{r.join(', ')}"
end
s
end
info("\nSent email \"#{event.payload[:subject]}\" (%1.fms)#{recipients}" % event.duration)
debug(event.payload[:mail])
end
end
end
Jean-Philippe Lang
Dry Users API responders....
r4340 module ActionController
module MimeResponds
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 class Collector
Jean-Philippe Lang
Dry Users API responders....
r4340 def api(&block)
any(:xml, :json, &block)
end
end
end
end
Jean-Philippe Lang
Displays an explicit message when trying to start Redmine with an old session_store.rb....
r9383
module ActionController
class Base
# Displays an explicit message instead of a NoMethodError exception
# when trying to start Redmine with an old session_store.rb
# TODO: remove it in a later version
def self.session=(*args)
Jean-Philippe Lang
Fixed the path displayed in error message....
r9422 $stderr.puts "Please remove config/initializers/session_store.rb and run `rake generate_secret_token`.\n" +
Jean-Philippe Lang
Displays an explicit message when trying to start Redmine with an old session_store.rb....
r9383 "Setting the session secret with ActionController.session= is no longer supported in Rails 3."
exit 1
end
end
end
Toshi MARUYAMA
move awesome_nested_set leaf? modification to config/initializers/10-patches.rb...
r12407
Toshi MARUYAMA
add patch for regression of Hash#reject in Ruby 2.1.1 (#16194)...
r12840 if Rails::VERSION::MAJOR < 4 && RUBY_VERSION >= "2.1"
module ActiveSupport
class HashWithIndifferentAccess
def select(*args, &block)
dup.tap { |hash| hash.select!(*args, &block) }
end
def reject(*args, &block)
dup.tap { |hash| hash.reject!(*args, &block) }
end
end
class OrderedHash
def select(*args, &block)
dup.tap { |hash| hash.select!(*args, &block) }
end
def reject(*args, &block)
dup.tap { |hash| hash.reject!(*args, &block) }
end
end
end
end