hancock_cms 2.0.0.2 → 2.0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +4 -0
  3. data/app/assets/images/{devices → hancock/devise}/login-bg.jpg +0 -0
  4. data/app/assets/images/{rails-admin → hancock/rails_admin}/hancock_logo.svg +0 -0
  5. data/app/assets/javascripts/hancock/cms.coffee +1 -1
  6. data/app/assets/javascripts/hancock/rails_admin/cms.ui.coffee +11 -37
  7. data/app/assets/javascripts/hancock/rails_admin/en_ru_switcher.coffee +90 -0
  8. data/app/assets/javascripts/hancock/rails_admin/enum_with_custom.coffee +42 -0
  9. data/app/assets/javascripts/hancock/rails_admin/form_controls_fixed.coffee +44 -0
  10. data/app/assets/javascripts/hancock/rails_admin/leftside_hider.coffee +106 -0
  11. data/app/assets/javascripts/hancock/rails_admin/multiselect.coffee +8 -0
  12. data/app/assets/javascripts/hancock/rails_admin/navigation_dropdown.coffee +25 -0
  13. data/app/assets/javascripts/hancock/rails_admin/navigation_filter.coffee +108 -0
  14. data/app/assets/javascripts/hancock/rails_admin/navigation_scroll.coffee +12 -0
  15. data/app/assets/javascripts/hancock/rails_admin/plugins.coffee.erb +16 -0
  16. data/app/assets/javascripts/jquery.placeholder.js +3 -2
  17. data/app/assets/javascripts/rails_admin/custom/ui.coffee +1 -0
  18. data/app/assets/stylesheets/hancock/cms/devise.sass +4 -1
  19. data/app/assets/stylesheets/hancock/rails_admin/cms.theming.sass +354 -147
  20. data/app/assets/stylesheets/hancock/rails_admin/fieldsets.sass +198 -0
  21. data/app/assets/stylesheets/hancock/rails_admin/plugins.sass.erb +6 -0
  22. data/app/assets/stylesheets/rails_admin/custom/theming.sass +1 -1
  23. data/app/controllers/concerns/hancock/decorators/home.rb +1 -1
  24. data/app/controllers/concerns/hancock/errors.rb +5 -7
  25. data/app/controllers/hancock/registrations_controller.rb +2 -7
  26. data/app/controllers/hancock/sessions_controller.rb +3 -7
  27. data/app/helpers/hancock/powered_helper.rb +3 -3
  28. data/app/helpers/hancock/settings_helper.rb +44 -0
  29. data/app/helpers/rails_admin/application/hancock_helper.rb +19 -0
  30. data/app/helpers/rails_admin/hancock/form_builder.rb +44 -0
  31. data/app/helpers/rails_admin/main/hancock_helper.rb +51 -0
  32. data/app/models/concerns/hancock/boolean_field.rb +7 -2
  33. data/app/models/concerns/hancock/decorators/embedded_element.rb +1 -9
  34. data/app/models/concerns/hancock/enableable.rb +1 -0
  35. data/app/models/concerns/hancock/hash_field.rb +9 -8
  36. data/app/models/concerns/hancock/html_field.rb +6 -3
  37. data/app/models/concerns/hancock/insertion_field.rb +115 -0
  38. data/app/models/concerns/hancock/mappable.rb +1 -0
  39. data/app/models/concerns/hancock/master_collection.rb +31 -0
  40. data/app/models/concerns/hancock/model_localizeable.rb +4 -1
  41. data/app/models/concerns/hancock/rails_admin_patch.rb +22 -3
  42. data/app/models/concerns/hancock/sort_field.rb +26 -3
  43. data/app/models/concerns/hancock/sortable.rb +3 -0
  44. data/app/models/concerns/hancock/user_defined.rb +53 -0
  45. data/app/views/blocks/_footer.html.slim +1 -1
  46. data/app/views/devise/passwords/edit.html.slim +0 -2
  47. data/app/views/devise/passwords/new.html.slim +0 -2
  48. data/app/views/devise/registrations/edit.html.slim +0 -2
  49. data/app/views/devise/registrations/new.html.slim +0 -2
  50. data/app/views/devise/sessions/new.html.slim +0 -2
  51. data/app/views/hancock/home/index.html.slim +4 -1
  52. data/app/views/layouts/application.html.slim +1 -11
  53. data/app/views/layouts/hancock/_assets.html.slim +15 -0
  54. data/app/views/layouts/hancock/devise/confirmations.html.slim +7 -4
  55. data/app/views/layouts/hancock/devise/passwords.html.slim +7 -4
  56. data/app/views/layouts/hancock/devise/registrations.html.slim +7 -4
  57. data/app/views/layouts/hancock/devise/sessions.html.slim +7 -4
  58. data/app/views/layouts/hancock/devise/unlocks.html.slim +7 -4
  59. data/app/views/layouts/rails_admin/_footer.html.slim +2 -2
  60. data/app/views/layouts/rails_admin/_footer_navigation.html.slim +20 -4
  61. data/app/views/layouts/rails_admin/_navigation.html.slim +13 -47
  62. data/app/views/layouts/rails_admin/_secondary_navigation.html.slim +5 -12
  63. data/app/views/layouts/rails_admin/_sidebar_navigation.html.slim +2 -0
  64. data/app/views/layouts/rails_admin/_sidebar_navigation_filter.html.slim +3 -0
  65. data/app/views/layouts/rails_admin/application.html.haml +3 -38
  66. data/app/views/rails_admin/main/_enum_for_settings_kinds.html.slim +24 -0
  67. data/app/views/rails_admin/main/_form_hancock_enum.html.slim +18 -0
  68. data/app/views/rails_admin/main/_form_hancock_enum_with_custom.slim +20 -0
  69. data/app/views/rails_admin/main/_hancock_html.html.slim +2 -2
  70. data/app/views/rails_admin/main/_hancock_html_ml.html.slim +31 -34
  71. data/app/views/rails_admin/main/edit.html.haml +18 -0
  72. data/app/views/rails_admin/main/new.html.haml +17 -0
  73. data/app/views/shared/_admin_link.html.slim +4 -2
  74. data/config/initializers/nested_set_patch.rb +76 -73
  75. data/config/initializers/rails_admin_mongoid_patch.rb +27 -0
  76. data/config/initializers/sprockets_patch.rb +159 -0
  77. data/config/locales/en.hancock.yml +1 -0
  78. data/config/locales/ru.devise.yml +22 -18
  79. data/config/locales/ru.hancock.yml +5 -5
  80. data/config/locales/ru.rails_admin.yml +3 -0
  81. data/hancock_cms.gemspec +7 -2
  82. data/lib/filename_to_slug.rb +0 -20
  83. data/lib/generators/hancock/cms/ability_generator.rb +1 -0
  84. data/lib/generators/hancock/cms/admin_generator.rb +1 -0
  85. data/lib/generators/hancock/cms/application_generator.rb +1 -0
  86. data/lib/generators/hancock/cms/assets_generator.rb +1 -0
  87. data/lib/generators/hancock/cms/layout_generator.rb +1 -0
  88. data/lib/generators/hancock/cms/model_generator.rb +1 -0
  89. data/lib/generators/hancock/cms/models/templates/embedded_element.erb +2 -2
  90. data/lib/generators/hancock/cms/rack_generator.rb +1 -0
  91. data/lib/generators/hancock/cms/raven_generator.rb +13 -0
  92. data/lib/generators/hancock/cms/robots_generator.rb +1 -0
  93. data/lib/generators/hancock/cms/scripts_generator.rb +1 -0
  94. data/lib/generators/hancock/cms/setup_generator.rb +146 -33
  95. data/lib/generators/hancock/cms/templates/Gemfile.erb +4 -5
  96. data/lib/generators/hancock/cms/templates/ability.erb +1 -1
  97. data/lib/generators/hancock/cms/templates/admin.erb +12 -4
  98. data/lib/generators/hancock/cms/templates/hancock_cms.erb +6 -3
  99. data/lib/generators/hancock/cms/templates/model.erb +5 -6
  100. data/lib/generators/hancock/cms/templates/raven.erb +13 -0
  101. data/lib/generators/hancock/cms/templates/robots.txt.erb +6 -2
  102. data/lib/generators/hancock/cms/templates/scripts/db_dump.sh.erb +1 -1
  103. data/lib/generators/hancock/cms/unicorn_god_generator.rb +1 -0
  104. data/lib/generators/hancock/cms/utils.rb +2 -0
  105. data/lib/hancock/admin.rb +153 -21
  106. data/lib/hancock/admin/embedded_element.rb +7 -2
  107. data/lib/hancock/configuration.rb +49 -4
  108. data/lib/hancock/controller.rb +1 -1
  109. data/lib/hancock/engine.rb +32 -36
  110. data/lib/hancock/model.rb +10 -0
  111. data/lib/hancock/models/embedded_element.rb +2 -0
  112. data/lib/hancock/models/mongoid/embedded_element.rb +17 -0
  113. data/lib/hancock/plugin_configuration.rb +1 -1
  114. data/lib/hancock/rails_admin_ext/config.rb +21 -4
  115. data/lib/hancock/rails_admin_ext/hancock_array.rb +19 -0
  116. data/lib/hancock/rails_admin_ext/hancock_enum.rb +33 -0
  117. data/lib/hancock/rails_admin_ext/hancock_enum_with_custom.rb +34 -0
  118. data/lib/hancock/rails_admin_ext/hancock_hash.rb +8 -1
  119. data/lib/hancock/rails_admin_ext/hancock_html.rb +17 -2
  120. data/lib/hancock/rails_admin_ext/hancock_multiselect.rb +1 -5
  121. data/lib/hancock/rails_admin_ext/hancock_slugs.rb +2 -6
  122. data/lib/hancock/rails_admin_ext/patches/field_patch.rb +2 -1
  123. data/lib/hancock/rails_admin_ext/patches/fieldset_patch.rb +14 -0
  124. data/lib/hancock/rails_admin_ext/patches/group_patch.rb +9 -0
  125. data/lib/hancock/rails_admin_ext/patches/hancock_cms_group.rb +2 -0
  126. data/lib/hancock/rails_admin_ext/patches/has_fields.rb +27 -0
  127. data/lib/hancock/rails_admin_ext/patches/navigation_patch.rb +25 -0
  128. data/lib/hancock/rails_admin_settings_patch.rb +219 -0
  129. data/lib/hancock/version.rb +1 -1
  130. data/lib/hancock_cms.rb +12 -9
  131. data/lib/manual_slug/active_record.rb +8 -8
  132. data/lib/manual_slug/mongoid.rb +6 -1
  133. data/lib/rails_admin/custom_show_in_app.rb +21 -32
  134. data/template.rb +19 -20
  135. metadata +104 -12
  136. data/app/controllers/concerns/hancock/no_cache.rb +0 -12
  137. data/app/models/concerns/hancock/cacheable.rb +0 -51
