active_scaffold 3.0.26 → 3.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +1 -1
- data/{frontends/default → app/assets}/images/add.gif +0 -0
- data/{frontends/default → app/assets}/images/arrow_down.gif +0 -0
- data/{frontends/default → app/assets}/images/arrow_up.gif +0 -0
- data/{frontends/default → app/assets}/images/close.gif +0 -0
- data/{frontends/default → app/assets}/images/close_touch.png +0 -0
- data/{frontends/default → app/assets}/images/config.png +0 -0
- data/{frontends/default → app/assets}/images/cross.png +0 -0
- data/{frontends/default → app/assets}/images/gears.png +0 -0
- data/{frontends/default → app/assets}/images/indicator-small.gif +0 -0
- data/{frontends/default → app/assets}/images/indicator.gif +0 -0
- data/{frontends/default → app/assets}/images/magnifier.png +0 -0
- data/app/assets/javascripts/active_scaffold.js.erb +16 -0
- data/{frontends/default → app/assets}/javascripts/jquery/active_scaffold.js +16 -28
- data/app/assets/javascripts/jquery/active_scaffold.js~ +1036 -0
- data/{lib/active_scaffold/bridges/date_picker/public/javascripts/date_picker_bridge.js → app/assets/javascripts/jquery/date_picker_bridge.js.erb} +3 -1
- data/{frontends/default → app/assets}/javascripts/jquery/jquery.editinplace.js +0 -0
- data/app/assets/javascripts/prototype/active_scaffold.js +1033 -0
- data/{frontends/default/javascripts/prototype/active_scaffold.js → app/assets/javascripts/prototype/active_scaffold.js~} +1 -0
- data/{frontends/default → app/assets}/javascripts/prototype/dhtml_history.js +0 -0
- data/{frontends/default → app/assets}/javascripts/prototype/form_enhancements.js +0 -0
- data/{frontends/default → app/assets}/javascripts/prototype/rico_corner.js +0 -0
- data/{frontends/default/stylesheets/stylesheet-ie.css → app/assets/stylesheets/active_scaffold-ie.css} +0 -0
- data/{frontends/default/stylesheets/stylesheet.css → app/assets/stylesheets/active_scaffold.css.erb} +29 -24
- data/{lib/active_scaffold/locale → config/locales}/de.yml +3 -0
- data/{lib/active_scaffold/locale → config/locales}/en.yml +3 -0
- data/{lib/active_scaffold/locale → config/locales}/es.yml +5 -0
- data/{lib/active_scaffold/locale → config/locales}/fr.yml +3 -0
- data/{lib/active_scaffold/locale → config/locales}/hu.yml +13 -2
- data/{lib/active_scaffold/locale → config/locales}/ja.yml +9 -0
- data/{lib/active_scaffold/locale → config/locales}/ru.yml +3 -0
- data/frontends/default/views/_form.html.erb +1 -1
- data/frontends/default/views/_form_association.html.erb +1 -5
- data/frontends/default/views/_horizontal_subform.html.erb +7 -4
- data/frontends/default/views/_horizontal_subform.html.erb~ +2 -5
- data/frontends/default/views/_horizontal_subform_footer.html.erb +0 -0
- data/frontends/default/views/_horizontal_subform_header.html.erb +1 -1
- data/frontends/default/views/_horizontal_subform_header.html.erb~ +1 -1
- data/frontends/default/views/_horizontal_subform_record.html.erb~ +1 -1
- data/frontends/default/views/_list_actions.html.erb +1 -1
- data/frontends/default/views/_list_messages.html.erb +1 -3
- data/frontends/default/views/_render_field.js.erb +20 -0
- data/frontends/default/views/_row.html.erb +3 -9
- data/frontends/default/views/_show.html.erb +2 -2
- data/frontends/default/views/add_existing.js.erb +20 -0
- data/frontends/default/views/destroy.js.erb +24 -0
- data/frontends/default/views/{edit_associated.js.rjs → edit_associated.js.erb} +3 -2
- data/frontends/default/views/form_messages.js.erb +1 -0
- data/frontends/default/views/list.js.erb +1 -0
- data/frontends/default/views/mark.js.rjs +6 -0
- data/frontends/default/views/on_action_update.js.erb +13 -0
- data/frontends/default/views/{on_create.js.erb~ → on_create.js.erb} +0 -0
- data/frontends/default/views/on_mark_all.js.erb +12 -0
- data/frontends/default/views/{on_update.js.erb~ → on_update.js.erb} +0 -0
- data/frontends/default/views/render_field.js.erb +1 -0
- data/frontends/default/views/search.html.erb +1 -1
- data/frontends/default/views/{update_column.js.erb~ → update_column.js.erb} +3 -3
- data/frontends/default/views/update_row.js.erb +1 -0
- data/lib/active_scaffold.rb +22 -46
- data/lib/active_scaffold/actions/core.rb +14 -6
- data/lib/active_scaffold/actions/core.rb~ +3 -3
- data/lib/active_scaffold/actions/create.rb +2 -5
- data/lib/active_scaffold/actions/create.rb~ +3 -2
- data/lib/active_scaffold/actions/delete.rb +1 -0
- data/lib/active_scaffold/actions/field_search.rb +1 -1
- data/lib/active_scaffold/actions/list.rb +10 -6
- data/lib/active_scaffold/actions/list.rb~ +3 -3
- data/lib/active_scaffold/actions/mark.rb +8 -8
- data/lib/active_scaffold/actions/nested.rb +2 -9
- data/lib/active_scaffold/actions/nested.rb~ +5 -7
- data/lib/active_scaffold/actions/search.rb +2 -1
- data/lib/active_scaffold/actions/subform.rb +1 -5
- data/lib/active_scaffold/actions/update.rb +1 -4
- data/lib/active_scaffold/actions/update.rb~ +5 -5
- data/lib/active_scaffold/attribute_params.rb +15 -26
- data/lib/active_scaffold/attribute_params.rb~ +1 -2
- data/lib/active_scaffold/bridges.rb +61 -0
- data/lib/active_scaffold/bridges/ancestry.rb +5 -0
- data/lib/active_scaffold/bridges/ancestry/{lib/ancestry_bridge.rb → ancestry_bridge.rb} +3 -3
- data/lib/active_scaffold/bridges/{calendar_date_select/bridge.rb → calendar_date_select.rb} +13 -5
- data/lib/active_scaffold/bridges/calendar_date_select/{lib/as_cds_bridge.rb → as_cds_bridge.rb} +4 -20
- data/lib/active_scaffold/bridges/cancan.rb +15 -0
- data/lib/active_scaffold/bridges/cancan/{lib/cancan_bridge.rb → cancan_bridge.rb} +2 -2
- data/lib/active_scaffold/bridges/carrierwave.rb +12 -0
- data/lib/active_scaffold/bridges/carrierwave/carrierwave_bridge.rb +31 -0
- data/lib/active_scaffold/bridges/carrierwave/carrierwave_bridge_helpers.rb +10 -0
- data/lib/active_scaffold/bridges/carrierwave/{lib/form_ui.rb → form_ui.rb} +0 -0
- data/lib/active_scaffold/bridges/carrierwave/{lib/list_ui.rb → list_ui.rb} +1 -1
- data/lib/active_scaffold/bridges/country_helper.rb +9 -0
- data/lib/active_scaffold/bridges/country_helper/{lib/country_helper_bridge.rb → country_helper_bridge.rb} +5 -5
- data/lib/active_scaffold/bridges/date_picker.rb +23 -0
- data/lib/active_scaffold/bridges/date_picker/ext.rb +54 -0
- data/lib/active_scaffold/bridges/date_picker/helper.rb +188 -0
- data/lib/active_scaffold/bridges/dragonfly.rb +9 -0
- data/lib/active_scaffold/bridges/dragonfly/dragonfly_bridge.rb +34 -0
- data/lib/active_scaffold/bridges/dragonfly/dragonfly_bridge_helpers.rb +10 -0
- data/lib/active_scaffold/bridges/dragonfly/{lib/form_ui.rb → form_ui.rb} +0 -0
- data/lib/active_scaffold/bridges/dragonfly/{lib/list_ui.rb → list_ui.rb} +2 -2
- data/lib/active_scaffold/bridges/file_column.rb +11 -0
- data/lib/active_scaffold/bridges/file_column/{lib/as_file_column_bridge.rb → as_file_column_bridge.rb} +2 -2
- data/lib/active_scaffold/bridges/file_column/file_column_helpers.rb +57 -0
- data/lib/active_scaffold/bridges/file_column/{lib/form_ui.rb → form_ui.rb} +2 -2
- data/lib/active_scaffold/bridges/file_column/{lib/list_ui.rb → list_ui.rb} +0 -0
- data/lib/active_scaffold/bridges/paperclip.rb +12 -0
- data/lib/active_scaffold/bridges/paperclip/{lib/form_ui.rb → form_ui.rb} +0 -0
- data/lib/active_scaffold/bridges/paperclip/{lib/list_ui.rb → list_ui.rb} +3 -3
- data/lib/active_scaffold/bridges/paperclip/paperclip_bridge.rb +36 -0
- data/lib/active_scaffold/bridges/paperclip/paperclip_bridge_helpers.rb +24 -0
- data/lib/active_scaffold/bridges/record_select.rb +11 -0
- data/lib/active_scaffold/bridges/record_select/{lib/record_select_bridge.rb → helpers.rb} +5 -16
- data/lib/active_scaffold/bridges/record_select/helpers.rb~ +9 -14
- data/lib/active_scaffold/bridges/semantic_attributes.rb +5 -0
- data/lib/active_scaffold/bridges/semantic_attributes/{lib/semantic_attributes_bridge.rb → column.rb} +3 -3
- data/lib/active_scaffold/bridges/tiny_mce.rb +5 -0
- data/lib/active_scaffold/bridges/tiny_mce/{lib/tiny_mce_bridge.rb → helpers.rb} +16 -8
- data/lib/active_scaffold/config/base.rb +9 -1
- data/lib/active_scaffold/config/core.rb +1 -1
- data/lib/active_scaffold/config/create.rb +3 -10
- data/lib/active_scaffold/config/delete.rb +1 -2
- data/lib/active_scaffold/config/field_search.rb +1 -2
- data/lib/active_scaffold/config/form.rb +2 -6
- data/lib/active_scaffold/config/list.rb +8 -2
- data/lib/active_scaffold/config/nested.rb +2 -6
- data/lib/active_scaffold/config/search.rb +6 -2
- data/lib/active_scaffold/config/show.rb +1 -4
- data/lib/active_scaffold/config/subform.rb +1 -1
- data/lib/active_scaffold/config/update.rb +1 -6
- data/lib/active_scaffold/data_structures/action_columns.rb +3 -0
- data/lib/active_scaffold/data_structures/action_link.rb +14 -10
- data/lib/active_scaffold/data_structures/bridge.rb +22 -0
- data/lib/active_scaffold/data_structures/column.rb +36 -4
- data/lib/active_scaffold/data_structures/nested_info.rb +4 -4
- data/lib/active_scaffold/data_structures/set.rb +1 -6
- data/lib/active_scaffold/data_structures/sorting.rb +2 -2
- data/lib/active_scaffold/engine.rb +4 -0
- data/lib/active_scaffold/extensions/action_controller_rendering.rb +2 -2
- data/lib/active_scaffold/extensions/action_controller_rendering.rb~ +1 -1
- data/lib/active_scaffold/extensions/action_view_rendering.rb +90 -93
- data/lib/active_scaffold/extensions/action_view_rendering.rb~ +1 -13
- data/lib/active_scaffold/extensions/active_association_reflection.rb +16 -7
- data/lib/active_scaffold/extensions/cache_association.rb +16 -0
- data/lib/active_scaffold/extensions/reverse_associations.rb +15 -13
- data/lib/active_scaffold/extensions/unsaved_associated.rb +1 -1
- data/lib/active_scaffold/finder.rb +40 -23
- data/lib/active_scaffold/finder.rb~ +3 -11
- data/lib/active_scaffold/helpers/association_helpers.rb +1 -1
- data/lib/active_scaffold/helpers/controller_helpers.rb +9 -1
- data/lib/active_scaffold/helpers/controller_helpers.rb~ +12 -5
- data/lib/active_scaffold/helpers/form_column_helpers.rb +20 -21
- data/lib/active_scaffold/helpers/form_column_helpers.rb~ +2 -1
- data/lib/active_scaffold/helpers/id_helpers.rb +5 -5
- data/lib/active_scaffold/helpers/list_column_helpers.rb +14 -24
- data/lib/active_scaffold/helpers/list_column_helpers.rb~ +15 -20
- data/lib/active_scaffold/helpers/search_column_helpers.rb +10 -1
- data/lib/active_scaffold/helpers/search_column_helpers.rb~ +1 -1
- data/lib/active_scaffold/helpers/view_helpers.rb +14 -40
- data/lib/active_scaffold/helpers/view_helpers.rb~ +3 -3
- data/lib/active_scaffold/version.rb +2 -2
- data/lib/active_scaffold_env.rb +0 -2
- data/test/bridges/active_scaffold_dependent_protect_test.rb +34 -0
- data/test/bridges/bridge_test.rb +43 -0
- data/test/bridges/company.rb +81 -0
- data/test/bridges/paperclip_test.rb +68 -0
- data/test/bridges/tiny_mce_test.rb +27 -0
- data/test/bridges/unobtrusive_date_picker_test.rb +49 -0
- data/test/bridges/validation_reflection_test.rb +57 -0
- data/test/config/base_test.rb +1 -1
- data/test/config/core_test.rb +58 -0
- data/test/config/create_test.rb +8 -5
- data/test/config/delete_test.rb +33 -0
- data/test/config/field_search_test.rb +47 -0
- data/test/config/list_test.rb +64 -9
- data/test/config/nested_test.rb +62 -0
- data/test/config/search_test.rb +60 -0
- data/test/config/show_test.rb +5 -5
- data/test/config/subform_test.rb +17 -0
- data/test/config/update_test.rb +27 -4
- data/test/helpers/list_column_helpers_test.rb +16 -5
- data/test/helpers/pagination_helpers_test.rb +4 -0
- data/test/misc/attribute_params_test.rb +37 -1
- data/test/misc/finder_test.rb +0 -1
- data/test/misc/lang_test.rb +2 -3
- data/test/mock_app/public/javascripts/active_scaffold/default/active_scaffold.js +2 -2
- data/test/mock_app/public/stylesheets/active_scaffold/default/stylesheet.css +13 -7
- metadata +137 -154
- data/frontends/default/views/_list_with_header.html.erb~ +0 -32
- data/frontends/default/views/_render_field.js.rjs +0 -14
- data/frontends/default/views/_show.html.erb~ +0 -8
- data/frontends/default/views/_update_form.html.erb~ +0 -6
- data/frontends/default/views/add_existing.js.erb~ +0 -18
- data/frontends/default/views/add_existing.js.rjs +0 -17
- data/frontends/default/views/destroy.js.rjs +0 -23
- data/frontends/default/views/form_messages.js.rjs +0 -1
- data/frontends/default/views/list.js.rjs +0 -1
- data/frontends/default/views/on_action_update.js.rjs +0 -10
- data/frontends/default/views/on_create.js.rjs +0 -41
- data/frontends/default/views/on_mark_all.js.rjs +0 -12
- data/frontends/default/views/on_update.js.rjs +0 -28
- data/frontends/default/views/render_field.js.rjs +0 -1
- data/frontends/default/views/update_column.js.rjs +0 -13
- data/frontends/default/views/update_row.js.rjs +0 -1
- data/lib/active_scaffold.rb~ +0 -362
- data/lib/active_scaffold/bridges/ancestry/bridge.rb +0 -5
- data/lib/active_scaffold/bridges/bridge.rb +0 -59
- data/lib/active_scaffold/bridges/cancan/bridge.rb +0 -12
- data/lib/active_scaffold/bridges/carrierwave/bridge.rb +0 -9
- data/lib/active_scaffold/bridges/carrierwave/lib/carrierwave_bridge.rb +0 -33
- data/lib/active_scaffold/bridges/carrierwave/lib/carrierwave_bridge_helpers.rb +0 -12
- data/lib/active_scaffold/bridges/country_helper/bridge.rb +0 -9
- data/lib/active_scaffold/bridges/date_picker/bridge.rb +0 -24
- data/lib/active_scaffold/bridges/date_picker/lib/datepicker_bridge.rb +0 -234
- data/lib/active_scaffold/bridges/dragonfly/bridge.rb +0 -9
- data/lib/active_scaffold/bridges/dragonfly/lib/dragonfly_bridge.rb +0 -36
- data/lib/active_scaffold/bridges/dragonfly/lib/dragonfly_bridge_helpers.rb +0 -12
- data/lib/active_scaffold/bridges/file_column/bridge.rb +0 -11
- data/lib/active_scaffold/bridges/file_column/lib/file_column_helpers.rb +0 -59
- data/lib/active_scaffold/bridges/paperclip/bridge.rb +0 -12
- data/lib/active_scaffold/bridges/paperclip/lib/paperclip_bridge.rb +0 -38
- data/lib/active_scaffold/bridges/paperclip/lib/paperclip_bridge_helpers.rb +0 -26
- data/lib/active_scaffold/bridges/record_select/bridge.rb +0 -5
- data/lib/active_scaffold/bridges/semantic_attributes/bridge.rb +0 -5
- data/lib/active_scaffold/bridges/shared/date_bridge.rb~ +0 -209
- data/lib/active_scaffold/bridges/tiny_mce/bridge.rb +0 -5
- data/lib/active_scaffold/bridges/validation_reflection/bridge.rb +0 -8
- data/lib/active_scaffold/bridges/validation_reflection/lib/validation_reflection_bridge.rb +0 -21
- data/lib/active_scaffold/config/base.rb~ +0 -70
- data/lib/active_scaffold/config/nested.rb~ +0 -41
- data/lib/active_scaffold/constraints.rb~ +0 -186
- data/lib/active_scaffold/data_structures/action_link.rb~ +0 -179
- data/lib/active_scaffold/data_structures/nested_info.rb~ +0 -123
- data/lib/active_scaffold/extensions/action_view_resolver.rb +0 -7
- data/lib/active_scaffold/extensions/active_association_reflection.rb~ +0 -22
- data/lib/active_scaffold/extensions/unsaved_associated.rb~ +0 -62
- data/lib/active_scaffold_assets.rb +0 -45
- data/lib/generators/active_scaffold_setup/USAGE +0 -10
- data/lib/generators/active_scaffold_setup/active_scaffold_setup_generator.rb +0 -59
@@ -1,8 +1,8 @@
|
|
1
|
-
<h4><%= active_scaffold_config.show.label
|
1
|
+
<h4><%= active_scaffold_config.show.label(@record.to_label.nil? ? nil : clean_column_value(@record.to_label)) %></h4>
|
2
2
|
|
3
3
|
<%= render :partial => 'show_columns', :locals => {:columns => active_scaffold_config.show.columns} -%>
|
4
4
|
|
5
5
|
<p class="form-footer">
|
6
6
|
<%= link_to as_(:close), main_path_to_return, :class => 'as_cancel', :remote => request.xhr?, 'data-refresh' => false %>
|
7
7
|
<%= loading_indicator_tag(:action => :create, :id => params[:id]) %>
|
8
|
-
</p>
|
8
|
+
</p>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<% new_row = render :partial => 'list_record', :locals => {:record => @record}%>
|
2
|
+
ActiveScaffold.create_record_row('#{active_scaffold_id}','#{escape_javascript(new_row)}', #{{:insert_at => :top}.to_json.html_safe});
|
3
|
+
<%%>
|
4
|
+
<% if active_scaffold_config.list.columns.any? {|c| c.calculation?} %>
|
5
|
+
ActiveScaffold.replace('<%=active_scaffold_calculations_id%>', '<%=escape_javascript(render(:partial => 'list_calculations'))%>');
|
6
|
+
<%end%>
|
7
|
+
<%%>
|
8
|
+
<% if(form_stays_open == true)%>
|
9
|
+
<%# why not just re-render the form? that wouldn't utilize a possible do_new override which sets default values.%>
|
10
|
+
ActiveScaffold.reset_form('<%element_form_id%>');
|
11
|
+
ActiveScaffold.replace_html('<%element_messages_id(:action => :add_existing)%>', '<%=escape_javascript(render(:partial => 'form_messages'))%>');
|
12
|
+
<%# have to delay the focus, because there's no "firstElement" in prototype until at least one element is not disabled%>
|
13
|
+
<%if ActiveScaffold.js_framework == :prototype%>
|
14
|
+
page.delay 0.1 do
|
15
|
+
page << "ActiveScaffold.focus_first_element_of_form('#{element_form_id}');"
|
16
|
+
end
|
17
|
+
<%end%>
|
18
|
+
<%else%>
|
19
|
+
ActiveScaffold.find_action_link('<%element_form_id(:action => :new_existing)%>').close();
|
20
|
+
<%end%>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<%messages_id = active_scaffold_messages_id%>
|
2
|
+
<%if controller.send(:successful?)%>
|
3
|
+
<%if render_parent? && controller.respond_to?(:render_component_into_view)%>
|
4
|
+
<%render_parent_options%>
|
5
|
+
<%if render_parent_action == :row%>
|
6
|
+
<%# TODO: That s not working with delete....%>
|
7
|
+
ActiveScaffold.delete_record_row('<%=element_row_id(:controller_id => "as_#{id_from_controller(params[:eid] || params[:parent_sti])}", :action => 'list', :id => params[:id])%>', '<%=url_for(params_for(:action => :index, :id => nil, :page => [active_scaffold_config.list.user.page.to_i - 1, 1].max, :escape => false))%>');
|
8
|
+
<%messages_id = active_scaffold_messages_id(:controller_id => "as_#{id_from_controller(params[:eid] || params[:parent_sti])}")%>
|
9
|
+
<%elsif render_parent_action == :index%>
|
10
|
+
<%= escape_javascript(controller.send(:render_component_into_view, render_parent_options))%>
|
11
|
+
<%end%>
|
12
|
+
<%#page.call 'ActiveScaffold.replace', active_scaffold_calculations_id, render(:partial => 'list_calculations') if active_scaffold_config.list.columns.any? {|c| c.calculation?}%>
|
13
|
+
<%elsif (active_scaffold_config.delete.refresh_list)%>
|
14
|
+
ActiveScaffold.replace('<%=active_scaffold_content_id%>', '<%=escape_javascript(render(:partial => 'list', :layout => false))%>');
|
15
|
+
<%else%>
|
16
|
+
ActiveScaffold.delete_record_row('<%=element_row_id(:action => 'list', :id => params[:id])%>', '<%=url_for(params_for(:action => :index, :id => nil, :page => [active_scaffold_config.list.user.page.to_i - 1, 1].max, :escape => false))%>');
|
17
|
+
<% if active_scaffold_config.list.columns.any? {|c| c.calculation?}%>
|
18
|
+
ActiveScaffold.replace('<%=active_scaffold_calculations_id%>', '<%=escape_javascript(render(:partial => 'list_calculations'))%>');
|
19
|
+
<% end %>
|
20
|
+
<%end%>
|
21
|
+
<%else%>
|
22
|
+
<%flash[:error] = active_scaffold_error_messages_for(@record, :object_name => "#{@record.class.model_name.human.downcase}#{@record.new_record? ? '' : ": #{@record.to_label}"}", :header_message => '', :message => "#{@record.class.model_name.human.downcase}#{@record.new_record? ? '' : ": #{@record.to_label}"}", :container_tag => nil, :list_type => :br)%>
|
23
|
+
<%end%>
|
24
|
+
ActiveScaffold.replace_html('<%=messages_id%>', '<%=escape_javascript(render(:partial => 'messages'))%>');
|
@@ -1,3 +1,4 @@
|
|
1
|
+
<%
|
1
2
|
associated_form = render :partial => "#{subform_partial_for_column(@column)}_record", :locals => {:scope => @scope, :parent_record => @parent_record, :column => @column, :locked => @record.new_record? && @column.singular_association?}
|
2
3
|
options = {:singular => false}
|
3
4
|
if @column.singular_association?
|
@@ -7,5 +8,5 @@ else
|
|
7
8
|
column = active_scaffold_config_for(@record.class).columns[@record.class.primary_key]
|
8
9
|
options[:id] = active_scaffold_input_options(column, @scope)[:id]
|
9
10
|
end
|
10
|
-
end
|
11
|
-
|
11
|
+
end %>
|
12
|
+
ActiveScaffold.create_associated_record_form('<%=sub_form_list_id(:association => @column.name)%>','<%=escape_javascript(associated_form)%>', <%= options.to_json.html_safe %>);
|
@@ -0,0 +1 @@
|
|
1
|
+
ActiveScaffold.replace_html('<%=element_messages_id%>','<%=escape_javascript(render(:partial => 'form_messages'))%>');
|
@@ -0,0 +1 @@
|
|
1
|
+
ActiveScaffold.replace_html('<%=active_scaffold_content_id%>','<%=escape_javascript(render(:partial => 'list', :layout => false))%>');
|
@@ -0,0 +1,6 @@
|
|
1
|
+
if params[:id]
|
2
|
+
# FIXME: It isn't right when there are filtered records by a search
|
3
|
+
page << "$('#{active_scaffold_id}').down('.mark_record').checked = #{@mark ? true : false};"
|
4
|
+
else
|
5
|
+
page << "$$('##{active_scaffold_tbody_id} > tr > td > .mark_record').each(function(checkbox) { checkbox.checked = #{@mark ? true : false};});"
|
6
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<%if controller.send :successful?%>
|
2
|
+
ActiveScaffold.replace_html('<%=active_scaffold_messages_id%>','<%=escape_javascript(render(:partial => 'messages'))%>');
|
3
|
+
<%if @record%>
|
4
|
+
ActiveScaffold.update_row('<%=element_row_id(:action => :list, :id => @record.id)%>','<%=escape_javascript(render(:partial => 'list_record', :locals => {:record => @record}))%>');
|
5
|
+
<%end%>
|
6
|
+
<% if active_scaffold_config.list.columns.any? {|c| c.calculation?}%>
|
7
|
+
ActiveScaffold.replace('<%=active_scaffold_calculations_id%>', '<%=escape_javascript(render(:partial => 'list_calculations'))%>');
|
8
|
+
<% end %>
|
9
|
+
<%else%>
|
10
|
+
<%flash[:error] = active_scaffold_error_messages_for(@record, :object_name => "#{@record.class.model_name.human.downcase}#{@record.new_record? ? '' : ": #{@record.to_label}"}", :header_message => '', :message => "#{@record.class.model_name.human.downcase}#{@record.new_record? ? '' : ": #{@record.to_label}"}", :container_tag => nil, :list_type => :br)%>
|
11
|
+
ActiveScaffold.replace_html('<%=active_scaffold_messages_id%>','<%=escape_javascript(render(:partial => 'messages'))%>');
|
12
|
+
ActiveScaffold.scroll_to('<%=active_scaffold_messages_id%>');
|
13
|
+
<%end%>
|
File without changes
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<%options = {:checked => mark_all,
|
2
|
+
:include_mark_all => true}%>
|
3
|
+
ActiveScaffold.mark_records('<%=active_scaffold_tbody_id%>',<%=options.to_json.html_safe%>);
|
4
|
+
<%if active_scaffold_config.model.marked.length>0 then %>
|
5
|
+
<%if active_scaffold_config.model.marked.length < @page.pager.count then%>
|
6
|
+
ActiveScaffold.replace_html('<%=active_scaffold_messages_id%>','<%="#{active_scaffold_config.model.marked.length.to_s} records marked. Press <a href=\"#{url_for(:action=>"mark_all",:mark_target=>"scope")}\">here</a> to select all #{@page.pager.count} records.".html_safe%>');
|
7
|
+
<%else%>
|
8
|
+
ActiveScaffold.replace_html('<%=active_scaffold_messages_id%>','<%="All #{@page.pager.count} records marked".html_safe%>');
|
9
|
+
<%end%>
|
10
|
+
<%else%>
|
11
|
+
ActiveScaffold.replace_html('<%=active_scaffold_messages_id%>','');
|
12
|
+
<%end%>
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render :partial => "render_field", :collection => @columns, :locals => {:source_id => @source_id, :scope => @scope} %>
|
@@ -1,14 +1,14 @@
|
|
1
|
-
<%
|
1
|
+
<% column_span_id ||= element_cell_id(:id => @record.id.to_s, :action => 'update_column', :name => params[:column])%>
|
2
2
|
<% unless controller.send :successful?%>
|
3
3
|
alert('<%= escape_javascript(@record.errors.full_messages.join("\n"))%>');
|
4
4
|
<% @record.reload%>
|
5
5
|
<% end%>
|
6
6
|
<% column = active_scaffold_config.columns[params[:column]]%>
|
7
7
|
<% if column.inplace_edit%>
|
8
|
-
ActiveScaffold.replace_html('
|
8
|
+
ActiveScaffold.replace_html('<%=column_span_id%>','<%=escape_javascript(format_inplace_edit_column(@record, column))%>');
|
9
9
|
<% else%>
|
10
10
|
<% formatted_value = get_column_value(@record, column)%>
|
11
|
-
ActiveScaffold.replace_html('
|
11
|
+
ActiveScaffold.replace_html('<%=column_span_id%>','<%=escape_javascript(formatted_value)%>');
|
12
12
|
<% end%>
|
13
13
|
<% if column.calculation?%>
|
14
14
|
ActiveScaffold.replace_html('<%=active_scaffold_calculations_id(column)%>', '<%=escape_javascript(render_column_calculation(column))%>');
|
@@ -0,0 +1 @@
|
|
1
|
+
ActiveScaffold.update_row('<%=element_row_id(:action => 'list', :id => @record.id)%>','<%=escape_javascript(render(:partial => 'list_record', :locals => {:record => @record}))%>');
|
data/lib/active_scaffold.rb
CHANGED
@@ -1,22 +1,18 @@
|
|
1
|
-
unless Rails::VERSION::MAJOR == 3 && Rails::VERSION::MINOR >=
|
2
|
-
raise "This version of ActiveScaffold requires Rails 3.
|
1
|
+
unless Rails::VERSION::MAJOR == 3 && Rails::VERSION::MINOR >= 1
|
2
|
+
raise "This version of ActiveScaffold requires Rails 3.1 or higher. Please use an earlier version."
|
3
3
|
end
|
4
4
|
|
5
5
|
begin
|
6
6
|
require 'render_component'
|
7
7
|
rescue LoadError
|
8
8
|
end
|
9
|
-
begin
|
10
|
-
require 'verification'
|
11
|
-
rescue LoadError
|
12
|
-
end
|
13
9
|
|
14
|
-
require 'active_scaffold_assets'
|
15
10
|
require 'active_scaffold/active_record_permissions'
|
16
11
|
require 'active_scaffold/paginator'
|
17
12
|
require 'active_scaffold/responds_to_parent'
|
18
13
|
|
19
14
|
require 'active_scaffold/version'
|
15
|
+
require 'active_scaffold/engine' unless defined? ACTIVE_SCAFFOLD_PLUGIN
|
20
16
|
|
21
17
|
module ActiveScaffold
|
22
18
|
autoload :AttributeParams, 'active_scaffold/attribute_params'
|
@@ -24,6 +20,12 @@ module ActiveScaffold
|
|
24
20
|
autoload :Constraints, 'active_scaffold/constraints'
|
25
21
|
autoload :Finder, 'active_scaffold/finder'
|
26
22
|
autoload :MarkedModel, 'active_scaffold/marked_model'
|
23
|
+
autoload :Bridges, 'active_scaffold/bridges'
|
24
|
+
|
25
|
+
mattr_accessor :stylesheets
|
26
|
+
self.stylesheets = []
|
27
|
+
mattr_accessor :javascripts
|
28
|
+
self.javascripts = []
|
27
29
|
|
28
30
|
def self.autoload_subdir(dir, mod=self, root = File.dirname(__FILE__))
|
29
31
|
Dir["#{root}/active_scaffold/#{dir}/*.rb"].each { |file|
|
@@ -38,10 +40,6 @@ module ActiveScaffold
|
|
38
40
|
ActiveScaffold.autoload_subdir('actions', self)
|
39
41
|
end
|
40
42
|
|
41
|
-
module Bridges
|
42
|
-
autoload :Bridge, 'active_scaffold/bridges/bridge'
|
43
|
-
end
|
44
|
-
|
45
43
|
module Config
|
46
44
|
ActiveScaffold.autoload_subdir('config', self)
|
47
45
|
end
|
@@ -126,7 +124,11 @@ module ActiveScaffold
|
|
126
124
|
end
|
127
125
|
|
128
126
|
def self.js_framework
|
129
|
-
@@js_framework ||=
|
127
|
+
@@js_framework ||= if defined? Jquery
|
128
|
+
:jquery
|
129
|
+
elsif defined? PrototypeRails
|
130
|
+
:prototype
|
131
|
+
end
|
130
132
|
end
|
131
133
|
|
132
134
|
# exclude bridges you do not need
|
@@ -150,7 +152,7 @@ module ActiveScaffold
|
|
150
152
|
module ClassMethods
|
151
153
|
def active_scaffold(model_id = nil, &block)
|
152
154
|
# initialize bridges here
|
153
|
-
ActiveScaffold::Bridges
|
155
|
+
ActiveScaffold::Bridges.run_all
|
154
156
|
|
155
157
|
# converts Foo::BarController to 'bar' and FooBarsController to 'foo_bar' and AddressController to 'address'
|
156
158
|
model_id = self.to_s.split('::').last.sub(/Controller$/, '').pluralize.singularize.underscore unless model_id
|
@@ -160,12 +162,6 @@ module ActiveScaffold
|
|
160
162
|
@active_scaffold_config_block = block
|
161
163
|
self.links_for_associations
|
162
164
|
|
163
|
-
@active_scaffold_overrides = []
|
164
|
-
ActionController::Base.view_paths.each do |dir|
|
165
|
-
active_scaffold_overrides_dir = File.join(dir.to_s,"active_scaffold_overrides")
|
166
|
-
@active_scaffold_overrides << active_scaffold_overrides_dir if File.exists?(active_scaffold_overrides_dir)
|
167
|
-
end
|
168
|
-
@active_scaffold_overrides.uniq! # Fix rails duplicating some view_paths
|
169
165
|
@active_scaffold_frontends = []
|
170
166
|
if active_scaffold_config.frontend.to_sym != :default
|
171
167
|
active_scaffold_custom_frontend_path = File.join(ActiveScaffold::Config::Core.plugin_directory, 'frontends', active_scaffold_config.frontend.to_s , 'views')
|
@@ -204,12 +200,14 @@ module ActiveScaffold
|
|
204
200
|
end
|
205
201
|
end
|
206
202
|
end
|
207
|
-
|
208
|
-
self.append_view_path(ActionView::ActiveScaffoldResolver.new(path))
|
209
|
-
end
|
203
|
+
self.append_view_path active_scaffold_paths
|
210
204
|
self._add_sti_create_links if self.active_scaffold_config.add_sti_create_links?
|
211
205
|
end
|
212
206
|
|
207
|
+
def parent_prefixes
|
208
|
+
@parent_prefixes ||= super << 'active_scaffold_overrides' << ''
|
209
|
+
end
|
210
|
+
|
213
211
|
# To be called after include action modules
|
214
212
|
def _add_sti_create_links
|
215
213
|
new_action_link = active_scaffold_config.action_links.collection['new']
|
@@ -268,7 +266,7 @@ module ActiveScaffold
|
|
268
266
|
column.actions_for_association_links.delete :new unless actions.include? :create
|
269
267
|
column.actions_for_association_links.delete :edit unless actions.include? :update
|
270
268
|
column.actions_for_association_links.delete :show unless actions.include? :show
|
271
|
-
ActiveScaffold::DataStructures::ActionLink.new(
|
269
|
+
ActiveScaffold::DataStructures::ActionLink.new(:none, options.merge({:crud_type => nil, :html_options => {:class => column.name}}))
|
272
270
|
end
|
273
271
|
end
|
274
272
|
end
|
@@ -285,17 +283,10 @@ module ActiveScaffold
|
|
285
283
|
@active_scaffold_custom_paths << path
|
286
284
|
end
|
287
285
|
|
288
|
-
def add_active_scaffold_override_path(path)
|
289
|
-
@active_scaffold_paths = nil # Force active_scaffold_paths to rebuild
|
290
|
-
@active_scaffold_overrides.unshift path
|
291
|
-
end
|
292
|
-
|
293
286
|
def active_scaffold_paths
|
294
287
|
return @active_scaffold_paths unless @active_scaffold_paths.nil?
|
295
288
|
|
296
|
-
#@active_scaffold_paths = ActionView::PathSet.new
|
297
289
|
@active_scaffold_paths = []
|
298
|
-
@active_scaffold_paths.concat @active_scaffold_overrides unless @active_scaffold_overrides.nil?
|
299
290
|
@active_scaffold_paths.concat @active_scaffold_custom_paths unless @active_scaffold_custom_paths.nil?
|
300
291
|
@active_scaffold_paths.concat @active_scaffold_frontends unless @active_scaffold_frontends.nil?
|
301
292
|
@active_scaffold_paths
|
@@ -341,7 +332,6 @@ module ActiveScaffold
|
|
341
332
|
def active_scaffold_controller_for(klass)
|
342
333
|
controller_namespace = self.to_s.split('::')[0...-1].join('::') + '::'
|
343
334
|
error_message = []
|
344
|
-
klass = klass.to_s.singularize.camelize.constantize unless klass.is_a? Class
|
345
335
|
[controller_namespace, ''].each do |namespace|
|
346
336
|
["#{klass.to_s.underscore.pluralize}", "#{klass.to_s.underscore.pluralize.singularize}"].each do |controller_name|
|
347
337
|
begin
|
@@ -356,7 +346,7 @@ module ActiveScaffold
|
|
356
346
|
end
|
357
347
|
end
|
358
348
|
raise ActiveScaffold::ControllerNotFound, "#{controller} missing ActiveScaffold", caller unless controller.uses_active_scaffold?
|
359
|
-
raise ActiveScaffold::ControllerNotFound, "ActiveScaffold on #{controller} is not for #{klass} model.", caller unless controller.active_scaffold_config.model == klass
|
349
|
+
raise ActiveScaffold::ControllerNotFound, "ActiveScaffold on #{controller} is not for #{klass} model.", caller unless controller.active_scaffold_config.model.to_s == klass.to_s
|
360
350
|
return controller
|
361
351
|
end
|
362
352
|
end
|
@@ -370,17 +360,3 @@ module ActiveScaffold
|
|
370
360
|
end
|
371
361
|
|
372
362
|
require 'active_scaffold_env'
|
373
|
-
|
374
|
-
##
|
375
|
-
## Run the install assets script, too, just to make sure
|
376
|
-
## But at least rescue the action in production
|
377
|
-
##
|
378
|
-
|
379
|
-
Rails::Application.initializer("active_scaffold.install_assets") do
|
380
|
-
begin
|
381
|
-
ActiveScaffoldAssets.copy_to_public(ActiveScaffold.root, {:clean_up_destination => true})
|
382
|
-
rescue
|
383
|
-
raise $! unless Rails.env == 'production'
|
384
|
-
end
|
385
|
-
end
|
386
|
-
|
@@ -30,24 +30,28 @@ module ActiveScaffold::Actions
|
|
30
30
|
|
31
31
|
def render_field_for_update_columns
|
32
32
|
column = active_scaffold_config.columns[params[:column]]
|
33
|
-
@record = params[:id] && column.send_form_on_update_column ? find_if_allowed(params[:id], :update) : new_model
|
34
33
|
unless column.nil?
|
34
|
+
@source_id = params.delete(:source_id)
|
35
|
+
@columns = column.update_columns
|
36
|
+
@scope = params[:scope]
|
37
|
+
|
35
38
|
if column.send_form_on_update_column
|
36
|
-
hash = if
|
37
|
-
|
39
|
+
hash = if @scope
|
40
|
+
@scope.gsub('[','').split(']').inject(params[:record]) do |hash, index|
|
38
41
|
hash[index]
|
39
42
|
end
|
40
43
|
else
|
41
44
|
params[:record]
|
42
45
|
end
|
43
|
-
@record =
|
46
|
+
@record = hash[:id] ? find_if_allowed(hash[:id], :update) : new_model
|
47
|
+
@record = update_record_from_params(@record, active_scaffold_config.send(@scope ? :subform : (params[:id] ? :update : :create)).columns, hash)
|
44
48
|
else
|
49
|
+
@record = new_model
|
45
50
|
value = column_value_from_param_value(@record, column, params[:value])
|
46
51
|
@record.send "#{column.name}=", value
|
47
52
|
end
|
53
|
+
|
48
54
|
after_render_field(@record, column)
|
49
|
-
source_id = params.delete(:source_id)
|
50
|
-
render :locals => {:source_id => source_id, :columns => column.update_columns, :scope => params[:scope]}
|
51
55
|
end
|
52
56
|
end
|
53
57
|
|
@@ -66,6 +70,10 @@ module ActiveScaffold::Actions
|
|
66
70
|
end
|
67
71
|
end
|
68
72
|
|
73
|
+
def marked_records
|
74
|
+
active_scaffold_session_storage[:marked_records] ||= Set.new
|
75
|
+
end
|
76
|
+
|
69
77
|
def default_formats
|
70
78
|
[:html, :js, :json, :xml, :yaml]
|
71
79
|
end
|
@@ -36,8 +36,8 @@ module ActiveScaffold::Actions
|
|
36
36
|
@scope = params[:scope]
|
37
37
|
|
38
38
|
if column.send_form_on_update_column
|
39
|
-
hash = if
|
40
|
-
|
39
|
+
hash = if params[:scope]
|
40
|
+
params[:scope].gsub('[','').split(']').inject(params[:record]) do |hash, index|
|
41
41
|
hash[index]
|
42
42
|
end
|
43
43
|
else
|
@@ -165,7 +165,7 @@ module ActiveScaffold::Actions
|
|
165
165
|
params = params[:record] || {} unless params[model.inheritance_column] # in create action must be inside record key
|
166
166
|
model = params.delete(model.inheritance_column).camelize.constantize if params[model.inheritance_column]
|
167
167
|
end
|
168
|
-
model.
|
168
|
+
model.respond_to?(:build) ? model.build(build_options || {}) : model.new
|
169
169
|
end
|
170
170
|
|
171
171
|
private
|
@@ -2,9 +2,6 @@ module ActiveScaffold::Actions
|
|
2
2
|
module Create
|
3
3
|
def self.included(base)
|
4
4
|
base.before_filter :create_authorized_filter, :only => [:new, :create]
|
5
|
-
base.verify :method => :post,
|
6
|
-
:only => :create,
|
7
|
-
:redirect_to => { :action => :index }
|
8
5
|
end
|
9
6
|
|
10
7
|
def new
|
@@ -42,8 +39,8 @@ module ActiveScaffold::Actions
|
|
42
39
|
else
|
43
40
|
if successful?
|
44
41
|
flash[:info] = as_(:created_model, :model => @record.to_label)
|
45
|
-
if active_scaffold_config.create.action_after_create
|
46
|
-
redirect_to params_for(:action =>
|
42
|
+
if action = active_scaffold_config.create.action_after_create
|
43
|
+
redirect_to params_for(:action => action, :id => @record.id)
|
47
44
|
elsif active_scaffold_config.create.persistent
|
48
45
|
redirect_to params_for(:action => "new")
|
49
46
|
else
|
@@ -2,6 +2,9 @@ module ActiveScaffold::Actions
|
|
2
2
|
module Create
|
3
3
|
def self.included(base)
|
4
4
|
base.before_filter :create_authorized_filter, :only => [:new, :create]
|
5
|
+
base.verify :method => :post,
|
6
|
+
:only => :create,
|
7
|
+
:redirect_to => { :action => :index }
|
5
8
|
end
|
6
9
|
|
7
10
|
def new
|
@@ -103,8 +106,6 @@ module ActiveScaffold::Actions
|
|
103
106
|
create_save
|
104
107
|
end
|
105
108
|
rescue ActiveRecord::RecordInvalid
|
106
|
-
self.successful = false
|
107
|
-
flash[:error] = $!.messages
|
108
109
|
end
|
109
110
|
end
|
110
111
|
|
@@ -52,6 +52,7 @@ module ActiveScaffold::Actions
|
|
52
52
|
@record ||= destroy_find_record
|
53
53
|
begin
|
54
54
|
self.successful = @record.destroy
|
55
|
+
marked_records.delete @record.id.to_s if successful?
|
55
56
|
rescue
|
56
57
|
flash[:warning] = as_(:cant_destroy_record, :record => @record.to_label)
|
57
58
|
self.successful = false
|
@@ -42,7 +42,7 @@ module ActiveScaffold::Actions
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def do_search
|
45
|
-
unless search_params.
|
45
|
+
unless search_params.blank?
|
46
46
|
text_search = active_scaffold_config.field_search.text_search
|
47
47
|
search_conditions = []
|
48
48
|
human_condition_columns = [] if active_scaffold_config.field_search.human_conditions
|
@@ -55,14 +55,15 @@ module ActiveScaffold::Actions
|
|
55
55
|
render(:partial => 'row', :locals => {:record => @record})
|
56
56
|
end
|
57
57
|
|
58
|
-
|
59
|
-
|
58
|
+
# The actual algorithm to prepare for the list view
|
59
|
+
def set_includes_for_list_columns
|
60
|
+
includes_for_list_columns = active_scaffold_config.list.columns.collect{ |c| c.includes }.flatten.uniq.compact
|
61
|
+
self.active_scaffold_includes.concat includes_for_list_columns
|
60
62
|
end
|
61
63
|
|
62
64
|
# The actual algorithm to prepare for the list view
|
63
65
|
def do_list
|
64
|
-
|
65
|
-
self.active_scaffold_includes.concat includes_for_list_columns
|
66
|
+
set_includes_for_list_columns
|
66
67
|
|
67
68
|
options = { :sorting => active_scaffold_config.list.user.sorting,
|
68
69
|
:count_includes => active_scaffold_config.list.user.count_includes }
|
@@ -75,7 +76,7 @@ module ActiveScaffold::Actions
|
|
75
76
|
})
|
76
77
|
end
|
77
78
|
|
78
|
-
page = find_page(options)
|
79
|
+
page = find_page(options)
|
79
80
|
if page.items.blank? && !page.pager.infinite?
|
80
81
|
page = page.pager.last
|
81
82
|
active_scaffold_config.list.user.page = page.number
|
@@ -173,7 +174,10 @@ module ActiveScaffold::Actions
|
|
173
174
|
(default_formats + active_scaffold_config.formats + active_scaffold_config.list.formats).uniq
|
174
175
|
end
|
175
176
|
alias_method :index_formats, :list_formats
|
176
|
-
|
177
|
+
|
178
|
+
def row_formats
|
179
|
+
([:html] + active_scaffold_config.formats + active_scaffold_config.list.formats).uniq
|
180
|
+
end
|
177
181
|
|
178
182
|
def action_update_formats
|
179
183
|
(default_formats + active_scaffold_config.formats).uniq
|