Class: ActiveScaffold::Config::List

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

Defined Under Namespace

Classes: UserSettings

Constant Summary collapse

@@refresh_with_header =
false
@@per_page =
15
2
0
@@empty_field_text =
'-'
@@messages_above_header =
false
@@association_join_text =
', '
@@pagination =
true
@@auto_pagination =
false
@@show_search_reset =
true
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

Attributes inherited from Base

#action_group, #core, #formats, #user

Instance Method Summary collapse

Methods inherited from Base

#crud_type, inherited

Methods included from ActiveScaffold::Configurable

#configure, #method_missing

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
  @messages_above_header = self.class.messages_above_header
  @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_createObject



207
208
209
# File 'lib/active_scaffold/config/list.rb', line 207

def always_show_create
  @always_show_create && @core.actions.include?(:create)
end

#always_show_searchObject



188
189
190
# File 'lib/active_scaffold/config/list.rb', line 188

def always_show_search
  @always_show_search && !search_partial.blank?
end

#association_join_textObject

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_paginationObject

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_columnsObject

Enable auto select columns on list, so only columns needed for list columns are selected



222
223
224
# File 'lib/active_scaffold/config/list.rb', line 222

def auto_select_columns
  @auto_select_columns
end

#calculate_etagObject

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



226
227
228
# File 'lib/active_scaffold/config/list.rb', line 226

def calculate_etag
  @calculate_etag
end

#count_includesObject

overwrite the includes used for the count sql query



169
170
171
# File 'lib/active_scaffold/config/list.rb', line 169

def count_includes
  @count_includes
end

#empty_field_textObject

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_messageObject



183
184
185
# File 'lib/active_scaffold/config/list.rb', line 183

def filtered_message
  @filtered_message ? @filtered_message : :filtered
end

#hide_nested_columnObject



213
214
215
# File 'lib/active_scaffold/config/list.rb', line 213

def hide_nested_column
  @hide_nested_column.nil? ? true : @hide_nested_column
end

#labelObject



173
174
175
# File 'lib/active_scaffold/config/list.rb', line 173

def label
  @label ? as_(@label, :count => 2) : @core.label(:count => 2)
end

#messages_above_headerObject

display messages above table header



144
145
146
# File 'lib/active_scaffold/config/list.rb', line 144

def messages_above_header
  @messages_above_header
end

#no_entries_messageObject



178
179
180
# File 'lib/active_scaffold/config/list.rb', line 178

def no_entries_message
  @no_entries_message ? @no_entries_message : :no_entries
end

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

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

#paginationObject

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_pageObject

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_headerObject

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

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_resetObject

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_tagObject

wrap normal cells (not inplace editable columns or with link) with a tag it allows for more css styling



219
220
221
# File 'lib/active_scaffold/config/list.rb', line 219

def wrap_tag
  @wrap_tag
end

Instance Method Details

#auto_search_partialObject



200
201
202
203
# File 'lib/active_scaffold/config/list.rb', line 200

def auto_search_partial
  return 'search' if @core.actions.include?(:search)
  return 'field_search' if @core.actions.include?(:field_search)
end

#columnsObject

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_partialObject



192
193
194
195
196
197
198
# File 'lib/active_scaffold/config/list.rb', line 192

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

#sortingObject



164
165
166
# File 'lib/active_scaffold/config/list.rb', line 164

def sorting
  @sorting ||= ActiveScaffold::DataStructures::Sorting.new(@core.columns)
end

#sorting=(val) ⇒ Object

the default sorting. should be a hash of => direction, e.g. => ‘desc’, :b => ‘asc’. for backwards compatibility, it may be an array of hashes of => direction, e.g. [=> ‘desc’, => ‘asc’]. to just sort on one column, you can simply provide a hash, e.g. => ‘desc’.



159
160
161
162
# File 'lib/active_scaffold/config/list.rb', line 159

def sorting=(val)
  val = [val] if val.is_a? Hash
  sorting.set *val
end