@@ -1,6 +1,36 @@
1
1
  module Hancock
2
2
  include Hancock::PluginConfiguration
3
3
 
4
+ def self.configuration(plugin_name = nil)
5
+ return @configuration ||= config_class.new if config_class if plugin_name.blank?
6
+
7
+ @plugins_cache ||= {}
8
+ _plugin = nil
9
+ _plugin = plugin_name if Hancock::PLUGINS.include?(plugin_name)
10
+ if _plugin.nil?
11
+ plugin_name = plugin_name.to_s.camelize
12
+ return _plugin.config unless (_plugin = @plugins_cache[plugin_name]).nil?
13
+ if Object.const_defined?(plugin_name)
14
+ _plugin_name_const = plugin_name.constantize
15
+ _plugin = _plugin_name_const if Hancock::PLUGINS.include?(_plugin_name_const) or _plugin_name_const == Hancock
16
+ end
17
+ end
18
+ if _plugin.nil?
19
+ if Object.const_defined?("Hancock::#{plugin_name}")
20
+ _plugin_name_const = "Hancock::#{plugin_name}".constantize
21
+ _plugin = _plugin_name_const if Hancock::PLUGINS.include?(_plugin_name_const)
22
+ end
23
+ end
24
+ if _plugin
25
+ @plugins_cache[plugin_name] = _plugin
26
+ return _plugin.config
27
+ end
28
+ return nil
29
+ end
30
+ def self.config(plugin_name = nil)
31
+ configuration(plugin_name)
32
+ end
33
+
4
34
  def self.config_class
