ab_admin 0.6.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/ab_admin/components/admin_assets.js.coffee +6 -2
- data/app/assets/javascripts/ab_admin/components/base_assets.js.coffee +9 -0
- data/app/assets/javascripts/ab_admin/components/gmaps.js.coffee +1 -1
- data/app/assets/javascripts/ab_admin/components/in_place_edit.js.coffee +6 -0
- data/app/assets/javascripts/ab_admin/components/select2_bridge.js.coffee +2 -2
- data/app/assets/javascripts/ab_admin/core/batch_actions.js.coffee +52 -12
- data/app/assets/javascripts/ab_admin/core/init.js.coffee +2 -0
- data/app/assets/javascripts/ab_admin/core/pjax.js.coffee +3 -2
- data/app/assets/javascripts/ab_admin/core/ui_utils.js.coffee +3 -4
- data/app/assets/stylesheets/ab_admin/bootstrap_and_overrides.scss +4 -0
- data/app/assets/stylesheets/ab_admin/components/_colored_tabs.scss +4 -0
- data/app/assets/stylesheets/ab_admin/components/_form.scss +36 -3
- data/app/controllers/admin/admin_comments_controller.rb +4 -0
- data/app/controllers/admin/assets_controller.rb +5 -2
- data/app/controllers/admin/base_controller.rb +50 -41
- data/app/controllers/admin/locators_controller.rb +1 -1
- data/app/controllers/admin/manager_controller.rb +32 -3
- data/app/controllers/admin/settings_controller.rb +2 -3
- data/app/controllers/admin/static_pages_controller.rb +5 -0
- data/app/controllers/admin/structures_controller.rb +10 -4
- data/app/controllers/admin/users_controller.rb +9 -2
- data/app/views/admin/base/_search_layout.html.slim +0 -1
- data/app/views/admin/base/index.html.slim +1 -2
- data/app/views/admin/fileupload/_container.html.slim +17 -10
- data/app/views/admin/shared/_content_actions.html.slim +18 -6
- data/app/views/admin/shared/_locale_tabs.html.slim +3 -3
- data/app/views/admin/structures/_form.html.slim +2 -1
- data/app/views/layouts/admin/_footer.html.slim +5 -4
- data/app/views/layouts/admin/application.html.slim +2 -0
- data/config/locales/ru.yml +1 -0
- data/config/routes.rb +17 -22
- data/lib/ab_admin.rb +11 -1
- data/lib/ab_admin/abstract_resource.rb +11 -2
- data/lib/ab_admin/carrierwave/base_uploader.rb +45 -25
- data/lib/ab_admin/carrierwave/file_size_validator.rb +0 -1
- data/lib/ab_admin/carrierwave/glue.rb +2 -4
- data/lib/ab_admin/concerns/admin_addition.rb +12 -4
- data/lib/ab_admin/concerns/deep_cloneable.rb +0 -1
- data/lib/ab_admin/concerns/fileuploads.rb +0 -1
- data/lib/ab_admin/concerns/headerable.rb +0 -4
- data/lib/ab_admin/concerns/nested_set.rb +2 -3
- data/lib/ab_admin/concerns/reloadable.rb +0 -2
- data/lib/ab_admin/concerns/silencer.rb +0 -3
- data/lib/ab_admin/concerns/utilities.rb +2 -4
- data/lib/ab_admin/concerns/validations.rb +1 -1
- data/lib/ab_admin/config/base.rb +26 -6
- data/lib/ab_admin/controllers/callbacks.rb +6 -6
- data/lib/ab_admin/controllers/head_options.rb +0 -1
- data/lib/ab_admin/controllers/tree.rb +0 -2
- data/lib/ab_admin/core_ext.rb +1 -1
- data/lib/ab_admin/core_ext/array.rb +0 -1
- data/lib/ab_admin/core_ext/hash.rb +11 -0
- data/lib/ab_admin/core_ext/string.rb +0 -1
- data/lib/ab_admin/devise.rb +1 -1
- data/lib/ab_admin/engine.rb +2 -1
- data/lib/ab_admin/hooks/globalize_locale_suffix_accessors.rb +17 -31
- data/lib/ab_admin/hooks/will_paginate_no_uri.rb +1 -1
- data/lib/ab_admin/i18n_tools/google_translate.rb +0 -1
- data/lib/ab_admin/i18n_tools/translate_app.rb +0 -1
- data/lib/ab_admin/menu/builder.rb +3 -2
- data/lib/ab_admin/menu/group.rb +3 -1
- data/lib/ab_admin/models/asset.rb +9 -6
- data/lib/ab_admin/models/header.rb +2 -3
- data/lib/ab_admin/models/locator.rb +1 -1
- data/lib/ab_admin/models/settings.rb +6 -6
- data/lib/ab_admin/models/structure.rb +0 -6
- data/lib/ab_admin/models/track.rb +12 -3
- data/lib/ab_admin/models/type_model.rb +0 -1
- data/lib/ab_admin/models/user.rb +0 -1
- data/lib/ab_admin/models/validations/all.rb +4 -0
- data/lib/ab_admin/models/validations/domain_name_validator.rb +9 -0
- data/lib/ab_admin/models/validations/email_validator.rb +9 -0
- data/lib/ab_admin/utils.rb +12 -4
- data/lib/ab_admin/utils/eval_helpers.rb +1 -1
- data/lib/ab_admin/utils/logger.rb +0 -2
- data/lib/ab_admin/utils/xls_document.rb +25 -6
- data/lib/ab_admin/version.rb +1 -1
- data/lib/ab_admin/views/admin_helpers.rb +5 -4
- data/lib/ab_admin/views/admin_navigation_helpers.rb +16 -5
- data/lib/ab_admin/views/form_builder.rb +41 -10
- data/lib/ab_admin/views/helpers.rb +0 -2
- data/lib/ab_admin/views/inputs/uploader_input.rb +1 -0
- data/lib/ab_admin/views/search_form_builder.rb +33 -7
- data/lib/generators/ab_admin/ckeditor_assets/ckeditor_assets_generator.rb +0 -1
- data/lib/generators/ab_admin/glob/glob_generator.rb +2 -2
- data/lib/generators/ab_admin/glob/templates/migration.erb +1 -1
- data/lib/generators/ab_admin/install/install_generator.rb +0 -1
- data/lib/generators/ab_admin/install/templates/config/seeds.rb +0 -2
- data/lib/generators/ab_admin/install/templates/helpers/admin/structures_helper.rb +1 -4
- data/lib/generators/ab_admin/install/templates/models/admin_comment.rb +1 -3
- data/lib/generators/ab_admin/install/templates/models/asset.rb +3 -5
- data/lib/generators/ab_admin/install/templates/models/header.rb +1 -5
- data/lib/generators/ab_admin/install/templates/models/static_page.rb +1 -4
- data/lib/generators/ab_admin/install/templates/models/structure.rb +1 -5
- data/lib/generators/ab_admin/install/templates/models/track.rb +1 -2
- data/lib/generators/ab_admin/install/templates/models/user.rb +1 -9
- data/lib/generators/ab_admin/install/templates/uploaders/attachment_file_uploader.rb +1 -1
- data/lib/generators/ab_admin/install/templates/uploaders/avatar_uploader.rb +1 -1
- data/lib/generators/ab_admin/install/templates/uploaders/picture_uploader.rb +1 -1
- data/lib/generators/ab_admin/model/templates/resource.erb +1 -0
- data/lib/generators/template.rb +39 -59
- metadata +38 -36
- data/lib/ab_admin/hooks/active_model_attr_accessible_few_roles.rb +0 -50
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
1
|
module AbAdmin
|
|
3
2
|
module CarrierWave
|
|
4
3
|
module Glue
|
|
@@ -6,11 +5,10 @@ module AbAdmin
|
|
|
6
5
|
|
|
7
6
|
module ClassMethods
|
|
8
7
|
def ab_admin_uploader(uploader=nil, options={}, &block)
|
|
9
|
-
options
|
|
8
|
+
options.reverse_merge!(mount_on: :data_file_name)
|
|
9
|
+
options.merge!(validate_integrity: false, validate_processing: false, validate_download: false) unless uploader.try!(:enable_processing)
|
|
10
10
|
|
|
11
11
|
mount_uploader(:data, uploader, options, &block)
|
|
12
|
-
|
|
13
|
-
validates_processing_of :data
|
|
14
12
|
end
|
|
15
13
|
|
|
16
14
|
def sunrise_uploader(*args)
|
|
@@ -32,9 +32,17 @@ module AbAdmin
|
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
def new_changes
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
changes.except(*
|
|
35
|
+
excluded_attrs = [:updated_at]
|
|
36
|
+
excluded_attrs += translated_attribute_names if self.class.translates?
|
|
37
|
+
all_changes = changes.except(*excluded_attrs).map { |k, v| [k, v[1]] }.to_h
|
|
38
|
+
if self.class.translates?
|
|
39
|
+
globalize.dirty.each do |attr, changes|
|
|
40
|
+
changes.each do |change|
|
|
41
|
+
all_changes["#{attr}_#{change[0]}"] = send("#{attr}_#{change[0]}")
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
all_changes
|
|
38
46
|
end
|
|
39
47
|
|
|
40
48
|
def admin_comments_count_non_zero
|
|
@@ -87,4 +95,4 @@ module AbAdmin
|
|
|
87
95
|
|
|
88
96
|
end
|
|
89
97
|
end
|
|
90
|
-
end
|
|
98
|
+
end
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
|
2
1
|
module AbAdmin
|
|
3
2
|
module Concerns
|
|
4
3
|
module Headerable
|
|
@@ -7,8 +6,6 @@ module AbAdmin
|
|
|
7
6
|
included do
|
|
8
7
|
has_one :header, as: :headerable, dependent: :delete
|
|
9
8
|
|
|
10
|
-
attr_accessible :header_attributes
|
|
11
|
-
|
|
12
9
|
accepts_nested_attributes_for :header, reject_if: :all_blank
|
|
13
10
|
|
|
14
11
|
::Header.all_translated_attribute_names.each do |attr|
|
|
@@ -25,7 +22,6 @@ module AbAdmin
|
|
|
25
22
|
def default_header
|
|
26
23
|
header || build_header
|
|
27
24
|
end
|
|
28
|
-
|
|
29
25
|
end
|
|
30
26
|
end
|
|
31
27
|
end
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
|
2
1
|
module AbAdmin
|
|
3
2
|
module Concerns
|
|
4
3
|
module NestedSet
|
|
@@ -10,8 +9,8 @@ module AbAdmin
|
|
|
10
9
|
|
|
11
10
|
attr_accessor :cached_children
|
|
12
11
|
|
|
13
|
-
scope :nested_set, -> { order(
|
|
14
|
-
scope :reversed_nested_set, -> { order(
|
|
12
|
+
scope :nested_set, -> { order(:lft) }
|
|
13
|
+
scope :reversed_nested_set, -> { order(lft: :desc) }
|
|
15
14
|
scope :with_depth, lambda { |level| where(depth: level) }
|
|
16
15
|
end
|
|
17
16
|
|
|
@@ -8,7 +8,6 @@ module AbAdmin
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
module ClassMethods
|
|
11
|
-
|
|
12
11
|
def has_reload_check(key=nil, logger=nil, &block)
|
|
13
12
|
self.reload_checker = ::AbAdmin::Concerns::Reloadable::Reloader.new(key, logger, &block)
|
|
14
13
|
end
|
|
@@ -16,7 +15,6 @@ module AbAdmin
|
|
|
16
15
|
def check_reload
|
|
17
16
|
self.reload_checker.check
|
|
18
17
|
end
|
|
19
|
-
|
|
20
18
|
end
|
|
21
19
|
|
|
22
20
|
class Reloader
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
|
2
1
|
module AbAdmin
|
|
3
2
|
module Concerns
|
|
4
3
|
module Silencer
|
|
5
|
-
|
|
6
4
|
def no_timestamps
|
|
7
5
|
original_setting = ActiveRecord::Base.record_timestamps
|
|
8
6
|
ActiveRecord::Base.record_timestamps = false
|
|
@@ -28,7 +26,6 @@ module AbAdmin
|
|
|
28
26
|
no_versions(&block)
|
|
29
27
|
end
|
|
30
28
|
end
|
|
31
|
-
|
|
32
29
|
end
|
|
33
30
|
end
|
|
34
31
|
end
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
|
2
1
|
module AbAdmin
|
|
3
2
|
module Concerns
|
|
4
3
|
module Utilities
|
|
@@ -29,7 +28,7 @@ module AbAdmin
|
|
|
29
28
|
|
|
30
29
|
def all_models
|
|
31
30
|
Dir.glob(Rails.root.to_s + '/app/models/**/*.rb').each { |file| require file }
|
|
32
|
-
ActiveRecord::Base.descendants.find_all { |model| model.
|
|
31
|
+
ActiveRecord::Base.descendants.find_all { |model| model.connection.data_source_exists?(model.table_name) }
|
|
33
32
|
#ActiveRecord::Base.descendants.find_all { |model| model.descends_from_active_record? }
|
|
34
33
|
end
|
|
35
34
|
|
|
@@ -86,7 +85,7 @@ module AbAdmin
|
|
|
86
85
|
|
|
87
86
|
def all_translated_attribute_names
|
|
88
87
|
if translates?
|
|
89
|
-
::
|
|
88
|
+
::Globalize.available_locales.map do |loc|
|
|
90
89
|
translated_attribute_names.map { |attr| "#{attr}_#{loc}" }
|
|
91
90
|
end.flatten
|
|
92
91
|
else
|
|
@@ -133,6 +132,5 @@ module AbAdmin
|
|
|
133
132
|
self[column]
|
|
134
133
|
end
|
|
135
134
|
end
|
|
136
|
-
|
|
137
135
|
end
|
|
138
136
|
end
|
|
@@ -3,7 +3,7 @@ module AbAdmin
|
|
|
3
3
|
module Validations
|
|
4
4
|
class UniqTranslationValidator < ActiveModel::EachValidator
|
|
5
5
|
def validate_each(record, attribute, value)
|
|
6
|
-
::I18n.available_locales.each do |l|
|
|
6
|
+
(options[:locales] || ::I18n.available_locales).each do |l|
|
|
7
7
|
next if record.read_attribute(attribute, locale: l).blank?
|
|
8
8
|
records_scope = record.class.const_get(:Translation).where("#{record.class.model_name.singular}_id != #{record.id || 0}")
|
|
9
9
|
same = records_scope.where(name: record.read_attribute(attribute, locale: l), locale: l.to_s).exists?
|
data/lib/ab_admin/config/base.rb
CHANGED
|
@@ -20,8 +20,8 @@ module AbAdmin
|
|
|
20
20
|
def self.default_for_model(model, options={})
|
|
21
21
|
new.tap do |builder|
|
|
22
22
|
builder.field(:id) unless options[:skip].try(:include?, :id)
|
|
23
|
-
model.
|
|
24
|
-
column_name = column.
|
|
23
|
+
model.column_names.each do |column|
|
|
24
|
+
column_name = column.to_sym
|
|
25
25
|
next if options[:skip].try(:include?, column_name)
|
|
26
26
|
builder.field(column_name)
|
|
27
27
|
end
|
|
@@ -40,7 +40,9 @@ module AbAdmin
|
|
|
40
40
|
|
|
41
41
|
class Export < BaseBuilder
|
|
42
42
|
def render_options
|
|
43
|
-
{column_names: fields.map(&:name), column_data: fields.map(&:data),
|
|
43
|
+
{column_names: fields.map(&:name), column_data: fields.map(&:data),
|
|
44
|
+
column_separator: options[:column_separator], worksheet_name: options[:worksheet_name],
|
|
45
|
+
filename: options[:filename]}
|
|
44
46
|
end
|
|
45
47
|
end
|
|
46
48
|
|
|
@@ -108,12 +110,15 @@ module AbAdmin
|
|
|
108
110
|
end
|
|
109
111
|
|
|
110
112
|
class BatchAction
|
|
111
|
-
attr_reader :name, :options, :data, :title
|
|
113
|
+
attr_reader :name, :options, :data, :title, :form
|
|
112
114
|
|
|
113
115
|
def initialize(name, options={}, &block)
|
|
114
116
|
@name = name
|
|
115
117
|
@options = options
|
|
116
|
-
|
|
118
|
+
if options.has_key?(:form)
|
|
119
|
+
@form = options[:form].is_a?(String) ? options[:form] : "##{name}_batch_form"
|
|
120
|
+
end
|
|
121
|
+
@title = options[:title] || I18n.t("admin.actions.batch_#{name}.link", default: name.to_s.humanize)
|
|
117
122
|
@data = block_given? ? block : name.to_sym
|
|
118
123
|
end
|
|
119
124
|
|
|
@@ -152,5 +157,20 @@ module AbAdmin
|
|
|
152
157
|
options[:collection]
|
|
153
158
|
end
|
|
154
159
|
end
|
|
160
|
+
|
|
161
|
+
class Scope
|
|
162
|
+
attr_reader :name, :options, :data
|
|
163
|
+
|
|
164
|
+
def initialize(name, options={}, &block)
|
|
165
|
+
@name = name
|
|
166
|
+
@options = options
|
|
167
|
+
@data = block
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
def apply(relation, params)
|
|
171
|
+
return relation unless params[name].present?
|
|
172
|
+
data.is_a?(Proc) ? data.call(relation, params) : relation.public_send(name)
|
|
173
|
+
end
|
|
174
|
+
end
|
|
155
175
|
end
|
|
156
|
-
end
|
|
176
|
+
end
|
|
@@ -9,11 +9,11 @@ module AbAdmin
|
|
|
9
9
|
|
|
10
10
|
protected
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
def build_resource
|
|
13
|
+
object = get_resource_ivar || set_resource_ivar(end_of_association_chain.send(method_for_build, resource_params))
|
|
14
|
+
# run_build_callbacks object
|
|
15
|
+
object
|
|
16
|
+
end
|
|
17
17
|
|
|
18
18
|
def create_resource(object)
|
|
19
19
|
run_create_callbacks object do
|
|
@@ -28,7 +28,7 @@ module AbAdmin
|
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
def update_resource(object, attributes)
|
|
31
|
-
object.assign_attributes(
|
|
31
|
+
object.assign_attributes(attributes)
|
|
32
32
|
|
|
33
33
|
#run_update_callbacks object do
|
|
34
34
|
save_resource(object)
|
data/lib/ab_admin/core_ext.rb
CHANGED
|
@@ -19,6 +19,17 @@ class Hash
|
|
|
19
19
|
self
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
+
def deep_transform_values!(&block)
|
|
23
|
+
self.each_key do |key|
|
|
24
|
+
if self[key].is_a?(Hash)
|
|
25
|
+
self[key] = self[key].deep_transform_values!(&block)
|
|
26
|
+
else
|
|
27
|
+
self[key] = block.call(self[key])
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
self
|
|
31
|
+
end
|
|
32
|
+
|
|
22
33
|
def clear_values
|
|
23
34
|
result = {}
|
|
24
35
|
self.each_key do |key|
|
data/lib/ab_admin/devise.rb
CHANGED
data/lib/ab_admin/engine.rb
CHANGED
|
@@ -7,9 +7,10 @@ module AbAdmin
|
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
initializer 'ab_admin.setup' do
|
|
10
|
-
::Mime::Type.register 'application/vnd.ms-excel', :
|
|
10
|
+
::Mime::Type.register 'application/vnd.ms-excel', :xlsx
|
|
11
11
|
|
|
12
12
|
ActiveSupport.on_load :active_record do
|
|
13
|
+
ActiveRecord::Base.send :include, ActiveModel::ForbiddenAttributesProtection
|
|
13
14
|
ActiveRecord::Base.send :include, AbAdmin::CarrierWave::Glue
|
|
14
15
|
ActiveRecord::Base.send :include, AbAdmin::Utils::Mysql
|
|
15
16
|
ActiveRecord::Base.send :include, AbAdmin::Concerns::DeepCloneable
|
|
@@ -1,54 +1,40 @@
|
|
|
1
1
|
# add accessors with locale suffix like `title_en`, `title_de`
|
|
2
|
-
|
|
3
|
-
def
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
define_translations_reader_without_locale_suffix(name)
|
|
2
|
+
module GlobalizeAccessorsWithLocaleSuffix
|
|
3
|
+
def define_translated_attr_reader(name)
|
|
4
|
+
super
|
|
7
5
|
|
|
8
6
|
Globalize.available_locales.each do |locale|
|
|
9
7
|
method_name = "#{name}_#{locale}"
|
|
10
8
|
define_method method_name.to_sym do
|
|
11
|
-
|
|
9
|
+
Globalize::Interpolation.interpolate(name, self, [locale])
|
|
12
10
|
end
|
|
13
|
-
translation_attributes.push(method_name)
|
|
14
11
|
end
|
|
15
|
-
class_variable_set(:@@translation_attributes, translation_attributes)
|
|
16
12
|
end
|
|
17
13
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def define_translations_writer_with_locale_suffix(name)
|
|
21
|
-
define_translations_writer_without_locale_suffix(name)
|
|
14
|
+
def define_translated_attr_writer(name)
|
|
15
|
+
super
|
|
22
16
|
|
|
23
17
|
Globalize.available_locales.each do |locale|
|
|
24
18
|
define_method :"#{name}_#{locale}=" do |value|
|
|
25
|
-
changed_attributes
|
|
26
|
-
@changed_attributes[:"#{name}_#{locale}"] = value unless value == read_attribute(name, {locale: locale})
|
|
27
19
|
write_attribute(name, value, {locale: locale})
|
|
28
20
|
end
|
|
29
21
|
end
|
|
30
22
|
end
|
|
31
|
-
|
|
32
|
-
alias_method_chain :define_translations_writer, :locale_suffix
|
|
33
23
|
end
|
|
34
24
|
|
|
35
|
-
Globalize::ActiveRecord::
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
# Filters translation attributes from the attribute names.
|
|
39
|
-
def attributes_for_update(attribute_names)
|
|
40
|
-
filter_translation_attributes(super)
|
|
41
|
-
end
|
|
25
|
+
Globalize::ActiveRecord::ClassMethods.module_eval do
|
|
26
|
+
prepend GlobalizeAccessorsWithLocaleSuffix
|
|
27
|
+
end
|
|
42
28
|
|
|
43
|
-
# Filters translation attributes from the attribute names.
|
|
44
|
-
def attributes_for_create(attribute_names)
|
|
45
|
-
filter_translation_attributes(super)
|
|
46
|
-
end
|
|
47
29
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
30
|
+
module GlobalizeFixResetAttribute
|
|
31
|
+
def _reset_attribute name
|
|
32
|
+
old_value = record.changed_attributes[name]
|
|
33
|
+
record.original_changed_attributes.except!(name)
|
|
34
|
+
record.send("#{name}=", old_value)
|
|
51
35
|
end
|
|
52
36
|
end
|
|
53
37
|
|
|
54
|
-
Globalize::ActiveRecord::
|
|
38
|
+
Globalize::ActiveRecord::AdapterDirty.module_eval do
|
|
39
|
+
prepend GlobalizeFixResetAttribute
|
|
40
|
+
end
|
|
@@ -14,6 +14,6 @@ WillPaginate::ActionView::LinkRenderer.class_exec do
|
|
|
14
14
|
url_params[param_name.to_sym] = nil if url_params[param_name.to_sym].to_i < 2
|
|
15
15
|
|
|
16
16
|
link = @template.url_for(url_params)
|
|
17
|
-
@options[:no_uri] ? link.split('?').first : link
|
|
17
|
+
@options[:no_uri] ? link.split('?').first : link.sub(/\?\z/, '')
|
|
18
18
|
end
|
|
19
19
|
end
|
|
@@ -4,8 +4,9 @@ module AbAdmin
|
|
|
4
4
|
include ::Singleton
|
|
5
5
|
|
|
6
6
|
def self.draw(&block)
|
|
7
|
-
I18n.
|
|
8
|
-
|
|
7
|
+
I18n.with_locale AbAdmin.locale do
|
|
8
|
+
instance.instance_eval &block if block_given?
|
|
9
|
+
end
|
|
9
10
|
end
|
|
10
11
|
|
|
11
12
|
def self.render(*args)
|