Class: ActiveScaffold::Config::FieldSearch

Inherits:
Base show all
Defined in:
lib/active_scaffold/config/field_search.rb

Constant Summary collapse

NO_COLUMNS =
[].freeze
ActiveScaffold::DataStructures::ActionLink.new('show_search', label: :search, type: :collection, security_method: :search_authorized?, ignore_method: :field_search_ignore?)
@@text_search =
:full
@@human_conditions =
false
false

Constants inherited from Base

Base::NO_FORMATS

Instance Attribute Summary collapse

Attributes inherited from Base

#action_group, #core, #formats, #user_settings_key

Instance Method Summary collapse

Methods inherited from Base

inherited, #label, #model_id, #new_user_settings, #setup_user_setting_key, #user

Methods included from ActiveScaffold::Configurable

#configure, #method_missing, #respond_to_missing?

Constructor Details

#initialize(core_config) ⇒ FieldSearch

Returns a new instance of FieldSearch.



8
9
10
11
12
13
14
15
# File 'lib/active_scaffold/config/field_search.rb', line 8

def initialize(core_config)
  super
  @text_search = self.class.text_search
  @human_conditions = self.class.human_conditions
  @floating_footer = self.class.floating_footer
  @reset_form = self.class.reset_form
  @update_columns = self.class.update_columns
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class ActiveScaffold::Configurable

Instance Attribute Details

#default_paramsObject

default search params default_params = {“from”=>“test”, “to”=>“”, “opt”=>“%?%”}



83
84
85
# File 'lib/active_scaffold/config/field_search.rb', line 83

def default_params
  @default_params
end

whether footer should float when form is too long to fit in the screen, so footer is always available while scrolling



90
91
92
# File 'lib/active_scaffold/config/field_search.rb', line 90

def floating_footer
  @floating_footer
end

#group_optionsObject

add array of columns as options for group by to get aggregated listings



76
77
78
# File 'lib/active_scaffold/config/field_search.rb', line 76

def group_options
  @group_options
end

#grouped_columnsObject

columns to display on aggregated listing



79
80
81
# File 'lib/active_scaffold/config/field_search.rb', line 79

def grouped_columns
  @grouped_columns
end

#human_conditionsObject

human conditions instead of just filtered you may show the user a humanized search condition statment



87
88
89
# File 'lib/active_scaffold/config/field_search.rb', line 87

def human_conditions
  @human_conditions
end

the ActionLink for this action



62
63
64
# File 'lib/active_scaffold/config/field_search.rb', line 62

def link
  @link
end

#reset_formObject

Returns the value of attribute reset_form.



92
93
94
# File 'lib/active_scaffold/config/field_search.rb', line 92

def reset_form
  @reset_form
end

#text_searchObject

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



59
60
61
# File 'lib/active_scaffold/config/field_search.rb', line 59

def text_search
  @text_search
end

#update_columnsObject

whether refresh columns defined in update_columns when a column is changed, as create and update forms do



95
96
97
# File 'lib/active_scaffold/config/field_search.rb', line 95

def update_columns
  @update_columns
end

Instance Method Details

#optional_columnsObject



69
70
71
72
73
# File 'lib/active_scaffold/config/field_search.rb', line 69

def optional_columns
  return @optional_columns || NO_COLUMNS if frozen?

  @optional_columns ||= NO_COLUMNS.dup
end

#optional_columns=(optionals) ⇒ Object

rarely searched columns may be placed in a hidden subgroup



65
66
67
# File 'lib/active_scaffold/config/field_search.rb', line 65

def optional_columns=(optionals)
  @optional_columns = Array(optionals)
end