hancock_cms 1.0.2.3 → 2.0.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/.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
|