5
35
  Configuration
6
36
  end
@@ -16,6 +46,7 @@ module Hancock
16
46
  attr_accessor :error_layout
17
47
 
18
48
  attr_accessor :localize
49
+ attr_accessor :raven_support
19
50
 
20
51
  attr_accessor :ability_manager_config
21
52
  attr_accessor :ability_admin_config
@@ -29,24 +60,38 @@ module Hancock
29
60
 
30
61
  attr_accessor :history_tracking
31
62
 
63
+ attr_accessor :mongoid_single_collection
64
+
65
+ attr_accessor :navigation_labels
66
+
67
+ attr_accessor :erb2coffee_assets
68
+
32
69
  def initialize
33
70
  @main_index_layout = 'application'
34
71
  @error_layout = 'application'
35
72
 
36
- @localize = false
73
+ @localize = !!defined?(RailsAdminMongoidLocalizeField) #false
74
+ @raven_support = !!defined?(Raven)
37
75
 
38
76
  @ability_manager_config = []
39
77
  @ability_admin_config = []
40
78
 
41
- @recaptcha_support = defined?(Recaptcha)
42
- @simple_captcha_support = defined?(SimpleCaptcha)
79
+ @recaptcha_support = !!defined?(Recaptcha)
80
+ @simple_captcha_support = !!defined?(SimpleCaptcha)
43
81
 
