Sha256: e7c91d803458ed81003fcdf98fc8986c0701e6fa121444b23c82021cca07a9f0
Contents?: true
Size: 1.21 KB
Versions: 3
Compression:
Stored size: 1.21 KB
Contents
module Coalla class ActionsColumnDefinition < ColumnDefinition def initialize self.title = I18n.t('admin.common.actions') @actions = [] end def cols @cols || @actions.size % 2 + @actions.size / 2 end def col_class "col-xs-#{cols}" end def cols=(value) @cols = value end def value(item, context = self) @actions.collect do |action| options = action.second if options[:if] context.instance_exec(item, &action.first) if options[:if].call(item) else context.instance_exec(item, &action.first) end end.compact.join(' ').html_safe end def action(method, options = {}) @actions << case method when :edit [->(item) { edit_link(url_for(action: :edit, id: item)) }, options.merge(action_name: :edit)] when :delete [->(item) { delete_link(url_for(action: :destroy, id: item)) }, options.merge(action_name: :destroy)] when Proc [method, options] else raise "unsupported method: #{method.inspect}" end end end end
Version data entries
3 entries across 3 versions & 1 rubygems