activeadmin 1.4.3 → 2.0.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of activeadmin might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +70 -10
- data/CONTRIBUTING.md +12 -11
- data/README.md +34 -8
- data/app/assets/javascripts/active_admin/base.es6 +23 -0
- data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
- data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
- data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
- data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
- data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
- data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
- data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +55 -0
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
- data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
- data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
- data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
- data/app/assets/stylesheets/active_admin/_forms.scss +2 -14
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
- data/app/views/active_admin/devise/confirmations/new.html.erb +1 -1
- data/app/views/active_admin/devise/passwords/edit.html.erb +1 -1
- data/app/views/active_admin/devise/passwords/new.html.erb +1 -1
- data/app/views/active_admin/devise/registrations/new.html.erb +1 -2
- data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
- data/app/views/active_admin/devise/unlocks/new.html.erb +1 -1
- data/app/views/layouts/active_admin_logged_out.html.erb +1 -1
- data/config/locales/bg.yml +0 -1
- data/config/locales/he.yml +0 -1
- data/config/locales/hu.yml +4 -0
- data/config/locales/lt.yml +2 -2
- data/config/locales/uk.yml +2 -0
- data/docs/0-installation.md +2 -2
- data/docs/13-authorization-adapter.md +4 -4
- data/docs/CNAME +1 -1
- data/docs/index.html +2 -2
- data/lib/active_admin.rb +9 -4
- data/lib/active_admin/application.rb +8 -14
- data/lib/active_admin/application_settings.rb +3 -0
- data/lib/active_admin/asset_registration.rb +0 -8
- data/lib/active_admin/base_controller.rb +6 -6
- data/lib/active_admin/base_controller/authorization.rb +2 -4
- data/lib/active_admin/batch_actions/controller.rb +1 -1
- data/lib/active_admin/batch_actions/resource_extension.rb +4 -4
- data/lib/active_admin/callbacks.rb +1 -1
- data/lib/active_admin/csv_builder.rb +1 -1
- data/lib/active_admin/dependency.rb +1 -77
- data/lib/active_admin/dsl.rb +1 -8
- data/lib/active_admin/error.rb +1 -1
- data/lib/active_admin/filters/active_filter.rb +3 -1
- data/lib/active_admin/filters/active_sidebar.rb +5 -1
- data/lib/active_admin/filters/forms.rb +2 -2
- data/lib/active_admin/filters/formtastic_addons.rb +1 -1
- data/lib/active_admin/filters/resource_extension.rb +3 -3
- data/lib/active_admin/form_builder.rb +3 -3
- data/lib/active_admin/generators/boilerplate.rb +1 -1
- data/lib/active_admin/helpers/scope_chain.rb +1 -0
- data/lib/active_admin/inputs/datepicker_input.rb +1 -1
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
- data/lib/active_admin/menu_item.rb +1 -1
- data/lib/active_admin/namespace.rb +2 -2
- data/lib/active_admin/namespace_settings.rb +7 -4
- data/lib/active_admin/orm/active_record/comments.rb +4 -4
- data/lib/active_admin/orm/active_record/comments/comment.rb +2 -2
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +10 -5
- data/lib/active_admin/page_dsl.rb +1 -1
- data/lib/active_admin/pundit_adapter.rb +13 -4
- data/lib/active_admin/resource.rb +2 -2
- data/lib/active_admin/resource/action_items.rb +1 -1
- data/lib/active_admin/resource/attributes.rb +7 -4
- data/lib/active_admin/resource/menu.rb +3 -3
- data/lib/active_admin/resource/naming.rb +3 -3
- data/lib/active_admin/resource/routes.rb +9 -4
- data/lib/active_admin/resource/scopes.rb +3 -3
- data/lib/active_admin/resource/sidebars.rb +1 -1
- data/lib/active_admin/resource_collection.rb +2 -2
- data/lib/active_admin/resource_controller/action_builder.rb +10 -0
- data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
- data/lib/active_admin/resource_dsl.rb +5 -3
- data/lib/active_admin/router.rb +1 -1
- data/lib/active_admin/scope.rb +4 -4
- data/lib/active_admin/settings_node.rb +1 -1
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_helpers.rb +1 -1
- data/lib/active_admin/view_helpers/display_helper.rb +10 -2
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -0
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +2 -0
- data/lib/active_admin/views.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +7 -1
- data/lib/active_admin/views/components/attributes_table.rb +3 -3
- data/lib/active_admin/views/components/paginated_collection.rb +1 -1
- data/lib/active_admin/views/components/sidebar_section.rb +0 -3
- data/lib/active_admin/views/components/status_tag.rb +1 -18
- data/lib/active_admin/views/components/table_for.rb +2 -2
- data/lib/active_admin/views/components/tabs.rb +11 -2
- data/lib/active_admin/views/footer.rb +1 -1
- data/lib/active_admin/views/index_as_table.rb +5 -4
- data/lib/active_admin/views/pages/base.rb +3 -0
- data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
- data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
- data/lib/generators/active_admin/install/install_generator.rb +6 -2
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +20 -1
- data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
- data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
- data/lib/generators/active_admin/page/page_generator.rb +1 -1
- data/lib/generators/active_admin/resource/resource_generator.rb +1 -1
- data/lib/ransack_ext.rb +3 -3
- data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
- data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
- data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
- metadata +107 -96
- data/.circleci/config.yml +0 -572
- data/.github/ISSUE_TEMPLATE.md +0 -20
- data/.gitignore +0 -16
- data/.mdlrc +0 -1
- data/.rspec +0 -1
- data/.rspec_parallel +0 -2
- data/.rubocop.yml +0 -99
- data/.simplecov +0 -9
- data/.yardopts +0 -7
- data/Gemfile +0 -30
- data/Gemfile.common +0 -26
- data/Gemfile.lock +0 -433
- data/Rakefile +0 -24
- data/activeadmin.gemspec +0 -32
- data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
- data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
- data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
- data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
- data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
- data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
- data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
- data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
- data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
- data/bin/install_chromedriver.sh +0 -17
- data/config/i18n-tasks.yml +0 -26
- data/config/mdl_style.rb +0 -11
- data/cucumber.yml +0 -7
- data/gemfiles/rails_42.gemfile +0 -10
- data/gemfiles/rails_42.gemfile.lock +0 -339
- data/gemfiles/rails_50.gemfile +0 -10
- data/gemfiles/rails_50.gemfile.lock +0 -353
- data/gemfiles/rails_51.gemfile +0 -10
- data/gemfiles/rails_51.gemfile.lock +0 -353
- data/lib/active_admin/event.rb +0 -24
- data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
- data/lib/bug_report_templates/active_admin_master.rb +0 -111
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
- data/tasks/application_generator.rb +0 -50
- data/tasks/docs.rake +0 -64
- data/tasks/gemfiles.rake +0 -8
- data/tasks/lint.rake +0 -110
- data/tasks/local.rake +0 -27
- data/tasks/release.rake +0 -6
- data/tasks/test.rake +0 -42
@@ -22,7 +22,7 @@ module ActiveAdmin
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def current_batch_action
|
25
|
-
active_admin_config.batch_actions.detect{ |action| action.sym.to_s == params[:batch_action] }
|
25
|
+
active_admin_config.batch_actions.detect { |action| action.sym.to_s == params[:batch_action] }
|
26
26
|
end
|
27
27
|
|
28
28
|
COLLECTION_APPLIES = [
|
@@ -57,8 +57,8 @@ module ActiveAdmin
|
|
57
57
|
def add_default_batch_action
|
58
58
|
destroy_options = {
|
59
59
|
priority: 100,
|
60
|
-
confirm: proc{ I18n.t('active_admin.batch_actions.delete_confirmation', plural_model: active_admin_config.plural_resource_label.downcase) },
|
61
|
-
if: proc{ controller.action_methods.include?('destroy') && authorized?(ActiveAdmin::Auth::DESTROY, active_admin_config.resource_class) }
|
60
|
+
confirm: proc { I18n.t('active_admin.batch_actions.delete_confirmation', plural_model: active_admin_config.plural_resource_label.downcase) },
|
61
|
+
if: proc { controller.action_methods.include?('destroy') && authorized?(ActiveAdmin::Auth::DESTROY, active_admin_config.resource_class) }
|
62
62
|
}
|
63
63
|
|
64
64
|
add_batch_action :destroy, proc { I18n.t('active_admin.delete') }, destroy_options do |selected_ids|
|
@@ -84,7 +84,7 @@ module ActiveAdmin
|
|
84
84
|
|
85
85
|
attr_reader :block, :title, :sym
|
86
86
|
|
87
|
-
DEFAULT_CONFIRM_MESSAGE = proc{ I18n.t 'active_admin.batch_actions.default_confirmation' }
|
87
|
+
DEFAULT_CONFIRM_MESSAGE = proc { I18n.t 'active_admin.batch_actions.default_confirmation' }
|
88
88
|
|
89
89
|
# Create a Batch Action
|
90
90
|
#
|
@@ -133,7 +133,7 @@ module ActiveAdmin
|
|
133
133
|
# Returns the display if block. If the block was not explicitly defined
|
134
134
|
# a default block always returning true will be returned.
|
135
135
|
def display_if_block
|
136
|
-
@options[:if] || proc{ true }
|
136
|
+
@options[:if] || proc { true }
|
137
137
|
end
|
138
138
|
|
139
139
|
# Used for sorting
|
@@ -75,7 +75,7 @@ module ActiveAdmin
|
|
75
75
|
|
76
76
|
# def run_create_callbacks
|
77
77
|
define_method "run_#{name}_callbacks" do |*args, &block|
|
78
|
-
self.class.send("before_#{name}_callbacks").each{ |cbk| run_callback(cbk, *args) }
|
78
|
+
self.class.send("before_#{name}_callbacks").each { |cbk| run_callback(cbk, *args) }
|
79
79
|
value = block.try :call
|
80
80
|
self.class.send("after_#{name}_callbacks").each { |cbk| run_callback(cbk, *args) }
|
81
81
|
return value
|
@@ -50,7 +50,7 @@ module ActiveAdmin
|
|
50
50
|
csv << bom if bom
|
51
51
|
|
52
52
|
if column_names
|
53
|
-
csv << CSV.generate_line(columns.map{ |c| encode c.name, options }, csv_options)
|
53
|
+
csv << CSV.generate_line(columns.map { |c| encode c.name, options }, csv_options)
|
54
54
|
end
|
55
55
|
|
56
56
|
ActiveRecord::Base.uncached do
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module ActiveAdmin
|
2
2
|
module Dependency
|
3
3
|
module Requirements
|
4
|
-
DEVISE = '>=
|
4
|
+
DEVISE = '>= 4.0', '< 5'
|
5
5
|
end
|
6
6
|
|
7
7
|
# Provides a clean interface to check for gem dependencies at runtime.
|
@@ -55,10 +55,6 @@ module ActiveAdmin
|
|
55
55
|
Matcher.new name.to_s
|
56
56
|
end
|
57
57
|
|
58
|
-
def self.rails5?
|
59
|
-
rails >= '5.x'
|
60
|
-
end
|
61
|
-
|
62
58
|
class Matcher
|
63
59
|
attr_reader :name
|
64
60
|
|
@@ -94,78 +90,6 @@ module ActiveAdmin
|
|
94
90
|
info = spec ? "#{spec.name} #{spec.version}" : '(missing)'
|
95
91
|
"<ActiveAdmin::Dependency::Matcher for #{info}>"
|
96
92
|
end
|
97
|
-
|
98
|
-
def adapter
|
99
|
-
@adapter ||= Adapter.const_get(@name.camelize).new self
|
100
|
-
end
|
101
|
-
|
102
|
-
def method_missing(method, *args, &block)
|
103
|
-
if respond_to_missing?(method)
|
104
|
-
adapter.send method, *args, &block
|
105
|
-
else
|
106
|
-
super
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
def respond_to_missing?(method, include_private = false)
|
111
|
-
adapter.respond_to?(method) || super
|
112
|
-
rescue NameError
|
113
|
-
# 🐾
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
# Dependency adapters provide an easy way to wrap the conditional logic
|
118
|
-
# necessary to support multiple versions of a gem.
|
119
|
-
#
|
120
|
-
# ActiveAdmin::Dependency.rails.adapter.parameterize 'a b'
|
121
|
-
# => 'a_b'
|
122
|
-
#
|
123
|
-
# ActiveAdmin::Dependency.rails.parameterize 'a b'
|
124
|
-
# => 'a_b'
|
125
|
-
#
|
126
|
-
# ActiveAdmin::Dependency.devise.adapter
|
127
|
-
# -> NameError: uninitialized constant ActiveAdmin::Dependency::Adapter::Devise
|
128
|
-
#
|
129
|
-
module Adapter
|
130
|
-
class Base
|
131
|
-
def initialize(version)
|
132
|
-
@version = version
|
133
|
-
end
|
134
|
-
end
|
135
|
-
|
136
|
-
class Rails < Base
|
137
|
-
def optional_belongs_to_flag
|
138
|
-
if Dependency.rails5?
|
139
|
-
{ optional: true }
|
140
|
-
else
|
141
|
-
{ required: false }
|
142
|
-
end
|
143
|
-
end
|
144
|
-
|
145
|
-
def parameterize(string)
|
146
|
-
if Dependency.rails5?
|
147
|
-
string.parameterize separator: '_'
|
148
|
-
else
|
149
|
-
string.parameterize '_'
|
150
|
-
end
|
151
|
-
end
|
152
|
-
|
153
|
-
def redirect_back(controller, fallback_location)
|
154
|
-
controller.instance_exec do
|
155
|
-
if Dependency.rails5?
|
156
|
-
redirect_back fallback_location: fallback_location
|
157
|
-
elsif controller.request.headers.key? 'HTTP_REFERER'
|
158
|
-
redirect_to :back
|
159
|
-
else
|
160
|
-
redirect_to fallback_location
|
161
|
-
end
|
162
|
-
end
|
163
|
-
end
|
164
|
-
|
165
|
-
def render_key
|
166
|
-
Dependency.rails5? ? :body : :text
|
167
|
-
end
|
168
|
-
end
|
169
93
|
end
|
170
94
|
|
171
95
|
end
|
data/lib/active_admin/dsl.rb
CHANGED
@@ -83,14 +83,7 @@ module ActiveAdmin
|
|
83
83
|
# this action item on.
|
84
84
|
# :except: A single or array of controller actions not to
|
85
85
|
# display this action item on.
|
86
|
-
def action_item(name
|
87
|
-
if name.is_a?(Hash)
|
88
|
-
options = name
|
89
|
-
name = nil
|
90
|
-
end
|
91
|
-
|
92
|
-
Deprecation.warn "using `action_item` without a name is deprecated! Use `action_item(:edit)`." unless name
|
93
|
-
|
86
|
+
def action_item(name, options = {}, &block)
|
94
87
|
config.add_action_item(name, options, &block)
|
95
88
|
end
|
96
89
|
|
data/lib/active_admin/error.rb
CHANGED
@@ -22,7 +22,7 @@ module ActiveAdmin
|
|
22
22
|
class ErrorLoading < Error
|
23
23
|
# Locates the most recent file and line from the caught exception's backtrace.
|
24
24
|
def find_cause(folder, backtrace)
|
25
|
-
backtrace.grep(/\/(#{folder}\/.*\.rb):(\d+)/){ [$1, $2] }.first
|
25
|
+
backtrace.grep(/\/(#{folder}\/.*\.rb):(\d+)/) { [$1, $2] }.first
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -28,7 +28,9 @@ module ActiveAdmin
|
|
28
28
|
def label
|
29
29
|
# TODO: to remind us to go back to the simpler str.downcase once we support ruby >= 2.4 only.
|
30
30
|
translated_predicate = predicate_name.mb_chars.downcase.to_s
|
31
|
-
if filter_label
|
31
|
+
if filter_label && filter_label.is_a?(Proc)
|
32
|
+
"#{filter_label.call} #{translated_predicate}"
|
33
|
+
elsif filter_label
|
32
34
|
"#{filter_label} #{translated_predicate}"
|
33
35
|
elsif related_class
|
34
36
|
"#{related_class_name} #{translated_predicate}"
|
@@ -5,7 +5,7 @@ module ActiveAdmin
|
|
5
5
|
class ActiveSidebar < ActiveAdmin::SidebarSection
|
6
6
|
|
7
7
|
def initialize
|
8
|
-
super
|
8
|
+
super 'search_status', sidebar_options
|
9
9
|
end
|
10
10
|
|
11
11
|
def block
|
@@ -39,6 +39,10 @@ module ActiveAdmin
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
+
def title
|
43
|
+
I18n.t("active_admin.search_status.headline")
|
44
|
+
end
|
45
|
+
|
42
46
|
protected
|
43
47
|
|
44
48
|
def sidebar_options
|
@@ -48,8 +48,8 @@ module ActiveAdmin
|
|
48
48
|
def active_admin_filters_form_for(search, filters, options = {})
|
49
49
|
defaults = { builder: ActiveAdmin::Filters::FormBuilder,
|
50
50
|
url: collection_path,
|
51
|
-
html: {class: 'filter_form'} }
|
52
|
-
required = { html: {method: :get},
|
51
|
+
html: { class: 'filter_form' } }
|
52
|
+
required = { html: { method: :get },
|
53
53
|
as: :q }
|
54
54
|
options = defaults.deep_merge(options).deep_merge(required)
|
55
55
|
|
@@ -37,7 +37,7 @@ module ActiveAdmin
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def polymorphic_foreign_type?(method)
|
40
|
-
klass.reflect_on_all_associations.select{ |r| r.macro == :belongs_to && r.options[:polymorphic] }
|
40
|
+
klass.reflect_on_all_associations.select { |r| r.macro == :belongs_to && r.options[:polymorphic] }
|
41
41
|
.map(&:foreign_type).include? method.to_s
|
42
42
|
end
|
43
43
|
|
@@ -123,10 +123,10 @@ module ActiveAdmin
|
|
123
123
|
# Returns a default set of filters for the associations
|
124
124
|
def default_association_filters
|
125
125
|
if resource_class.respond_to?(:reflect_on_all_associations)
|
126
|
-
poly, not_poly = resource_class.reflect_on_all_associations.partition{ |r| r.macro == :belongs_to && r.options[:polymorphic] }
|
126
|
+
poly, not_poly = resource_class.reflect_on_all_associations.partition { |r| r.macro == :belongs_to && r.options[:polymorphic] }
|
127
127
|
|
128
128
|
# remove deeply nested associations
|
129
|
-
not_poly.reject!{ |r| r.chain.length > 2 }
|
129
|
+
not_poly.reject! { |r| r.chain.length > 2 }
|
130
130
|
|
131
131
|
filters = poly.map(&:foreign_type) + not_poly.map(&:name)
|
132
132
|
filters.map &:to_sym
|
@@ -140,7 +140,7 @@ module ActiveAdmin
|
|
140
140
|
end
|
141
141
|
|
142
142
|
def filters_sidebar_section
|
143
|
-
ActiveAdmin::SidebarSection.new :filters, only: :index, if: ->{ active_admin_config.filters.any? } do
|
143
|
+
ActiveAdmin::SidebarSection.new :filters, only: :index, if: -> { active_admin_config.filters.any? } do
|
144
144
|
active_admin_filters_form_for assigns[:search], active_admin_config.filters
|
145
145
|
end
|
146
146
|
end
|
@@ -20,7 +20,7 @@ module ActiveAdmin
|
|
20
20
|
self.input_class_finder = ::Formtastic::InputClassFinder
|
21
21
|
self.action_class_finder = ::Formtastic::ActionClassFinder
|
22
22
|
|
23
|
-
def cancel_link(url = {action: "index"}, html_options = {}, li_attrs = {})
|
23
|
+
def cancel_link(url = { action: "index" }, html_options = {}, li_attrs = {})
|
24
24
|
li_attrs[:class] ||= "cancel"
|
25
25
|
li_content = template.link_to I18n.t('active_admin.cancel'), url, html_options
|
26
26
|
template.content_tag(:li, li_content, li_attrs)
|
@@ -111,7 +111,7 @@ module ActiveAdmin
|
|
111
111
|
end
|
112
112
|
elsif allow_destroy?(form_builder.object)
|
113
113
|
form_builder.input(:_destroy, as: :boolean,
|
114
|
-
wrapper_html: {class: 'has_many_delete'},
|
114
|
+
wrapper_html: { class: 'has_many_delete' },
|
115
115
|
label: I18n.t('active_admin.has_many_delete'))
|
116
116
|
end
|
117
117
|
|
@@ -163,7 +163,7 @@ module ActiveAdmin
|
|
163
163
|
class: class_string,
|
164
164
|
for_options: { child_index: placeholder }
|
165
165
|
}
|
166
|
-
html = template.capture{ __getobj__.send(:inputs_for_nested_attributes, opts, &form_block) }
|
166
|
+
html = template.capture { __getobj__.send(:inputs_for_nested_attributes, opts, &form_block) }
|
167
167
|
text = new_record.is_a?(String) ? new_record : I18n.t('active_admin.has_many_new', model: assoc_name.human)
|
168
168
|
|
169
169
|
template.link_to text, '#', class: "button has_many_add", data: {
|
@@ -34,7 +34,7 @@ module ActiveAdmin
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def form_inputs
|
37
|
-
attributes.reject{|a| %w(id created_at updated_at).include? a}.map{ |a| form_input(a) }.join("\n")
|
37
|
+
attributes.reject { |a| %w(id created_at updated_at).include? a }.map { |a| form_input(a) }.join("\n")
|
38
38
|
end
|
39
39
|
|
40
40
|
def form_input(name)
|
@@ -19,7 +19,7 @@ module ActiveAdmin
|
|
19
19
|
private
|
20
20
|
def datepicker_options
|
21
21
|
options = self.options.fetch(:datepicker_options, {})
|
22
|
-
options = Hash[options.map{ |k, v| [k.to_s.camelcase(:lower), v] }]
|
22
|
+
options = Hash[options.map { |k, v| [k.to_s.camelcase(:lower), v] }]
|
23
23
|
{ datepicker_options: options }
|
24
24
|
end
|
25
25
|
end
|
@@ -57,8 +57,8 @@ module ActiveAdmin
|
|
57
57
|
|
58
58
|
def current_filter
|
59
59
|
@current_filter ||= begin
|
60
|
-
methods = filters.map{ |f| "#{method}_#{f}" }
|
61
|
-
methods.detect{ |m| @object.public_send m } || methods.first
|
60
|
+
methods = filters.map { |f| "#{method}_#{f}" }
|
61
|
+
methods.detect { |m| @object.public_send m } || methods.first
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
@@ -50,7 +50,7 @@ module ActiveAdmin
|
|
50
50
|
@url = options[:url] || '#'
|
51
51
|
@priority = options[:priority] || 10
|
52
52
|
@html_options = options[:html_options] || {}
|
53
|
-
@should_display = options[:if] || proc{true}
|
53
|
+
@should_display = options[:if] || proc { true }
|
54
54
|
@parent = options[:parent]
|
55
55
|
|
56
56
|
yield(self) if block_given? # Builder style syntax
|
@@ -150,8 +150,8 @@ module ActiveAdmin
|
|
150
150
|
if logout_link_path
|
151
151
|
html_options = html_options.reverse_merge(method: logout_link_method || :get)
|
152
152
|
menu.add id: 'logout', priority: priority, html_options: html_options,
|
153
|
-
label: ->{ I18n.t 'active_admin.logout' },
|
154
|
-
url: ->{ render_or_call_method_or_proc_on self, active_admin_namespace.logout_link_path },
|
153
|
+
label: -> { I18n.t 'active_admin.logout' },
|
154
|
+
url: -> { render_or_call_method_or_proc_on self, active_admin_namespace.logout_link_path },
|
155
155
|
if: :current_active_admin_user?
|
156
156
|
end
|
157
157
|
end
|
@@ -17,16 +17,19 @@ module ActiveAdmin
|
|
17
17
|
# Set the site title image displayed in the main layout (has precendence over :site_title)
|
18
18
|
register :site_title_image, "", :string_symbol_or_proc
|
19
19
|
|
20
|
+
# Add to the site head
|
21
|
+
register :head, "", :string_symbol_or_proc
|
22
|
+
|
20
23
|
# Set the site footer text (defaults to Powered by ActiveAdmin text with version)
|
21
24
|
register :footer, "", :string_symbol_or_proc
|
22
25
|
|
23
26
|
# Set a favicon
|
24
27
|
register :favicon, false
|
25
28
|
|
26
|
-
# Additional meta tags to place in head of logged in pages
|
29
|
+
# Additional meta tags to place in head of logged in pages
|
27
30
|
register :meta_tags, {}
|
28
31
|
|
29
|
-
# Additional meta tags to place in head of logged out pages
|
32
|
+
# Additional meta tags to place in head of logged out pages
|
30
33
|
register :meta_tags_for_logged_out_pages, { robots: "noindex, nofollow" }
|
31
34
|
|
32
35
|
# The view factory to use to generate all the view classes. Take
|
@@ -53,10 +56,10 @@ module ActiveAdmin
|
|
53
56
|
# Whether filters are enabled
|
54
57
|
register :filters, true
|
55
58
|
|
56
|
-
# The namespace root
|
59
|
+
# The namespace root
|
57
60
|
register :root_to, 'dashboard#index'
|
58
61
|
|
59
|
-
# Options that
|
62
|
+
# Options that are passed to root_to
|
60
63
|
register :root_to_options, {}
|
61
64
|
|
62
65
|
# Options passed to the routes, i.e. { path: '/custom' }
|
@@ -64,21 +64,21 @@ ActiveAdmin.after_load do |app|
|
|
64
64
|
def create
|
65
65
|
create! do |success, failure|
|
66
66
|
success.html do
|
67
|
-
|
67
|
+
redirect_back fallback_location: active_admin_root
|
68
68
|
end
|
69
69
|
failure.html do
|
70
70
|
flash[:error] = I18n.t 'active_admin.comments.errors.empty_text'
|
71
|
-
|
71
|
+
redirect_back fallback_location: active_admin_root
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
75
75
|
def destroy
|
76
76
|
destroy! do |success, failure|
|
77
77
|
success.html do
|
78
|
-
|
78
|
+
redirect_back fallback_location: active_admin_root
|
79
79
|
end
|
80
80
|
failure.html do
|
81
|
-
|
81
|
+
redirect_back fallback_location: active_admin_root
|
82
82
|
end
|
83
83
|
end
|
84
84
|
end
|
@@ -3,7 +3,7 @@ module ActiveAdmin
|
|
3
3
|
|
4
4
|
self.table_name = "#{table_name_prefix}active_admin_comments#{table_name_suffix}"
|
5
5
|
|
6
|
-
belongs_to :resource,
|
6
|
+
belongs_to :resource, polymorphic: true, optional: true
|
7
7
|
belongs_to :author, polymorphic: true
|
8
8
|
|
9
9
|
validates_presence_of :body, :namespace, :resource
|
@@ -18,7 +18,7 @@ module ActiveAdmin
|
|
18
18
|
def self.find_for_resource_in_namespace(resource, namespace)
|
19
19
|
where(
|
20
20
|
resource_type: resource_type(resource),
|
21
|
-
resource_id: resource,
|
21
|
+
resource_id: resource.id,
|
22
22
|
namespace: namespace.to_s
|
23
23
|
).order(ActiveAdmin.application.namespaces[namespace.to_sym].comments_order)
|
24
24
|
end
|
@@ -11,10 +11,12 @@ module ActiveAdmin
|
|
11
11
|
attr_accessor :resource
|
12
12
|
|
13
13
|
def build(resource)
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
if authorized?(ActiveAdmin::Auth::READ, ActiveAdmin::Comment)
|
15
|
+
@resource = resource
|
16
|
+
@comments = active_admin_authorization.scope_collection(ActiveAdmin::Comment.find_for_resource_in_namespace(resource, active_admin_namespace.name).includes(:author).page(params[:page]))
|
17
|
+
super(title, for: resource)
|
18
|
+
build_comments
|
19
|
+
end
|
18
20
|
end
|
19
21
|
|
20
22
|
protected
|
@@ -32,7 +34,10 @@ module ActiveAdmin
|
|
32
34
|
end
|
33
35
|
|
34
36
|
text_node paginate @comments
|
35
|
-
|
37
|
+
|
38
|
+
if authorized?(ActiveAdmin::Auth::CREATE, ActiveAdmin::Comment)
|
39
|
+
build_comment_form
|
40
|
+
end
|
36
41
|
end
|
37
42
|
|
38
43
|
def build_comment(comment)
|