44
82
  @admin_enter_captcha = @recaptcha_support or @simple_captcha_support
45
83
  @registration_captcha = @admin_enter_captcha
46
84
 
47
85
  @captcha_on_development = false
48
86
 
49
- @history_tracking = false
87
+ @history_tracking = true
88
+
89
+ @mongoid_single_collection = nil
90
+
91
+ @navigation_labels = []
92
+
93
+ @erb2coffee_assets = ['hancock/rails_admin/plugins.coffee.erb']
94
+
50
95
  end
51
96
  end
52
97
  end
@@ -8,7 +8,7 @@ module Hancock::Controller
8
8
  include Hancock::Pages::NavMenu
9
9
  include Hancock::Pages::Blocksetable
10
10
  end
11
- protect_from_forgery with: :exception
11
+ protect_from_forgery prepend: true, with: :exception
12
12
  helper_method :page_title
13
13
  helper_method :hide_ym_ga
14
14
  end
@@ -1,52 +1,48 @@
1
1
  module Hancock
2
- class Engine < ::Rails::Engine
3
- # isolate_namespace Hancock
2
+ class Engine < ::Rails::Engine
3
+ # isolate_namespace Hancock
4
4
 
5
5
  # rake_tasks do
6
6
  # require File.expand_path('../tasks', __FILE__)
7
7
  # end
8
8
 
9
- initializer "hancock_cms.email_defaults" do
10
- # Write default email settings to DB so they can be changed.
11
9
 
12
- #temp
10
+ initializer "RailsAdminSettingsPatch (CMS)" do
11
+ ::RailsAdminSettings::Setting.send(:include, Hancock::RailsAdminSettingsPatch)
12
+ end
13
+
14
+
15
+ config.to_prepare do
16
+ require 'rails_admin/hancock/form_builder'
17
+
18
+ ::RailsAdmin::MainController.send(:include, ::RailsAdmin::Application::HancockHelper)
19
+ ::RailsAdmin::MainController.send(:include, ::RailsAdmin::Main::HancockHelper)
20
+ # ::RailsAdmin::ApplicationHelper.send(:include, ::RailsAdmin::Hancock::FormBuilder)
21
+
22
+ ::RailsAdmin::ApplicationController.send(:helper, ::RailsAdmin::Application::HancockHelper)
23
+ ::RailsAdmin::ApplicationController.send(:helper, ::RailsAdmin::Main::HancockHelper)
24
+ end
25
+
26
+ config.after_initialize do
27
+
13
28
  begin
