lib/cm_admin/models/column.rb in cm-admin-0.8.9 vs lib/cm_admin/models/column.rb in cm-admin-0.9.0

- old
+ new

@@ -1,10 +1,15 @@ +require_relative 'utils/associations' + module CmAdmin module Models class Column + include Utils::Associations + attr_accessor :field_name, :field_type, :header, :format, :prefix, :suffix, :exportable, :round, :height, :width, - :cm_css_class, :link, :url, :custom_method, :helper_method, :managable, :lockable, :drawer_partial, :tag_class, :display_if + :cm_css_class, :link, :url, :custom_method, :helper_method, :managable, :lockable, :drawer_partial, :tag_class, + :display_if, :association_name, :association_type def initialize(field_name, attributes = {}) @field_name = field_name set_default_values attributes.each do |key, value| @@ -14,15 +19,24 @@ #formatting header (either field_name or value present in header attribute) self.send("header=", format_header) self.height = 50 if self.field_type == :image && self.height.nil? self.width = 50 if self.field_type == :image && self.width.nil? self.display_if = lambda { |arg| return true } if self.display_if.nil? + + validation_for_association end #returns a string value as a header (either field_name or value present in header attribute) def format_header - self.header.present? ? self.header.to_s.gsub(/_/, ' ')&.upcase : self.field_name.to_s.gsub(/_/, ' ').upcase + header_value = if self.header.present? + self.header + elsif self.field_type.to_s == 'association' + self.association_name + else + self.field_name + end + header_value.to_s.titleize.upcase end def set_default_values self.exportable = true self.managable = true @@ -33,9 +47,8 @@ class << self def find_by(model, search_hash) model.available_fields.find { |i| i.name == search_hash[:name] } end end - end end end