enjoy_cms 0.3.7.4 → 0.4.0.beta3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.ruby-version +1 -1
- data/Gemfile.lock +62 -111
- data/app/assets/javascripts/{enjoy_cms → enjoy/cms}/flash.coffee +0 -0
- data/app/assets/javascripts/enjoy/cms/init.coffee +1 -0
- data/app/assets/javascripts/{enjoy_cms → enjoy/cms}/map.coffee +0 -0
- data/app/assets/javascripts/enjoy/cms.coffee +11 -0
- data/app/assets/javascripts/enjoy/rails_admin/cms.ui.coffee +26 -0
- data/app/assets/javascripts/{enjoy_cms → enjoy}/rails_admin/custom/ui.coffee +0 -0
- data/app/assets/javascripts/rails_admin/custom/ui.coffee +2 -2
- data/app/assets/stylesheets/{enjoy_cms → enjoy/cms}/flash.sass +0 -0
- data/app/assets/stylesheets/{enjoy_cms → enjoy/cms}/normalize.scss +0 -0
- data/app/assets/stylesheets/{enjoy_cms → enjoy/cms}/powered.sass +0 -0
- data/app/assets/stylesheets/{enjoy_cms.sass → enjoy/cms.sass} +3 -1
- data/app/assets/stylesheets/enjoy/rails_admin/cms.ui.sass +117 -0
- data/{lib/enjoy/controllers/sitemap_data.rb → app/assets/stylesheets/enjoy/rails_admin/custom/ui.sass} +0 -0
- data/app/assets/stylesheets/rails_admin/custom/theming.sass +2 -0
- data/app/controllers/concerns/enjoy/errors.rb +1 -1
- data/app/controllers/enjoy/registrations_controller.rb +20 -0
- data/app/controllers/enjoy/sessions_controller.rb +19 -0
- data/app/helpers/enjoy/home_helper.rb +2 -0
- data/app/helpers/enjoy/powered_helper.rb +1 -1
- data/app/models/concerns/enjoy/html_field.rb +3 -0
- data/app/views/blocks/_favicon.html.slim +60 -21
- data/app/views/devise/registrations/edit.html.slim +2 -2
- data/app/views/devise/registrations/new.html.slim +9 -3
- data/app/views/devise/sessions/new.html.slim +8 -2
- data/app/views/devise/shared/_links.html.slim +4 -4
- data/app/views/{errors → enjoy/errors}/_base.html.slim +0 -0
- data/app/views/{errors → enjoy/errors}/error_403.html.slim +0 -0
- data/app/views/{errors → enjoy/errors}/error_404.html.slim +0 -0
- data/app/views/{errors → enjoy/errors}/error_500.html.slim +0 -0
- data/app/views/{simple_captcha → enjoy/simple_captcha}/_simple_captcha.html.slim +0 -0
- data/app/views/layouts/application.html.slim +8 -4
- data/app/views/layouts/enjoy/devise/confirmations.html.slim +27 -0
- data/app/views/layouts/enjoy/devise/passwords.html.slim +27 -0
- data/app/views/layouts/enjoy/devise/registrations.html.slim +27 -0
- data/app/views/layouts/enjoy/devise/sessions.html.slim +27 -0
- data/app/views/layouts/enjoy/devise/unlocks.html.slim +27 -0
- data/app/views/rails_admin/main/_setting_value.html.haml +104 -0
- data/app/views/shared/_messages.html.slim +1 -1
- data/config/initializers/simple_captcha.rb +29 -20
- data/config/locales/en.enjoy.yml +1 -1
- data/config/locales/ru.enjoy.yml +0 -7
- data/config/locales/ru.models.yml +2 -39
- data/enjoy_cms.gemspec +7 -20
- data/lib/enjoy/configuration.rb +24 -40
- data/lib/enjoy/controller.rb +5 -3
- data/lib/enjoy/engine.rb +28 -28
- data/lib/enjoy/migration.rb +0 -19
- data/lib/enjoy/model.rb +5 -2
- data/lib/enjoy/rails_admin_ext/config.rb +112 -0
- data/lib/enjoy/rails_admin_ext/enjoy_hash.rb +0 -2
- data/lib/enjoy/rails_admin_ext/enjoy_slugs.rb +31 -0
- data/lib/enjoy/rails_admin_ext/group_patch.rb +2 -1
- data/lib/enjoy/rails_admin_settings_patch.rb +7 -0
- data/lib/enjoy/routes.rb +1 -26
- data/lib/enjoy/version.rb +1 -1
- data/lib/enjoy_cms.rb +25 -71
- data/lib/filename_to_slug.rb +20 -22
- data/lib/generators/enjoy/{ability_generator.rb → cms/ability_generator.rb} +3 -3
- data/lib/generators/enjoy/{admin_generator.rb → cms/admin_generator.rb} +2 -2
- data/lib/generators/enjoy/cms/application_generator.rb +14 -0
- data/lib/generators/enjoy/cms/assets_generator.rb +35 -0
- data/lib/generators/enjoy/{config/install_generator.rb → cms/config_generator.rb} +3 -3
- data/lib/generators/enjoy/cms/gemfile_generator.rb +13 -0
- data/lib/generators/enjoy/{layout_generator.rb → cms/layout_generator.rb} +2 -2
- data/lib/generators/enjoy/cms/paperclip_optimizer_generator.rb +13 -0
- data/lib/generators/enjoy/cms/rack_generator.rb +12 -0
- data/lib/generators/enjoy/cms/robots_generator.rb +12 -0
- data/lib/generators/enjoy/cms/scripts_generator.rb +25 -0
- data/lib/generators/enjoy/cms/templates/Gemfile.erb +69 -0
- data/lib/generators/enjoy/cms/templates/ability.erb +45 -0
- data/lib/generators/enjoy/{templates → cms/templates}/admin.erb +5 -26
- data/lib/generators/enjoy/cms/templates/application.erb +42 -0
- data/lib/generators/enjoy/cms/templates/assets/javascripts/application.coffee.erb +1 -0
- data/lib/generators/enjoy/cms/templates/assets/stylesheets/application.sass.erb +15 -0
- data/lib/generators/enjoy/cms/templates/assets/stylesheets/enjoy/rails_admin/custom/ui.sass.erb +106 -0
- data/lib/generators/enjoy/cms/templates/enjoy_cms.erb +28 -0
- data/lib/generators/enjoy/cms/templates/paperclip_optimizer.erb +80 -0
- data/lib/generators/enjoy/cms/templates/rack.erb +15 -0
- data/lib/generators/enjoy/cms/templates/robots.txt.erb +4 -0
- data/lib/generators/enjoy/cms/templates/scripts/assets_precompile.sh +3 -0
- data/lib/generators/enjoy/cms/templates/scripts/bundle_production.sh +4 -0
- data/lib/generators/enjoy/cms/templates/scripts/db_dump.sh.erb +3 -0
- data/lib/generators/enjoy/cms/templates/scripts/db_restore.sh +3 -0
- data/lib/generators/enjoy/cms/templates/scripts/full_assets_precompile.sh +4 -0
- data/lib/generators/enjoy/cms/templates/scripts/restart_thru_kill.sh +3 -0
- data/lib/generators/enjoy/cms/templates/scripts/send_hup.sh +3 -0
- data/lib/generators/enjoy/cms/templates/scripts/send_usr2.sh +3 -0
- data/lib/generators/enjoy/cms/templates/unicorn.erb +57 -0
- data/lib/generators/enjoy/cms/templates/unicorn.god.erb +59 -0
- data/lib/generators/enjoy/cms/unicorn_god_generator.rb +15 -0
- data/lib/generators/enjoy/{utils.rb → cms/utils.rb} +1 -1
- data/lib/rails_admin/custom_show_in_app.rb +13 -13
- data/template.rb +197 -543
- metadata +73 -325
- data/app/assets/javascripts/enjoy_cms/contacts.coffee +0 -11
- data/app/assets/javascripts/enjoy_cms/rails_admin/cms.ui.coffee +0 -6
- data/app/assets/javascripts/enjoy_cms.coffee +0 -7
- data/app/controllers/concerns/enjoy/blocksetable.rb +0 -37
- data/app/controllers/concerns/enjoy/decorators/contacts.rb +0 -5
- data/app/controllers/concerns/enjoy/decorators/news.rb +0 -5
- data/app/controllers/concerns/enjoy/decorators/pages.rb +0 -5
- data/app/controllers/concerns/enjoy/decorators/search.rb +0 -5
- data/app/controllers/concerns/enjoy/nav_menu.rb +0 -91
- data/app/controllers/concerns/enjoy/seo_pages.rb +0 -90
- data/app/controllers/enjoy/contacts_controller.rb +0 -7
- data/app/controllers/enjoy/news_controller.rb +0 -7
- data/app/controllers/enjoy/pages_controller.rb +0 -7
- data/app/controllers/enjoy/search_controller.rb +0 -8
- data/app/mailers/enjoy/contact_mailer.rb +0 -17
- data/app/models/concerns/enjoy/connectable.rb +0 -36
- data/app/models/concerns/enjoy/decorators/contact_message.rb +0 -5
- data/app/models/concerns/enjoy/decorators/embedded_gallery_image.rb +0 -5
- data/app/models/concerns/enjoy/decorators/gallery.rb +0 -5
- data/app/models/concerns/enjoy/decorators/gallery_image.rb +0 -5
- data/app/models/concerns/enjoy/decorators/menu.rb +0 -5
- data/app/models/concerns/enjoy/decorators/news.rb +0 -5
- data/app/models/concerns/enjoy/decorators/page.rb +0 -5
- data/app/models/concerns/enjoy/decorators/page_block.rb +0 -5
- data/app/models/concerns/enjoy/decorators/page_blockset.rb +0 -5
- data/app/models/concerns/enjoy/decorators/seo.rb +0 -5
- data/app/models/concerns/enjoy/decorators/sitemap_data.rb +0 -5
- data/app/models/concerns/enjoy/mongoid_paperclip.rb +0 -51
- data/app/models/concerns/enjoy/seoable.rb +0 -36
- data/app/models/concerns/enjoy/sitemap_data_field.rb +0 -17
- data/app/models/enjoy/contact_message.rb +0 -16
- data/app/models/enjoy/embedded_gallery_image.rb +0 -16
- data/app/models/enjoy/gallery.rb +0 -13
- data/app/models/enjoy/gallery_image.rb +0 -13
- data/app/models/enjoy/menu.rb +0 -16
- data/app/models/enjoy/news.rb +0 -16
- data/app/models/enjoy/page.rb +0 -16
- data/app/models/enjoy/page_block.rb +0 -13
- data/app/models/enjoy/page_blockset.rb +0 -13
- data/app/models/enjoy/seo.rb +0 -16
- data/app/models/enjoy/sitemap_data.rb +0 -16
- data/app/views/enjoy/contact_mailer/new_message_email.html.slim +0 -15
- data/app/views/enjoy/contacts/_form.html.slim +0 -7
- data/app/views/enjoy/contacts/_form_with_wrapper.html.slim +0 -2
- data/app/views/enjoy/contacts/_success.html.slim +0 -3
- data/app/views/enjoy/contacts/index.html.slim +0 -4
- data/app/views/enjoy/contacts/new.html.slim +0 -4
- data/app/views/enjoy/contacts/sent.html.slim +0 -3
- data/app/views/enjoy/news/index.html.slim +0 -9
- data/app/views/enjoy/news/show.html.slim +0 -8
- data/app/views/enjoy/pages/show.html.slim +0 -1
- data/app/views/enjoy/search/index.html.slim +0 -19
- data/app/views/rails_admin/main/_enjoy_connectable.html.slim +0 -56
- data/config/locales/ru.kaminari.yml +0 -17
- data/config/locales/ru.simple_captcha.yml +0 -3
- data/config/locales/ru.simple_form.yml +0 -9
- data/lib/enjoy/admin/contact_message.rb +0 -42
- data/lib/enjoy/admin/embedded_gallery_image.rb +0 -38
- data/lib/enjoy/admin/gallery.rb +0 -44
- data/lib/enjoy/admin/gallery_image.rb +0 -31
- data/lib/enjoy/admin/menu.rb +0 -27
- data/lib/enjoy/admin/news.rb +0 -89
- data/lib/enjoy/admin/page.rb +0 -96
- data/lib/enjoy/admin/page_block.rb +0 -49
- data/lib/enjoy/admin/page_blockset.rb +0 -50
- data/lib/enjoy/admin/seo.rb +0 -41
- data/lib/enjoy/admin/sitemap_data.rb +0 -29
- data/lib/enjoy/controllers/contacts.rb +0 -86
- data/lib/enjoy/controllers/news.rb +0 -36
- data/lib/enjoy/controllers/pages.rb +0 -22
- data/lib/enjoy/controllers/search.rb +0 -62
- data/lib/enjoy/elastic_search.rb +0 -31
- data/lib/enjoy/models/active_record/contact_message.rb +0 -14
- data/lib/enjoy/models/active_record/menu.rb +0 -17
- data/lib/enjoy/models/active_record/news.rb +0 -26
- data/lib/enjoy/models/active_record/page.rb +0 -20
- data/lib/enjoy/models/active_record/seo.rb +0 -17
- data/lib/enjoy/models/active_record/sitemap_data.rb +0 -11
- data/lib/enjoy/models/contact_message.rb +0 -41
- data/lib/enjoy/models/embedded_gallery_image.rb +0 -13
- data/lib/enjoy/models/gallery.rb +0 -21
- data/lib/enjoy/models/gallery_image.rb +0 -19
- data/lib/enjoy/models/menu.rb +0 -23
- data/lib/enjoy/models/mongoid/contact_message.rb +0 -23
- data/lib/enjoy/models/mongoid/embedded_gallery_image.rb +0 -24
- data/lib/enjoy/models/mongoid/gallery.rb +0 -32
- data/lib/enjoy/models/mongoid/gallery_image.rb +0 -29
- data/lib/enjoy/models/mongoid/menu.rb +0 -20
- data/lib/enjoy/models/mongoid/news.rb +0 -37
- data/lib/enjoy/models/mongoid/page.rb +0 -49
- data/lib/enjoy/models/mongoid/page_block.rb +0 -56
- data/lib/enjoy/models/mongoid/page_blockset.rb +0 -20
- data/lib/enjoy/models/mongoid/seo.rb +0 -35
- data/lib/enjoy/models/mongoid/sitemap_data.rb +0 -25
- data/lib/enjoy/models/news.rb +0 -58
- data/lib/enjoy/models/page.rb +0 -92
- data/lib/enjoy/models/page_block.rb +0 -22
- data/lib/enjoy/models/page_blockset.rb +0 -24
- data/lib/enjoy/models/seo.rb +0 -17
- data/lib/enjoy/models/sitemap_data.rb +0 -17
- data/lib/enjoy/rails_admin_ext/enjoy_connectable.rb +0 -33
- data/lib/enjoy/rails_admin_ext/menu.rb +0 -147
- data/lib/generators/enjoy/capify_generator.rb +0 -39
- data/lib/generators/enjoy/config/templates/enjoy_cms.erb +0 -27
- data/lib/generators/enjoy/migration_generator.rb +0 -18
- data/lib/generators/enjoy/templates/Capfile +0 -17
- data/lib/generators/enjoy/templates/ability.erb +0 -48
- data/lib/generators/enjoy/templates/deploy.erb +0 -47
- data/lib/generators/enjoy/templates/dl.erb +0 -30
- data/lib/generators/enjoy/templates/migration_contact_messages.rb +0 -15
- data/lib/generators/enjoy/templates/migration_news.rb +0 -26
- data/lib/generators/enjoy/templates/migration_pages.rb +0 -45
- data/lib/generators/enjoy/templates/migration_seos.rb +0 -14
- data/lib/generators/enjoy/templates/production.erb +0 -8
- data/lib/generators/enjoy/templates/unicorn.erb +0 -66
data/enjoy_cms.gemspec
CHANGED
@@ -20,36 +20,23 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.add_development_dependency 'bundler'
|
21
21
|
spec.add_development_dependency 'rake'
|
22
22
|
|
23
|
-
spec.add_dependency 'rails', '4.2.
|
23
|
+
spec.add_dependency 'rails', '4.2.6' #'~> 5.0.0.rc1'
|
24
24
|
|
25
25
|
spec.add_dependency 'jquery-rails'
|
26
26
|
spec.add_dependency 'simple_form'
|
27
|
-
spec.add_dependency 'glebtv-simple_captcha'
|
27
|
+
# spec.add_dependency 'glebtv-simple_captcha'
|
28
|
+
# spec.add_dependency 'galetahub-simple_captcha'
|
28
29
|
spec.add_dependency 'coffee-rails'
|
29
30
|
spec.add_dependency 'devise'
|
30
|
-
|
31
|
-
spec.add_dependency '
|
31
|
+
|
32
|
+
spec.add_dependency 'ckeditor'
|
33
|
+
spec.add_dependency 'geocoder'
|
34
|
+
|
32
35
|
spec.add_dependency 'rails_admin', '~> 0.8.1'
|
33
36
|
spec.add_dependency 'rails_admin_nested_set'
|
34
37
|
spec.add_dependency 'rails_admin_toggleable'
|
35
38
|
|
36
|
-
spec.add_dependency 'ckeditor'
|
37
39
|
spec.add_dependency 'rails_admin_settings'
|
38
40
|
|
39
|
-
spec.add_dependency 'geocoder'
|
40
|
-
spec.add_dependency 'simple-navigation'
|
41
|
-
spec.add_dependency 'sitemap_generator'
|
42
41
|
spec.add_dependency 'kaminari'
|
43
|
-
spec.add_dependency 'addressable'
|
44
|
-
|
45
|
-
spec.add_dependency 'x-real-ip'
|
46
|
-
|
47
|
-
spec.add_dependency "rails_admin_mongoid_localize_field"
|
48
|
-
spec.add_dependency "ack_rails_admin_jcrop"
|
49
|
-
|
50
|
-
spec.add_dependency 'stringex'
|
51
|
-
spec.add_dependency 'thor'
|
52
|
-
spec.add_dependency 'smart_excerpt'
|
53
|
-
|
54
|
-
spec.add_dependency 'rails_admin_sort_embedded'
|
55
42
|
end
|
data/lib/enjoy/configuration.rb
CHANGED
@@ -11,61 +11,45 @@ module Enjoy
|
|
11
11
|
end
|
12
12
|
|
13
13
|
class Configuration
|
14
|
-
attr_accessor :news_image_styles
|
15
|
-
attr_accessor :news_per_page
|
16
|
-
attr_accessor :news_excerpt
|
17
|
-
attr_accessor :news_content_required
|
18
|
-
|
19
14
|
attr_accessor :main_index_layout
|
20
15
|
attr_accessor :error_layout
|
21
16
|
attr_accessor :menu_max_depth
|
22
17
|
|
23
|
-
attr_accessor :search_enabled
|
24
|
-
attr_accessor :search_per_page
|
25
|
-
attr_accessor :search_models
|
26
|
-
|
27
|
-
attr_accessor :contacts_captcha
|
28
|
-
attr_accessor :contacts_fields
|
29
|
-
attr_accessor :contacts_message_required
|
30
|
-
attr_accessor :contacts_captcha_error_message
|
31
|
-
|
32
18
|
attr_accessor :localize
|
33
19
|
|
34
|
-
attr_accessor :
|
20
|
+
attr_accessor :ability_manager_config
|
21
|
+
attr_accessor :ability_admin_config
|
35
22
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
}
|
41
|
-
@news_per_page = 10
|
42
|
-
@news_excerpt = 12
|
43
|
-
@news_content_required = true
|
23
|
+
attr_accessor :admin_enter_captcha
|
24
|
+
attr_accessor :registration_captcha
|
25
|
+
attr_accessor :recaptcha_support
|
26
|
+
attr_accessor :simple_captcha_support
|
44
27
|
|
28
|
+
def initialize
|
45
29
|
@main_index_layout = 'application'
|
46
30
|
@error_layout = 'application'
|
47
31
|
@menu_max_depth = 2
|
48
32
|
|
49
|
-
@
|
50
|
-
@search_per_page = 10
|
51
|
-
@search_models = []
|
52
|
-
|
53
|
-
@contacts_captcha = false
|
54
|
-
@contacts_fields = {}
|
55
|
-
@contacts_message_required = true
|
33
|
+
@localize = false
|
56
34
|
|
57
|
-
@
|
58
|
-
@
|
35
|
+
@ability_manager_config = []
|
36
|
+
@ability_manager_config << {
|
37
|
+
method: :can,
|
38
|
+
model: RailsAdminSettings::Setting,
|
39
|
+
actions: [:edit, :update]
|
40
|
+
}
|
41
|
+
@ability_admin_config = []
|
42
|
+
@ability_admin_config << {
|
43
|
+
method: :can,
|
44
|
+
model: RailsAdminSettings::Setting,
|
45
|
+
actions: :manage
|
46
|
+
}
|
59
47
|
|
60
|
-
@
|
61
|
-
|
48
|
+
@recaptcha_support = defined?(Recaptcha)
|
49
|
+
@simple_captcha_support = defined?(SimpleCaptcha)
|
62
50
|
|
63
|
-
|
64
|
-
@
|
65
|
-
if @search_enabled
|
66
|
-
@search_models << 'Page'
|
67
|
-
@search_models << 'News'
|
68
|
-
end
|
51
|
+
@admin_enter_captcha = @recaptcha_support or @simple_captcha_support
|
52
|
+
@registration_captcha = @admin_enter_captcha
|
69
53
|
end
|
70
54
|
end
|
71
55
|
end
|
data/lib/enjoy/controller.rb
CHANGED
@@ -2,10 +2,12 @@ module Enjoy::Controller
|
|
2
2
|
extend ActiveSupport::Concern
|
3
3
|
included do
|
4
4
|
include Enjoy::Errors
|
5
|
-
include Enjoy::SeoPages
|
6
|
-
include Enjoy::NavMenu
|
7
5
|
include Enjoy::Fancybox
|
8
|
-
|
6
|
+
if defined?(Enjoy::Pages)
|
7
|
+
include Enjoy::Pages::SeoPages
|
8
|
+
include Enjoy::Pages::NavMenu
|
9
|
+
include Enjoy::Pages::Blocksetable
|
10
|
+
end
|
9
11
|
protect_from_forgery with: :exception
|
10
12
|
helper_method :page_title
|
11
13
|
helper_method :hide_ym_ga
|
data/lib/enjoy/engine.rb
CHANGED
@@ -1,46 +1,46 @@
|
|
1
1
|
module Enjoy
|
2
|
-
|
3
|
-
|
2
|
+
class Engine < ::Rails::Engine
|
3
|
+
# isolate_namespace Enjoy
|
4
4
|
|
5
|
-
rake_tasks do
|
6
|
-
|
7
|
-
end
|
5
|
+
# rake_tasks do
|
6
|
+
# require File.expand_path('../tasks', __FILE__)
|
7
|
+
# end
|
8
8
|
|
9
9
|
initializer "enjoy_cms.email_defaults" do
|
10
10
|
# Write default email settings to DB so they can be changed.
|
11
11
|
|
12
12
|
#temp
|
13
|
-
begin
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
rescue
|
20
|
-
end
|
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
|
21
21
|
end
|
22
22
|
initializer 'enjoy_cms.paperclip' do
|
23
|
-
require 'paperclip/style'
|
24
|
-
module ::Paperclip
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
end
|
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
|
32
32
|
end
|
33
33
|
|
34
34
|
config.after_initialize do
|
35
35
|
# trigger autoload so models are registered in Mongoid::Elasticearch
|
36
|
-
Enjoy.config.search_models.map(&:constantize)
|
36
|
+
# Enjoy.config.search_models.map(&:constantize)
|
37
37
|
|
38
38
|
# Write default email settings to DB so they can be changed.
|
39
|
-
if Settings.table_exists?
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
end
|
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
|
+
# end
|
44
44
|
end
|
45
45
|
end
|
46
46
|
end
|
data/lib/enjoy/migration.rb
CHANGED
@@ -2,24 +2,6 @@ module Enjoy
|
|
2
2
|
module Migration
|
3
3
|
extend self
|
4
4
|
|
5
|
-
def seo_fields(t)
|
6
|
-
if Enjoy.config.localize
|
7
|
-
t.column :h1_translations, 'hstore', default: {}
|
8
|
-
t.column :title_translations, 'hstore', default: {}
|
9
|
-
t.column :keywords_translations, 'hstore', default: {}
|
10
|
-
t.column :description_translations, 'hstore', default: {}
|
11
|
-
t.column :og_title_translations, 'hstore', default: {}
|
12
|
-
else
|
13
|
-
t.string :h1
|
14
|
-
t.string :title
|
15
|
-
t.text :keywords
|
16
|
-
t.text :description
|
17
|
-
t.string :og_title
|
18
|
-
end
|
19
|
-
t.string :robots
|
20
|
-
t.attachment :og_image
|
21
|
-
end
|
22
|
-
|
23
5
|
def map_fields(t)
|
24
6
|
t.text :address
|
25
7
|
t.text :map_address
|
@@ -31,4 +13,3 @@ module Enjoy
|
|
31
13
|
end
|
32
14
|
end
|
33
15
|
end
|
34
|
-
|
data/lib/enjoy/model.rb
CHANGED
@@ -15,8 +15,10 @@ module Enjoy
|
|
15
15
|
include Enjoy::BooleanField
|
16
16
|
include Enjoy::SortField
|
17
17
|
|
18
|
-
|
19
|
-
|
18
|
+
if Enjoy.mongoid? and defined?(RailsAdminComments)
|
19
|
+
include RailsAdminComments::Commentable
|
20
|
+
include RailsAdminComments::ModelCommentable
|
21
|
+
end
|
20
22
|
|
21
23
|
if Enjoy.mongoid? && defined?(Trackable)
|
22
24
|
include Trackable
|
@@ -24,5 +26,6 @@ module Enjoy
|
|
24
26
|
|
25
27
|
include Enjoy::RailsAdminPatch
|
26
28
|
end
|
29
|
+
|
27
30
|
end
|
28
31
|
end
|
@@ -0,0 +1,112 @@
|
|
1
|
+
module Enjoy
|
2
|
+
class << self
|
3
|
+
def rails_admin_configuration
|
4
|
+
@rails_admin_configuration ||= RailsAdminConfiguration.new
|
5
|
+
end
|
6
|
+
def rails_admin_config
|
7
|
+
@rails_admin_configuration ||= RailsAdminConfiguration.new
|
8
|
+
end
|
9
|
+
def rails_admin_configure
|
10
|
+
yield rails_admin_configuration
|
11
|
+
end
|
12
|
+
|
13
|
+
def action_visible_for(action_name, model_name)
|
14
|
+
rails_admin_config.action_visible_for action_name, model_name
|
15
|
+
end
|
16
|
+
def action_unvisible_for(action_name, model_name)
|
17
|
+
rails_admin_config.action_unvisible_for action_name, model_name
|
18
|
+
end
|
19
|
+
|
20
|
+
def rails_admin_config_for_actions(actions)
|
21
|
+
rails_admin_config.actions_config(actions)
|
22
|
+
end
|
23
|
+
|
24
|
+
def cancancan_admin_rules(ability_object)
|
25
|
+
rails_admin_config.cancancan_admin_rules(ability_object)
|
26
|
+
end
|
27
|
+
def cancancan_manager_rules(ability_object)
|
28
|
+
rails_admin_config.cancancan_manager_rules(ability_object)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
class RailsAdminConfiguration
|
33
|
+
|
34
|
+
attr_reader :actions_list
|
35
|
+
attr_reader :actions_visibility
|
36
|
+
|
37
|
+
def initialize
|
38
|
+
@actions_list ||= []
|
39
|
+
@actions_visibility ||= {}
|
40
|
+
|
41
|
+
action_unvisible_for(:custom_show_in_app, Proc.new { false })
|
42
|
+
end
|
43
|
+
|
44
|
+
def add_action(action_name)
|
45
|
+
@actions_list << action_name
|
46
|
+
@actions_list.uniq
|
47
|
+
end
|
48
|
+
|
49
|
+
def remove_action(action_name)
|
50
|
+
@remove_action.delete remove_action
|
51
|
+
@actions_list.uniq
|
52
|
+
end
|
53
|
+
|
54
|
+
def action_visible_for(action_name, model_name)
|
55
|
+
action_name = action_name.to_sym
|
56
|
+
model_name = model_name.to_s
|
57
|
+
add_action(action_name) unless @actions_list.include?(action_name)
|
58
|
+
|
59
|
+
if model_name.is_a?(Proc)
|
60
|
+
@actions_visibility[action_name] = model_name
|
61
|
+
else
|
62
|
+
@actions_visibility[action_name] = [] if @actions_visibility[action_name].is_a?(Proc)
|
63
|
+
@actions_visibility[action_name] ||= []
|
64
|
+
@actions_visibility[action_name] << model_name.to_s
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def action_unvisible_for(action_name, model_name)
|
69
|
+
action_name = action_name.to_sym
|
70
|
+
model_name = model_name.to_s
|
71
|
+
add_action(action_name) unless @actions_list.include?(action_name)
|
72
|
+
|
73
|
+
if model_name.is_a?(Proc)
|
74
|
+
# @actions_visibility[action_name] = model_name
|
75
|
+
else
|
76
|
+
@actions_visibility[action_name] = [] if @actions_visibility[action_name].is_a?(Proc)
|
77
|
+
@actions_visibility[action_name] ||= []
|
78
|
+
@actions_visibility[action_name].delete model_name.to_s
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def actions_config(rails_admin_actions)
|
83
|
+
@actions_list.each do |action|
|
84
|
+
rails_admin_actions.send(action) do
|
85
|
+
visible do
|
86
|
+
if Enjoy.rails_admin_config.actions_visibility[action].is_a?(Proc)
|
87
|
+
Enjoy.rails_admin_config.actions_visibility[action]
|
88
|
+
else
|
89
|
+
Enjoy.rails_admin_config.actions_visibility[action].include? bindings[:abstract_model].model_name
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def cancancan_admin_rules(ability_object)
|
97
|
+
Enjoy.config.ability_admin_config.each do |config|
|
98
|
+
_model = config[:model]
|
99
|
+
_model = _model.constantize if _model.is_a?(String)
|
100
|
+
ability_object.send(config[:method], config[:actions], _model)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
def cancancan_manager_rules(ability_object)
|
104
|
+
Enjoy.config.ability_manager_config.each do |config|
|
105
|
+
_model = config[:model]
|
106
|
+
_model = _model.constantize if _model.is_a?(String)
|
107
|
+
ability_object.send(config[:method], config[:actions], _model)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
end
|
112
|
+
end
|
@@ -54,8 +54,6 @@ module RailsAdmin
|
|
54
54
|
|
55
55
|
register_instance_option :formatted_value do
|
56
56
|
if localized?
|
57
|
-
puts bindings[:object].send((hash_method.to_s + '_translations').to_sym)
|
58
|
-
puts '__'
|
59
57
|
_val = bindings[:object].send((hash_method.to_s + '_translations').to_sym)
|
60
58
|
_val.each_pair { |l, _hash|
|
61
59
|
begin
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'rails_admin/config/fields/types/enum'
|
2
|
+
|
3
|
+
module RailsAdmin
|
4
|
+
module Config
|
5
|
+
module Fields
|
6
|
+
module Types
|
7
|
+
class EnjoySlugs < 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 :enum_method do
|
12
|
+
:slugs
|
13
|
+
end
|
14
|
+
|
15
|
+
register_instance_option :visible do
|
16
|
+
bindings[:view].current_user.admin?
|
17
|
+
end
|
18
|
+
|
19
|
+
register_instance_option :multiple do
|
20
|
+
true
|
21
|
+
end
|
22
|
+
|
23
|
+
register_instance_option :pretty_value do
|
24
|
+
value.join("<br>").html_safe if value
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -8,7 +8,7 @@ module Enjoy::RailsAdminGroupPatch
|
|
8
8
|
config.group _group[:name] do
|
9
9
|
active (_group[:active] || false)
|
10
10
|
_group[:fields].each_pair do |name, type|
|
11
|
-
if type.
|
11
|
+
if type.blank?
|
12
12
|
field name
|
13
13
|
else
|
14
14
|
if type.is_a?(Array)
|
@@ -20,6 +20,7 @@ module Enjoy::RailsAdminGroupPatch
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
23
|
+
|
23
24
|
else
|
24
25
|
fields.each_pair do |name, type|
|
25
26
|
if type.nil?
|
data/lib/enjoy/routes.rb
CHANGED
@@ -3,40 +3,15 @@ module ActionDispatch::Routing
|
|
3
3
|
|
4
4
|
def enjoy_cms_routes(config = {})
|
5
5
|
routes_config = {
|
6
|
-
|
7
|
-
use_search_path: true,
|
8
|
-
use_news_path: true,
|
9
|
-
root_path: "home#index",
|
10
|
-
use_slug_path: true,
|
11
|
-
use_pages_path: true
|
6
|
+
root_path: "home#index"
|
12
7
|
}
|
13
8
|
routes_config.merge!(config)
|
14
9
|
|
15
10
|
scope module: 'enjoy' do
|
16
|
-
if routes_config[:use_contacts_path]
|
17
|
-
get 'contacts' => 'contacts#new', as: :enjoy_contacts
|
18
|
-
post 'contacts' => 'contacts#create', as: :create_enjoy_contacts
|
19
|
-
get 'contacts/sent' => 'contacts#sent', as: :enjoy_contacts_sent
|
20
|
-
end
|
21
|
-
|
22
|
-
if routes_config[:use_search_path]
|
23
|
-
get 'search' => 'search#index', as: :enjoy_search
|
24
|
-
end
|
25
|
-
|
26
|
-
if routes_config[:use_news_path]
|
27
|
-
resources :news, only: [:index, :show], as: :enjoy_news
|
28
|
-
end
|
29
11
|
|
30
12
|
if routes_config[:root_path]
|
31
13
|
root to: routes_config[:root_path]
|
32
14
|
end
|
33
|
-
|
34
|
-
if routes_config[:use_slug_path]
|
35
|
-
get '*slug' => 'pages#show'
|
36
|
-
end
|
37
|
-
if routes_config[:use_pages_path]
|
38
|
-
resources :pages, only: [:show], as: :enjoy_pages
|
39
|
-
end
|
40
15
|
end
|
41
16
|
|
42
17
|
end
|
data/lib/enjoy/version.rb
CHANGED
data/lib/enjoy_cms.rb
CHANGED
@@ -4,6 +4,7 @@ unless defined?(Enjoy) && Enjoy.respond_to?(:orm) && [:active_record, :mongoid].
|
|
4
4
|
end
|
5
5
|
|
6
6
|
require 'enjoy/version'
|
7
|
+
require 'enjoy/configuration'
|
7
8
|
require 'devise'
|
8
9
|
require 'enjoy/routes'
|
9
10
|
|
@@ -12,37 +13,32 @@ require 'enjoy/simple_form_patch'
|
|
12
13
|
|
13
14
|
require 'geocoder'
|
14
15
|
|
15
|
-
require '
|
16
|
-
require 'validates_email_format_of'
|
17
|
-
require 'smart_excerpt'
|
16
|
+
# require 'simple_captcha'
|
17
|
+
# require 'validates_email_format_of'
|
18
18
|
require 'filename_to_slug'
|
19
19
|
|
20
20
|
require 'rails_admin'
|
21
|
+
require 'enjoy/rails_admin_ext/config'
|
21
22
|
|
22
|
-
require 'enjoy/rails_admin_ext/enjoy_connectable'
|
23
23
|
require 'enjoy/rails_admin_ext/enjoy_hash'
|
24
24
|
require 'enjoy/rails_admin_ext/enjoy_html'
|
25
|
+
require 'enjoy/rails_admin_ext/enjoy_slugs'
|
25
26
|
require 'enjoy/rails_admin_ext/group_patch'
|
26
|
-
require 'enjoy/rails_admin_ext/menu'
|
27
27
|
|
28
28
|
require 'rails_admin_nested_set'
|
29
29
|
require 'rails_admin_toggleable'
|
30
|
+
|
30
31
|
require 'rails_admin_settings'
|
31
|
-
require '
|
32
|
+
require 'enjoy/rails_admin_settings_patch'
|
32
33
|
|
33
|
-
require 'x-real-ip'
|
34
|
+
# require 'x-real-ip'
|
34
35
|
|
35
36
|
require 'ckeditor'
|
36
37
|
|
37
|
-
require '
|
38
|
-
require '
|
39
|
-
require '
|
40
|
-
require 'turbolinks'
|
41
|
-
require 'simple-navigation'
|
42
|
-
require 'ack_rails_admin_jcrop'
|
38
|
+
# require 'kaminari'
|
39
|
+
# require 'addressable/uri'
|
40
|
+
# require 'turbolinks'
|
43
41
|
|
44
|
-
require 'enjoy/configuration'
|
45
|
-
require 'enjoy/elastic_search'
|
46
42
|
require 'enjoy/model'
|
47
43
|
require 'enjoy/engine'
|
48
44
|
require 'enjoy/controller'
|
@@ -62,83 +58,41 @@ module Enjoy
|
|
62
58
|
def orm_specific(name)
|
63
59
|
"#{model_namespace}::#{name}".constantize
|
64
60
|
end
|
61
|
+
|
62
|
+
def clear_history_from_empty_objects
|
63
|
+
::HistoryTracker.all.map do |h|
|
64
|
+
begin
|
65
|
+
begin
|
66
|
+
h.delete if h.trackable.nil?
|
67
|
+
rescue
|
68
|
+
h.delete
|
69
|
+
end
|
70
|
+
rescue
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
65
75
|
end
|
66
76
|
|
67
77
|
autoload :Migration, 'enjoy/migration'
|
68
78
|
|
69
|
-
# module Mongoid
|
70
|
-
# autoload :Paperclip 'enjoy/mongoid/paperlcip'
|
71
|
-
# end
|
72
|
-
|
73
79
|
autoload :Admin, 'enjoy/admin'
|
74
80
|
module Admin
|
75
|
-
autoload :SitemapData, 'enjoy/admin/sitemap_data'
|
76
|
-
autoload :Seo, 'enjoy/admin/seo'
|
77
|
-
autoload :Menu, 'enjoy/admin/menu'
|
78
|
-
autoload :Page, 'enjoy/admin/page'
|
79
|
-
autoload :News, 'enjoy/admin/news'
|
80
|
-
autoload :ContactMessage, 'enjoy/admin/contact_message'
|
81
|
-
|
82
81
|
autoload :EmbeddedElement, 'enjoy/admin/embedded_element'
|
83
|
-
|
84
|
-
autoload :EmbeddedGalleryImage, 'enjoy/admin/embedded_gallery_image'
|
85
|
-
autoload :GalleryImage, 'enjoy/admin/gallery_image'
|
86
|
-
autoload :Gallery, 'enjoy/admin/gallery'
|
87
|
-
|
88
|
-
autoload :PageBlock, 'enjoy/admin/page_block'
|
89
|
-
autoload :PageBlockset, 'enjoy/admin/page_blockset'
|
90
82
|
end
|
91
83
|
|
92
84
|
module Models
|
93
|
-
autoload :SitemapData, 'enjoy/models/sitemap_data'
|
94
|
-
autoload :Seo, 'enjoy/models/seo'
|
95
|
-
autoload :Menu, 'enjoy/models/menu'
|
96
|
-
autoload :Page, 'enjoy/models/page'
|
97
|
-
autoload :News, 'enjoy/models/news'
|
98
|
-
autoload :ContactMessage, 'enjoy/models/contact_message'
|
99
|
-
|
100
85
|
autoload :EmbeddedElement, 'enjoy/models/embedded_element'
|
101
86
|
|
102
|
-
autoload :EmbeddedGalleryImage, 'enjoy/models/embedded_gallery_image'
|
103
|
-
autoload :GalleryImage, 'enjoy/models/gallery_image'
|
104
|
-
autoload :Gallery, 'enjoy/models/gallery'
|
105
|
-
|
106
|
-
autoload :PageBlock, 'enjoy/models/page_block'
|
107
|
-
autoload :PageBlockset, 'enjoy/models/page_blockset'
|
108
|
-
|
109
87
|
module Mongoid
|
110
|
-
autoload :SitemapData, 'enjoy/models/mongoid/sitemap_data'
|
111
|
-
autoload :Seo, 'enjoy/models/mongoid/seo'
|
112
|
-
autoload :Menu, 'enjoy/models/mongoid/menu'
|
113
|
-
autoload :Page, 'enjoy/models/mongoid/page'
|
114
|
-
autoload :News, 'enjoy/models/mongoid/news'
|
115
|
-
autoload :ContactMessage, 'enjoy/models/mongoid/contact_message'
|
116
|
-
|
117
88
|
autoload :EmbeddedElement, 'enjoy/models/mongoid/embedded_element'
|
118
|
-
|
119
|
-
autoload :EmbeddedGalleryImage, 'enjoy/models/mongoid/embedded_gallery_image'
|
120
|
-
autoload :GalleryImage, 'enjoy/models/mongoid/gallery_image'
|
121
|
-
autoload :Gallery, 'enjoy/models/mongoid/gallery'
|
122
|
-
|
123
|
-
autoload :PageBlock, 'enjoy/models/mongoid/page_block'
|
124
|
-
autoload :PageBlockset, 'enjoy/models/mongoid/page_blockset'
|
125
89
|
end
|
126
90
|
|
127
91
|
module ActiveRecord
|
128
|
-
autoload :SitemapData, 'enjoy/models/active_record/sitemap_data'
|
129
|
-
autoload :Seo, 'enjoy/models/active_record/seo'
|
130
|
-
autoload :Menu, 'enjoy/models/active_record/menu'
|
131
|
-
autoload :Page, 'enjoy/models/active_record/page'
|
132
|
-
autoload :News, 'enjoy/models/active_record/news'
|
133
|
-
autoload :ContactMessage, 'enjoy/models/active_record/contact_message'
|
134
92
|
end
|
135
93
|
end
|
136
94
|
|
137
95
|
module Controllers
|
138
|
-
autoload :Contacts, 'enjoy/controllers/contacts'
|
139
|
-
autoload :News, 'enjoy/controllers/news'
|
140
|
-
autoload :Pages, 'enjoy/controllers/pages'
|
141
|
-
autoload :Search, 'enjoy/controllers/search'
|
142
96
|
end
|
143
97
|
end
|
144
98
|
|