14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'app/helpers/track_changes/diff_helper.rb', line 14
def diff_change_sentence(diff, field, changes, link_models = [])
from, to = changes.is_a?(Array) ? changes : [nil, changes]
return if from.blank? && to.blank?
if record = diff.record
field_name = diff.record.class.human_attribute_name(field)
reflection = diff.record.class.reflections.values.detect {|reflection| reflection.foreign_key == field.to_s }
end
if reflection
from = reflection.klass.find(from) if from.present?
to = reflection.klass.find(to) if to.present?
end
if from.blank?
content_tag(:span, field_name, :class => 'field_name') + " set to " + content_tag(:span, link_diff_field_value(to, link_models), :class => 'field_value')
elsif to.blank?
content_tag(:span, field_name, :class => 'field_name') + " removed"
else
content_tag(:span, field_name, :class => 'field_name') + " changed from " + content_tag(:span, link_diff_field_value(from, link_models), :class => 'field_value') + " to " + content_tag(:span, link_diff_field_value(to, link_models), :class => 'field_value')
end
end
|