Class: Integral::VersionDecorator

Inherits:
Draper::Decorator
  • Object
show all
Defined in:
app/decorators/integral/version_decorator.rb

Overview

Page view-level logic

Instance Method Summary collapse

Instance Method Details

#decorated_itemObject

Returns Associated Item.

Returns:

  • (Object)

    Associated Item



67
68
69
# File 'app/decorators/integral/version_decorator.rb', line 67

def decorated_item
  @decorated_item ||= item&.decorate
end

#eventString

Returns formatted event.

Returns:

  • (String)

    formatted event



12
13
14
# File 'app/decorators/integral/version_decorator.rb', line 12

def event
  h.t("integral.actions.#{object.event}")
end

#event_verbString

Returns formatted event verb (past).

Returns:

  • (String)

    formatted event verb (past)



17
18
19
# File 'app/decorators/integral/version_decorator.rb', line 17

def event_verb
  h.t("integral.actions.tense.past.#{object.event}")
end

#itemObject



57
58
59
# File 'app/decorators/integral/version_decorator.rb', line 57

def item
  @item ||= item_type.constantize.unscoped.find(item_id)
end

#item_iconString

Returns Font Awesome icon.

Returns:

  • (String)

    Font Awesome icon



72
73
74
# File 'app/decorators/integral/version_decorator.rb', line 72

def item_icon
  'ellipsis-v'
end

#item_titleString

Returns formatted title.

Returns:

  • (String)

    formatted title



62
63
64
# File 'app/decorators/integral/version_decorator.rb', line 62

def item_title
  decorated_item&.title
end

#item_urlString

Returns Item URL.

Returns:

  • (String)

    Item URL



22
23
24
# File 'app/decorators/integral/version_decorator.rb', line 22

def item_url
  decorated_item&.backend_url
end

#model_nameString

Returns formatted item type.

Returns:

  • (String)

    formatted item type



77
78
79
# File 'app/decorators/integral/version_decorator.rb', line 77

def model_name
  object.item_type.constantize.model_name.human
end

#urlString

Returns URL to view version screen.

Returns:

  • (String)

    URL to view version screen



7
8
9
# File 'app/decorators/integral/version_decorator.rb', line 7

def url
  decorated_item&.activity_url(object.id)
end

#whodunnitIntegral::User

Returns who carried out the version (if one exists).

Returns:



31
32
33
34
35
36
37
# File 'app/decorators/integral/version_decorator.rb', line 31

def whodunnit
  user_id = object.whodunnit.to_i

  return '' if user_id.zero?

  @user = Integral::User.unscoped.find_by_id(object.whodunnit)&.decorate
end

#whodunnit_avatar_urlString

Returns image linked to whodunnit.

Returns:

  • (String)

    image linked to whodunnit



40
41
42
43
44
45
46
# File 'app/decorators/integral/version_decorator.rb', line 40

def whodunnit_avatar_url
  if whodunnit.present?
    whodunnit.avatar.url(:thumbnail)
  else
    ActionController::Base.helpers.asset_path('integral/defaults/user_avatar.jpg')
  end
end

#whodunnit_nameString

Returns name linked to whodunnit.

Returns:

  • (String)

    name linked to whodunnit



49
50
51
52
53
54
55
# File 'app/decorators/integral/version_decorator.rb', line 49

def whodunnit_name
  if whodunnit.present?
    whodunnit.name
  else
    'System'
  end
end

#whodunnit_urlObject



26
27
28
# File 'app/decorators/integral/version_decorator.rb', line 26

def whodunnit_url
  Integral::Engine.routes.url_helpers.backend_user_url(whodunnit.id) if whodunnit.present?
end