14
29
  if Settings and Settings.table_exists?
15
- # Settings.default_email_from(default: 'noreply@site.domain')
16
- # Settings.form_email(default: 'admin@site.domain')
17
- # Settings.email_topic(default: 'с сайта')
18
- Settings.logo_image(kind: :image)
30
+ if Settings.file_uploads_supported
31
+ if !RailsAdminSettings::Setting.ns("main").where(key: "logo_image").exists?
32
+ Settings.logo_image(kind: :image)
33
+ end
34
+ end
19
35
  end
20
36
  rescue
21
37
  end
22
- end
23
- # initializer 'hancock_cms.paperclip' do
24
- # # require 'paperclip/style'
25
- # # module ::Paperclip
26
- # # class Style
27
- # # alias_method :processor_options_without_auto_orient, :processor_options
28
- # # def processor_options
29
- # # processor_options_without_auto_orient.merge(auto_orient: false)
30
- # # end
31
- # # end
32
- # # end
33
- # end
34
38
 
35
- # config.after_initialize do
36
- # # trigger autoload so models are registered in Mongoid::Elasticearch
37
- # # Hancock.config.search_models.map(&:constantize)
38
- #
39
- # # Write default email settings to DB so they can be changed.
40
- # begin
41
- # if Settings and Settings.table_exists?
42
- # # Settings.default_email_from(default: 'noreply@site.domain')
43
- # # Settings.form_email(default: 'admin@site.domain')
44
- # # Settings.email_topic(default: 'с сайта')
45
- # Settings.logo_image(kind: :image)
46
- # end
47
- # rescue
48
- # end
49
- # end
39
+ # clear empty history for prevent admin panel crashs
40
+ begin
41
+ ::Hancock.clear_history_from_empty_objects
42
+ rescue
43
+ end
44
+
45
+ end
50
46
 
51
47
  end
52
48
  end
data/lib/hancock/model.rb CHANGED
@@ -4,10 +4,20 @@ module Hancock
4
4
  included do
5
5
  Hancock.register_model(self)
6
6
 
7
+ def self.inherited(base)
8
+ super
9
+ Hancock.register_model(base)
10
+ Hancock.register_model(self)
11
+ end
12
+
7
13
  if Hancock.mongoid?
8
14
  include Mongoid::Document
9
15
  include Mongoid::Timestamps::Short
10
16
 
17
+ if Hancock.config.mongoid_single_collection
18
+ include Hancock::MasterCollection
19
+ end
20
+
11
21
  if Hancock.config.localize
12
22
  include Hancock::ModelLocalizeable
13
23
  end
@@ -2,11 +2,13 @@ module Hancock
2
2
  module Models
3
3
  module EmbeddedElement
4
4
  extend ActiveSupport::Concern
5
+
5
6
  include Hancock::Model
6
7
  include Hancock::Enableable
7
8
  include Hancock::Sortable
8
9
 
9
10
  include Hancock.orm_specific('EmbeddedElement')
11
+
10
12
  end
11
13
  end
12
14
  end
@@ -8,6 +8,23 @@ module Hancock
8
8
 
9
9
  included do
10
10
  field :name, type: String, localize: Hancock.configuration.localize, default: ""
11
+
12
+ # stolen from https://github.com/mongoid/mongoid-history/blob/master/lib/mongoid/history/trackable.rb#L171
13
+ def embed_method_for_parent
14
+ ret = nil
15
+ if self._parent
16
+ ret = self._parent.relations.values.find do |relation|
17
+ if ::Mongoid::Compatibility::Version.mongoid3?
18
+ relation.class_name == self.metadata.class_name.to_s && relation.name == self.metadata.name
19
+ else
20
+ relation.class_name == self.relation_metadata.class_name.to_s &&
21
+ relation.name == self.relation_metadata.name
22
+ end
23
+ end
24
+ end
25
+ ret and ret.name
26
+ end
27
+
11
28
  end
