Sha256: 9dfff92b2e765357c9b8f37dba07e9a3c3167bf18a795473a1b5efe94eab170d

Contents?: true

Size: 1.44 KB

Versions: 21

Compression:

Stored size: 1.44 KB

Contents

module ActiveScaffold
  module Bridges
    class Bitfields
      module BitfieldsBridge
        def initialize_with_bitfields(model_id)
          initialize_without_bitfields(model_id)
          return unless self.model.respond_to?(:bitfields) and self.model.bitfields.present?

          self.model.bitfields.each do |column_name, options|
            self.columns << options.keys
            options.each do |column, value|
              self.columns[column].form_ui = :checkbox
              self.columns[column].weight = 1000 + value.to_s(2).size
            end
          end
        end
        
        def _load_action_columns_with_bitfields
          self.model.bitfields.each do |column_name, options|
            columns = options.keys.sort_by { |column| self.columns[column].weight }
            [:create, :update, :show, :subform].each do |action|
              if self.actions.include? action
                self.send(action).columns.exclude column_name
                self.send(action).columns.add_subgroup(column_name) { |group| group.add *columns }
              end
            end
          end if self.model.respond_to?(:bitfields) and self.model.bitfields.present?
          
          _load_action_columns_without_bitfields
        end
          

        def self.included(base)
          base.alias_method_chain :initialize, :bitfields
          base.alias_method_chain :_load_action_columns, :bitfields
        end
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
active_scaffold-3.4.17 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb
active_scaffold-3.4.16 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb
active_scaffold-3.4.14 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb
active_scaffold-3.4.13 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb
active_scaffold-3.4.12 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb
active_scaffold-3.4.11 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb
active_scaffold-3.4.10 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb
active_scaffold-3.4.9 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb
active_scaffold-3.4.8 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb
active_scaffold-3.4.7 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb
active_scaffold-3.4.5 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb
active_scaffold-3.4.4 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb
active_scaffold-3.4.3 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb
active_scaffold-3.4.2 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb
active_scaffold-3.4.1 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb
active_scaffold-3.4.0.1 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb
active_scaffold-3.4.0 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb
active_scaffold-3.3.3 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb
active_scaffold-3.3.2 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb
active_scaffold-3.3.1 lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb