Sha256: a5c94352be536ef292ca8c0e2acb8e88544e7f6f4e558bb3748de612156460fa

Contents?: true

Size: 1.94 KB

Versions: 18

Compression:

Stored size: 1.94 KB

Contents

module ActiveScaffold::Config
  class Search < Base
    self.crud_type = :read

    def initialize(core_config)
      @core = core_config

      @text_search = self.class.text_search
      @live = self.class.live?

      # start with the ActionLink defined globally
      @link = self.class.link.clone
      @action_group = self.class.action_group.clone if self.class.action_group
    end


    # global level configuration
    # --------------------------
    # the ActionLink for this action
    cattr_accessor :link
    @@link = ActiveScaffold::DataStructures::ActionLink.new('show_search', :label => :search, :type => :collection, :security_method => :search_authorized?, :ignore_method => :search_ignore?)

    # A flag for how the search should do full-text searching in the database:
    # * :full: LIKE %?%
    # * :start: LIKE ?%
    # * :end: LIKE %?
    # * false: LIKE ?
    # Default is :full
    cattr_accessor :text_search
    @@text_search = :full

    # whether submits the search as you type
    cattr_writer :live
    def self.live?
      @@live
    end

    # instance-level configuration
    # ----------------------------

    # provides access to the list of columns specifically meant for the Search to use
    def columns
      # we want to delay initializing to the @core.columns set for as long as possible. Too soon and .search_sql will not be available to .searchable?
      unless @columns
        self.columns = @core.columns.collect{|c| c.name if c.searchable? and c.column and c.column.text?}.compact
      end
      @columns
    end

    public :columns=

    # A flag for how the search should do full-text searching in the database:
    # * :full: LIKE %?%
    # * :start: LIKE ?%
    # * :end: LIKE %?
    # * false: LIKE ?
    # Default is :full
    attr_accessor :text_search

    # the ActionLink for this action
    attr_accessor :link

    # whether submits the search as you type
    attr_writer :live
    def live?
      @live
    end
  end
end

Version data entries

18 entries across 18 versions & 3 rubygems

Version Path
active_scaffold_vho-3.0.20 lib/active_scaffold/config/search.rb
active_scaffold_vho-3.0.19 lib/active_scaffold/config/search.rb
active_scaffold_san-3.0.18 lib/active_scaffold/config/search.rb
active_scaffold_vho-3.0.18 lib/active_scaffold/config/search.rb
active_scaffold_vho-3.0.17 lib/active_scaffold/config/search.rb
active_scaffold_vho-3.0.16 lib/active_scaffold/config/search.rb
active_scaffold_vho-3.0.15 lib/active_scaffold/config/search.rb
active_scaffold_vho-3.0.14 lib/active_scaffold/config/search.rb
active_scaffold_vho-3.0.13 lib/active_scaffold/config/search.rb
active_scaffold_vho-3.0.12 lib/active_scaffold/config/search.rb
active_scaffold_vho-3.0.11 lib/active_scaffold/config/search.rb
active_scaffold-3.0.12 lib/active_scaffold/config/search.rb
active_scaffold-3.0.11 lib/active_scaffold/config/search.rb
active_scaffold_vho-3.0.10 lib/active_scaffold/config/search.rb
active_scaffold_vho-3.0.9 lib/active_scaffold/config/search.rb
active_scaffold_vho-3.0.8 lib/active_scaffold/config/search.rb
active_scaffold_vho-3.0.7 lib/active_scaffold/config/search.rb
active_scaffold_vho-3.0.6 lib/active_scaffold/config/search.rb