lib/hancock/gallery/admin.rb in hancock_cms_gallery-1.0.0 vs lib/hancock/gallery/admin.rb in hancock_cms_gallery-1.0.2

- old
+ new

@@ -1,21 +1,42 @@ module Hancock::Gallery module Admin - def self.images_block(is_active = false, fields = [:images]) + # images_block(is_active = false, fields = [:images], options = {}) + # images_block(is_active = false, options = {field: [:images]}) + # images_block(fields = [:images], options = {active: false}) + # images_block(options = {fields: [:images], active: false}) + # images_block(is_active = false, fields = [:images], options = {}) + + def self.images_block(is_active = false, fields = [:images], options = {}) if is_active.is_a?(Array) or is_active.is_a?(String) or is_active.is_a?(Symbol) is_active, fields = false, [is_active].flatten elsif is_active.is_a?(Hash) is_active, fields = (is_active[:active] || false), (is_active[:fields] || [:images]) + elsif fields.is?(Hash) + is_active, fields, options = (fields[:active] || false), (is_active[:fields] || [:images]), fields end + if fields.is_a?(Array) + fields.map! { |f| + if f.is_a?(Hash) + f + elsif f.is_a?(Array) + _ret = {"#{f.first}" => f[1..-1]} + else + { "#{f}": nil } + end + } + fields = fields.reduce({}, :merge) + end + + Proc.new { active is_active - label I18n.t('hancock.images') + label options[:label] || I18n.t('hancock.images') field :image, :hancock_image - fields.map { |f| - field f - } + + Hancock::RailsAdminGroupPatch::hancock_cms_group(self, fields) if block_given? yield self end }