12
29
 
13
30
  end
@@ -5,7 +5,7 @@ module Hancock::PluginConfiguration
5
5
  @configuration ||= config_class.new if config_class
6
6
  end
7
7
  def config
8
- @configuration ||= config_class.new if config_class
8
+ configuration
9
9
  end
10
10
 
11
11
  def configure
@@ -50,6 +50,18 @@ module Hancock
50
50
  action_visible_for(:multiple_file_upload_collection, Proc.new { false })
51
51
  end
52
52
 
53
+ if defined?(RailsAdminUserAbilities)
54
+ action_visible_for(:user_abilities, Proc.new { false })
55
+ action_visible_for(:model_accesses, Proc.new { false })
56
+ end
57
+
58
+ if defined?(RailsAdminComments)
59
+ action_visible_for(:comments, Proc.new { false })
60
+ action_visible_for(:model_comments, Proc.new { false })
61
+ end
62
+
63
+ action_visible_for(:sort_embedded, Proc.new { false })
64
+
53
65
  end
54
66
 
55
67
  def add_action(action_name)
@@ -99,7 +111,7 @@ module Hancock
99
111
  else
100
112
  ret = false
101
113
  if bindings[:abstract_model].model.respond_to?(:rails_admin_visible_actions)
102
- ret = bindings[:abstract_model].model.rails_admin_visible_actions.include?(action)
114
+ ret = bindings[:abstract_model].model.rails_admin_visible_actions.include?(action.to_sym)
103
115
  else
104
116
  if visibility = Hancock.rails_admin_config.actions_visibility[action]
105
117
  if visibility.is_a?(Proc)
@@ -109,7 +121,8 @@ module Hancock
109
121
  end
110
122
  end
111
123
  end # if bindings[:abstract_model].model.respond_to?(:rails_admin_visible_actions)
112
- ret
124
+ _context = bindings[:controller] || bindings[:view]
125
+ ret and _context and _context.can?(action, bindings[:abstract_model].model)
113
126
  end # !bindings or bindings[:abstract_model].blank?
114
127
  end # visible do
115
128
  end # rails_admin_actions.send(action) do
@@ -118,6 +131,7 @@ module Hancock
118
131
 
119
132
  end
120
133
 
134
+
121
135
  def cancancan_admin_rules(ability_object)
122
136
  Hancock.config.ability_admin_config.each do |config|
123
137
  _model = config[:model]
@@ -125,9 +139,11 @@ module Hancock
125
139
  ability_object.send(config[:method], config[:actions], _model)
126
140
  end
127
141
  Hancock::MODELS.each do |_model|
128
- ability_object.can _model.admin_can_actions, _model
142
+ ability_object.can _model.admin_can_actions, _model
143
+ ability_object.cannot _model.admin_cannot_actions, _model
129
144
  end
130
145
  end
146
+
131
147
  def cancancan_manager_rules(ability_object)
132
148
  Hancock.config.ability_manager_config.each do |config|
133
149
  _model = config[:model]
@@ -135,7 +151,8 @@ module Hancock
135
151
  ability_object.send(config[:method], config[:actions], _model)
136
152
  end
137
153
  Hancock::MODELS.each do |_model|
138
- ability_object.can _model.manager_can_actions, _model
154
+ ability_object.can _model.manager_can_actions, _model
155
+ ability_object.cannot _model.manager_cannot_actions, _model
139
156
  end
140
157
  end
141
158
 
