class Forma::Action
Attributes
url[R]
attr_reader :label, :icon, :method, :confirm, :as
Public Class Methods
new(h={})
click to toggle source
# File lib/forma/action.rb, line 7 def initialize(h={}) h = h.symbolize_keys @id = h[:id] @label = h[:label] @icon = h[:icon] @url = h[:url] @turbolink=h[:turbolink] @method = h[:method] @confirm = h[:confirm] @as = h[:as] @tooltip = h[:tooltip] @select = h[:select] @condition = h[:condition] end
Public Instance Methods
to_html(model)
click to toggle source
# File lib/forma/action.rb, line 22 def to_html(model) if eval_condition(model) if @select attrs = { id: @id, class: ['ff-action', 'btn', 'btn-mini', 'ff-select-action', 'btn-xs', 'btn-default'], href: '#', 'data-original-title' => @tooltip, 'data-value-id' => model.id, 'data-value-type' => model.class.name, 'data-value-text' => model.to_s } attrs['data-no-turbolink'] = 'true' if @turbolink == false children = [ el('i', attrs: { class: 'icon icon-download fa fa-hand-o-left' }) ] el('a', attrs: attrs, children: children) else children = [ (el('img', attrs: { src: eval_icon(model) }) if @icon.present?), el('span', text: eval_label(model)) ] button = (@as.to_s == 'button') attrs = { id: @id, class: ['ff-action', ('btn btn-default' if button)], href: eval_url(model), 'data-method' => @method, 'data-confirm' => @confirm, 'data-original-title' => @tooltip } attrs['data-no-turbolink'] = 'true' if @turbolink == false el('a', attrs: attrs, children: children) end end end
Private Instance Methods
eval_condition(model)
click to toggle source
# File lib/forma/action.rb, line 68 def eval_condition(model) if @condition then @condition.is_a?(Proc) ? @condition.call(model) : @condition else true end end
eval_icon(model)
click to toggle source
# File lib/forma/action.rb, line 64 def eval_icon(model) @icon.is_a?(Proc) ? @icon.call(model).to_s : @icon.to_s end
eval_label(model)
click to toggle source
# File lib/forma/action.rb, line 60 def eval_label(model) @label.is_a?(Proc) ? @label.call(model).to_s : @label.to_s end
eval_url(model)
click to toggle source
# File lib/forma/action.rb, line 56 def eval_url(model) @url.is_a?(Proc) ? @url.call(model).to_s : @url.to_s end