active_scaffold 3.2.20 → 3.3.0.rc
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +19 -13
- data/README +66 -0
- data/app/assets/javascripts/jquery/active_scaffold.js +156 -113
- data/app/assets/javascripts/jquery/active_scaffold_chosen.js +11 -0
- data/app/assets/javascripts/jquery/date_picker_bridge.js.erb +0 -1
- data/app/assets/javascripts/jquery/jquery.editinplace.js +132 -128
- data/app/assets/javascripts/prototype/active_scaffold.js +68 -25
- data/{frontends/default/views/_horizontal_subform_footer.html.erb → app/assets/javascripts/prototype/active_scaffold_chosen.js} +0 -0
- data/app/assets/stylesheets/active_scaffold_colors.css.scss +8 -1
- data/app/assets/stylesheets/active_scaffold_layout.css +14 -8
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_add_existing_form.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_base_form.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_create_form.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_create_form_on_list.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_field_search.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_form.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_form_association.html.erb +8 -3
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_form_association_footer.html.erb +5 -4
- data/app/views/active_scaffold_overrides/_form_association_record.html.erb +85 -0
- data/app/views/active_scaffold_overrides/_form_attribute.html.erb +23 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_form_hidden_attribute.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_form_messages.html.erb +0 -0
- data/app/views/active_scaffold_overrides/_horizontal_subform.html.erb +12 -0
- data/app/views/active_scaffold_overrides/_horizontal_subform_footer.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_horizontal_subform_header.html.erb +3 -2
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_human_conditions.html.erb +0 -0
- data/app/views/active_scaffold_overrides/_list.html.erb +35 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_calculations.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_column_headings.html.erb +0 -0
- data/app/views/active_scaffold_overrides/_list_header.html.erb +8 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_inline_adapter.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_messages.html.erb +4 -4
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_pagination.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_pagination_links.html.erb +0 -0
- data/app/views/active_scaffold_overrides/_list_record.html.erb +30 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_with_header.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_messages.html.erb +0 -0
- data/app/views/active_scaffold_overrides/_refresh_list.js.erb +1 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_render_field.js.erb +9 -1
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_row.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_search.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_search_attribute.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_show.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_show_columns.html.erb +0 -0
- data/app/views/active_scaffold_overrides/_update_actions.html.erb +9 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_update_calculations.js.erb +0 -0
- data/app/views/active_scaffold_overrides/_update_column.js.erb +16 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_update_form.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_update_messages.js.erb +0 -0
- data/app/views/active_scaffold_overrides/_vertical_subform.html.erb +8 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/action_confirmation.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/add_existing.js.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/add_existing_form.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/create.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/delete.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/destroy.js.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/edit_associated.js.erb +1 -1
- data/{frontends/default/views → app/views/active_scaffold_overrides}/field_search.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/form_messages.js.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/list.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/on_action_update.js.erb +3 -3
- data/{frontends/default/views → app/views/active_scaffold_overrides}/on_create.js.erb +1 -1
- data/{frontends/default/views → app/views/active_scaffold_overrides}/on_mark.js.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/on_update.js.erb +4 -4
- data/{frontends/default/views → app/views/active_scaffold_overrides}/render_field.js.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/row.js.erb +1 -1
- data/{frontends/default/views → app/views/active_scaffold_overrides}/search.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/show.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/update.html.erb +1 -1
- data/app/views/active_scaffold_overrides/update_column.js.erb +26 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/update_row.js.erb +0 -0
- data/config/locales/de.yml +1 -0
- data/config/locales/en.yml +1 -0
- data/config/locales/es.yml +1 -0
- data/config/locales/fr.yml +1 -0
- data/config/locales/hu.yml +1 -0
- data/config/locales/ja.yml +1 -0
- data/config/locales/ru.yml +1 -0
- data/lib/active_scaffold.rb +14 -26
- data/lib/active_scaffold/actions/core.rb +14 -11
- data/lib/active_scaffold/actions/create.rb +3 -3
- data/lib/active_scaffold/actions/delete.rb +3 -0
- data/lib/active_scaffold/actions/list.rb +9 -6
- data/lib/active_scaffold/actions/mark.rb +1 -1
- data/lib/active_scaffold/actions/nested.rb +8 -6
- data/lib/active_scaffold/actions/show.rb +6 -1
- data/lib/active_scaffold/actions/update.rb +39 -19
- data/lib/active_scaffold/active_record_permissions.rb +29 -12
- data/lib/active_scaffold/attribute_params.rb +14 -7
- data/lib/active_scaffold/bridges/calendar_date_select.rb +1 -1
- data/lib/active_scaffold/bridges/cancan/cancan_bridge.rb +1 -2
- data/lib/active_scaffold/bridges/carrierwave/list_ui.rb +1 -1
- data/lib/active_scaffold/bridges/chosen.rb +14 -0
- data/lib/active_scaffold/bridges/chosen/helpers.rb +48 -0
- data/lib/active_scaffold/bridges/date_picker/helper.rb +7 -6
- data/lib/active_scaffold/bridges/dragonfly/form_ui.rb +1 -1
- data/lib/active_scaffold/bridges/dragonfly/list_ui.rb +1 -1
- data/lib/active_scaffold/bridges/file_column.rb +1 -1
- data/lib/active_scaffold/bridges/file_column/as_file_column_bridge.rb +1 -1
- data/lib/active_scaffold/bridges/file_column/file_column_helpers.rb +2 -2
- data/lib/active_scaffold/bridges/file_column/list_ui.rb +4 -4
- data/lib/active_scaffold/bridges/paperclip.rb +1 -1
- data/lib/active_scaffold/bridges/paperclip/form_ui.rb +1 -1
- data/lib/active_scaffold/bridges/paperclip/list_ui.rb +1 -1
- data/lib/active_scaffold/bridges/paperclip/paperclip_bridge_helpers.rb +1 -1
- data/lib/active_scaffold/bridges/shared/date_bridge.rb +1 -1
- data/lib/active_scaffold/bridges/tiny_mce/helpers.rb +1 -1
- data/lib/active_scaffold/config/core.rb +9 -2
- data/lib/active_scaffold/config/list.rb +9 -13
- data/lib/active_scaffold/config/nested.rb +11 -2
- data/lib/active_scaffold/data_structures/action_columns.rb +19 -5
- data/lib/active_scaffold/data_structures/action_link.rb +9 -2
- data/lib/active_scaffold/data_structures/action_links.rb +5 -36
- data/lib/active_scaffold/data_structures/column.rb +21 -21
- data/lib/active_scaffold/data_structures/nested_info.rb +31 -44
- data/lib/active_scaffold/extensions/action_controller_rescueing.rb +1 -0
- data/lib/active_scaffold/extensions/action_view_rendering.rb +30 -36
- data/lib/active_scaffold/extensions/reverse_associations.rb +10 -6
- data/lib/active_scaffold/extensions/routing_mapper.rb +6 -5
- data/lib/active_scaffold/extensions/unsaved_associated.rb +1 -1
- data/lib/active_scaffold/finder.rb +18 -10
- data/lib/active_scaffold/helpers/association_helpers.rb +21 -2
- data/lib/active_scaffold/helpers/controller_helpers.rb +14 -16
- data/lib/active_scaffold/helpers/form_column_helpers.rb +161 -21
- data/lib/active_scaffold/helpers/id_helpers.rb +7 -7
- data/lib/active_scaffold/helpers/list_column_helpers.rb +42 -92
- data/lib/active_scaffold/helpers/search_column_helpers.rb +10 -3
- data/lib/active_scaffold/helpers/show_column_helpers.rb +4 -9
- data/lib/active_scaffold/helpers/view_helpers.rb +278 -78
- data/lib/active_scaffold/version.rb +2 -2
- data/lib/generators/active_scaffold_controller/templates/controller.rb +1 -1
- data/test/bridges/paperclip_test.rb +2 -2
- data/vendor/assets/javascripts/jquery-ui-timepicker-addon.js +1882 -1276
- metadata +79 -80
- data/README.md +0 -67
- data/frontends/default/views/_action_group.html.erb +0 -24
- data/frontends/default/views/_form_attribute.html.erb +0 -23
- data/frontends/default/views/_horizontal_subform.html.erb +0 -22
- data/frontends/default/views/_horizontal_subform_record.html.erb +0 -43
- data/frontends/default/views/_list.html.erb +0 -18
- data/frontends/default/views/_list_actions.html.erb +0 -15
- data/frontends/default/views/_list_header.html.erb +0 -10
- 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/_refresh_list.js.erb +0 -1
- data/frontends/default/views/_update_actions.html.erb +0 -9
- 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/refresh_list.js.erb +0 -2
- data/frontends/default/views/update_column.js.erb +0 -15
- data/lib/active_scaffold/extensions/active_record_offset.rb +0 -12
- data/lib/active_scaffold/extensions/nil_id_in_url_params.rb +0 -7
File without changes
|
File without changes
|
data/{frontends/default/views → app/views/active_scaffold_overrides}/_search_attribute.html.erb
RENAMED
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<div class="active-scaffold-header">
|
2
|
+
<div class="actions">
|
3
|
+
<% active_scaffold_config.action_links.member.each do |link| -%>
|
4
|
+
<% next unless link.action == 'index' -%>
|
5
|
+
<% next if skip_action_link?(link, record) || !action_link_authorized?(link, record) -%>
|
6
|
+
<%= render_action_link(link, record, :authorized => true) -%>
|
7
|
+
<% end -%>
|
8
|
+
</div>
|
9
|
+
</div>
|
data/{frontends/default/views → app/views/active_scaffold_overrides}/_update_calculations.js.erb
RENAMED
File without changes
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<%
|
2
|
+
column = if update_column.is_a? ActiveScaffold::DataStructures::Column
|
3
|
+
update_column
|
4
|
+
else
|
5
|
+
active_scaffold_config.columns[update_column.to_sym]
|
6
|
+
end
|
7
|
+
@rendered ||= Set.new
|
8
|
+
return if @rendered.include? column.name
|
9
|
+
@rendered << column.name
|
10
|
+
-%>
|
11
|
+
<% if @record.authorized_for?(:crud_type => :read, :column => column.name) -%>
|
12
|
+
ActiveScaffold.replace_html('<%= row_id %> .<%= column.name %>-column','<%= escape_javascript(render_list_column(get_column_value(@record, column), column, @record)) %>');
|
13
|
+
<% end -%>
|
14
|
+
<% if column.update_columns && !column.update_columns.empty? %>
|
15
|
+
<%= render(:partial => 'update_column', :collection => column.update_columns & active_scaffold_config.list.columns.names, :locals => {:row_id => row_id})%>
|
16
|
+
<% end %>
|
File without changes
|
data/{frontends/default/views → app/views/active_scaffold_overrides}/_update_messages.js.erb
RENAMED
File without changes
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<div id="<%= sub_form_list_id(:association => column.name) %>">
|
2
|
+
<% associated.each_index do |index| %>
|
3
|
+
<div class="sub-form-record">
|
4
|
+
<% @record = associated[index] -%>
|
5
|
+
<%= render :partial => 'form_association_record', :locals => {:scope => column_scope(column, scope), :parent_record => parent_record, :column => column, :locked => show_blank_record && @record.new_record? && @record == associated.last, :index => index} %>
|
6
|
+
</div>
|
7
|
+
<% end -%>
|
8
|
+
</div>
|
data/{frontends/default/views → app/views/active_scaffold_overrides}/action_confirmation.html.erb
RENAMED
File without changes
|
File without changes
|
data/{frontends/default/views → app/views/active_scaffold_overrides}/add_existing_form.html.erb
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<%
|
2
|
-
associated_form = render :partial => "
|
2
|
+
associated_form = render :partial => "form_association_record", :locals => {:scope => @scope, :parent_record => @parent_record, :column => @column, :locked => @record.new_record? && @column.singular_association?}
|
3
3
|
options = {:singular => false}
|
4
4
|
if @column.singular_association?
|
5
5
|
options[:singular] = true
|
File without changes
|
File without changes
|
File without changes
|
data/{frontends/default/views → app/views/active_scaffold_overrides}/on_action_update.js.erb
RENAMED
@@ -2,15 +2,15 @@
|
|
2
2
|
<% if @record %>
|
3
3
|
<%= render :partial => 'update_messages' %>
|
4
4
|
<% row = escape_javascript(render(:partial => 'list_record', :locals => {:record => @record})) -%>
|
5
|
-
<% if @action_link.
|
6
|
-
ActiveScaffold.find_action_link('<%=
|
5
|
+
<% if @action_link.try(:position) %>
|
6
|
+
ActiveScaffold.find_action_link('<%= element_form_id(:action => action_name) %>').close('<%= row %>');
|
7
7
|
<% else %>
|
8
8
|
ActiveScaffold.update_row('<%= element_row_id(:action => :list, :id => @record.id) %>', '<%= row %>');
|
9
9
|
ActiveScaffold.scroll_to('<%= element_row_id(:action => :list, :id => @record.id) %>', true);
|
10
10
|
<% end %>
|
11
11
|
<%= render :partial => 'update_calculations', :formats => [:js] %>
|
12
12
|
<% else %>
|
13
|
-
<% if @action_link.
|
13
|
+
<% if @action_link.try(:position) %>
|
14
14
|
ActiveScaffold.find_action_link('<%= element_row_id(:action => action_name) %>').close();
|
15
15
|
<% end %>
|
16
16
|
<%= render :partial => 'refresh_list' %>
|
@@ -17,7 +17,7 @@ action_link.update_flash_messages('<%=escape_javascript(render(:partial => 'mess
|
|
17
17
|
<% elsif params[:parent_controller].nil? %>
|
18
18
|
<% new_row = render :partial => 'list_record', :locals => {:record => @record} %>
|
19
19
|
ActiveScaffold.create_record_row(action_link.scaffold(),'<%= escape_javascript(new_row) %>', <%= {:insert_at => insert_at}.to_json.html_safe %>);
|
20
|
-
<%= render :partial => 'update_calculations
|
20
|
+
<%= render :partial => 'update_calculations', :formats => [:js] %>
|
21
21
|
<% end %>
|
22
22
|
|
23
23
|
<% unless render_parent? %>
|
File without changes
|
@@ -1,13 +1,13 @@
|
|
1
1
|
try {
|
2
|
-
<% form_selector = "#{element_form_id(:action => :update)}" %>
|
2
|
+
<% form_selector = "#{element_form_id(:action => :update, :id => @record.id)}" %>
|
3
3
|
var action_link = ActiveScaffold.find_action_link('<%= form_selector %>');
|
4
4
|
action_link.update_flash_messages('<%= escape_javascript(render(:partial => 'messages')) %>');
|
5
5
|
<% if controller.send :successful? %>
|
6
6
|
<% if params[:dont_close] %>
|
7
7
|
<% row_selector = element_row_id(:action => :list, :id => @record.id) %>
|
8
8
|
ActiveScaffold.update_row('<%= row_selector %>', '<%= escape_javascript(render(:partial => 'list_record', :locals => {:record => @record})) %>');
|
9
|
-
|
10
|
-
|
9
|
+
action_link.target = $('#<%= row_selector %>');
|
10
|
+
<%= render :partial => 'update_calculations', :formats => [:js] %>
|
11
11
|
<% else %>
|
12
12
|
<% if render_parent? %>
|
13
13
|
<% if nested_singular_association? || render_parent_action == :row %>
|
@@ -19,7 +19,7 @@ action_link.update_flash_messages('<%= escape_javascript(render(:partial => 'mes
|
|
19
19
|
<%= render :partial => 'refresh_list' %>
|
20
20
|
<% else %>
|
21
21
|
action_link.close('<%= escape_javascript(render(:partial => 'list_record', :locals => {:record => @record})) %>');
|
22
|
-
<%= render :partial => 'update_calculations
|
22
|
+
<%= render :partial => 'update_calculations', :formats => [:js] %>
|
23
23
|
<% end %>
|
24
24
|
<% end %>
|
25
25
|
<% else %>
|
File without changes
|
@@ -1,2 +1,2 @@
|
|
1
|
-
ActiveScaffold.update_row('<%= element_row_id(:action => :list) %>', '<%= escape_javascript render(
|
1
|
+
ActiveScaffold.update_row('<%= element_row_id(:action => :list) %>', '<%= escape_javascript render('row', :record => @record) %>');
|
2
2
|
<%= render :partial => 'update_calculations', :formats => [:js] %>
|
File without changes
|
File without changes
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<div class="active-scaffold">
|
2
2
|
<div class="update-view <%= "#{id_from_controller params[:controller]}-view" %> view">
|
3
3
|
<% if active_scaffold_config.update.nested_links and active_scaffold_config.action_links.member.empty? -%>
|
4
|
-
<%= render :partial => 'update_actions', :locals => {:record => @record
|
4
|
+
<%= render :partial => 'update_actions', :locals => {:record => @record} %>
|
5
5
|
<% end -%>
|
6
6
|
<%= render :partial => 'update_form' -%>
|
7
7
|
</div>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<% @column_span_id ||= element_cell_id(:id => @record.id.to_s, :action => 'update_column', :name => @column.name) -%>
|
2
|
+
<% unless controller.send :successful? -%>
|
3
|
+
alert('<%= escape_javascript(@record.errors.full_messages.join("\n")) %>');
|
4
|
+
<% @record.reload -%>
|
5
|
+
<% end -%>
|
6
|
+
<% if @column.inplace_edit
|
7
|
+
ipe_update = @column.inplace_edit_update if controller.send :successful? -%>
|
8
|
+
<% case ipe_update
|
9
|
+
when :row -%>
|
10
|
+
ActiveScaffold.update_row('<%= element_row_id(:action => :list) %>', '<%= escape_javascript render('row', :record => @record) %>');
|
11
|
+
<% when :table -%>
|
12
|
+
ActiveScaffold.replace_html('<%= active_scaffold_content_id %>', '<%= escape_javascript(render('list')) %>');
|
13
|
+
<% else
|
14
|
+
formatted_value = get_column_value(@record, @column) -%>
|
15
|
+
ActiveScaffold.update_inplace_edit('<%= @column_span_id %>','<%= escape_javascript(formatted_value) %>', <%= column_empty?(formatted_value).to_json %>);
|
16
|
+
<% if ipe_update == :columns && @column.update_columns && !@column.update_columns.empty?
|
17
|
+
@rendered = Set.new([@column.name]) -%>
|
18
|
+
<%= render :partial => 'update_column', :collection => @column.update_columns & active_scaffold_config.list.columns.names, :locals => {:row_id => element_row_id(:action => :list, :id => @record.id)} %>
|
19
|
+
<% end %>
|
20
|
+
<% end -%>
|
21
|
+
<% else -%>
|
22
|
+
ActiveScaffold.replace_html('<%= @column_span_id %>','<%= escape_javascript(get_column_value(@record, @column)) %>');
|
23
|
+
<% end -%>
|
24
|
+
<% if @column.calculation? -%>
|
25
|
+
ActiveScaffold.replace_html('<%= active_scaffold_calculations_id(:column => @column) %>', '<%= escape_javascript(render_column_calculation(@column)) %>');
|
26
|
+
<% end -%>
|
File without changes
|
data/config/locales/de.yml
CHANGED
data/config/locales/en.yml
CHANGED
data/config/locales/es.yml
CHANGED
data/config/locales/fr.yml
CHANGED
@@ -50,6 +50,7 @@ fr:
|
|
50
50
|
refresh: 'Rafraîchir'
|
51
51
|
remove: 'Supprimer'
|
52
52
|
remove_file: 'Supprimer et remplacer le fichier'
|
53
|
+
replace_existing: 'Remplacer existant(e)'
|
53
54
|
replace_with_new: 'Remplacer avec le nouveau'
|
54
55
|
revisions_for_model: 'Révision pour %{model}'
|
55
56
|
reset: 'Annuler'
|
data/config/locales/hu.yml
CHANGED
data/config/locales/ja.yml
CHANGED
data/config/locales/ru.yml
CHANGED
data/lib/active_scaffold.rb
CHANGED
@@ -16,7 +16,6 @@ require 'active_scaffold/engine' unless defined? ACTIVE_SCAFFOLD_PLUGIN
|
|
16
16
|
require 'json' # for js_config
|
17
17
|
|
18
18
|
module ActiveScaffold
|
19
|
-
METHOD_CONVERSION = RUBY_VERSION < '1.9' ? :to_s : :to_sym
|
20
19
|
autoload :AttributeParams, 'active_scaffold/attribute_params'
|
21
20
|
autoload :Configurable, 'active_scaffold/configurable'
|
22
21
|
autoload :Constraints, 'active_scaffold/constraints'
|
@@ -163,6 +162,7 @@ module ActiveScaffold
|
|
163
162
|
|
164
163
|
module ClassMethods
|
165
164
|
def active_scaffold(model_id = nil, &block)
|
165
|
+
extend Prefixes
|
166
166
|
# initialize bridges here
|
167
167
|
ActiveScaffold::Bridges.run_all
|
168
168
|
|
@@ -173,16 +173,7 @@ module ActiveScaffold
|
|
173
173
|
@active_scaffold_config = ActiveScaffold::Config::Core.new(model_id)
|
174
174
|
@active_scaffold_config_block = block
|
175
175
|
self.links_for_associations
|
176
|
-
|
177
|
-
@active_scaffold_frontends = []
|
178
|
-
if active_scaffold_config.frontend.to_sym != :default
|
179
|
-
active_scaffold_custom_frontend_path = File.join(ActiveScaffold::Config::Core.plugin_directory, 'frontends', active_scaffold_config.frontend.to_s , 'views')
|
180
|
-
@active_scaffold_frontends << active_scaffold_custom_frontend_path
|
181
|
-
end
|
182
|
-
active_scaffold_default_frontend_path = File.join(ActiveScaffold::Config::Core.plugin_directory, 'frontends', 'default' , 'views')
|
183
|
-
@active_scaffold_frontends << active_scaffold_default_frontend_path
|
184
|
-
@active_scaffold_custom_paths = []
|
185
|
-
|
176
|
+
|
186
177
|
self.active_scaffold_superclasses_blocks.each {|superblock| self.active_scaffold_config.configure &superblock}
|
187
178
|
self.active_scaffold_config.sti_children = nil # reset sti_children if set in parent block
|
188
179
|
self.active_scaffold_config.configure &block if block_given?
|
@@ -212,12 +203,13 @@ module ActiveScaffold
|
|
212
203
|
end
|
213
204
|
end
|
214
205
|
end
|
215
|
-
self.append_view_path active_scaffold_paths
|
216
206
|
self._add_sti_create_links if self.active_scaffold_config.add_sti_create_links?
|
217
207
|
end
|
218
208
|
|
219
|
-
|
220
|
-
|
209
|
+
module Prefixes
|
210
|
+
def parent_prefixes
|
211
|
+
@parent_prefixes ||= super << 'active_scaffold_overrides'
|
212
|
+
end
|
221
213
|
end
|
222
214
|
|
223
215
|
# To be called after include action modules
|
@@ -265,7 +257,7 @@ module ActiveScaffold
|
|
265
257
|
controller = active_scaffold_controller_for_column(column, options)
|
266
258
|
|
267
259
|
unless controller.nil?
|
268
|
-
options.reverse_merge! :
|
260
|
+
options.reverse_merge! :position => :after, :type => :member, :controller => (controller == :polymorph ? controller : controller.controller_path), :column => column
|
269
261
|
options[:parameters] ||= {}
|
270
262
|
options[:parameters].reverse_merge! :association => column.association.name
|
271
263
|
if column.plural_association?
|
@@ -291,17 +283,13 @@ module ActiveScaffold
|
|
291
283
|
end
|
292
284
|
|
293
285
|
def add_active_scaffold_path(path)
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
@active_scaffold_paths = []
|
302
|
-
@active_scaffold_paths.concat @active_scaffold_custom_paths unless @active_scaffold_custom_paths.nil?
|
303
|
-
@active_scaffold_paths.concat @active_scaffold_frontends unless @active_scaffold_frontends.nil?
|
304
|
-
@active_scaffold_paths
|
286
|
+
as_path = File.join(ActiveScaffold::Config::Core.plugin_directory, 'app', 'views')
|
287
|
+
index = view_paths.find_index { |p| p.to_s == as_path }
|
288
|
+
if index
|
289
|
+
self.view_paths = view_paths[0..index-1] + Array(path) + view_paths[index..-1]
|
290
|
+
else
|
291
|
+
append_view_path path
|
292
|
+
end
|
305
293
|
end
|
306
294
|
|
307
295
|
def active_scaffold_config
|
@@ -11,7 +11,7 @@ module ActiveScaffold::Actions
|
|
11
11
|
base.helper_method :new_model
|
12
12
|
end
|
13
13
|
def render_field
|
14
|
-
if
|
14
|
+
if request.get?
|
15
15
|
render_field_for_inplace_editing
|
16
16
|
else
|
17
17
|
render_field_for_update_columns
|
@@ -28,16 +28,17 @@ module ActiveScaffold::Actions
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def render_field_for_inplace_editing
|
31
|
-
@record = find_if_allowed(params[:id], :update)
|
31
|
+
@record = find_if_allowed(params[:id], :crud_type => :update, :column => params[:update_column])
|
32
32
|
render :inline => "<%= active_scaffold_input_for(active_scaffold_config.columns[params[:update_column].to_sym]) %>"
|
33
33
|
end
|
34
34
|
|
35
35
|
def render_field_for_update_columns
|
36
|
-
column = active_scaffold_config.columns[params
|
36
|
+
column = active_scaffold_config.columns[params.delete(:column)]
|
37
37
|
unless column.nil?
|
38
38
|
@source_id = params.delete(:source_id)
|
39
39
|
@columns = column.update_columns
|
40
|
-
@scope = params
|
40
|
+
@scope = params.delete(:scope)
|
41
|
+
@main_columns = active_scaffold_config.send(@scope ? :subform : (params[:id] ? :update : :create)).columns
|
41
42
|
|
42
43
|
if column.send_form_on_update_column
|
43
44
|
if @scope
|
@@ -50,10 +51,10 @@ module ActiveScaffold::Actions
|
|
50
51
|
id = params[:id]
|
51
52
|
end
|
52
53
|
@record = id ? find_if_allowed(id, :update) : new_model
|
53
|
-
@record = update_record_from_params(@record,
|
54
|
+
@record = update_record_from_params(@record, @main_columns, hash)
|
54
55
|
else
|
55
56
|
@record = new_model
|
56
|
-
value = column_value_from_param_value(@record, column, params
|
57
|
+
value = column_value_from_param_value(@record, column, params.delete(:value))
|
57
58
|
@record.send "#{column.name}=", value
|
58
59
|
end
|
59
60
|
|
@@ -157,11 +158,13 @@ module ActiveScaffold::Actions
|
|
157
158
|
def conditions_from_params
|
158
159
|
@conditions_from_params ||= begin
|
159
160
|
conditions = {}
|
160
|
-
params.
|
161
|
-
|
162
|
-
|
163
|
-
next
|
164
|
-
|
161
|
+
params.except(:controller, :action, :page, :sort, :sort_direction).each do |key, value|
|
162
|
+
column = active_scaffold_config.model.columns_hash[key.to_s]
|
163
|
+
key = key.to_sym
|
164
|
+
next unless column
|
165
|
+
next if active_scaffold_constraints[key]
|
166
|
+
next if nested? and nested.param_name == key
|
167
|
+
conditions[key] = column.type_cast(value)
|
165
168
|
end
|
166
169
|
conditions
|
167
170
|
end
|
@@ -34,7 +34,7 @@ module ActiveScaffold::Actions
|
|
34
34
|
def create_respond_to_html
|
35
35
|
if params[:iframe]=='true' # was this an iframe post ?
|
36
36
|
responds_to_parent do
|
37
|
-
render :action => 'on_create
|
37
|
+
render :action => 'on_create', :formats => [:js], :layout => false
|
38
38
|
end
|
39
39
|
else
|
40
40
|
if successful?
|
@@ -92,7 +92,7 @@ module ActiveScaffold::Actions
|
|
92
92
|
apply_constraints_to_record(@record, :allow_autosave => true)
|
93
93
|
create_association_with_parent(@record) if nested?
|
94
94
|
before_create_save(@record)
|
95
|
-
self.successful = [@record.valid?, @record.associated_valid?].all?
|
95
|
+
self.successful = [@record.valid?, @record.associated_valid?].all? # this syntax avoids a short-circuit
|
96
96
|
create_save(@record) unless options[:skip_save]
|
97
97
|
end
|
98
98
|
rescue ActiveRecord::ActiveRecordError => ex
|
@@ -122,7 +122,7 @@ module ActiveScaffold::Actions
|
|
122
122
|
end
|
123
123
|
|
124
124
|
def create_authorized?
|
125
|
-
(
|
125
|
+
!(nested? && (nested.readonly? || nested.readonly_through_association?)) && authorized_for?(:crud_type => :create)
|
126
126
|
end
|
127
127
|
private
|
128
128
|
def create_authorized_filter
|
@@ -62,6 +62,9 @@ module ActiveScaffold::Actions
|
|
62
62
|
def delete_authorized?(record = nil)
|
63
63
|
(!nested? || !nested.readonly?) && (record || self).send(:authorized_for?, :crud_type => :delete)
|
64
64
|
end
|
65
|
+
def delete_ignore?(record = nil)
|
66
|
+
(nested? && nested.readonly?) || !self.send(:authorized_for?, :crud_type => :delete)
|
67
|
+
end
|
65
68
|
private
|
66
69
|
def delete_authorized_filter
|
67
70
|
link = active_scaffold_config.delete.link || active_scaffold_config.delete.class.link
|