Class: Kuhsaft::Brick
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Kuhsaft::Brick
show all
- Includes:
- BrickList
- Defined in:
- app/models/kuhsaft/brick.rb
Instance Method Summary
collapse
Methods included from BrickList
#allowed_brick_types, #brick_types, #collect_fulltext, included, #renders_own_childs?, #to_brick_item_id, #to_brick_list_id, #uploader?, #user_can_add_childs?, #user_can_delete?, #user_can_save?
Instance Method Details
#available_display_styles ⇒ Object
return a list of css classnames that can be applied to the brick
112
113
114
|
# File 'app/models/kuhsaft/brick.rb', line 112
def available_display_styles
[]
end
|
#backend_label(options = {}) ⇒ Object
122
123
124
125
126
127
128
129
|
# File 'app/models/kuhsaft/brick.rb', line 122
def backend_label(options = {})
label = self.class.model_name.human
if options[:parenthesis] == true
"(#{label})"
else
label
end
end
|
#brick_list_type ⇒ Object
97
98
99
|
# File 'app/models/kuhsaft/brick.rb', line 97
def brick_list_type
'Kuhsaft::Brick'
end
|
#cache_key ⇒ Object
135
136
137
|
# File 'app/models/kuhsaft/brick.rb', line 135
def cache_key
super + partial_digest(to_partial_path)
end
|
#has_siblings? ⇒ Boolean
61
62
63
|
# File 'app/models/kuhsaft/brick.rb', line 61
def has_siblings?
brick_list.present? && brick_list.bricks.any?
end
|
#parents ⇒ Object
76
77
78
79
80
81
82
83
84
85
|
# File 'app/models/kuhsaft/brick.rb', line 76
def parents
p = []
parent = brick_list.presence
while parent
p << parent
parent = parent.respond_to?(:brick_list) ? parent.brick_list : nil
end
p.reverse
end
|
#partial_digest(name) ⇒ Object
131
132
133
|
# File 'app/models/kuhsaft/brick.rb', line 131
def partial_digest(name)
ActionView::Digestor.digest(name, 'haml', ApplicationController.new.lookup_context, partial: true)
end
|
#set_position ⇒ Object
87
88
89
90
91
92
93
94
95
|
# File 'app/models/kuhsaft/brick.rb', line 87
def set_position
self.position = if self.position.present?
self.position
elsif self.respond_to?(:brick_list) && brick_list.respond_to?(:bricks)
brick_list.bricks.maximum(:position).to_i + 1
else
1
end
end
|
#to_edit_childs_partial_path ⇒ Object
The child partial can contain your own implementation of how the brick renders it’s child in the edit form. Returns the path to this partial.
70
71
72
73
74
|
# File 'app/models/kuhsaft/brick.rb', line 70
def to_edit_childs_partial_path
path = to_partial_path.split '/'
path << 'childs'
path.join '/'
end
|
#to_edit_partial_path ⇒ Object
55
56
57
58
59
|
# File 'app/models/kuhsaft/brick.rb', line 55
def to_edit_partial_path
path = to_partial_path.split '/'
path << 'edit'
path.join '/'
end
|
#to_style_class ⇒ Object
Returns a css classname suitable for use in the frontend
102
103
104
|
# File 'app/models/kuhsaft/brick.rb', line 102
def to_style_class
([self.class.to_s.underscore.dasherize.gsub('/', '-')] + display_styles).join(' ')
end
|
#to_style_id ⇒ Object
Returns a unique DOM id suitable for use in the frontend
107
108
109
|
# File 'app/models/kuhsaft/brick.rb', line 107
def to_style_id
"#{self.class.to_s.underscore.dasherize.gsub('/', '-')}-#{id}"
end
|
#translated_available_display_styles ⇒ Object
116
117
118
119
120
|
# File 'app/models/kuhsaft/brick.rb', line 116
def translated_available_display_styles
available_display_styles.map do |style|
[I18n.t("#{self.class.to_s.demodulize.underscore}.display_styles.#{style}"), style]
end
end
|
#update_fulltext ⇒ Object
TODO: yes. temporary workaround. see above
47
48
49
50
51
52
53
|
# File 'app/models/kuhsaft/brick.rb', line 47
def update_fulltext
if brick_list.is_a? Page
brick_list.update_fulltext
else
brick_list.brick_list.update_fulltext
end
end
|