@@ -0,0 +1,19 @@
1
+ require 'hancock_enum_with_custom'
2
+
3
+ module RailsAdmin
4
+ module Config
5
+ module Fields
6
+ module Types
7
+ class HancockArray < RailsAdmin::Config::Fields::Types::HancockEnumWithCustom
8
+ # Register field type for the type loader
9
+ RailsAdmin::Config::Fields::Types.register(self)
10
+
11
+ register_instance_option :multiple do
12
+ true
13
+ end
14
+
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,33 @@
1
+ require 'rails_admin/config/fields/types/enum'
2
+
3
+ module RailsAdmin
4
+ module Config
5
+ module Fields
6
+ module Types
7
+ class HancockEnum < RailsAdmin::Config::Fields::Types::Enum
8
+ # Register field type for the type loader
9
+ RailsAdmin::Config::Fields::Types.register(self)
10
+
11
+ register_instance_option :searchable do
12
+ true
13
+ end
14
+ register_instance_option :searchable_columns do
15
+ [{column: "#{abstract_model.table_name}.#{enum_method}" , type: :string}]
16
+ end
17
+ register_instance_option :queryable do
18
+ true
19
+ end
20
+
21
+ register_instance_option :partial do
22
+ :form_hancock_enum
23
+ end
24
+
25
+ register_instance_option :help do
26
+ 'Двойной клик перемещает между списками'
27
+ end
28
+
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,34 @@
1
+ require 'hancock_enum'
2
+
3
+ module RailsAdmin
4
+ module Config
5
+ module Fields
6
+ module Types
7
+ class HancockEnumWithCustom < RailsAdmin::Config::Fields::Types::HancockEnum
8
+ # Register field type for the type loader
9
+ RailsAdmin::Config::Fields::Types.register(self)
10
+ register_instance_option :help do
11
+ 'Выберите из списка или введите свой вариант'
12
+ end
13
+
14
+ register_instance_option :enum do
15
+ []
16
+ end
17
+
18
+ register_instance_option :unique do
19
+ true
20
+ end
21
+
22
+ register_instance_option :selection do
23
+ ([enum] + [form_value]).flatten.uniq
24
+ end
25
+
26
+ register_instance_option :partial do
27
+ :form_hancock_enum_with_custom
28
+ end
29
+
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -26,6 +26,13 @@ module RailsAdmin
26
26
  true
27
27
  end
28
28
 
29
+ register_instance_option :searchable do
30
+ string_method.to_s
31
+ end
32
+ register_instance_option :queryable do
33
+ true
34
+ end
35
+
29
36
 
30
37
  ############ localize ######################
31
38
  register_instance_option :translations_field do
@@ -33,7 +40,7 @@ module RailsAdmin
33
40
  end
34
41
 
35
42
  register_instance_option :localized? do
36
- @abstract_model.model_name.constantize.public_instance_methods.include?(translations_field)
43
+ @abstract_model.model.public_instance_methods.include?(translations_field)
37
44
  end
38
45
 
39
46
  register_instance_option :pretty_value do
@@ -13,6 +13,13 @@ module RailsAdmin
13
13
  "#{name}_html".to_sym
14
14
  end
15
15
 
16
+ register_instance_option :searchable do
17
+ html_method.to_s
18
+ end
19
+ register_instance_option :queryable do
20
+ true
21
+ end
22
+
16
23
  register_instance_option :clear_method do
17
24
  "#{name}_clear".to_sym
18
25
  end
@@ -37,6 +44,14 @@ module RailsAdmin
37
44
  true
38
45
  end
39
46
 
47
+ register_instance_option :help do
48
+ if @abstract_model.model.respond_to?(:insertions_fields)
49
+ if @abstract_model.model.insertions_fields.include?(name)
50
+ 'Можно использовать вставки'
51
+ end
52
+ end
53
+ end
54
+
40
55
 
41
56
  ############ localize ######################
42
57
  register_instance_option :html_translations_field do
@@ -61,8 +76,8 @@ module RailsAdmin
61
76
  end
62
77
 
63
78
  register_instance_option :localized? do
64
- @abstract_model.model_name.constantize.public_instance_methods.include?(html_translations_field) and
65
- @abstract_model.model_name.constantize.public_instance_methods.include?(clear_translations_field)
79
+ @abstract_model.model.public_instance_methods.include?(html_translations_field) and
80
+ @abstract_model.model.public_instance_methods.include?(clear_translations_field)
66
81
  end
67
82
 
68
83
  register_instance_option :allowed_methods do