Class: ActiveScaffold::Config::List
- Defined in:
- lib/active_scaffold/config/list.rb
Defined Under Namespace
Classes: UserSettings
Constant Summary collapse
- @@refresh_with_header =
false- @@per_page =
15- @@page_links_inner_window =
2- @@page_links_outer_window =
0- @@empty_field_text =
'-'- @@messages_above_header =
false- @@association_join_text =
', '- @@pagination =
true- @@auto_pagination =
false- @@show_search_reset =
true- @@reset_link =
ActiveScaffold::DataStructures::ActionLink.new('index', :label => :click_to_reset, :type => :collection, :position => false, :parameters => {:search => ''})
- @@wrap_tag =
nil- @@always_show_search =
false- @@always_show_create =
false- @@auto_select_columns =
false- @@calculate_etag =
false
Instance Attribute Summary collapse
- #always_show_create ⇒ Object
- #always_show_search ⇒ Object
-
#association_join_text ⇒ Object
what string to use to join records from plural associations.
-
#auto_pagination ⇒ Object
Auto paginate, only can be used with pagination enabled * true: First page will be loaded on first request, next pages will be requested by AJAX until all items are loaded * false: Disable auto pagination.
-
#auto_select_columns ⇒ Object
Enable auto select columns on list, so only columns needed for list columns are selected.
-
#calculate_etag ⇒ Object
Enable ETag calculation (when conditional_get_support is enabled), it requires to load records for page, when is disabled query can be avoided when page is cached in browser order clause will be used for ETag when calculate_etag is disabled, so query for records can be avoided.
-
#count_includes ⇒ Object
overwrite the includes used for the count sql query.
-
#empty_field_text ⇒ Object
what string to use when a field is empty.
- #filtered_message ⇒ Object
- #hide_nested_column ⇒ Object
- #label ⇒ Object
-
#messages_above_header ⇒ Object
display messages above table header.
-
#nested_auto_open ⇒ Object
might be set to open nested_link automatically in view conf.nested.add_link(:players) conf.list.nested_auto_open = => 2 will open nested players view if there are 2 or less records in parent.
- #no_entries_message ⇒ Object
-
#page_links_inner_window ⇒ Object
how many page links around current page to show.
-
#page_links_outer_window ⇒ Object
how many page links around current page to show.
-
#pagination ⇒ Object
What kind of pagination to use: * true: The usual pagination * :infinite: Treat the source as having an infinite number of pages (i.e. don’t count the records; useful for large tables where counting is slow and we don’t really care anyway) * false: Disable pagination.
-
#per_page ⇒ Object
how many rows to show at once.
-
#refresh_with_header ⇒ Object
include list header on refresh.
-
#reset_link ⇒ Object
readonly
the ActionLink to reset search.
-
#show_search_reset ⇒ Object
show a link to reset the search next to filtered message.
-
#wrap_tag ⇒ Object
wrap normal cells (not inplace editable columns or with link) with a tag it allows for more css styling.
Attributes inherited from Base
Instance Method Summary collapse
- #auto_search_partial ⇒ Object
-
#columns ⇒ Object
provides access to the list of columns specifically meant for the Table to use.
-
#initialize(core_config) ⇒ List
constructor
A new instance of List.
- #search_partial ⇒ Object
- #sorting ⇒ Object
-
#sorting=(val) ⇒ Object
the default sorting.
Methods inherited from Base
#crud_type, #formats, #formats=, inherited
Methods included from ActiveScaffold::Configurable
Constructor Details
#initialize(core_config) ⇒ List
Returns a new instance of List.
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/active_scaffold/config/list.rb', line 5 def initialize(core_config) super # inherit from global scope # full configuration path is: defaults => global table => local table @per_page = self.class.per_page @page_links_inner_window = self.class.page_links_inner_window @page_links_outer_window = self.class.page_links_outer_window # originates here @sorting = ActiveScaffold::DataStructures::Sorting.new(@core.columns) @sorting.set_default_sorting(@core.model) # inherit from global scope @empty_field_text = self.class.empty_field_text @association_join_text = self.class.association_join_text @pagination = self.class.pagination @auto_pagination = self.class.auto_pagination @show_search_reset = self.class.show_search_reset @reset_link = self.class.reset_link.clone @wrap_tag = self.class.wrap_tag @always_show_search = self.class.always_show_search @always_show_create = self.class.always_show_create = self.class. @auto_select_columns = self.class.auto_select_columns @refresh_with_header = self.class.refresh_with_header @calculate_etag = self.class.calculate_etag end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class ActiveScaffold::Configurable
Instance Attribute Details
#always_show_create ⇒ Object
204 205 206 |
# File 'lib/active_scaffold/config/list.rb', line 204 def always_show_create @always_show_create && @core.actions.include?(:create) end |
#always_show_search ⇒ Object
185 186 187 |
# File 'lib/active_scaffold/config/list.rb', line 185 def always_show_search @always_show_search && !search_partial.blank? end |
#association_join_text ⇒ Object
what string to use to join records from plural associations
147 148 149 |
# File 'lib/active_scaffold/config/list.rb', line 147 def association_join_text @association_join_text end |
#auto_pagination ⇒ Object
Auto paginate, only can be used with pagination enabled
-
true: First page will be loaded on first request, next pages will be requested by AJAX until all items are loaded
-
false: Disable auto pagination
138 139 140 |
# File 'lib/active_scaffold/config/list.rb', line 138 def auto_pagination @auto_pagination end |
#auto_select_columns ⇒ Object
Enable auto select columns on list, so only columns needed for list columns are selected
225 226 227 |
# File 'lib/active_scaffold/config/list.rb', line 225 def auto_select_columns @auto_select_columns end |
#calculate_etag ⇒ Object
Enable ETag calculation (when conditional_get_support is enabled), it requires to load records for page, when is disabled query can be avoided when page is cached in browser order clause will be used for ETag when calculate_etag is disabled, so query for records can be avoided
229 230 231 |
# File 'lib/active_scaffold/config/list.rb', line 229 def calculate_etag @calculate_etag end |
#count_includes ⇒ Object
overwrite the includes used for the count sql query
166 167 168 |
# File 'lib/active_scaffold/config/list.rb', line 166 def count_includes @count_includes end |
#empty_field_text ⇒ Object
what string to use when a field is empty
141 142 143 |
# File 'lib/active_scaffold/config/list.rb', line 141 def empty_field_text @empty_field_text end |
#filtered_message ⇒ Object
180 181 182 |
# File 'lib/active_scaffold/config/list.rb', line 180 def ? : :filtered end |
#hide_nested_column ⇒ Object
210 211 212 |
# File 'lib/active_scaffold/config/list.rb', line 210 def hide_nested_column @hide_nested_column.nil? ? true : @hide_nested_column end |
#label ⇒ Object
170 171 172 |
# File 'lib/active_scaffold/config/list.rb', line 170 def label @label ? as_(@label, :count => 2) : @core.label(:count => 2) end |
#messages_above_header ⇒ Object
display messages above table header
144 145 146 |
# File 'lib/active_scaffold/config/list.rb', line 144 def end |
#nested_auto_open ⇒ Object
might be set to open nested_link automatically in view conf.nested.add_link(:players) conf.list.nested_auto_open = => 2 will open nested players view if there are 2 or less records in parent
218 219 220 |
# File 'lib/active_scaffold/config/list.rb', line 218 def nested_auto_open @nested_auto_open end |
#no_entries_message ⇒ Object
175 176 177 |
# File 'lib/active_scaffold/config/list.rb', line 175 def ? : :no_entries end |
#page_links_inner_window ⇒ Object
how many page links around current page to show
124 125 126 |
# File 'lib/active_scaffold/config/list.rb', line 124 def page_links_inner_window @page_links_inner_window end |
#page_links_outer_window ⇒ Object
how many page links around current page to show
127 128 129 |
# File 'lib/active_scaffold/config/list.rb', line 127 def page_links_outer_window @page_links_outer_window end |
#pagination ⇒ Object
What kind of pagination to use:
-
true: The usual pagination
-
:infinite: Treat the source as having an infinite number of pages (i.e. don’t count the records; useful for large tables where counting is slow and we don’t really care anyway)
-
false: Disable pagination
133 134 135 |
# File 'lib/active_scaffold/config/list.rb', line 133 def pagination @pagination end |
#per_page ⇒ Object
how many rows to show at once
121 122 123 |
# File 'lib/active_scaffold/config/list.rb', line 121 def per_page @per_page end |
#refresh_with_header ⇒ Object
include list header on refresh
118 119 120 |
# File 'lib/active_scaffold/config/list.rb', line 118 def refresh_with_header @refresh_with_header end |
#reset_link ⇒ Object (readonly)
the ActionLink to reset search
153 154 155 |
# File 'lib/active_scaffold/config/list.rb', line 153 def reset_link @reset_link end |
#show_search_reset ⇒ Object
show a link to reset the search next to filtered message
150 151 152 |
# File 'lib/active_scaffold/config/list.rb', line 150 def show_search_reset @show_search_reset end |
#wrap_tag ⇒ Object
wrap normal cells (not inplace editable columns or with link) with a tag it allows for more css styling
222 223 224 |
# File 'lib/active_scaffold/config/list.rb', line 222 def wrap_tag @wrap_tag end |
Instance Method Details
#auto_search_partial ⇒ Object
197 198 199 200 |
# File 'lib/active_scaffold/config/list.rb', line 197 def auto_search_partial return "search" if @core.actions.include?(:search) return "field_search" if @core.actions.include?(:field_search) end |
#columns ⇒ Object
provides access to the list of columns specifically meant for the Table to use
110 111 112 113 |
# File 'lib/active_scaffold/config/list.rb', line 110 def columns self.columns = @core.columns._inheritable unless @columns # lazy evaluation @columns end |
#search_partial ⇒ Object
189 190 191 192 193 194 195 |
# File 'lib/active_scaffold/config/list.rb', line 189 def search_partial if @always_show_search == true auto_search_partial else @always_show_search.to_s if @core.actions.include? @always_show_search end end |
#sorting ⇒ Object
161 162 163 |
# File 'lib/active_scaffold/config/list.rb', line 161 def sorting @sorting ||= ActiveScaffold::DataStructures::Sorting.new(@core.columns) end |
#sorting=(val) ⇒ Object
the default sorting. should be an array of hashes of => direction, e.g. [=> ‘desc’, => ‘asc’]. to just sort on one column, you can simply provide a hash, though, e.g. => ‘desc’.
156 157 158 159 160 |
# File 'lib/active_scaffold/config/list.rb', line 156 def sorting=(val) val = [val] if val.is_a? Hash sorting.clear val.each { |clause| sorting.add *Array(clause).first } end |