##// END OF EJS Templates
Make sure user can not watch what he is not allowed to view....
Make sure user can not watch what he is not allowed to view. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3170 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r2902:86a9d90f07d6
r3056:9a452a5c351f
Show More
10-patches.rb
80 lines | 2.4 KiB | text/x-ruby | RubyLexer
require 'activerecord'
module ActiveRecord
class Base
include Redmine::I18n
# Translate attribute names for validation errors display
def self.human_attribute_name(attr)
l("field_#{attr.to_s.gsub(/_id$/, '')}")
end
end
end
module ActiveRecord
class Errors
def full_messages(options = {})
full_messages = []
@errors.each_key do |attr|
@errors[attr].each do |message|
next unless message
if attr == "base"
full_messages << message
elsif attr == "custom_values"
# Replace the generic "custom values is invalid"
# with the errors on custom values
@base.custom_values.each do |value|
value.errors.each do |attr, msg|
full_messages << value.custom_field.name + ' ' + msg
end
end
else
attr_name = @base.class.human_attribute_name(attr)
full_messages << attr_name + ' ' + message.to_s
end
end
end
full_messages
end
end
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
when 0..60 then locale.t :x_days, :count => distance_in_days.round
when 61..720 then locale.t :about_x_months, :count => (distance_in_days / 30).round
else locale.t :over_x_years, :count => (distance_in_days / 365).floor
end
end
end
end
end
end
ActionView::Base.field_error_proc = Proc.new{ |html_tag, instance| "#{html_tag}" }
# Adds :async_smtp and :async_sendmail delivery methods
# to perform email deliveries asynchronously
module AsynchronousMailer
%w(smtp sendmail).each do |type|
define_method("perform_delivery_async_#{type}") do |mail|
Thread.start do
send "perform_delivery_#{type}", mail
end
end
end
end
ActionMailer::Base.send :include, AsynchronousMailer