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
@@ -1,6 +1,5 @@
|
|
1
1
|
module Hancock::Errors
|
2
2
|
extend ActiveSupport::Concern
|
3
|
-
|
4
3
|
included do
|
5
4
|
if Rails.env.production? || Rails.env.staging? || (respond_to?(:hancock_check_errors) and hancock_check_errors)
|
6
5
|
rescue_from Exception, with: :render_500
|
@@ -26,10 +25,12 @@ module Hancock::Errors
|
|
26
25
|
unless exception.nil?
|
27
26
|
Rails.logger.error exception.message
|
28
27
|
Rails.logger.error exception.backtrace.join("\n")
|
29
|
-
|
28
|
+
capture_exception(exception) if defined?(Raven)
|
30
29
|
end
|
31
30
|
Rails.logger.error "__________________________"
|
32
31
|
if !user_signed_in?
|
32
|
+
#scope = rails_admin? ? main_app : self
|
33
|
+
#redirect_to scope.new_user_session_path, alert: "Необходимо авторизоваться"
|
33
34
|
authenticate_user!
|
34
35
|
else
|
35
36
|
if rails_admin? and can?(:access, :rails_admin)
|
@@ -42,7 +43,7 @@ module Hancock::Errors
|
|
42
43
|
end
|
43
44
|
|
44
45
|
rescue_from ActionController::InvalidAuthenticityToken do |exception|
|
45
|
-
|
46
|
+
redirect_to :back, alert: t('hancock.errors.form_expired')
|
46
47
|
end
|
47
48
|
end
|
48
49
|
|
@@ -55,7 +56,7 @@ module Hancock::Errors
|
|
55
56
|
unless exception.nil?
|
56
57
|
Rails.logger.error exception.message
|
57
58
|
Rails.logger.error exception.backtrace.join("\n")
|
58
|
-
|
59
|
+
capture_exception(exception) if defined?(Raven)
|
59
60
|
end
|
60
61
|
Rails.logger.error "__________________________".freeze
|
61
62
|
render_error(404)
|
@@ -74,7 +75,7 @@ module Hancock::Errors
|
|
74
75
|
Rails.logger.error "__________________________".freeze
|
75
76
|
begin
|
76
77
|
if rails_admin?
|
77
|
-
render
|
78
|
+
render text: t('hancock.errors.internal_error_full', klass: exception.class.name, message: exception.message), status: 500
|
78
79
|
return
|
79
80
|
end
|
80
81
|
rescue Exception => e
|
@@ -89,5 +90,5 @@ module Hancock::Errors
|
|
89
90
|
def render_error(code = 500)
|
90
91
|
render template: "hancock/errors/error_#{code}", formats: [:html], handlers: [:slim], layout: Hancock.config.error_layout, status: code
|
91
92
|
end
|
92
|
-
|
93
|
+
|
93
94
|
end
|
@@ -1,15 +1,20 @@
|
|
1
1
|
class Hancock::RegistrationsController < Devise::RegistrationsController
|
2
2
|
prepend_before_action :check_recaptcha, only: [:create]
|
3
3
|
|
4
|
-
|
4
|
+
private
|
5
5
|
def check_recaptcha
|
6
6
|
if Hancock.config.recaptcha_support and (!Rails.env.development? or Hancock.config.captcha_on_development)
|
7
|
-
|
7
|
+
if verify_recaptcha
|
8
|
+
true
|
9
|
+
else
|
8
10
|
self.resource = resource_class.new sign_up_params
|
9
11
|
self.resource.valid?
|
10
12
|
@recaptcha_error = "Вы робот?".freeze
|
11
13
|
respond_with_navigational(resource) { render :new }
|
12
14
|
end
|
15
|
+
|
16
|
+
else
|
17
|
+
true
|
13
18
|
end
|
14
19
|
end
|
15
20
|
|
@@ -1,17 +1,21 @@
|
|
1
1
|
class Hancock::SessionsController < Devise::SessionsController
|
2
2
|
prepend_before_action :check_recaptcha, only: [:create]
|
3
|
-
prepend_before_action :require_no_authentication, :only => [ :new, :create ]
|
4
3
|
|
5
|
-
|
4
|
+
private
|
6
5
|
def check_recaptcha
|
7
6
|
if Hancock.config.recaptcha_support and (!Rails.env.development? or Hancock.config.captcha_on_development)
|
8
|
-
|
7
|
+
if verify_recaptcha
|
8
|
+
true
|
9
|
+
else
|
9
10
|
self.resource = resource_class.new sign_in_params
|
10
11
|
resource.errors.add(:email, "Неверный e-mail или пароль".freeze)
|
11
12
|
resource.errors.add(:password, "Неверный e-mail или пароль".freeze)
|
12
13
|
@recaptcha_error = "Вы робот?".freeze
|
13
14
|
respond_with_navigational(resource) { render :new }
|
14
15
|
end
|
16
|
+
|
17
|
+
else
|
18
|
+
true
|
15
19
|
end
|
16
20
|
end
|
17
21
|
|
@@ -15,7 +15,7 @@ module Hancock::PoweredHelper
|
|
15
15
|
# "hancock-goto-disabled": true
|
16
16
|
# }
|
17
17
|
# }
|
18
|
-
# ret << link_to("Hancock CMS", "
|
18
|
+
# ret << link_to("Hancock CMS", "http://hancock.redrocks.pro/", _attrs)
|
19
19
|
# ret.join.html_safe
|
20
20
|
# end
|
21
21
|
# end
|
@@ -29,12 +29,12 @@ module Hancock::PoweredHelper
|
|
29
29
|
_attrs = {
|
30
30
|
class: "created_by",
|
31
31
|
target: "_blank",
|
32
|
-
title: "
|
32
|
+
title: "Hancock Creative studio",
|
33
33
|
data: {
|
34
34
|
"hancock-goto-disabled": true
|
35
35
|
}
|
36
36
|
}.freeze
|
37
|
-
ret << link_to("Redrocks studio".freeze, "
|
37
|
+
ret << link_to("Redrocks studio".freeze, "http://redrocks.pro/".freeze, _attrs)
|
38
38
|
ret.join.html_safe
|
39
39
|
end
|
40
40
|
end
|
@@ -1,13 +1,11 @@
|
|
1
1
|
module Hancock::BooleanField
|
2
2
|
extend ActiveSupport::Concern
|
3
|
-
|
4
|
-
class_methods do
|
5
|
-
|
3
|
+
module ClassMethods
|
6
4
|
def boolean_field(name, default = true)
|
7
5
|
if default.is_a?(Hash)
|
8
6
|
default = default[:default]
|
9
7
|
end
|
10
|
-
|
8
|
+
|
11
9
|
if Hancock.mongoid?
|
12
10
|
field name, type: Mongoid::Boolean, default: default
|
13
11
|
end
|
@@ -18,9 +16,6 @@ module Hancock::BooleanField
|
|
18
16
|
elsif name == 'enabled'
|
19
17
|
scope :disabled, -> { where(enabled: false) }
|
20
18
|
end
|
21
|
-
|
22
19
|
end
|
23
|
-
|
24
20
|
end
|
25
|
-
|
26
21
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
if Hancock.mongoid?
|
2
|
+
|
3
|
+
module Hancock::Cacheable
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
field :cache_keys_str, type: String, default: -> { default_cache_keys.join("\n") }
|
8
|
+
def self.default_cache_keys
|
9
|
+
[]
|
10
|
+
end
|
11
|
+
def default_cache_keys
|
12
|
+
self.class.default_cache_keys
|
13
|
+
end
|
14
|
+
|
15
|
+
def cache_keys
|
16
|
+
cache_keys_str.split(/\s+/).map { |k| k.strip }.reject { |k| k.blank? }
|
17
|
+
end
|
18
|
+
field :perform_caching, type: Boolean, default: true
|
19
|
+
|
20
|
+
after_save :clear_cache
|
21
|
+
after_destroy :clear_cache
|
22
|
+
def clear_cache
|
23
|
+
if perform_caching
|
24
|
+
cache_keys.each do |k|
|
25
|
+
Rails.cache.delete(k)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -3,7 +3,15 @@ module Hancock::Decorators
|
|
3
3
|
extend ActiveSupport::Concern
|
4
4
|
|
5
5
|
included do
|
6
|
-
|
6
|
+
|
7
|
+
# def image_styles
|
8
|
+
# super
|
9
|
+
# end
|
10
|
+
#
|
11
|
+
# def image_jcrop_options
|
12
|
+
# super
|
13
|
+
# end
|
14
|
+
#
|
7
15
|
# ############# rails_admin ##############
|
8
16
|
# def self.rails_admin_add_fields
|
9
17
|
# [] #super
|
@@ -2,7 +2,7 @@ if Hancock.mongoid?
|
|
2
2
|
module Hancock::HashField
|
3
3
|
extend ActiveSupport::Concern
|
4
4
|
|
5
|
-
|
5
|
+
module ClassMethods
|
6
6
|
def hancock_cms_hash_field(name, opts = {})
|
7
7
|
opts.merge!({type: Hash, default: {}})
|
8
8
|
field "#{name}_hash", opts
|
@@ -14,7 +14,7 @@ if Hancock.mongoid?
|
|
14
14
|
if opts[:localize]
|
15
15
|
meth_str_t = "#{meth_str}_translations".freeze
|
16
16
|
meth_hsh_t = "#{meth_hsh}_translations".freeze
|
17
|
-
class_eval <<-
|
17
|
+
class_eval <<-EVAL
|
18
18
|
def #{meth_str_t}=(val)
|
19
19
|
return self.#{meth_hsh_t} = {} if val.blank?
|
20
20
|
_hash = {}
|
@@ -63,10 +63,10 @@ if Hancock.mongoid?
|
|
63
63
|
end
|
64
64
|
true
|
65
65
|
end
|
66
|
-
|
66
|
+
EVAL
|
67
67
|
|
68
68
|
else
|
69
|
-
class_eval <<-
|
69
|
+
class_eval <<-EVAL
|
70
70
|
def #{meth_str}=(val)
|
71
71
|
return self.#{meth_hsh} = {} if val.blank?
|
72
72
|
if val.is_a?(String)
|
@@ -105,10 +105,9 @@ if Hancock.mongoid?
|
|
105
105
|
true
|
106
106
|
end
|
107
107
|
end
|
108
|
-
|
109
|
-
end
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
108
|
+
EVAL
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
113
112
|
end
|
114
113
|
end
|
@@ -2,7 +2,7 @@ if Hancock.mongoid?
|
|
2
2
|
module Hancock::HtmlField
|
3
3
|
extend ActiveSupport::Concern
|
4
4
|
|
5
|
-
|
5
|
+
module ClassMethods
|
6
6
|
def hancock_cms_html_field(name, opts = {})
|
7
7
|
clear_by_default = opts.delete(:clear_by_default)
|
8
8
|
clear_by_default = false unless clear_by_default == true
|
@@ -12,9 +12,7 @@ if Hancock.mongoid?
|
|
12
12
|
field _html_field_name, opts
|
13
13
|
field "#{name}_clear", type: Boolean, default: clear_by_default, localize: opts[:localize]
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
class_eval <<-RUBY
|
15
|
+
class_eval <<-EVAL
|
18
16
|
def #{name}
|
19
17
|
self.#{_html_field_name} ||= ""
|
20
18
|
return self.#{_html_field_name} unless self.#{name}_clear
|
@@ -28,9 +26,8 @@ if Hancock.mongoid?
|
|
28
26
|
self.#{_html_field_name} ||= ""
|
29
27
|
Rails::Html::FullSanitizer.new.sanitize(self.#{_html_field_name}.strip)
|
30
28
|
end
|
31
|
-
|
29
|
+
EVAL
|
32
30
|
end
|
33
31
|
end
|
34
|
-
|
35
32
|
end
|
36
33
|
end
|
@@ -1,14 +1,12 @@
|
|
1
1
|
module Hancock::ModelLocalizeable
|
2
2
|
extend ActiveSupport::Concern
|
3
3
|
|
4
|
-
|
5
|
-
|
4
|
+
module ClassMethods
|
6
5
|
def convert2localize
|
7
6
|
self.all.to_a.map do |p|
|
8
7
|
p.convert2localize
|
9
8
|
end
|
10
9
|
end
|
11
|
-
|
12
10
|
end
|
13
11
|
|
14
12
|
def convert2localize(save_it = true)
|
@@ -32,5 +30,4 @@ module Hancock::ModelLocalizeable
|
|
32
30
|
end
|
33
31
|
self.save if save_it
|
34
32
|
end
|
35
|
-
|
36
33
|
end
|
@@ -5,25 +5,9 @@ module Hancock::RailsAdminPatch
|
|
5
5
|
self.class.rails_admin_model
|
6
6
|
end
|
7
7
|
|
8
|
-
|
9
|
-
self.class.admin_can_actions
|
10
|
-
end
|
11
|
-
def admin_cannot_actions
|
12
|
-
self.class.admin_cannot_actions
|
13
|
-
end
|
14
|
-
def manager_can_actions
|
15
|
-
self.class.manager_can_actions
|
16
|
-
end
|
17
|
-
def manager_cannot_actions
|
18
|
-
self.class.manager_cannot_actions
|
19
|
-
end
|
20
|
-
|
21
|
-
class_methods do
|
8
|
+
module ClassMethods
|
22
9
|
def rails_admin_model
|
23
|
-
|
24
|
-
end
|
25
|
-
def rails_admin_param_key
|
26
|
-
name.split('::').collect(&:underscore).join('_')
|
10
|
+
to_param.gsub("::", "~").underscore
|
27
11
|
end
|
28
12
|
|
29
13
|
def rails_admin_add_fields
|
@@ -33,9 +17,6 @@ module Hancock::RailsAdminPatch
|
|
33
17
|
def rails_admin_add_config(config)
|
34
18
|
end
|
35
19
|
|
36
|
-
def rails_admin_name_synonyms
|
37
|
-
''.freeze
|
38
|
-
end
|
39
20
|
|
40
21
|
|
41
22
|
def admin_can_default_actions
|
@@ -76,7 +57,7 @@ module Hancock::RailsAdminPatch
|
|
76
57
|
(manager_can_default_actions + manager_can_add_actions + manager_can_user_defined_actions).uniq.freeze
|
77
58
|
end
|
78
59
|
def manager_cannot_default_actions
|
79
|
-
[
|
60
|
+
[].freeze
|
80
61
|
end
|
81
62
|
def manager_cannot_add_actions
|
82
63
|
[].freeze
|
@@ -1,17 +1,12 @@
|
|
1
1
|
module Hancock::SortField
|
2
2
|
extend ActiveSupport::Concern
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
def sort_field(prefix = '', opts = {type: Integer, default: 0})
|
7
|
-
if prefix.is_a?(Hash)
|
8
|
-
opts = prefix
|
9
|
-
prefix = opts.delete(:prefix) || ""
|
10
|
-
end
|
4
|
+
module ClassMethods
|
5
|
+
def sort_field(prefix = '')
|
11
6
|
prefix = "#{prefix}_" unless prefix == ''
|
12
7
|
|
13
8
|
if Hancock.mongoid?
|
14
|
-
field "#{prefix}order".to_sym,
|
9
|
+
field "#{prefix}order".to_sym, type: Integer
|
15
10
|
alias_method "#{prefix}sort", "#{prefix}order"
|
16
11
|
scope "#{prefix}ordered".to_sym, -> { asc("#{prefix}order".to_sym) }
|
17
12
|
scope "#{prefix}sorted".to_sym, -> { asc("#{prefix}order".to_sym) }
|
@@ -20,24 +15,6 @@ module Hancock::SortField
|
|
20
15
|
scope "#{prefix}ordered".to_sym, -> { order("#{prefix}order".to_sym => :asc) }
|
21
16
|
scope "#{prefix}sorted".to_sym, -> { order("#{prefix}order".to_sym => :asc) }
|
22
17
|
end
|
23
|
-
|
24
|
-
|
25
|
-
class_eval <<-RUBY
|
26
|
-
def set_default_#{prefix}order_value
|
27
|
-
if (_embed_method = self.try(:embed_method_for_parent))
|
28
|
-
begin
|
29
|
-
if (self.#{prefix}order.nil? or self.#{prefix}order == 0) and (_parent = self._parent)
|
30
|
-
self.#{prefix}order = _parent.send(_embed_method).max("#{prefix}order").to_i + 1
|
31
|
-
end
|
32
|
-
rescue
|
33
|
-
end
|
34
|
-
end
|
35
|
-
self.#{prefix}order ||= 0
|
36
|
-
self
|
37
|
-
end
|
38
|
-
RUBY
|
39
18
|
end
|
40
|
-
|
41
19
|
end
|
42
|
-
|
43
20
|
end
|
@@ -1 +1 @@
|
|
1
|
-
p = Settings.copyright(default: "© Copyright {{year|
|
1
|
+
p = Settings.copyright(default: "© Copyright {{year|2016}} | Etc", kind: :html).html_safe
|
@@ -1,3 +1,4 @@
|
|
1
|
+
/ h2 Change your password
|
1
2
|
.devise-box
|
2
3
|
.white-box
|
3
4
|
= simple_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f|
|
@@ -14,6 +15,7 @@
|
|
14
15
|
|
15
16
|
.form-group
|
16
17
|
/ = f.label :password_confirmation
|
18
|
+
/ br
|
17
19
|
/ .form-control = f.password_field :password_confirmation, label: I18n.t("shared.password_confirmation"), autocomplete: "off", placeholder: I18n.t("shared.password_confirmation")
|
18
20
|
= f.input :password_confirmation, as: :password, autocomplete: 'off', title: I18n.t("shared.password_confirmation"), placeholder: I18n.t("shared.password_confirmation"), label: false, wrapper_html: {class: "form-control"}
|
19
21
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
/ h2 Forgot your password?
|
1
2
|
.devise-box
|
2
3
|
.white-box
|
3
4
|
= simple_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f|
|
@@ -5,6 +6,7 @@
|
|
5
6
|
h2.title Забыли пароль?
|
6
7
|
.form-group
|
7
8
|
/ = f.label :email
|
9
|
+
/ br/
|
8
10
|
/ .form-control = f.email_field :email, autofocus: true, placeholder: I18n.t("shared.email")
|
9
11
|
= f.input :email, as: :email, autocomplete: 'off', title: I18n.t("shared.email"), placeholder: I18n.t("shared.email"), label: false, wrapper_html: {class: "form-control"}
|
10
12
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
/ h2 Редактирование профиля
|
1
2
|
.devise-box
|
2
3
|
.white-box
|
3
4
|
= simple_form_for(resource, as: resource_name, url: user_registration_path) do |f|
|
@@ -17,6 +18,7 @@
|
|
17
18
|
|
18
19
|
.form-group
|
19
20
|
/ = f.label :password_confirmation
|
21
|
+
/ br
|
20
22
|
/ .form-control = f.password_field :password_confirmation, label: I18n.t("shared.password_confirmation"), autocomplete: "off", placeholder: I18n.t("shared.password_confirmation")
|
21
23
|
= f.input :password_confirmation, as: :password, autocomplete: 'off', title: I18n.t("shared.password_confirmation"), placeholder: I18n.t("shared.password_confirmation"), label: false, wrapper_html: {class: "form-control"}
|
22
24
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
/h2 Регистрация
|
1
2
|
.devise-box
|
2
3
|
.white-box
|
3
4
|
= simple_form_for(resource, as: resource_name, url: user_registration_path) do |f|
|
@@ -17,6 +18,7 @@
|
|
17
18
|
|
18
19
|
.form-group
|
19
20
|
/ = f.label :password_confirmation
|
21
|
+
/ br
|
20
22
|
/ .form-control = f.password_field :password_confirmation, label: I18n.t("shared.password_confirmation"), autocomplete: "off", placeholder: I18n.t("shared.password_confirmation")
|
21
23
|
= f.input :password_confirmation, as: :password, autocomplete: 'off', title: I18n.t("shared.password_confirmation"), placeholder: I18n.t("shared.password_confirmation"), label: false, wrapper_html: {class: "form-control"}
|
22
24
|
|
@@ -6,28 +6,19 @@ html lang="ru"
|
|
6
6
|
title= yield(:title) || page_title
|
7
7
|
= yield :meta
|
8
8
|
= csrf_meta_tags
|
9
|
-
|
10
|
-
|
11
|
-
/ = render partial: 'blocks/favicon'
|
12
|
-
|
9
|
+
= render partial: 'blocks/favicon'
|
10
|
+
|
13
11
|
- async = false #Rails.env.production?
|
14
|
-
|
15
|
-
=
|
16
|
-
= javascript_include_tag "application", async: async, defer: defer
|
12
|
+
= stylesheet_link_tag "application", media: "all", async: async
|
13
|
+
= javascript_include_tag "application", async: async
|
17
14
|
/[if lt IE 9]
|
18
|
-
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", async: async
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
javascript:
|
24
|
-
#{{Settings.ns('application_layout').custom_js(default: '', kind: :js, label: "Дополнительный JS", cache_keys: _cache_key)}}
|
15
|
+
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", async: async
|
16
|
+
css:
|
17
|
+
#{Settings.custom_css(default: '', kind: :css, label: "Дополнительный CSS")}
|
18
|
+
javascript:
|
19
|
+
#{Settings.custom_js(default: '', kind: :js, label: "Дополнительный JS")}
|
25
20
|
|
26
|
-
body{class="
|
27
|
-
|
28
|
-
- cache 'preloader', skip_digest: true do
|
29
|
-
= render partial: 'blocks/preloader'
|
30
|
-
|
21
|
+
body{class="#{controller_name} #{action_name} #{controller_name}_#{action_name}"}
|
31
22
|
#root role="main"
|
32
23
|
|
33
24
|
header#header
|
@@ -41,4 +32,4 @@ html lang="ru"
|
|
41
32
|
footer#footer
|
42
33
|
= render partial: 'blocks/footer'
|
43
34
|
|
44
|
-
= render partial: 'hancock/toplink/toplink'
|
35
|
+
= render partial: 'hancock/toplink/toplink'
|
@@ -6,16 +6,13 @@ html lang="ru"
|
|
6
6
|
title= yield(:title) || page_title
|
7
7
|
= yield :meta
|
8
8
|
= csrf_meta_tags
|
9
|
-
|
10
|
-
/ - cache 'favicons', skip_digest: true do
|
11
|
-
/ = render partial: 'blocks/favicon'
|
9
|
+
= render partial: 'blocks/favicon'
|
12
10
|
|
13
11
|
- async = false #Rails.env.production?
|
14
|
-
|
15
|
-
=
|
16
|
-
= javascript_include_tag "application", defer: defer
|
12
|
+
= stylesheet_link_tag "application", media: "all", async: async
|
13
|
+
= javascript_include_tag "application", async: async
|
17
14
|
/[if lt IE 9]
|
18
|
-
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js",
|
15
|
+
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", async: async
|
19
16
|
|
20
17
|
body
|
21
18
|
#preloader
|
@@ -6,16 +6,13 @@ html lang="ru"
|
|
6
6
|
title= yield(:title) || page_title
|
7
7
|
= yield :meta
|
8
8
|
= csrf_meta_tags
|
9
|
-
|
10
|
-
/ - cache 'favicons', skip_digest: true do
|
11
|
-
/ = render partial: 'blocks/favicon'
|
9
|
+
= render partial: 'blocks/favicon'
|
12
10
|
|
13
11
|
- async = false #Rails.env.production?
|
14
|
-
|
15
|
-
=
|
16
|
-
= javascript_include_tag "application", defer: defer
|
12
|
+
= stylesheet_link_tag "application", media: "all", async: async
|
13
|
+
= javascript_include_tag "application", async: async
|
17
14
|
/[if lt IE 9]
|
18
|
-
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js",
|
15
|
+
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", async: async
|
19
16
|
|
20
17
|
body
|
21
18
|
#preloader
|
@@ -6,16 +6,13 @@ html lang="ru"
|
|
6
6
|
title= yield(:title) || page_title
|
7
7
|
= yield :meta
|
8
8
|
= csrf_meta_tags
|
9
|
-
|
10
|
-
/ - cache 'favicons', skip_digest: true do
|
11
|
-
/ = render partial: 'blocks/favicon'
|
9
|
+
= render partial: 'blocks/favicon'
|
12
10
|
|
13
11
|
- async = false #Rails.env.production?
|
14
|
-
|
15
|
-
=
|
16
|
-
= javascript_include_tag "application", defer: defer
|
12
|
+
= stylesheet_link_tag "application", media: "all", async: async
|
13
|
+
= javascript_include_tag "application", async: async
|
17
14
|
/[if lt IE 9]
|
18
|
-
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js",
|
15
|
+
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", async: async
|
19
16
|
|
20
17
|
body
|
21
18
|
#preloader
|
@@ -6,16 +6,13 @@ html lang="ru"
|
|
6
6
|
title= yield(:title) || page_title
|
7
7
|
= yield :meta
|
8
8
|
= csrf_meta_tags
|
9
|
-
|
10
|
-
/ - cache 'favicons', skip_digest: true do
|
11
|
-
/ = render partial: 'blocks/favicon'
|
9
|
+
= render partial: 'blocks/favicon'
|
12
10
|
|
13
11
|
- async = false #Rails.env.production?
|
14
|
-
|
15
|
-
=
|
16
|
-
= javascript_include_tag "application", defer: defer
|
12
|
+
= stylesheet_link_tag "application", media: "all", async: async
|
13
|
+
= javascript_include_tag "application", async: async
|
17
14
|
/[if lt IE 9]
|
18
|
-
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js",
|
15
|
+
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", async: async
|
19
16
|
|
20
17
|
body
|
21
18
|
#preloader
|