active_scaffold 3.2.17 → 3.2.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +5 -1
- metadata +17 -261
- data/app/assets/images/active_scaffold/add.png +0 -0
- data/app/assets/images/active_scaffold/arrow_down.png +0 -0
- data/app/assets/images/active_scaffold/arrow_up.png +0 -0
- data/app/assets/images/active_scaffold/close.png +0 -0
- data/app/assets/images/active_scaffold/close_touch.png +0 -0
- data/app/assets/images/active_scaffold/config.png +0 -0
- data/app/assets/images/active_scaffold/cross.png +0 -0
- data/app/assets/images/active_scaffold/gears.png +0 -0
- data/app/assets/images/active_scaffold/indicator-small.gif +0 -0
- data/app/assets/images/active_scaffold/indicator.gif +0 -0
- data/app/assets/images/active_scaffold/magnifier.png +0 -0
- data/app/assets/javascripts/active_scaffold.js.erb +0 -19
- data/app/assets/javascripts/jquery/active_scaffold.js +0 -1113
- data/app/assets/javascripts/jquery/date_picker_bridge.js.erb +0 -24
- data/app/assets/javascripts/jquery/draggable_lists.js +0 -27
- data/app/assets/javascripts/jquery/jquery.editinplace.js +0 -743
- data/app/assets/javascripts/jquery/tiny_mce_bridge.js +0 -7
- data/app/assets/javascripts/prototype/active_scaffold.js +0 -1107
- data/app/assets/javascripts/prototype/dhtml_history.js +0 -870
- data/app/assets/javascripts/prototype/form_enhancements.js +0 -117
- data/app/assets/javascripts/prototype/rico_corner.js +0 -370
- data/app/assets/javascripts/prototype/tiny_mce_bridge.js +0 -7
- data/app/assets/stylesheets/active_scaffold-ie.css.scss +0 -54
- data/app/assets/stylesheets/active_scaffold.css.scss +0 -14
- data/app/assets/stylesheets/active_scaffold_colors.css.scss +0 -395
- data/app/assets/stylesheets/active_scaffold_extensions.css.erb +0 -2
- data/app/assets/stylesheets/active_scaffold_images.css.scss +0 -40
- data/app/assets/stylesheets/active_scaffold_layout.css +0 -936
- data/app/assets/stylesheets/blue-theme.css +0 -74
- data/config/locales/de.yml +0 -125
- data/config/locales/en.yml +0 -127
- data/config/locales/es.yml +0 -128
- data/config/locales/fr.yml +0 -131
- data/config/locales/hu.yml +0 -126
- data/config/locales/ja.yml +0 -126
- data/config/locales/ru.yml +0 -135
- data/frontends/default/views/_action_group.html.erb +0 -24
- data/frontends/default/views/_add_existing_form.html.erb +0 -30
- data/frontends/default/views/_base_form.html.erb +0 -53
- data/frontends/default/views/_create_form.html.erb +0 -8
- data/frontends/default/views/_create_form_on_list.html.erb +0 -6
- data/frontends/default/views/_field_search.html.erb +0 -32
- data/frontends/default/views/_form.html.erb +0 -28
- data/frontends/default/views/_form_association.html.erb +0 -17
- data/frontends/default/views/_form_association_footer.html.erb +0 -47
- data/frontends/default/views/_form_attribute.html.erb +0 -23
- data/frontends/default/views/_form_hidden_attribute.html.erb +0 -7
- data/frontends/default/views/_form_messages.html.erb +0 -5
- data/frontends/default/views/_horizontal_subform.html.erb +0 -22
- data/frontends/default/views/_horizontal_subform_footer.html.erb +0 -0
- data/frontends/default/views/_horizontal_subform_header.html.erb +0 -11
- data/frontends/default/views/_horizontal_subform_record.html.erb +0 -43
- data/frontends/default/views/_human_conditions.html.erb +0 -1
- data/frontends/default/views/_list.html.erb +0 -18
- data/frontends/default/views/_list_actions.html.erb +0 -15
- data/frontends/default/views/_list_calculations.html.erb +0 -16
- data/frontends/default/views/_list_column_headings.html.erb +0 -12
- data/frontends/default/views/_list_header.html.erb +0 -10
- data/frontends/default/views/_list_inline_adapter.html.erb +0 -21
- data/frontends/default/views/_list_messages.html.erb +0 -28
- data/frontends/default/views/_list_pagination.html.erb +0 -11
- data/frontends/default/views/_list_pagination_links.html.erb +0 -9
- data/frontends/default/views/_list_record.html.erb +0 -13
- data/frontends/default/views/_list_record_columns.html.erb +0 -8
- data/frontends/default/views/_list_with_header.html.erb +0 -36
- data/frontends/default/views/_messages.html.erb +0 -10
- data/frontends/default/views/_refresh_list.js.erb +0 -1
- data/frontends/default/views/_render_field.js.erb +0 -20
- data/frontends/default/views/_row.html.erb +0 -1
- data/frontends/default/views/_search.html.erb +0 -34
- data/frontends/default/views/_search_attribute.html.erb +0 -10
- data/frontends/default/views/_show.html.erb +0 -8
- data/frontends/default/views/_show_columns.html.erb +0 -15
- data/frontends/default/views/_update_actions.html.erb +0 -9
- data/frontends/default/views/_update_calculations.js.erb +0 -4
- data/frontends/default/views/_update_form.html.erb +0 -6
- data/frontends/default/views/_update_messages.js.erb +0 -2
- data/frontends/default/views/_vertical_subform.html.erb +0 -12
- data/frontends/default/views/_vertical_subform_record.html.erb +0 -43
- data/frontends/default/views/action_confirmation.html.erb +0 -13
- data/frontends/default/views/add_existing.js.erb +0 -14
- data/frontends/default/views/add_existing_form.html.erb +0 -5
- data/frontends/default/views/create.html.erb +0 -5
- data/frontends/default/views/delete.html.erb +0 -13
- data/frontends/default/views/destroy.js.erb +0 -26
- data/frontends/default/views/edit_associated.js.erb +0 -12
- data/frontends/default/views/field_search.html.erb +0 -5
- data/frontends/default/views/form_messages.js.erb +0 -1
- data/frontends/default/views/list.html.erb +0 -1
- data/frontends/default/views/on_action_update.js.erb +0 -22
- data/frontends/default/views/on_create.js.erb +0 -38
- data/frontends/default/views/on_mark.js.erb +0 -6
- data/frontends/default/views/on_update.js.erb +0 -29
- data/frontends/default/views/refresh_list.js.erb +0 -2
- data/frontends/default/views/render_field.js.erb +0 -1
- data/frontends/default/views/row.js.erb +0 -2
- data/frontends/default/views/search.html.erb +0 -5
- data/frontends/default/views/show.html.erb +0 -5
- data/frontends/default/views/update.html.erb +0 -8
- data/frontends/default/views/update_column.js.erb +0 -15
- data/frontends/default/views/update_row.js.erb +0 -1
- data/lib/active_scaffold.rb +0 -373
- data/lib/active_scaffold/actions/common_search.rb +0 -22
- data/lib/active_scaffold/actions/core.rb +0 -203
- data/lib/active_scaffold/actions/create.rb +0 -139
- data/lib/active_scaffold/actions/delete.rb +0 -74
- data/lib/active_scaffold/actions/field_search.rb +0 -78
- data/lib/active_scaffold/actions/list.rb +0 -208
- data/lib/active_scaffold/actions/mark.rb +0 -89
- data/lib/active_scaffold/actions/nested.rb +0 -244
- data/lib/active_scaffold/actions/search.rb +0 -48
- data/lib/active_scaffold/actions/show.rb +0 -61
- data/lib/active_scaffold/actions/subform.rb +0 -23
- data/lib/active_scaffold/actions/update.rb +0 -156
- data/lib/active_scaffold/active_record_permissions.rb +0 -135
- data/lib/active_scaffold/attribute_params.rb +0 -200
- data/lib/active_scaffold/bridges.rb +0 -61
- data/lib/active_scaffold/bridges/ancestry.rb +0 -5
- data/lib/active_scaffold/bridges/ancestry/ancestry_bridge.rb +0 -39
- data/lib/active_scaffold/bridges/bitfields.rb +0 -6
- data/lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb +0 -37
- data/lib/active_scaffold/bridges/calendar_date_select.rb +0 -24
- data/lib/active_scaffold/bridges/calendar_date_select/as_cds_bridge.rb +0 -66
- data/lib/active_scaffold/bridges/cancan.rb +0 -15
- data/lib/active_scaffold/bridges/cancan/cancan_bridge.rb +0 -127
- data/lib/active_scaffold/bridges/carrierwave.rb +0 -12
- data/lib/active_scaffold/bridges/carrierwave/carrierwave_bridge.rb +0 -31
- data/lib/active_scaffold/bridges/carrierwave/carrierwave_bridge_helpers.rb +0 -10
- data/lib/active_scaffold/bridges/carrierwave/form_ui.rb +0 -45
- data/lib/active_scaffold/bridges/carrierwave/list_ui.rb +0 -17
- data/lib/active_scaffold/bridges/country_helper.rb +0 -9
- data/lib/active_scaffold/bridges/country_helper/country_helper_bridge.rb +0 -358
- data/lib/active_scaffold/bridges/date_picker.rb +0 -23
- data/lib/active_scaffold/bridges/date_picker/ext.rb +0 -63
- data/lib/active_scaffold/bridges/date_picker/helper.rb +0 -180
- data/lib/active_scaffold/bridges/dragonfly.rb +0 -9
- data/lib/active_scaffold/bridges/dragonfly/dragonfly_bridge.rb +0 -34
- data/lib/active_scaffold/bridges/dragonfly/dragonfly_bridge_helpers.rb +0 -10
- data/lib/active_scaffold/bridges/dragonfly/form_ui.rb +0 -27
- data/lib/active_scaffold/bridges/dragonfly/list_ui.rb +0 -16
- data/lib/active_scaffold/bridges/file_column.rb +0 -11
- data/lib/active_scaffold/bridges/file_column/as_file_column_bridge.rb +0 -46
- data/lib/active_scaffold/bridges/file_column/file_column_helpers.rb +0 -57
- data/lib/active_scaffold/bridges/file_column/form_ui.rb +0 -34
- data/lib/active_scaffold/bridges/file_column/list_ui.rb +0 -26
- data/lib/active_scaffold/bridges/file_column/test/functional/file_column_keep_test.rb +0 -43
- data/lib/active_scaffold/bridges/file_column/test/mock_model.rb +0 -9
- data/lib/active_scaffold/bridges/file_column/test/test_helper.rb +0 -15
- data/lib/active_scaffold/bridges/paperclip.rb +0 -12
- data/lib/active_scaffold/bridges/paperclip/form_ui.rb +0 -27
- data/lib/active_scaffold/bridges/paperclip/list_ui.rb +0 -16
- data/lib/active_scaffold/bridges/paperclip/paperclip_bridge.rb +0 -36
- data/lib/active_scaffold/bridges/paperclip/paperclip_bridge_helpers.rb +0 -24
- data/lib/active_scaffold/bridges/record_select.rb +0 -11
- data/lib/active_scaffold/bridges/record_select/helpers.rb +0 -92
- data/lib/active_scaffold/bridges/semantic_attributes.rb +0 -5
- data/lib/active_scaffold/bridges/semantic_attributes/column.rb +0 -20
- data/lib/active_scaffold/bridges/shared/date_bridge.rb +0 -209
- data/lib/active_scaffold/bridges/tiny_mce.rb +0 -17
- data/lib/active_scaffold/bridges/tiny_mce/helpers.rb +0 -46
- data/lib/active_scaffold/config/base.rb +0 -75
- data/lib/active_scaffold/config/core.rb +0 -236
- data/lib/active_scaffold/config/create.rb +0 -32
- data/lib/active_scaffold/config/delete.rb +0 -32
- data/lib/active_scaffold/config/field_search.rb +0 -79
- data/lib/active_scaffold/config/form.rb +0 -64
- data/lib/active_scaffold/config/list.rb +0 -247
- data/lib/active_scaffold/config/mark.rb +0 -30
- data/lib/active_scaffold/config/nested.rb +0 -42
- data/lib/active_scaffold/config/search.rb +0 -73
- data/lib/active_scaffold/config/show.rb +0 -31
- data/lib/active_scaffold/config/subform.rb +0 -35
- data/lib/active_scaffold/config/update.rb +0 -33
- data/lib/active_scaffold/configurable.rb +0 -29
- data/lib/active_scaffold/constraints.rb +0 -171
- data/lib/active_scaffold/data_structures/action_columns.rb +0 -142
- data/lib/active_scaffold/data_structures/action_link.rb +0 -185
- data/lib/active_scaffold/data_structures/action_links.rb +0 -191
- data/lib/active_scaffold/data_structures/actions.rb +0 -45
- data/lib/active_scaffold/data_structures/bridge.rb +0 -22
- data/lib/active_scaffold/data_structures/column.rb +0 -401
- data/lib/active_scaffold/data_structures/columns.rb +0 -75
- data/lib/active_scaffold/data_structures/error_message.rb +0 -24
- data/lib/active_scaffold/data_structures/nested_info.rb +0 -171
- data/lib/active_scaffold/data_structures/set.rb +0 -61
- data/lib/active_scaffold/data_structures/sorting.rb +0 -167
- data/lib/active_scaffold/engine.rb +0 -4
- data/lib/active_scaffold/extensions/action_controller_rendering.rb +0 -20
- data/lib/active_scaffold/extensions/action_controller_rescueing.rb +0 -7
- data/lib/active_scaffold/extensions/action_view_rendering.rb +0 -115
- data/lib/active_scaffold/extensions/active_record_offset.rb +0 -12
- data/lib/active_scaffold/extensions/array.rb +0 -7
- data/lib/active_scaffold/extensions/cache_association.rb +0 -16
- data/lib/active_scaffold/extensions/localize.rb +0 -10
- data/lib/active_scaffold/extensions/name_option_for_datetime.rb +0 -12
- data/lib/active_scaffold/extensions/nil_id_in_url_params.rb +0 -7
- data/lib/active_scaffold/extensions/paginator_extensions.rb +0 -26
- data/lib/active_scaffold/extensions/reverse_associations.rb +0 -64
- data/lib/active_scaffold/extensions/routing_mapper.rb +0 -48
- data/lib/active_scaffold/extensions/to_label.rb +0 -8
- data/lib/active_scaffold/extensions/unsaved_associated.rb +0 -61
- data/lib/active_scaffold/extensions/unsaved_record.rb +0 -20
- data/lib/active_scaffold/extensions/usa_state.rb +0 -46
- data/lib/active_scaffold/finder.rb +0 -399
- data/lib/active_scaffold/helpers/association_helpers.rb +0 -42
- data/lib/active_scaffold/helpers/controller_helpers.rb +0 -94
- data/lib/active_scaffold/helpers/form_column_helpers.rb +0 -322
- data/lib/active_scaffold/helpers/human_condition_helpers.rb +0 -64
- data/lib/active_scaffold/helpers/id_helpers.rb +0 -131
- data/lib/active_scaffold/helpers/list_column_helpers.rb +0 -374
- data/lib/active_scaffold/helpers/pagination_helpers.rb +0 -62
- data/lib/active_scaffold/helpers/search_column_helpers.rb +0 -257
- data/lib/active_scaffold/helpers/show_column_helpers.rb +0 -44
- data/lib/active_scaffold/helpers/view_helpers.rb +0 -398
- data/lib/active_scaffold/marked_model.rb +0 -38
- data/lib/active_scaffold/paginator.rb +0 -136
- data/lib/active_scaffold/responds_to_parent.rb +0 -70
- data/lib/active_scaffold/tableless.rb +0 -83
- data/lib/active_scaffold/version.rb +0 -9
- data/lib/active_scaffold_env.rb +0 -13
- data/lib/generators/active_scaffold/USAGE +0 -29
- data/lib/generators/active_scaffold/active_scaffold_generator.rb +0 -21
- data/lib/generators/active_scaffold_controller/USAGE +0 -19
- data/lib/generators/active_scaffold_controller/active_scaffold_controller_generator.rb +0 -29
- data/lib/generators/active_scaffold_controller/templates/controller.rb +0 -4
- data/lib/generators/active_scaffold_controller/templates/helper.rb +0 -2
- data/public/blank.html +0 -33
- data/shoulda_macros/macros.rb +0 -136
- data/vendor/assets/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/vendor/assets/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/vendor/assets/images/ui-bg_flat_10_000000_40x100.png +0 -0
- data/vendor/assets/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/vendor/assets/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/vendor/assets/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/vendor/assets/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/vendor/assets/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/vendor/assets/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/vendor/assets/images/ui-icons_222222_256x240.png +0 -0
- data/vendor/assets/images/ui-icons_228ef1_256x240.png +0 -0
- data/vendor/assets/images/ui-icons_ef8c08_256x240.png +0 -0
- data/vendor/assets/images/ui-icons_ffd27a_256x240.png +0 -0
- data/vendor/assets/images/ui-icons_ffffff_256x240.png +0 -0
- data/vendor/assets/javascripts/jquery-ui-timepicker-addon.js +0 -1276
- data/vendor/assets/stylesheets/jquery-ui.css +0 -568
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
module ActiveScaffold::Actions
|
|
2
|
-
module List
|
|
3
|
-
def self.included(base)
|
|
4
|
-
base.before_filter :list_authorized_filter, :only => [:index, :row]
|
|
5
|
-
base.helper_method :list_columns
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
def index
|
|
9
|
-
list
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
# get just a single row
|
|
13
|
-
def row
|
|
14
|
-
get_row
|
|
15
|
-
respond_to_action(:row)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def list
|
|
19
|
-
if %w(index list).include? action_name
|
|
20
|
-
do_list
|
|
21
|
-
else
|
|
22
|
-
do_refresh_list
|
|
23
|
-
end
|
|
24
|
-
@nested_auto_open = active_scaffold_config.list.nested_auto_open
|
|
25
|
-
respond_to_action(:list)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
protected
|
|
29
|
-
def list_respond_to_html
|
|
30
|
-
if embedded?
|
|
31
|
-
render :action => 'list', :layout => false
|
|
32
|
-
else
|
|
33
|
-
render :action => 'list'
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
def list_respond_to_js
|
|
37
|
-
if params[:adapter] || embedded?
|
|
38
|
-
render(:partial => 'list_with_header')
|
|
39
|
-
else
|
|
40
|
-
render :partial => 'refresh_list', :formats => [:js]
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
def list_respond_to_xml
|
|
44
|
-
render :xml => response_object.to_xml(:only => list_columns_names), :content_type => Mime::XML, :status => response_status
|
|
45
|
-
end
|
|
46
|
-
def list_respond_to_json
|
|
47
|
-
render :text => response_object.to_json(:only => list_columns_names), :content_type => Mime::JSON, :status => response_status
|
|
48
|
-
end
|
|
49
|
-
def list_respond_to_yaml
|
|
50
|
-
render :text => Hash.from_xml(response_object.to_xml(:only => list_columns_names)).to_yaml, :content_type => Mime::YAML, :status => response_status
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
def row_respond_to_html
|
|
54
|
-
render(:partial => 'row', :locals => {:record => @record})
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def row_respond_to_js
|
|
58
|
-
render
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
# The actual algorithm to prepare for the list view
|
|
62
|
-
def set_includes_for_list_columns
|
|
63
|
-
@cache_associations = true
|
|
64
|
-
includes_for_list_columns = active_scaffold_config.list.columns.collect{ |c| c.includes }.flatten.uniq.compact
|
|
65
|
-
self.active_scaffold_includes.concat includes_for_list_columns
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def get_row
|
|
69
|
-
set_includes_for_list_columns
|
|
70
|
-
klass = beginning_of_chain.includes(active_scaffold_includes)
|
|
71
|
-
@record = find_if_allowed(params[:id], :read, klass)
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
# The actual algorithm to prepare for the list view
|
|
75
|
-
def do_list
|
|
76
|
-
set_includes_for_list_columns
|
|
77
|
-
|
|
78
|
-
options = { :sorting => active_scaffold_config.list.user.sorting,
|
|
79
|
-
:count_includes => active_scaffold_config.list.user.count_includes }
|
|
80
|
-
paginate = (params[:format].nil?) ? (accepts? :html, :js) : ['html', 'js'].include?(params[:format])
|
|
81
|
-
if paginate
|
|
82
|
-
options.merge!({
|
|
83
|
-
:per_page => active_scaffold_config.list.user.per_page,
|
|
84
|
-
:page => active_scaffold_config.list.user.page,
|
|
85
|
-
:pagination => active_scaffold_config.list.pagination
|
|
86
|
-
})
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
page = find_page(options)
|
|
90
|
-
total_pages = page.pager.number_of_pages
|
|
91
|
-
if !page.pager.infinite? && !total_pages.zero? && page.number > total_pages
|
|
92
|
-
page = page.pager.last
|
|
93
|
-
active_scaffold_config.list.user.page = page.number
|
|
94
|
-
end
|
|
95
|
-
@page, @records = page, page.items
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
def do_refresh_list
|
|
99
|
-
do_search if respond_to? :do_search
|
|
100
|
-
do_list
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
def each_record_in_page
|
|
104
|
-
_page = active_scaffold_config.list.user.page
|
|
105
|
-
do_search if respond_to? :do_search
|
|
106
|
-
active_scaffold_config.list.user.page = _page
|
|
107
|
-
do_list
|
|
108
|
-
@page.items.each {|record| yield record}
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
def each_record_in_scope
|
|
112
|
-
do_search if respond_to? :do_search
|
|
113
|
-
append_to_query(beginning_of_chain, finder_options).all.each {|record| yield record}
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
# The default security delegates to ActiveRecordPermissions.
|
|
117
|
-
# You may override the method to customize.
|
|
118
|
-
def list_authorized?
|
|
119
|
-
authorized_for?(:crud_type => :read)
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
# call this method in your action_link action to simplify processing of actions
|
|
123
|
-
# eg for member action_link :fire
|
|
124
|
-
# process_action_link_action do |record|
|
|
125
|
-
# record.update_attributes(:fired => true)
|
|
126
|
-
# self.successful = true
|
|
127
|
-
# flash[:info] = 'Player fired'
|
|
128
|
-
# end
|
|
129
|
-
def process_action_link_action(render_action = :action_update, crud_type = nil)
|
|
130
|
-
if request.get?
|
|
131
|
-
# someone has disabled javascript, we have to show confirmation form first
|
|
132
|
-
@record = find_if_allowed(params[:id], :read) if params[:id] && params[:id] && params[:id].to_i > 0
|
|
133
|
-
respond_to_action(:action_confirmation)
|
|
134
|
-
else
|
|
135
|
-
@action_link = active_scaffold_config.action_links[action_name]
|
|
136
|
-
if params[:id] && params[:id] && params[:id].to_i > 0
|
|
137
|
-
crud_type ||= (request.post? || request.put?) ? :update : :delete
|
|
138
|
-
@record = find_if_allowed(params[:id], crud_type)
|
|
139
|
-
unless @record.nil?
|
|
140
|
-
yield @record
|
|
141
|
-
else
|
|
142
|
-
self.successful = false
|
|
143
|
-
flash[:error] = as_(:no_authorization_for_action, :action => action_name)
|
|
144
|
-
end
|
|
145
|
-
else
|
|
146
|
-
yield
|
|
147
|
-
end
|
|
148
|
-
respond_to_action(render_action)
|
|
149
|
-
end
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
def action_confirmation_respond_to_html(confirm_action = action_name.to_sym)
|
|
153
|
-
link = active_scaffold_config.action_links[confirm_action]
|
|
154
|
-
render :action => 'action_confirmation', :locals => {:record => @record, :link => link}
|
|
155
|
-
end
|
|
156
|
-
|
|
157
|
-
def action_update_respond_to_html
|
|
158
|
-
redirect_to :action => 'index'
|
|
159
|
-
end
|
|
160
|
-
|
|
161
|
-
def action_update_respond_to_js
|
|
162
|
-
do_refresh_list unless @record.present?
|
|
163
|
-
render(:action => 'on_action_update')
|
|
164
|
-
end
|
|
165
|
-
|
|
166
|
-
def action_update_respond_to_xml
|
|
167
|
-
render :xml => successful? ? "" : response_object.to_xml(:only => list_columns_names), :content_type => Mime::XML, :status => response_status
|
|
168
|
-
end
|
|
169
|
-
|
|
170
|
-
def action_update_respond_to_json
|
|
171
|
-
render :text => successful? ? "" : response_object.to_json(:only => list_columns_names), :content_type => Mime::JSON, :status => response_status
|
|
172
|
-
end
|
|
173
|
-
|
|
174
|
-
def action_update_respond_to_yaml
|
|
175
|
-
render :text => successful? ? "" : Hash.from_xml(response_object.to_xml(:only => list_columns_names)).to_yaml, :content_type => Mime::YAML, :status => response_status
|
|
176
|
-
end
|
|
177
|
-
|
|
178
|
-
private
|
|
179
|
-
def list_authorized_filter
|
|
180
|
-
raise ActiveScaffold::ActionNotAllowed unless list_authorized?
|
|
181
|
-
end
|
|
182
|
-
|
|
183
|
-
def list_formats
|
|
184
|
-
(default_formats + active_scaffold_config.formats + active_scaffold_config.list.formats).uniq
|
|
185
|
-
end
|
|
186
|
-
alias_method :index_formats, :list_formats
|
|
187
|
-
|
|
188
|
-
def row_formats
|
|
189
|
-
([:html, :js] + active_scaffold_config.formats + active_scaffold_config.list.formats).uniq
|
|
190
|
-
end
|
|
191
|
-
|
|
192
|
-
def action_update_formats
|
|
193
|
-
(default_formats + active_scaffold_config.formats).uniq
|
|
194
|
-
end
|
|
195
|
-
|
|
196
|
-
def action_confirmation_formats
|
|
197
|
-
(default_formats + active_scaffold_config.formats).uniq
|
|
198
|
-
end
|
|
199
|
-
|
|
200
|
-
def list_columns
|
|
201
|
-
active_scaffold_config.list.columns.collect_visible
|
|
202
|
-
end
|
|
203
|
-
|
|
204
|
-
def list_columns_names
|
|
205
|
-
list_columns.collect(&:name)
|
|
206
|
-
end
|
|
207
|
-
end
|
|
208
|
-
end
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
module ActiveScaffold::Actions
|
|
2
|
-
module Mark
|
|
3
|
-
|
|
4
|
-
def self.included(base)
|
|
5
|
-
base.before_filter :mark_authorized?, :only => :mark
|
|
6
|
-
base.before_filter :assign_marked_records_to_model
|
|
7
|
-
base.helper_method :marked_records
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def mark
|
|
11
|
-
if mark? || mark_all_scope_forced?
|
|
12
|
-
do_mark
|
|
13
|
-
else
|
|
14
|
-
do_demark
|
|
15
|
-
end
|
|
16
|
-
if marked_records.length > 0
|
|
17
|
-
count = marked_records.length
|
|
18
|
-
flash[:info] = as_(:records_marked, :count => count, :model => active_scaffold_config.label(:count => count))
|
|
19
|
-
end
|
|
20
|
-
respond_to_action(:mark)
|
|
21
|
-
end
|
|
22
|
-
protected
|
|
23
|
-
|
|
24
|
-
def mark_respond_to_html
|
|
25
|
-
do_list
|
|
26
|
-
list_respond_to_html
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def mark_respond_to_js
|
|
30
|
-
if params[:id]
|
|
31
|
-
do_search if respond_to? :do_search
|
|
32
|
-
set_includes_for_list_columns
|
|
33
|
-
@page = find_page(:pagination => active_scaffold_config.mark.mark_all_mode != :page)
|
|
34
|
-
render :action => 'on_mark'
|
|
35
|
-
else
|
|
36
|
-
render :action => 'on_mark', :locals => {:checked => mark?}
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# We need to give the ActiveRecord classes a handle to currently marked records. We don't want to just pass the object,
|
|
41
|
-
# because the object may change. So we give ActiveRecord a proc that ties to the marked_records_method on this ApplicationController.
|
|
42
|
-
def assign_marked_records_to_model
|
|
43
|
-
active_scaffold_config.model.marked_records = marked_records
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def mark?
|
|
47
|
-
@mark ||= [true, 'true', 1, '1', 'T', 't'].include?(params[:value].class == String ? params[:value].downcase : params[:value])
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def mark_all_scope_forced?
|
|
51
|
-
params[:mark_target] == 'scope' unless params[:id]
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def do_mark
|
|
55
|
-
if params[:id]
|
|
56
|
-
find_if_allowed(params[:id], :read).as_marked = true
|
|
57
|
-
elsif active_scaffold_config.mark.mark_all_mode == :page && !mark_all_scope_forced?
|
|
58
|
-
each_record_in_page { |record| record.as_marked = true }
|
|
59
|
-
else
|
|
60
|
-
each_record_in_scope { |record| record.as_marked = true }
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
def do_demark
|
|
65
|
-
if params[:id]
|
|
66
|
-
find_if_allowed(params[:id], :read).as_marked = false
|
|
67
|
-
elsif active_scaffold_config.mark.mark_all_mode == :page
|
|
68
|
-
each_record_in_page { |record| record.as_marked = false }
|
|
69
|
-
else
|
|
70
|
-
each_record_in_scope { |record| record.as_marked = false }
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
def do_destroy
|
|
75
|
-
super
|
|
76
|
-
@record.as_marked = false if successful?
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
# The default security delegates to ActiveRecordPermissions.
|
|
80
|
-
# You may override the method to customize.
|
|
81
|
-
def mark_authorized?
|
|
82
|
-
authorized_for?(:crud_type => :read)
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def mark_formats
|
|
86
|
-
(default_formats + active_scaffold_config.formats).uniq
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
end
|
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
module ActiveScaffold::Actions
|
|
2
|
-
# The Nested module basically handles automatically linking controllers together. It does this by creating column links with the right parameters, and by providing any supporting systems (like a /:controller/nested action for returning associated scaffolds).
|
|
3
|
-
module Nested
|
|
4
|
-
|
|
5
|
-
def self.included(base)
|
|
6
|
-
super
|
|
7
|
-
base.module_eval do
|
|
8
|
-
prepend_before_filter :set_nested
|
|
9
|
-
before_filter :configure_nested
|
|
10
|
-
include ActiveScaffold::Actions::Nested::ChildMethods if active_scaffold_config.model.reflect_on_all_associations.any? {|a| a.macro == :has_and_belongs_to_many}
|
|
11
|
-
end
|
|
12
|
-
base.before_filter :include_habtm_actions
|
|
13
|
-
base.helper_method :nested
|
|
14
|
-
base.helper_method :nested_parent_record
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
protected
|
|
18
|
-
def nested
|
|
19
|
-
@nested
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def nested?
|
|
23
|
-
!nested.nil?
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def set_nested
|
|
27
|
-
if params[:parent_scaffold] && (params[:association] || params[:named_scope])
|
|
28
|
-
@nested = ActiveScaffold::DataStructures::NestedInfo.get(active_scaffold_config.model, params)
|
|
29
|
-
register_constraints_with_action_columns(@nested.constrained_fields) unless @nested.nil?
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def configure_nested
|
|
34
|
-
if nested?
|
|
35
|
-
active_scaffold_session_storage[:list][:label] = if nested.belongs_to?
|
|
36
|
-
as_(:nested_of_model, :nested_model => active_scaffold_config.model.model_name.human, :parent_model => nested_parent_record.to_label)
|
|
37
|
-
else
|
|
38
|
-
as_(:nested_for_model, :nested_model => active_scaffold_config.list.label, :parent_model => nested_parent_record.to_label)
|
|
39
|
-
end
|
|
40
|
-
if nested.sorted?
|
|
41
|
-
active_scaffold_config.list.user.nested_default_sorting = {:table_name => active_scaffold_config.model.model_name, :default_sorting => nested.default_sorting}
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def nested_authorized?(record = nil)
|
|
47
|
-
true
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def include_habtm_actions
|
|
51
|
-
if nested?
|
|
52
|
-
if nested.habtm?
|
|
53
|
-
# Production mode is ok with adding a link everytime the scaffold is nested - we ar not ok with that.
|
|
54
|
-
active_scaffold_config.action_links.add('new_existing', :label => :add_existing, :type => :collection, :security_method => :add_existing_authorized?) unless active_scaffold_config.action_links['new_existing']
|
|
55
|
-
if active_scaffold_config.nested.shallow_delete
|
|
56
|
-
active_scaffold_config.action_links.add('destroy_existing', :label => :remove, :type => :member, :confirm => :are_you_sure_to_delete, :method => :delete, :position => false, :security_method => :delete_existing_authorized?) unless active_scaffold_config.action_links['destroy_existing']
|
|
57
|
-
if active_scaffold_config.actions.include?(:delete)
|
|
58
|
-
active_scaffold_config.action_links.delete("delete") if active_scaffold_config.action_links['delete']
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
else
|
|
62
|
-
# Production mode is caching this link into a non nested scaffold
|
|
63
|
-
active_scaffold_config.action_links.delete('new_existing') if active_scaffold_config.action_links['new_existing']
|
|
64
|
-
|
|
65
|
-
if active_scaffold_config.nested.shallow_delete
|
|
66
|
-
active_scaffold_config.action_links.delete("destroy_existing") if active_scaffold_config.action_links['destroy_existing']
|
|
67
|
-
if active_scaffold_config.actions.include?(:delete)
|
|
68
|
-
active_scaffold_config.action_links.add(ActiveScaffold::Config::Delete.link) unless active_scaffold_config.action_links['delete']
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
def beginning_of_chain
|
|
76
|
-
if nested? && nested.association && !nested.association.belongs_to?
|
|
77
|
-
if nested.association.collection?
|
|
78
|
-
nested.parent_scope.send(nested.association.name)
|
|
79
|
-
elsif nested.association.options[:through] # has_one :through doesn't need conditions
|
|
80
|
-
active_scaffold_config.model
|
|
81
|
-
elsif nested.child_association.belongs_to?
|
|
82
|
-
active_scaffold_config.model.where(nested.child_association.foreign_key => nested.parent_scope)
|
|
83
|
-
end
|
|
84
|
-
elsif nested? && nested.scope
|
|
85
|
-
nested.parent_scope.send(nested.scope)
|
|
86
|
-
else
|
|
87
|
-
active_scaffold_config.model
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
def nested_parent_record(crud = :read)
|
|
92
|
-
@nested_parent_record ||= find_if_allowed(nested.parent_id, crud, nested.parent_model)
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
def create_association_with_parent(record)
|
|
96
|
-
if nested?
|
|
97
|
-
if (nested.belongs_to? || nested.has_one? || nested.habtm?) && nested.child_association
|
|
98
|
-
parent = nested_parent_record(:read)
|
|
99
|
-
case nested.child_association.macro
|
|
100
|
-
when :has_one
|
|
101
|
-
record.send("#{nested.child_association.name}=", parent)
|
|
102
|
-
when :belongs_to
|
|
103
|
-
record.send("#{nested.child_association.name}=", parent)
|
|
104
|
-
when :has_many, :has_and_belongs_to_many
|
|
105
|
-
record.send("#{nested.child_association.name}").send(:<<, parent)
|
|
106
|
-
end unless parent.nil?
|
|
107
|
-
end
|
|
108
|
-
end
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
private
|
|
112
|
-
def nested_formats
|
|
113
|
-
(default_formats + active_scaffold_config.formats + active_scaffold_config.nested.formats).uniq
|
|
114
|
-
end
|
|
115
|
-
end
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
module ActiveScaffold::Actions::Nested
|
|
119
|
-
module ChildMethods
|
|
120
|
-
|
|
121
|
-
def self.included(base)
|
|
122
|
-
super
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
def new_existing
|
|
126
|
-
do_new
|
|
127
|
-
respond_to_action(:new_existing)
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
def add_existing
|
|
131
|
-
do_add_existing
|
|
132
|
-
respond_to_action(:add_existing)
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
def destroy_existing
|
|
136
|
-
return redirect_to(params.merge(:action => :delete)) if request.get?
|
|
137
|
-
do_destroy_existing
|
|
138
|
-
respond_to_action(:destroy_existing)
|
|
139
|
-
end
|
|
140
|
-
|
|
141
|
-
protected
|
|
142
|
-
def new_existing_respond_to_html
|
|
143
|
-
if successful?
|
|
144
|
-
render(:action => 'add_existing_form')
|
|
145
|
-
else
|
|
146
|
-
return_to_main
|
|
147
|
-
end
|
|
148
|
-
end
|
|
149
|
-
def new_existing_respond_to_js
|
|
150
|
-
render(:partial => 'add_existing_form')
|
|
151
|
-
end
|
|
152
|
-
def add_existing_respond_to_html
|
|
153
|
-
if successful?
|
|
154
|
-
flash[:info] = as_(:created_model, :model => @record.to_label)
|
|
155
|
-
return_to_main
|
|
156
|
-
else
|
|
157
|
-
render(:action => 'add_existing_form')
|
|
158
|
-
end
|
|
159
|
-
end
|
|
160
|
-
def add_existing_respond_to_js
|
|
161
|
-
if successful?
|
|
162
|
-
render :action => 'add_existing'
|
|
163
|
-
else
|
|
164
|
-
render :action => 'form_messages'
|
|
165
|
-
end
|
|
166
|
-
end
|
|
167
|
-
def add_existing_respond_to_xml
|
|
168
|
-
render :xml => response_object.to_xml(:only => active_scaffold_config.list.columns.names), :content_type => Mime::XML, :status => response_status
|
|
169
|
-
end
|
|
170
|
-
def add_existing_respond_to_json
|
|
171
|
-
render :text => response_object.to_json(:only => active_scaffold_config.list.columns.names), :content_type => Mime::JSON, :status => response_status
|
|
172
|
-
end
|
|
173
|
-
def add_existing_respond_to_yaml
|
|
174
|
-
render :text => Hash.from_xml(response_object.to_xml(:only => active_scaffold_config.list.columns.names)).to_yaml, :content_type => Mime::YAML, :status => response_status
|
|
175
|
-
end
|
|
176
|
-
def destroy_existing_respond_to_html
|
|
177
|
-
flash[:info] = as_(:deleted_model, :model => @record.to_label)
|
|
178
|
-
return_to_main
|
|
179
|
-
end
|
|
180
|
-
|
|
181
|
-
def destroy_existing_respond_to_js
|
|
182
|
-
render(:action => 'destroy')
|
|
183
|
-
end
|
|
184
|
-
|
|
185
|
-
def destroy_existing_respond_to_xml
|
|
186
|
-
render :xml => successful? ? "" : response_object.to_xml(:only => active_scaffold_config.list.columns.names), :content_type => Mime::XML, :status => response_status
|
|
187
|
-
end
|
|
188
|
-
|
|
189
|
-
def destroy_existing_respond_to_json
|
|
190
|
-
render :text => successful? ? "" : response_object.to_json(:only => active_scaffold_config.list.columns.names), :content_type => Mime::JSON, :status => response_status
|
|
191
|
-
end
|
|
192
|
-
|
|
193
|
-
def destroy_existing_respond_to_yaml
|
|
194
|
-
render :text => successful? ? "" : Hash.from_xml(response_object.to_xml(:only => active_scaffold_config.list.columns.names)).to_yaml, :content_type => Mime::YAML, :status => response_status
|
|
195
|
-
end
|
|
196
|
-
|
|
197
|
-
def add_existing_authorized?(record = nil)
|
|
198
|
-
true
|
|
199
|
-
end
|
|
200
|
-
def delete_existing_authorized?(record = nil)
|
|
201
|
-
true
|
|
202
|
-
end
|
|
203
|
-
|
|
204
|
-
def after_create_save(record)
|
|
205
|
-
if params[:association_macro] == :has_and_belongs_to_many
|
|
206
|
-
params[:associated_id] = record
|
|
207
|
-
do_add_existing
|
|
208
|
-
end
|
|
209
|
-
end
|
|
210
|
-
|
|
211
|
-
# The actual "add_existing" algorithm
|
|
212
|
-
def do_add_existing
|
|
213
|
-
parent_record = nested_parent_record(:update)
|
|
214
|
-
@record = active_scaffold_config.model.find(params[:associated_id])
|
|
215
|
-
if parent_record && @record
|
|
216
|
-
parent_record.send(nested.association.name) << @record
|
|
217
|
-
parent_record.save
|
|
218
|
-
else
|
|
219
|
-
false
|
|
220
|
-
end
|
|
221
|
-
end
|
|
222
|
-
|
|
223
|
-
def do_destroy_existing
|
|
224
|
-
if active_scaffold_config.nested.shallow_delete
|
|
225
|
-
@record = nested_parent_record(:update)
|
|
226
|
-
collection = @record.send(nested.association.name)
|
|
227
|
-
assoc_record = collection.find(params[:id])
|
|
228
|
-
collection.delete(assoc_record)
|
|
229
|
-
else
|
|
230
|
-
do_destroy
|
|
231
|
-
end
|
|
232
|
-
end
|
|
233
|
-
private
|
|
234
|
-
def new_existing_formats
|
|
235
|
-
(default_formats + active_scaffold_config.formats).uniq
|
|
236
|
-
end
|
|
237
|
-
def add_existing_formats
|
|
238
|
-
(default_formats + active_scaffold_config.formats).uniq
|
|
239
|
-
end
|
|
240
|
-
def destroy_existing_formats
|
|
241
|
-
(default_formats + active_scaffold_config.formats).uniq
|
|
242
|
-
end
|
|
243
|
-
end
|
|
244
|
-
end
|