hancock_cms 1.0.2.3 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-gemset +1 -1
- data/.ruby-version +1 -1
- data/README.md +9 -13
- data/app/assets/images/{hancock/rails_admin → rails-admin}/hancock_logo.svg +0 -0
- data/app/assets/javascripts/hancock/cms.coffee +1 -1
- data/app/assets/javascripts/hancock/rails_admin/cms.ui.coffee +38 -10
- data/app/assets/javascripts/jquery.placeholder.js +2 -3
- data/app/assets/javascripts/rails_admin/custom/ui.coffee +0 -1
- data/app/assets/stylesheets/hancock/cms/devise.sass +22 -36
- data/app/assets/stylesheets/hancock/rails_admin/cms.theming.sass +147 -364
- data/app/assets/stylesheets/rails_admin/custom/theming.sass +1 -1
- data/app/controllers/concerns/hancock/current_user.rb +1 -1
- data/app/controllers/concerns/hancock/decorators/home.rb +1 -1
- data/app/controllers/concerns/hancock/errors.rb +7 -6
- data/app/controllers/concerns/hancock/no_cache.rb +12 -0
- data/app/controllers/hancock/registrations_controller.rb +7 -2
- data/app/controllers/hancock/sessions_controller.rb +7 -3
- data/app/helpers/hancock/powered_helper.rb +3 -3
- data/app/models/concerns/hancock/boolean_field.rb +2 -7
- data/app/models/concerns/hancock/cacheable.rb +33 -0
- data/app/models/concerns/hancock/decorators/embedded_element.rb +9 -1
- data/app/models/concerns/hancock/enableable.rb +0 -1
- data/app/models/concerns/hancock/hash_field.rb +8 -9
- data/app/models/concerns/hancock/html_field.rb +3 -6
- data/app/models/concerns/hancock/mappable.rb +0 -1
- data/app/models/concerns/hancock/model_localizeable.rb +1 -4
- data/app/models/concerns/hancock/rails_admin_patch.rb +3 -22
- data/app/models/concerns/hancock/sort_field.rb +3 -26
- data/app/models/concerns/hancock/sortable.rb +0 -3
- data/app/views/blocks/_footer.html.slim +1 -1
- data/app/views/devise/passwords/edit.html.slim +2 -0
- data/app/views/devise/passwords/new.html.slim +2 -0
- data/app/views/devise/registrations/edit.html.slim +2 -0
- data/app/views/devise/registrations/new.html.slim +2 -0
- data/app/views/devise/sessions/new.html.slim +2 -0
- data/app/views/hancock/home/index.html.slim +1 -4
- data/app/views/layouts/application.html.slim +11 -20
- data/app/views/layouts/hancock/devise/confirmations.html.slim +4 -7
- data/app/views/layouts/hancock/devise/passwords.html.slim +4 -7
- data/app/views/layouts/hancock/devise/registrations.html.slim +4 -7
- data/app/views/layouts/hancock/devise/sessions.html.slim +4 -7
- data/app/views/layouts/hancock/devise/unlocks.html.slim +4 -7
- data/app/views/layouts/rails_admin/_footer.html.slim +2 -2
- data/app/views/layouts/rails_admin/_footer_navigation.html.slim +5 -21
- data/app/views/layouts/rails_admin/_navigation.html.slim +47 -13
- data/app/views/layouts/rails_admin/_secondary_navigation.html.slim +12 -5
- data/app/views/layouts/rails_admin/application.html.haml +39 -4
- data/app/views/rails_admin/main/_hancock_html.html.slim +2 -2
- data/app/views/rails_admin/main/_hancock_html_ml.html.slim +34 -31
- data/app/views/shared/_admin_link.html.slim +2 -4
- data/{app/models/concerns/hancock → config/initializers}/embedded_findable.rb +2 -2
- data/config/locales/en.hancock.yml +0 -1
- data/config/locales/ru.devise.yml +18 -22
- data/config/locales/ru.hancock.yml +5 -5
- data/config/locales/ru.rails_admin.yml +0 -3
- data/hancock_cms.gemspec +3 -6
- data/lib/filename_to_slug.rb +20 -0
- data/lib/generators/hancock/cms/ability_generator.rb +0 -1
- data/lib/generators/hancock/cms/admin_generator.rb +0 -1
- data/lib/generators/hancock/cms/application_generator.rb +0 -1
- data/lib/generators/hancock/cms/assets_generator.rb +0 -1
- data/lib/generators/hancock/cms/layout_generator.rb +0 -1
- data/lib/generators/hancock/cms/model_generator.rb +0 -1
- data/lib/generators/hancock/cms/models/templates/embedded_element.erb +2 -2
- data/lib/generators/hancock/cms/rack_generator.rb +0 -1
- data/lib/generators/hancock/cms/robots_generator.rb +0 -1
- data/lib/generators/hancock/cms/scripts_generator.rb +0 -1
- data/lib/generators/hancock/cms/templates/Gemfile.erb +4 -1
- data/lib/generators/hancock/cms/templates/ability.erb +1 -1
- data/lib/generators/hancock/cms/templates/admin.erb +6 -12
- data/lib/generators/hancock/cms/templates/assets/javascripts/application.coffee.erb +1 -1
- data/lib/generators/hancock/cms/templates/hancock_cms.erb +2 -4
- data/lib/generators/hancock/cms/templates/model.erb +6 -5
- data/lib/generators/hancock/cms/templates/robots.txt.erb +1 -5
- data/lib/generators/hancock/cms/templates/scripts/db_dump.sh.erb +1 -1
- data/lib/generators/hancock/cms/templates/scripts/server.sh +1 -1
- data/lib/generators/hancock/cms/templates/scripts/server_alt.sh +1 -1
- data/lib/generators/hancock/cms/unicorn_god_generator.rb +0 -1
- data/lib/generators/hancock/cms/utils.rb +0 -2
- data/lib/hancock/admin/embedded_element.rb +2 -10
- data/lib/hancock/admin.rb +21 -132
- data/lib/hancock/configuration.rb +2 -6
- data/lib/hancock/controller.rb +1 -10
- data/lib/hancock/engine.rb +34 -34
- data/lib/hancock/model.rb +5 -29
- data/lib/hancock/models/embedded_element.rb +0 -2
- data/lib/hancock/models/mongoid/embedded_element.rb +1 -20
- data/lib/hancock/plugin_configuration.rb +1 -1
- data/lib/hancock/rails_admin_ext/config.rb +14 -45
- data/lib/hancock/rails_admin_ext/hancock_hash.rb +1 -8
- data/lib/hancock/rails_admin_ext/hancock_html.rb +2 -17
- data/lib/hancock/rails_admin_ext/hancock_multiselect.rb +5 -1
- data/lib/hancock/rails_admin_ext/hancock_slugs.rb +6 -2
- data/lib/hancock/rails_admin_ext/patches/field_patch.rb +1 -2
- data/lib/hancock/rails_admin_ext/patches/group_patch.rb +0 -9
- data/lib/hancock/rails_admin_ext/patches/hancock_cms_group.rb +0 -2
- data/lib/hancock/version.rb +1 -1
- data/lib/hancock_cms.rb +13 -21
- data/lib/manual_slug/active_record.rb +8 -8
- data/lib/rails_admin/custom_show_in_app.rb +32 -21
- data/release.sh +1 -1
- data/template.rb +386 -37
- metadata +15 -88
- data/.gitattributes +0 -4
- data/app/assets/javascripts/hancock/rails_admin/en_ru_switcher.coffee +0 -90
- data/app/assets/javascripts/hancock/rails_admin/enum_with_custom.coffee +0 -41
- data/app/assets/javascripts/hancock/rails_admin/form_controls_fixed.coffee +0 -44
- data/app/assets/javascripts/hancock/rails_admin/leftside_hider.coffee +0 -106
- data/app/assets/javascripts/hancock/rails_admin/multiselect.coffee +0 -8
- data/app/assets/javascripts/hancock/rails_admin/navigation_dropdown.coffee +0 -25
- data/app/assets/javascripts/hancock/rails_admin/navigation_filter.coffee +0 -108
- data/app/assets/javascripts/hancock/rails_admin/navigation_scroll.coffee +0 -12
- data/app/assets/stylesheets/hancock/rails_admin/fieldsets.sass +0 -198
- data/app/helpers/hancock/settings_helper.rb +0 -44
- data/app/helpers/rails_admin/application/hancock_helper.rb +0 -19
- data/app/helpers/rails_admin/hancock/form_builder.rb +0 -44
- data/app/helpers/rails_admin/main/hancock_helper.rb +0 -27
- data/app/models/concerns/hancock/insertion_field.rb +0 -115
- data/app/views/blocks/_preloader.html.slim +0 -0
- data/app/views/layouts/rails_admin/_sidebar_navigation.html.slim +0 -2
- data/app/views/layouts/rails_admin/_sidebar_navigation_filter.html.slim +0 -3
- data/app/views/rails_admin/main/_enum_for_settings_kinds.html.slim +0 -24
- data/app/views/rails_admin/main/_form_hancock_enum.html.slim +0 -18
- data/app/views/rails_admin/main/_form_hancock_enum_with_custom.slim +0 -20
- data/app/views/rails_admin/main/edit.html.haml +0 -18
- data/app/views/rails_admin/main/new.html.haml +0 -17
- data/config/initializers/rails_admin_mongoid_patch.rb +0 -27
- data/lib/generators/hancock/cms/setup_generator.rb +0 -488
- data/lib/generators/hancock/cms/templates/assets/stylesheets/hancock/rails_admin/custom/theming.sass.erb +0 -0
- data/lib/hancock/rails_admin_ext/hancock_array.rb +0 -19
- data/lib/hancock/rails_admin_ext/hancock_enum.rb +0 -33
- data/lib/hancock/rails_admin_ext/hancock_enum_with_custom.rb +0 -34
- data/lib/hancock/rails_admin_ext/patches/fieldset_patch.rb +0 -14
- data/lib/hancock/rails_admin_ext/patches/has_fields.rb +0 -27
- data/lib/hancock/rails_admin_ext/patches/navigation_patch.rb +0 -25
- data/lib/hancock/rails_admin_settings_patch.rb +0 -216
@@ -8,7 +8,7 @@ gem 'sass-rails'
|
|
8
8
|
gem 'compass-rails'
|
9
9
|
gem 'compass'
|
10
10
|
|
11
|
-
#{if mongoid then "gem 'hancock_cms_mongoid'" else "gem 'hancock_cms_activerecord'" end}
|
11
|
+
#{if mongoid then "gem 'hancock_cms_mongoid'" else "gem 'hancock_cms_activerecord'" end}, path: '/home/ack/www/hancock_cms' #'~> 0.3.7'
|
12
12
|
|
13
13
|
gem 'devise'
|
14
14
|
|
@@ -20,6 +20,9 @@ gem 'cancancan'
|
|
20
20
|
gem 'unicorn'
|
21
21
|
gem 'x-real-ip'
|
22
22
|
|
23
|
+
#temp
|
24
|
+
#gem 'sentry-raven'
|
25
|
+
|
23
26
|
group :development do
|
24
27
|
gem 'better_errors'
|
25
28
|
gem 'binding_of_caller'
|
@@ -1,12 +1,7 @@
|
|
1
1
|
require 'rails_admin/custom_show_in_app'
|
2
2
|
|
3
|
-
require_relative 'hancock_cms'
|
4
|
-
# Add `require_relative '%hancock_plugin_name%'` here for configure it.
|
5
|
-
# `require_relative 'hancock_cms'` reconfigure it by default.
|
6
|
-
# So u need do it again. If u have some changes.
|
7
|
-
|
8
3
|
<% if Hancock.mongoid? %>
|
9
|
-
RailsAdminSettings.track_history!
|
4
|
+
RailsAdminSettings.track_history!
|
10
5
|
<% end %>
|
11
6
|
|
12
7
|
RailsAdmin.config do |config|
|
@@ -16,6 +11,8 @@ RailsAdmin.config do |config|
|
|
16
11
|
#warden.authenticate! scope: :user
|
17
12
|
#end
|
18
13
|
|
14
|
+
config.parent_controller = '::ApplicationController'
|
15
|
+
|
19
16
|
config.current_user_method(&:current_user)
|
20
17
|
|
21
18
|
## == Cancan ==
|
@@ -42,10 +39,8 @@ RailsAdmin.config do |config|
|
|
42
39
|
edit
|
43
40
|
delete
|
44
41
|
|
45
|
-
|
46
|
-
|
47
|
-
history_show
|
48
|
-
end
|
42
|
+
history_index
|
43
|
+
history_show
|
49
44
|
|
50
45
|
toggle
|
51
46
|
# toggle_menu # for Hancock::Pages
|
@@ -59,11 +54,10 @@ RailsAdmin.config do |config|
|
|
59
54
|
config.excluded_models ||= []
|
60
55
|
config.excluded_models << [
|
61
56
|
'RailsAdmin::CustomShowInApp', 'HistoryTracker',
|
62
|
-
'Ckeditor::Asset', 'Ckeditor::AttachmentFile', 'Ckeditor::Picture',
|
57
|
+
'Ckeditor::Asset', 'Ckeditor::AttachmentFile', 'Ckeditor::Picture',
|
63
58
|
'Hancock::EmbeddedElement'
|
64
59
|
]
|
65
60
|
config.excluded_models.flatten!
|
66
|
-
config.excluded_models.uniq!
|
67
61
|
end
|
68
62
|
|
69
63
|
# [required] fix for timezones to be displayed in local time instead of UTC
|
@@ -20,13 +20,11 @@ Hancock.configure do |config|
|
|
20
20
|
# actions: :manage
|
21
21
|
# }
|
22
22
|
#
|
23
|
-
# config.recaptcha_support =
|
24
|
-
# config.simple_captcha_support =
|
23
|
+
# config.recaptcha_support = defined?(Recaptcha)
|
24
|
+
# config.simple_captcha_support = defined?(SimpleCaptcha)
|
25
25
|
#
|
26
26
|
# config.admin_enter_captcha = config.recaptcha_support or config.simple_captcha_support
|
27
27
|
# config.registration_captcha = config.admin_enter_captcha
|
28
28
|
#
|
29
29
|
# config.captcha_on_development = false
|
30
|
-
#
|
31
|
-
# config.history_tracking = true
|
32
30
|
end
|
@@ -1,19 +1,19 @@
|
|
1
1
|
class <%= camelcased_class_name %>
|
2
2
|
include Hancock::Model
|
3
3
|
# include Hancock::Enableable
|
4
|
+
# include Hancock::Cacheable
|
4
5
|
# include ManualSlug
|
5
6
|
|
6
|
-
# include Hancock::Cache::Cacheable
|
7
|
-
# def self.default_cache_keys
|
8
|
-
# []
|
9
|
-
# end
|
10
|
-
|
11
7
|
# acts_as_nested_set
|
12
8
|
# scope :sorted, -> { order_by([:lft, :asc]) }
|
13
9
|
|
14
10
|
field :name
|
15
11
|
# manual_slug :name
|
16
12
|
|
13
|
+
# def self.default_cache_keys
|
14
|
+
# []
|
15
|
+
# end
|
16
|
+
|
17
17
|
############# rails_admin ##############
|
18
18
|
#
|
19
19
|
# def self.admin_can_user_defined_actions
|
@@ -36,6 +36,7 @@ class <%= camelcased_class_name %>
|
|
36
36
|
# field :enabled, :toggle
|
37
37
|
field :name
|
38
38
|
# group :url, &Hancock::Admin.url_block
|
39
|
+
# group :cache, &Hancock::Admin.caching_block
|
39
40
|
end
|
40
41
|
|
41
42
|
end
|
@@ -1,9 +1,5 @@
|
|
1
|
-
Host:
|
1
|
+
Host: <%= app_name.downcase %>.ru
|
2
2
|
User-Agent: *
|
3
3
|
Allow: /
|
4
4
|
Disallow: /admin
|
5
|
-
# Disallow: /account
|
6
|
-
Disallow: /ckeditor/*
|
7
|
-
# Disallow: /goto
|
8
|
-
# Disallow: /users
|
9
5
|
Sitemap: http://<%= app_name.downcase %>.ru/sitemap.xml.gz
|
@@ -4,7 +4,6 @@ module Hancock::Cms
|
|
4
4
|
module Generators
|
5
5
|
module Utils
|
6
6
|
module InstanceMethods
|
7
|
-
|
8
7
|
def display(output, color = :green)
|
9
8
|
say(" - #{output}", color)
|
10
9
|
end
|
@@ -16,7 +15,6 @@ module Hancock::Cms
|
|
16
15
|
ask(" ? #{wording} Press <enter> for [#{default_value}] >", :yellow).presence || default_value
|
17
16
|
end
|
18
17
|
end
|
19
|
-
|
20
18
|
end
|
21
19
|
end
|
22
20
|
end
|
@@ -1,25 +1,18 @@
|
|
1
1
|
module Hancock
|
2
2
|
module Admin
|
3
3
|
module EmbeddedElement
|
4
|
-
|
5
4
|
def self.config(nav_label = nil, fields = {})
|
6
5
|
if nav_label.is_a?(Hash)
|
7
|
-
nav_label, fields = nav_label[:nav_label], nav_label
|
8
|
-
elsif nav_label.is_a?(Array)
|
9
6
|
nav_label, fields = nil, nav_label
|
10
7
|
end
|
11
|
-
fields ||= {}
|
12
|
-
field_names = [:enabled, :name]
|
13
|
-
field_showings = Hancock::Admin.get_field_showings(fields, field_names)
|
14
|
-
|
15
8
|
Proc.new {
|
16
9
|
navigation_label(nav_label || I18n.t('hancock.cms'))
|
17
10
|
field :enabled, :toggle do
|
18
11
|
searchable false
|
19
|
-
end
|
12
|
+
end
|
20
13
|
field :name, :string do
|
21
14
|
searchable true
|
22
|
-
end
|
15
|
+
end
|
23
16
|
|
24
17
|
Hancock::RailsAdminGroupPatch::hancock_cms_group(self, fields)
|
25
18
|
|
@@ -28,7 +21,6 @@ module Hancock
|
|
28
21
|
end
|
29
22
|
}
|
30
23
|
end
|
31
|
-
|
32
24
|
end
|
33
25
|
end
|
34
26
|
end
|
data/lib/hancock/admin.rb
CHANGED
@@ -1,67 +1,18 @@
|
|
1
1
|
module Hancock
|
2
2
|
module Admin
|
3
|
-
def self.map_config(is_active = false
|
4
|
-
if is_active.is_a?(Hash)
|
5
|
-
is_active, options = (is_active[:active] || false), is_active
|
6
|
-
end
|
7
|
-
fields = (options[:fields] ||= {})
|
8
|
-
field_names = [:slugs, :text_slug]
|
9
|
-
field_showings = get_field_showings(fields, field_names)
|
10
|
-
|
3
|
+
def self.map_config(is_active = false)
|
11
4
|
Proc.new {
|
12
5
|
active is_active
|
13
|
-
label
|
14
|
-
|
15
|
-
field :
|
16
|
-
|
17
|
-
end if field_showings[:address]
|
18
|
-
|
19
|
-
field :map_address, :string do
|
20
|
-
searchable true
|
21
|
-
end if field_showings[:map_address]
|
22
|
-
|
23
|
-
field :map_hint, :string do
|
24
|
-
searchable true
|
25
|
-
end if field_showings[:map_hint]
|
26
|
-
|
6
|
+
label I18n.t('hancock.map')
|
7
|
+
field :address, :string
|
8
|
+
field :map_address, :string
|
9
|
+
field :map_hint, :string
|
27
10
|
field :coordinates, :string do
|
28
|
-
searchable true
|
29
11
|
read_only true
|
30
12
|
formatted_value{ bindings[:object].coordinates.to_json }
|
31
|
-
end if field_showings[:coordinates]
|
32
|
-
|
33
|
-
field :lat do
|
34
|
-
searchable true
|
35
|
-
end if field_showings[:lat]
|
36
|
-
|
37
|
-
field :lon do
|
38
|
-
searchable true
|
39
|
-
end if field_showings[:lon]
|
40
|
-
|
41
|
-
|
42
|
-
Hancock::RailsAdminGroupPatch::hancock_cms_group(self, options[:fields])
|
43
|
-
|
44
|
-
if block_given?
|
45
|
-
yield self
|
46
13
|
end
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
def self.url_block(is_active = false, options = {})
|
51
|
-
if is_active.is_a?(Hash)
|
52
|
-
is_active, options = (is_active[:active] || false), is_active
|
53
|
-
end
|
54
|
-
fields = (options[:fields] ||= {})
|
55
|
-
field_names = [:slugs, :text_slug]
|
56
|
-
field_showings = get_field_showings(fields, field_names)
|
57
|
-
|
58
|
-
Proc.new {
|
59
|
-
active is_active
|
60
|
-
label options[:label] || I18n.t('hancock.url')
|
61
|
-
field :slugs, :hancock_slugs if field_showings[:slugs]
|
62
|
-
field :text_slug if field_showings[:text_slug]
|
63
|
-
|
64
|
-
Hancock::RailsAdminGroupPatch::hancock_cms_group(self, options[:fields])
|
14
|
+
field :lat
|
15
|
+
field :lon
|
65
16
|
|
66
17
|
if block_given?
|
67
18
|
yield self
|
@@ -69,21 +20,12 @@ module Hancock
|
|
69
20
|
}
|
70
21
|
end
|
71
22
|
|
72
|
-
def self.
|
73
|
-
if is_active.is_a?(Hash)
|
74
|
-
is_active, options = (is_active[:active] || false), is_active
|
75
|
-
end
|
76
|
-
fields = (options[:fields] ||= {})
|
77
|
-
field_names = [:excerpt, :content]
|
78
|
-
field_showings = get_field_showings(fields, field_names)
|
79
|
-
|
23
|
+
def self.caching_block(is_active = false)
|
80
24
|
Proc.new {
|
81
25
|
active is_active
|
82
|
-
label
|
83
|
-
field :
|
84
|
-
field :
|
85
|
-
|
86
|
-
Hancock::RailsAdminGroupPatch::hancock_cms_group(self, options[:fields] || {})
|
26
|
+
label I18n.t('hancock.cache')
|
27
|
+
field :perform_caching, :toggle
|
28
|
+
field :cache_keys_str, :text
|
87
29
|
|
88
30
|
if block_given?
|
89
31
|
yield self
|
@@ -91,81 +33,28 @@ module Hancock
|
|
91
33
|
}
|
92
34
|
end
|
93
35
|
|
94
|
-
def self.
|
95
|
-
if is_active.is_a?(Hash)
|
96
|
-
is_active, options = (is_active[:active] || false), is_active
|
97
|
-
end
|
98
|
-
fields = (options[:fields] ||= {})
|
99
|
-
field_names = [:main_category, :categories]
|
100
|
-
field_showings = get_field_showings(fields, field_names)
|
101
|
-
|
36
|
+
def self.url_block(is_active = false)
|
102
37
|
Proc.new {
|
103
38
|
active is_active
|
104
|
-
label
|
105
|
-
|
106
|
-
field :
|
107
|
-
inline_add false
|
108
|
-
inline_edit false
|
109
|
-
end if field_showings[:main_category]
|
110
|
-
field :categories, :hancock_multiselect if field_showings[:categories]
|
111
|
-
|
112
|
-
Hancock::RailsAdminGroupPatch::hancock_cms_group(self, options[:fields] || {})
|
113
|
-
|
114
|
-
if block_given?
|
115
|
-
yield self
|
116
|
-
end
|
39
|
+
label I18n.t('hancock.url')
|
40
|
+
field :slugs, :hancock_slugs
|
41
|
+
field :text_slug
|
117
42
|
}
|
118
43
|
end
|
119
44
|
|
120
|
-
|
121
|
-
def self.insertions_block(is_active = false, options = {})
|
45
|
+
def self.content_block(is_active = false, options = {})
|
122
46
|
if is_active.is_a?(Hash)
|
123
|
-
is_active,
|
47
|
+
is_active, fields = (is_active[:active] || false), is_active
|
124
48
|
end
|
125
|
-
fields = (options[:fields] ||= {})
|
126
|
-
field_names = [:possible_insertions]
|
127
|
-
field_showings = get_field_showings(fields, field_names)
|
128
49
|
|
50
|
+
_excluded_fields = options.delete(:excluded_fields) || []
|
129
51
|
Proc.new {
|
130
52
|
active is_active
|
131
|
-
label
|
132
|
-
field :
|
133
|
-
|
134
|
-
pretty_value do
|
135
|
-
("<dl class='possible_insertions_list'>" + bindings[:object].possible_insertions.map do |_ins|
|
136
|
-
"<dt>#{_ins}</dt><dd>#{bindings[:object].send(_ins)}</dd>"
|
137
|
-
end.join + "</dl>").html_safe
|
138
|
-
end
|
139
|
-
end if field_showings[:possible_insertions]
|
140
|
-
|
141
|
-
Hancock::RailsAdminGroupPatch::hancock_cms_group(self, options[:fields] || {})
|
142
|
-
|
143
|
-
if block_given?
|
144
|
-
yield self
|
145
|
-
end
|
146
|
-
|
147
|
-
Hancock::RailsAdminGroupPatch::hancock_cms_group(self, options[:fields] || {})
|
148
|
-
|
149
|
-
if block_given?
|
150
|
-
yield self
|
151
|
-
end
|
53
|
+
label I18n.t('hancock.content')
|
54
|
+
field :excerpt, :hancock_html unless _excluded_fields.include?(:excerpt)
|
55
|
+
field :content, :hancock_html unless _excluded_fields.include?(:content)
|
152
56
|
}
|
153
57
|
end
|
154
58
|
|
155
|
-
def self.get_field_showings(fields, field_names)
|
156
|
-
field_showings = field_names.map { |f| {f => true } }.inject(&:merge) || {}
|
157
|
-
if fields.is_a?(Hash)
|
158
|
-
field_names.each do |f|
|
159
|
-
field_showings[f] = (fields[f] != false)
|
160
|
-
end
|
161
|
-
elsif fields.is_a?(Array)
|
162
|
-
_fields = fields.map { |f| f[:fields] }.inject(&:merge) || {}
|
163
|
-
field_names.each do |f|
|
164
|
-
field_showings[f] = (_fields[f] != false)
|
165
|
-
end
|
166
|
-
end
|
167
|
-
field_showings
|
168
|
-
end
|
169
|
-
|
170
59
|
end
|
171
60
|
end
|
@@ -27,8 +27,6 @@ module Hancock
|
|
27
27
|
|
28
28
|
attr_accessor :captcha_on_development
|
29
29
|
|
30
|
-
attr_accessor :history_tracking
|
31
|
-
|
32
30
|
def initialize
|
33
31
|
@main_index_layout = 'application'
|
34
32
|
@error_layout = 'application'
|
@@ -38,15 +36,13 @@ module Hancock
|
|
38
36
|
@ability_manager_config = []
|
39
37
|
@ability_admin_config = []
|
40
38
|
|
41
|
-
@recaptcha_support =
|
42
|
-
@simple_captcha_support =
|
39
|
+
@recaptcha_support = defined?(Recaptcha)
|
40
|
+
@simple_captcha_support = defined?(SimpleCaptcha)
|
43
41
|
|
44
42
|
@admin_enter_captcha = @recaptcha_support or @simple_captcha_support
|
45
43
|
@registration_captcha = @admin_enter_captcha
|
46
44
|
|
47
45
|
@captcha_on_development = false
|
48
|
-
|
49
|
-
@history_tracking = true
|
50
46
|
end
|
51
47
|
end
|
52
48
|
end
|
data/lib/hancock/controller.rb
CHANGED
@@ -2,7 +2,7 @@ module Hancock::Controller
|
|
2
2
|
extend ActiveSupport::Concern
|
3
3
|
included do
|
4
4
|
include Hancock::Errors
|
5
|
-
include Hancock::Fancybox
|
5
|
+
# include Hancock::Fancybox
|
6
6
|
if defined?(Hancock::Pages)
|
7
7
|
include Hancock::Pages::SeoPages
|
8
8
|
include Hancock::Pages::NavMenu
|
@@ -27,13 +27,4 @@ module Hancock::Controller
|
|
27
27
|
def hide_ym_ga
|
28
28
|
false
|
29
29
|
end
|
30
|
-
|
31
|
-
# HARD Rails5 compatibility
|
32
|
-
def redirect_back(fallback_location:, **args)
|
33
|
-
if referer = request.headers["Referer"]
|
34
|
-
redirect_to referer, **args
|
35
|
-
else
|
36
|
-
redirect_to fallback_location, **args
|
37
|
-
end
|
38
|
-
end
|
39
30
|
end
|
data/lib/hancock/engine.rb
CHANGED
@@ -1,48 +1,48 @@
|
|
1
1
|
module Hancock
|
2
|
-
|
3
|
-
|
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
|
-
|
10
|
-
|
11
|
-
|
9
|
+
initializer "hancock_cms.email_defaults" do
|
10
|
+
# Write default email settings to DB so they can be changed.
|
11
|
+
|
12
|
+
#temp
|
13
|
+
# begin
|
14
|
+
# 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
|
+
# end
|
19
|
+
# rescue
|
20
|
+
# end
|
12
21
|
end
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
#
|
21
|
-
|
22
|
-
|
23
|
-
::RailsAdmin::ApplicationController.send(:helper, ::RailsAdmin::Main::HancockHelper)
|
22
|
+
initializer 'hancock_cms.paperclip' do
|
23
|
+
# require 'paperclip/style'
|
24
|
+
# module ::Paperclip
|
25
|
+
# class Style
|
26
|
+
# alias_method :processor_options_without_auto_orient, :processor_options
|
27
|
+
# def processor_options
|
28
|
+
# processor_options_without_auto_orient.merge(auto_orient: false)
|
29
|
+
# end
|
30
|
+
# end
|
31
|
+
# end
|
24
32
|
end
|
25
33
|
|
26
34
|
config.after_initialize do
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
end
|
38
|
-
|
39
|
-
# clear empty history for prevent admin panel crashs
|
40
|
-
begin
|
41
|
-
::Hancock.clear_history_from_empty_objects
|
42
|
-
rescue
|
35
|
+
# trigger autoload so models are registered in Mongoid::Elasticearch
|
36
|
+
# Hancock.config.search_models.map(&:constantize)
|
37
|
+
|
38
|
+
# Write default email settings to DB so they can be changed.
|
39
|
+
if Settings and Settings.table_exists?
|
40
|
+
# Settings.default_email_from(default: 'noreply@site.domain')
|
41
|
+
# Settings.form_email(default: 'admin@site.domain')
|
42
|
+
# Settings.email_topic(default: 'с сайта')
|
43
|
+
#
|
44
|
+
Settings.logo_image(kind: :image)
|
43
45
|
end
|
44
|
-
|
45
46
|
end
|
46
|
-
|
47
47
|
end
|
48
48
|
end
|
data/lib/hancock/model.rb
CHANGED
@@ -4,12 +4,6 @@ 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
|
-
|
13
7
|
if Hancock.mongoid?
|
14
8
|
include Mongoid::Document
|
15
9
|
include Mongoid::Timestamps::Short
|
@@ -17,22 +11,6 @@ module Hancock
|
|
17
11
|
if Hancock.config.localize
|
18
12
|
include Hancock::ModelLocalizeable
|
19
13
|
end
|
20
|
-
|
21
|
-
_collection_name = collection_name.to_s
|
22
|
-
if _collection_name =~ /^hancock_/
|
23
|
-
enjoy_collection_name = _collection_name.sub(/^hancock_/, 'enjoy_')
|
24
|
-
if Mongoid.client('default').collections.map(&:name).include?(enjoy_collection_name)
|
25
|
-
modules = []
|
26
|
-
self.name.sub("Hancock", "Enjoy").split("::").each do |mod|
|
27
|
-
modules << mod
|
28
|
-
eval("::#{modules.join("::")} ||= #{modules.join("::").sub("Enjoy", "Hancock")}")
|
29
|
-
end
|
30
|
-
store_in collection: enjoy_collection_name
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def self.goto_hancock
|
35
|
-
end
|
36
14
|
end
|
37
15
|
|
38
16
|
include ActiveModel::ForbiddenAttributesProtection
|
@@ -44,13 +22,11 @@ module Hancock
|
|
44
22
|
include RailsAdminComments::ModelCommentable
|
45
23
|
end
|
46
24
|
|
47
|
-
if Hancock.
|
48
|
-
if
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
include Trackable
|
53
|
-
end
|
25
|
+
if Hancock.mongoid?
|
26
|
+
if defined?(TrackablePatch)
|
27
|
+
include TrackablePatch
|
28
|
+
elsif defined?(Trackable)
|
29
|
+
include Trackable
|
54
30
|
end
|
55
31
|
end
|
56
32
|
|
@@ -4,29 +4,10 @@ module Hancock
|
|
4
4
|
module EmbeddedElement
|
5
5
|
extend ActiveSupport::Concern
|
6
6
|
|
7
|
-
include Hancock::EmbeddedFindable
|
8
|
-
|
9
7
|
included do
|
10
8
|
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
|
-
|
28
9
|
end
|
29
|
-
|
10
|
+
|
30
11
|
end
|
31
12
|
end
|
32
13
|
end
|