Module: LeanCms::ActivityHelper

Defined in:
app/helpers/lean_cms/activity_helper.rb

Instance Method Summary collapse

Instance Method Details

#activity_action_badge_class(event) ⇒ Object



40
41
42
43
44
45
46
47
# File 'app/helpers/lean_cms/activity_helper.rb', line 40

def activity_action_badge_class(event)
  case event.to_s
  when "create" then "bg-green-100 text-green-800"
  when "update" then "bg-blue-100 text-blue-800"
  when "destroy" then "bg-red-100 text-red-800"
  else "bg-gray-100 text-gray-800"
  end
end

#activity_item_label(version) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/helpers/lean_cms/activity_helper.rb', line 3

def activity_item_label(version)
  case version.item_type
  when "LeanCms::Setting"
    setting = parsed_setting_object(version)
    "Setting: #{setting&.dig('key') || version.item_id}"
  when "LeanCms::PageContent"
    pc = version.item_type.constantize.unscoped.find_by(id: version.item_id)
    if pc
      page_slug = pc.page&.full_path || pc.page&.slug || pc.read_attribute(:page).to_s
      "Page Content: #{page_slug}/#{pc.section}/#{pc.key}"
    else
      "Page Content ##{version.item_id}"
    end
  when "LeanCms::Post"
    post = version.item_type.constantize.unscoped.find_by(id: version.item_id)
    post ? "Post: #{post.title}" : "Post ##{version.item_id}"
  when "User"
    user = User.unscoped.find_by(id: version.item_id)
    user ? "User: #{user.email_address}" : "User ##{version.item_id}"
  when "LeanCms::FormSubmission"
    fs = version.item_type.constantize.unscoped.find_by(id: version.item_id)
    fs ? "Form Submission ##{version.item_id}" : "Form Submission ##{version.item_id}"
  else
    "#{version.item_type} ##{version.item_id}"
  end
rescue
  "#{version.item_type} ##{version.item_id}"
end

#activity_new_value(version) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'app/helpers/lean_cms/activity_helper.rb', line 59

def activity_new_value(version)
  return "" if version.event == "destroy"
  obj = parsed_version_object(version)
  return "" if obj.blank? && version.event != "create"

  case version.item_type
  when "LeanCms::Setting"
    if version.event == "create"
      obj["value"].to_s.truncate(80)
    else
      item = version.item_type.constantize.unscoped.find_by(id: version.item_id)
      item&.value&.to_s&.truncate(80) || ""
    end
  else
    if version.event == "create"
      format_attributes_for_display(obj, version.item_type)
    else
      item = version.item_type.constantize.unscoped.find_by(id: version.item_id)
      item ? truncate_item_summary(item) : ""
    end
  end
rescue
  ""
end

#activity_old_value(version) ⇒ Object



49
50
51
52
53
54
55
56
57
# File 'app/helpers/lean_cms/activity_helper.rb', line 49

def activity_old_value(version)
  return "" if version.event == "create"
  obj = parsed_version_object(version)
  return "" if obj.blank?

  format_attributes_for_display(obj, version.item_type)
rescue
  ""
end

#activity_who(version) ⇒ Object



32
33
34
35
36
37
38
# File 'app/helpers/lean_cms/activity_helper.rb', line 32

def activity_who(version)
  return "System" if version.whodunnit.blank?
  user = User.unscoped.find_by(id: version.whodunnit)
  user ? user.email_address : "User ##{version.whodunnit}"
rescue
  "User ##{version.whodunnit}"
end