hancock_cms 2.0.0.2 → 2.0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitattributes +4 -0
- data/app/assets/images/{devices → hancock/devise}/login-bg.jpg +0 -0
- data/app/assets/images/{rails-admin → hancock/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 +11 -37
- data/app/assets/javascripts/hancock/rails_admin/en_ru_switcher.coffee +90 -0
- data/app/assets/javascripts/hancock/rails_admin/enum_with_custom.coffee +42 -0
- data/app/assets/javascripts/hancock/rails_admin/form_controls_fixed.coffee +44 -0
- data/app/assets/javascripts/hancock/rails_admin/leftside_hider.coffee +106 -0
- data/app/assets/javascripts/hancock/rails_admin/multiselect.coffee +8 -0
- data/app/assets/javascripts/hancock/rails_admin/navigation_dropdown.coffee +25 -0
- data/app/assets/javascripts/hancock/rails_admin/navigation_filter.coffee +108 -0
- data/app/assets/javascripts/hancock/rails_admin/navigation_scroll.coffee +12 -0
- data/app/assets/javascripts/hancock/rails_admin/plugins.coffee.erb +16 -0
- data/app/assets/javascripts/jquery.placeholder.js +3 -2
- data/app/assets/javascripts/rails_admin/custom/ui.coffee +1 -0
- data/app/assets/stylesheets/hancock/cms/devise.sass +4 -1
- data/app/assets/stylesheets/hancock/rails_admin/cms.theming.sass +354 -147
- data/app/assets/stylesheets/hancock/rails_admin/fieldsets.sass +198 -0
- data/app/assets/stylesheets/hancock/rails_admin/plugins.sass.erb +6 -0
- data/app/assets/stylesheets/rails_admin/custom/theming.sass +1 -1
- data/app/controllers/concerns/hancock/decorators/home.rb +1 -1
- data/app/controllers/concerns/hancock/errors.rb +5 -7
- data/app/controllers/hancock/registrations_controller.rb +2 -7
- data/app/controllers/hancock/sessions_controller.rb +3 -7
- data/app/helpers/hancock/powered_helper.rb +3 -3
- data/app/helpers/hancock/settings_helper.rb +44 -0
- data/app/helpers/rails_admin/application/hancock_helper.rb +19 -0
- data/app/helpers/rails_admin/hancock/form_builder.rb +44 -0
- data/app/helpers/rails_admin/main/hancock_helper.rb +51 -0
- data/app/models/concerns/hancock/boolean_field.rb +7 -2
- data/app/models/concerns/hancock/decorators/embedded_element.rb +1 -9
- data/app/models/concerns/hancock/enableable.rb +1 -0
- data/app/models/concerns/hancock/hash_field.rb +9 -8
- data/app/models/concerns/hancock/html_field.rb +6 -3
- data/app/models/concerns/hancock/insertion_field.rb +115 -0
- data/app/models/concerns/hancock/mappable.rb +1 -0
- data/app/models/concerns/hancock/master_collection.rb +31 -0
- data/app/models/concerns/hancock/model_localizeable.rb +4 -1
- data/app/models/concerns/hancock/rails_admin_patch.rb +22 -3
- data/app/models/concerns/hancock/sort_field.rb +26 -3
- data/app/models/concerns/hancock/sortable.rb +3 -0
- data/app/models/concerns/hancock/user_defined.rb +53 -0
- data/app/views/blocks/_footer.html.slim +1 -1
- data/app/views/devise/passwords/edit.html.slim +0 -2
- data/app/views/devise/passwords/new.html.slim +0 -2
- data/app/views/devise/registrations/edit.html.slim +0 -2
- data/app/views/devise/registrations/new.html.slim +0 -2
- data/app/views/devise/sessions/new.html.slim +0 -2
- data/app/views/hancock/home/index.html.slim +4 -1
- data/app/views/layouts/application.html.slim +1 -11
- data/app/views/layouts/hancock/_assets.html.slim +15 -0
- data/app/views/layouts/hancock/devise/confirmations.html.slim +7 -4
- data/app/views/layouts/hancock/devise/passwords.html.slim +7 -4
- data/app/views/layouts/hancock/devise/registrations.html.slim +7 -4
- data/app/views/layouts/hancock/devise/sessions.html.slim +7 -4
- data/app/views/layouts/hancock/devise/unlocks.html.slim +7 -4
- data/app/views/layouts/rails_admin/_footer.html.slim +2 -2
- data/app/views/layouts/rails_admin/_footer_navigation.html.slim +20 -4
- data/app/views/layouts/rails_admin/_navigation.html.slim +13 -47
- data/app/views/layouts/rails_admin/_secondary_navigation.html.slim +5 -12
- data/app/views/layouts/rails_admin/_sidebar_navigation.html.slim +2 -0
- data/app/views/layouts/rails_admin/_sidebar_navigation_filter.html.slim +3 -0
- data/app/views/layouts/rails_admin/application.html.haml +3 -38
- data/app/views/rails_admin/main/_enum_for_settings_kinds.html.slim +24 -0
- data/app/views/rails_admin/main/_form_hancock_enum.html.slim +18 -0
- data/app/views/rails_admin/main/_form_hancock_enum_with_custom.slim +20 -0
- data/app/views/rails_admin/main/_hancock_html.html.slim +2 -2
- data/app/views/rails_admin/main/_hancock_html_ml.html.slim +31 -34
- data/app/views/rails_admin/main/edit.html.haml +18 -0
- data/app/views/rails_admin/main/new.html.haml +17 -0
- data/app/views/shared/_admin_link.html.slim +4 -2
- data/config/initializers/nested_set_patch.rb +76 -73
- data/config/initializers/rails_admin_mongoid_patch.rb +27 -0
- data/config/initializers/sprockets_patch.rb +159 -0
- data/config/locales/en.hancock.yml +1 -0
- data/config/locales/ru.devise.yml +22 -18
- data/config/locales/ru.hancock.yml +5 -5
- data/config/locales/ru.rails_admin.yml +3 -0
- data/hancock_cms.gemspec +7 -2
- data/lib/filename_to_slug.rb +0 -20
- data/lib/generators/hancock/cms/ability_generator.rb +1 -0
- data/lib/generators/hancock/cms/admin_generator.rb +1 -0
- data/lib/generators/hancock/cms/application_generator.rb +1 -0
- data/lib/generators/hancock/cms/assets_generator.rb +1 -0
- data/lib/generators/hancock/cms/layout_generator.rb +1 -0
- data/lib/generators/hancock/cms/model_generator.rb +1 -0
- data/lib/generators/hancock/cms/models/templates/embedded_element.erb +2 -2
- data/lib/generators/hancock/cms/rack_generator.rb +1 -0
- data/lib/generators/hancock/cms/raven_generator.rb +13 -0
- data/lib/generators/hancock/cms/robots_generator.rb +1 -0
- data/lib/generators/hancock/cms/scripts_generator.rb +1 -0
- data/lib/generators/hancock/cms/setup_generator.rb +146 -33
- data/lib/generators/hancock/cms/templates/Gemfile.erb +4 -5
- data/lib/generators/hancock/cms/templates/ability.erb +1 -1
- data/lib/generators/hancock/cms/templates/admin.erb +12 -4
- data/lib/generators/hancock/cms/templates/hancock_cms.erb +6 -3
- data/lib/generators/hancock/cms/templates/model.erb +5 -6
- data/lib/generators/hancock/cms/templates/raven.erb +13 -0
- data/lib/generators/hancock/cms/templates/robots.txt.erb +6 -2
- data/lib/generators/hancock/cms/templates/scripts/db_dump.sh.erb +1 -1
- data/lib/generators/hancock/cms/unicorn_god_generator.rb +1 -0
- data/lib/generators/hancock/cms/utils.rb +2 -0
- data/lib/hancock/admin.rb +153 -21
- data/lib/hancock/admin/embedded_element.rb +7 -2
- data/lib/hancock/configuration.rb +49 -4
- data/lib/hancock/controller.rb +1 -1
- data/lib/hancock/engine.rb +32 -36
- data/lib/hancock/model.rb +10 -0
- data/lib/hancock/models/embedded_element.rb +2 -0
- data/lib/hancock/models/mongoid/embedded_element.rb +17 -0
- data/lib/hancock/plugin_configuration.rb +1 -1
- data/lib/hancock/rails_admin_ext/config.rb +21 -4
- data/lib/hancock/rails_admin_ext/hancock_array.rb +19 -0
- data/lib/hancock/rails_admin_ext/hancock_enum.rb +33 -0
- data/lib/hancock/rails_admin_ext/hancock_enum_with_custom.rb +34 -0
- data/lib/hancock/rails_admin_ext/hancock_hash.rb +8 -1
- data/lib/hancock/rails_admin_ext/hancock_html.rb +17 -2
- data/lib/hancock/rails_admin_ext/hancock_multiselect.rb +1 -5
- data/lib/hancock/rails_admin_ext/hancock_slugs.rb +2 -6
- data/lib/hancock/rails_admin_ext/patches/field_patch.rb +2 -1
- data/lib/hancock/rails_admin_ext/patches/fieldset_patch.rb +14 -0
- data/lib/hancock/rails_admin_ext/patches/group_patch.rb +9 -0
- data/lib/hancock/rails_admin_ext/patches/hancock_cms_group.rb +2 -0
- data/lib/hancock/rails_admin_ext/patches/has_fields.rb +27 -0
- data/lib/hancock/rails_admin_ext/patches/navigation_patch.rb +25 -0
- data/lib/hancock/rails_admin_settings_patch.rb +219 -0
- data/lib/hancock/version.rb +1 -1
- data/lib/hancock_cms.rb +12 -9
- data/lib/manual_slug/active_record.rb +8 -8
- data/lib/manual_slug/mongoid.rb +6 -1
- data/lib/rails_admin/custom_show_in_app.rb +21 -32
- data/template.rb +19 -20
- metadata +104 -12
- data/app/controllers/concerns/hancock/no_cache.rb +0 -12
- data/app/models/concerns/hancock/cacheable.rb +0 -51
@@ -0,0 +1,53 @@
|
|
1
|
+
module Hancock::UserDefined
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
included do
|
5
|
+
include Hancock::InsertionField
|
6
|
+
|
7
|
+
class_attribute :user_defined_fields
|
8
|
+
self.user_defined_fields ||= {}
|
9
|
+
def user_defined_fields
|
10
|
+
self.class.user_defined_fields
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class_methods do
|
15
|
+
def user_defined_field(name, opts = {type: String, default: ''})
|
16
|
+
field name, opts
|
17
|
+
user_defined_for name, opts
|
18
|
+
end
|
19
|
+
def user_defined_for(name, opts = {})
|
20
|
+
return if name.blank?
|
21
|
+
name = name.to_sym
|
22
|
+
return if user_defined_fields.keys.include?(name)
|
23
|
+
_method_name = opts[:as].present? ? opts[:as] : "user_defined_#{name}"
|
24
|
+
_render_method_name = "render_#{_method_name}"
|
25
|
+
_advanced_render_method = "#{_render_method_name}_or"#"render_#{name}"
|
26
|
+
field _render_method_name, type: Boolean, default: false
|
27
|
+
insertions_for name, opts[:insertions_options] || {}
|
28
|
+
user_defined_fields[name] = {
|
29
|
+
method: _method_name,
|
30
|
+
render_method: _render_method_name,
|
31
|
+
advanced_render_method: _advanced_render_method,
|
32
|
+
options: opts
|
33
|
+
}
|
34
|
+
if _method_name
|
35
|
+
class_eval <<-RUBY
|
36
|
+
def #{_method_name}
|
37
|
+
page_#{name}.html_safe
|
38
|
+
end
|
39
|
+
def #{_advanced_render_method}(&block)
|
40
|
+
if #{_render_method_name}
|
41
|
+
#{_method_name}.html_safe
|
42
|
+
else
|
43
|
+
yield if block_given?
|
44
|
+
nil
|
45
|
+
end
|
46
|
+
end
|
47
|
+
RUBY
|
48
|
+
end
|
49
|
+
name
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
@@ -1 +1 @@
|
|
1
|
-
p = Settings.copyright(default: "© Copyright {{year|
|
1
|
+
p = Settings.copyright(default: "© Copyright {{year|2017}} | Etc", kind: :html).html_safe
|
@@ -1,4 +1,3 @@
|
|
1
|
-
/ h2 Change your password
|
2
1
|
.devise-box
|
3
2
|
.white-box
|
4
3
|
= simple_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f|
|
@@ -15,7 +14,6 @@
|
|
15
14
|
|
16
15
|
.form-group
|
17
16
|
/ = f.label :password_confirmation
|
18
|
-
/ br
|
19
17
|
/ .form-control = f.password_field :password_confirmation, label: I18n.t("shared.password_confirmation"), autocomplete: "off", placeholder: I18n.t("shared.password_confirmation")
|
20
18
|
= 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"}
|
21
19
|
|
@@ -1,4 +1,3 @@
|
|
1
|
-
/ h2 Forgot your password?
|
2
1
|
.devise-box
|
3
2
|
.white-box
|
4
3
|
= simple_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f|
|
@@ -6,7 +5,6 @@
|
|
6
5
|
h2.title Забыли пароль?
|
7
6
|
.form-group
|
8
7
|
/ = f.label :email
|
9
|
-
/ br/
|
10
8
|
/ .form-control = f.email_field :email, autofocus: true, placeholder: I18n.t("shared.email")
|
11
9
|
= f.input :email, as: :email, autocomplete: 'off', title: I18n.t("shared.email"), placeholder: I18n.t("shared.email"), label: false, wrapper_html: {class: "form-control"}
|
12
10
|
|
@@ -1,4 +1,3 @@
|
|
1
|
-
/ h2 Редактирование профиля
|
2
1
|
.devise-box
|
3
2
|
.white-box
|
4
3
|
= simple_form_for(resource, as: resource_name, url: user_registration_path) do |f|
|
@@ -18,7 +17,6 @@
|
|
18
17
|
|
19
18
|
.form-group
|
20
19
|
/ = f.label :password_confirmation
|
21
|
-
/ br
|
22
20
|
/ .form-control = f.password_field :password_confirmation, label: I18n.t("shared.password_confirmation"), autocomplete: "off", placeholder: I18n.t("shared.password_confirmation")
|
23
21
|
= 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"}
|
24
22
|
|
@@ -1,4 +1,3 @@
|
|
1
|
-
/h2 Регистрация
|
2
1
|
.devise-box
|
3
2
|
.white-box
|
4
3
|
= simple_form_for(resource, as: resource_name, url: user_registration_path) do |f|
|
@@ -18,7 +17,6 @@
|
|
18
17
|
|
19
18
|
.form-group
|
20
19
|
/ = f.label :password_confirmation
|
21
|
-
/ br
|
22
20
|
/ .form-control = f.password_field :password_confirmation, label: I18n.t("shared.password_confirmation"), autocomplete: "off", placeholder: I18n.t("shared.password_confirmation")
|
23
21
|
= 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"}
|
24
22
|
|
@@ -10,17 +10,7 @@ html lang="ru"
|
|
10
10
|
/ - cache 'favicons', skip_digest: true do
|
11
11
|
/ = render partial: 'blocks/favicon'
|
12
12
|
|
13
|
-
|
14
|
-
= stylesheet_link_tag "application", media: "all", async: async
|
15
|
-
= javascript_include_tag "application", async: async
|
16
|
-
/[if lt IE 9]
|
17
|
-
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", async: async
|
18
|
-
- cache 'layouts/application/custom_head', skip_digest: true do
|
19
|
-
- _cache_key = ['views/layouts/application/custom_head']
|
20
|
-
css:
|
21
|
-
#{Settings.ns('application_layout').custom_css(default: '', kind: :css, label: "Дополнительный CSS", cache_keys: _cache_key)}
|
22
|
-
javascript:
|
23
|
-
#{Settings.ns('application_layout').custom_js(default: '', kind: :js, label: "Дополнительный JS", cache_keys: _cache_key)}
|
13
|
+
= render partial: 'assets'
|
24
14
|
|
25
15
|
body{class="application_layout #{controller_name} #{action_name} #{controller_name}_#{action_name}"}
|
26
16
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
- layout_name ||= 'application'
|
2
|
+
- stylesheet_name ||= layout_name
|
3
|
+
- javascript_name ||= layout_name
|
4
|
+
- async = false unless defined?(async) #Rails.env.production?
|
5
|
+
- defer = true unless defined?(defer) #Rails.env.production?
|
6
|
+
= stylesheet_link_tag stylesheet_name, media: "all", async: async, defer: defer
|
7
|
+
= javascript_include_tag javascript_name, async: async, defer: defer
|
8
|
+
/[if lt IE 9]
|
9
|
+
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", async: async, defer: defer
|
10
|
+
- cache "layouts/#{layout_name}/custom_head", skip_digest: true do
|
11
|
+
- _cache_key = ["layouts/#{layout_name}/custom_head"]
|
12
|
+
css:
|
13
|
+
#{{Settings.ns("#{layout_name}_layout").custom_css(default: '', kind: :css, label: "Дополнительный CSS", cache_keys: _cache_key)}}
|
14
|
+
javascript:
|
15
|
+
#{{Settings.ns("#{layout_name}_layout").custom_js(default: '', kind: :js, label: "Дополнительный JS", cache_keys: _cache_key)}}
|
@@ -6,13 +6,16 @@ html lang="ru"
|
|
6
6
|
title= yield(:title) || page_title
|
7
7
|
= yield :meta
|
8
8
|
= csrf_meta_tags
|
9
|
-
|
9
|
+
|
10
|
+
/ - cache 'favicons', skip_digest: true do
|
11
|
+
/ = render partial: 'blocks/favicon'
|
10
12
|
|
11
13
|
- async = false #Rails.env.production?
|
12
|
-
|
13
|
-
=
|
14
|
+
- defer = false #Rails.env.production?
|
15
|
+
= stylesheet_link_tag "application", media: "all", defer: defer
|
16
|
+
= javascript_include_tag "application", defer: defer
|
14
17
|
/[if lt IE 9]
|
15
|
-
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js",
|
18
|
+
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", defer: defer
|
16
19
|
|
17
20
|
body
|
18
21
|
#preloader
|
@@ -6,13 +6,16 @@ html lang="ru"
|
|
6
6
|
title= yield(:title) || page_title
|
7
7
|
= yield :meta
|
8
8
|
= csrf_meta_tags
|
9
|
-
|
9
|
+
|
10
|
+
/ - cache 'favicons', skip_digest: true do
|
11
|
+
/ = render partial: 'blocks/favicon'
|
10
12
|
|
11
13
|
- async = false #Rails.env.production?
|
12
|
-
|
13
|
-
=
|
14
|
+
- defer = false #Rails.env.production?
|
15
|
+
= stylesheet_link_tag "application", media: "all", defer: defer
|
16
|
+
= javascript_include_tag "application", defer: defer
|
14
17
|
/[if lt IE 9]
|
15
|
-
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js",
|
18
|
+
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", defer: defer
|
16
19
|
|
17
20
|
body
|
18
21
|
#preloader
|
@@ -6,13 +6,16 @@ html lang="ru"
|
|
6
6
|
title= yield(:title) || page_title
|
7
7
|
= yield :meta
|
8
8
|
= csrf_meta_tags
|
9
|
-
|
9
|
+
|
10
|
+
/ - cache 'favicons', skip_digest: true do
|
11
|
+
/ = render partial: 'blocks/favicon'
|
10
12
|
|
11
13
|
- async = false #Rails.env.production?
|
12
|
-
|
13
|
-
=
|
14
|
+
- defer = false #Rails.env.production?
|
15
|
+
= stylesheet_link_tag "application", media: "all", defer: defer
|
16
|
+
= javascript_include_tag "application", defer: defer
|
14
17
|
/[if lt IE 9]
|
15
|
-
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js",
|
18
|
+
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", defer: defer
|
16
19
|
|
17
20
|
body
|
18
21
|
#preloader
|
@@ -6,13 +6,16 @@ html lang="ru"
|
|
6
6
|
title= yield(:title) || page_title
|
7
7
|
= yield :meta
|
8
8
|
= csrf_meta_tags
|
9
|
-
|
9
|
+
|
10
|
+
/ - cache 'favicons', skip_digest: true do
|
11
|
+
/ = render partial: 'blocks/favicon'
|
10
12
|
|
11
13
|
- async = false #Rails.env.production?
|
12
|
-
|
13
|
-
=
|
14
|
+
- defer = false #Rails.env.production?
|
15
|
+
= stylesheet_link_tag "application", media: "all", defer: defer
|
16
|
+
= javascript_include_tag "application", defer: defer
|
14
17
|
/[if lt IE 9]
|
15
|
-
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js",
|
18
|
+
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", defer: defer
|
16
19
|
|
17
20
|
body
|
18
21
|
#preloader
|
@@ -6,13 +6,16 @@ html lang="ru"
|
|
6
6
|
title= yield(:title) || page_title
|
7
7
|
= yield :meta
|
8
8
|
= csrf_meta_tags
|
9
|
-
|
9
|
+
|
10
|
+
/ - cache 'favicons', skip_digest: true do
|
11
|
+
/ = render partial: 'blocks/favicon'
|
10
12
|
|
11
13
|
- async = false #Rails.env.production?
|
12
|
-
|
13
|
-
=
|
14
|
+
- defer = false #Rails.env.production?
|
15
|
+
= stylesheet_link_tag "application", media: "all", defer: defer
|
16
|
+
= javascript_include_tag "application", defer: defer
|
14
17
|
/[if lt IE 9]
|
15
|
-
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js",
|
18
|
+
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", defer: defer
|
16
19
|
|
17
20
|
body
|
18
21
|
#preloader
|
@@ -1,2 +1,2 @@
|
|
1
|
-
= "2016 © Hancock By "
|
2
|
-
= link_to "Redrocks", "
|
1
|
+
= "2016-#{Time.new.year} © Hancock By "
|
2
|
+
= link_to "Redrocks", "https://redrocks.pro", title: "Redrocks", target: "_blank"
|
@@ -1,20 +1,36 @@
|
|
1
1
|
ul
|
2
2
|
- actions(:root).each do |action|
|
3
3
|
- next if action.action_name.to_s == "dashboard"
|
4
|
-
- data_method = nil if action.http_methods.include?(:get)
|
5
4
|
- data_method = "post" if action.http_methods.include?(:post)
|
6
5
|
- data_method = "put" if action.http_methods.include?(:put)
|
7
6
|
- data_method = "delete" if action.http_methods.include?(:delete)
|
7
|
+
- data_method = nil if action.http_methods.include?(:get)
|
8
8
|
|
9
9
|
li{class="#{action.action_name} footer-nav-link"}
|
10
|
-
= link_to wording_for(:menu, action), {action: action.action_name, controller: 'rails_admin/main'}, class: (action.pjax? ? "pjax" : ""), title: wording_for(:menu, action), data: data_method ? {method: data_method, confirm: t("admin.actions.#{action.action_name}.confirm")} : nil
|
10
|
+
/ = link_to wording_for(:menu, action), {action: action.action_name, controller: 'rails_admin/main'}, class: (action.pjax? ? "pjax" : ""), title: wording_for(:menu, action), data: data_method ? {method: data_method, confirm: t("admin.actions.#{action.action_name}.confirm")} : nil
|
11
|
+
ruby:
|
12
|
+
opts = {}
|
13
|
+
opts[:action] = action.action_name
|
14
|
+
opts[:controller] = 'rails_admin/main'
|
15
|
+
html_opts = {}
|
16
|
+
html_opts[:class] = (action.pjax? ? "pjax" : "")
|
17
|
+
html_opts[:title] = wording_for(:menu, action)
|
18
|
+
html_opts[:data] = {
|
19
|
+
method: data_method,
|
20
|
+
confirm: (data_method ? t("admin.actions.#{action.action_name}.confirm") : nil)
|
21
|
+
}.compact
|
22
|
+
|
23
|
+
= link_to opts, html_opts
|
24
|
+
span
|
25
|
+
= content_tag :i, '', class: action.link_icon
|
26
|
+
/ = link_to wording_for(:menu, action), opts, html_opts
|
11
27
|
|
12
28
|
- if main_app_root_path = (main_app.root_path rescue false)
|
13
29
|
li.footer-nav-link = link_to main_app_root_path, title: "На сайт".freeze
|
14
30
|
span
|
15
31
|
i.fa.fa-home
|
16
32
|
|
17
|
-
- if logout_path.present?
|
18
|
-
li.footer-nav-link = link_to logout_path, title: "Выйти".freeze, method: logout_method
|
33
|
+
- if signed_in? and logout_path.present?
|
34
|
+
li.footer-nav-link = link_to logout_path, title: "Выйти".freeze, method: logout_method, confirm: t("admin.logout.confirm")
|
19
35
|
span
|
20
36
|
i.fa.fa-power-off
|
@@ -1,19 +1,6 @@
|
|
1
|
-
/.logo-block
|
2
|
-
/ = link_to dashboard_path, title: "Hancock CMS".freeze, class: "admin-title".freeze
|
3
|
-
/ = image_tag "rails-admin/hancock_logo.svg", title: "Hancock CMS".freeze, alt: "Hancock CMS".freeze, class: "hancock-main-logo"
|
4
|
-
/
|
5
|
-
/.top-nav
|
6
|
-
/ .left-nav
|
7
|
-
/ .top-nav-project = link_to dashboard_path, title: "Административная панель".freeze
|
8
|
-
/ - plugin_name = _get_plugin_name[0] || 'Rails'
|
9
|
-
/ span = "Административная панель: #{plugin_name}".freeze
|
10
|
-
/ .right-nav
|
11
|
-
/ = render partial: "layouts/rails_admin/secondary_navigation"
|
12
|
-
|
13
|
-
|
14
1
|
.navbar-header-brand
|
15
2
|
= link_to dashboard_path, title: "Hancock CMS".freeze, class: "admin-title".freeze
|
16
|
-
= image_tag "
|
3
|
+
= image_tag "hancock/rails_admin/hancock_logo.svg", title: "Hancock CMS".freeze, alt: "Hancock CMS".freeze, class: "hancock-main-logo"
|
17
4
|
|
18
5
|
.navbar-container.container-fluid
|
19
6
|
.plugin-name-panel
|
@@ -37,37 +24,16 @@
|
|
37
24
|
li.user-logout-action
|
38
25
|
= link_to logout_path, title: "Выйти".freeze, method: logout_method
|
39
26
|
span Выйти
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
/.app-header.fixed
|
45
|
-
/ .app-header-inner
|
46
|
-
/ .brand-title
|
47
|
-
/ h2 = link_to dashboard_path, title: "Hancock CMS".freeze, class: "admin-title".freeze
|
48
|
-
/ span = image_tag "rails-admin/hancock_logo.svg", title: "Hancock CMS".freeze, alt: "Hancock CMS".freeze
|
49
|
-
/
|
50
|
-
/ .top-nav-left
|
51
|
-
/ .top-nav-project = link_to dashboard_path, title: "Административная панель".freeze
|
52
|
-
/ - plugin_name = _get_plugin_name[0] || 'Rails'
|
53
|
-
/ span = "Административная панель: #{plugin_name}".freeze
|
54
|
-
/ /
|
55
|
-
/ .top-nav-right
|
56
|
-
/ = render partial: "layouts/rails_admin/secondary_navigation"
|
57
|
-
/ ul.nav.navbar-nav.root_links
|
58
|
-
/ - actions(:root).each do |action|
|
59
|
-
/ / li.top-nav-control-panel = link_to "", { action: action.action_name, controller: 'rails_admin/main' }, class: action.pjax? ? "pjax" : ""
|
60
|
-
/ li.top-nav-control-panel = link_to "/admin", title: "Контрольная панель"
|
27
|
+
|
28
|
+
/ - if main_app_root_path = (main_app.root_path rescue false)
|
29
|
+
/ li.top-nav-goto-home = link_to main_app_root_path, title: "На главную".freeze
|
61
30
|
/ span
|
62
|
-
/ i.fa.fa-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
- if
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
li.top-nav-logout = link_to logout_path, title: "Выйти".freeze, method: logout_method
|
72
|
-
span
|
73
|
-
i.fa.fa-sign-out
|
31
|
+
/ i.fa.fa-home
|
32
|
+
/
|
33
|
+
/ - if _current_user
|
34
|
+
/ - if user_link = edit_user_link
|
35
|
+
/ li.top-nav-user_root_link = edit_user_link
|
36
|
+
/ - if logout_path.present?
|
37
|
+
/ li.top-nav-logout = link_to logout_path, title: "Выйти".freeze, method: logout_method
|
38
|
+
/ span
|
39
|
+
/ i.fa.fa-sign-out
|
@@ -1,13 +1,16 @@
|
|
1
1
|
ul.nav.navbar-nav.root_links
|
2
2
|
- actions(:root).each do |action|
|
3
3
|
- next if action.action_name.to_s == "dashboard"
|
4
|
-
- data_method = nil if action.http_methods.include?(:get)
|
5
4
|
- data_method = "post" if action.http_methods.include?(:post)
|
6
5
|
- data_method = "put" if action.http_methods.include?(:put)
|
7
6
|
- data_method = "delete" if action.http_methods.include?(:delete)
|
7
|
+
- data_method = nil if action.http_methods.include?(:get)
|
8
8
|
|
9
9
|
li{class="#{action.action_name}_root_link top-nav-control-panel"}
|
10
|
-
= link_to wording_for(:menu, action), { action: action.action_name, controller: 'rails_admin/main' }, class: (action.pjax? ? "pjax" : ""), data: data_method ? {method: data_method, confirm: t("admin.actions.#{action.action_name}.confirm")} : nil
|
10
|
+
/ = link_to wording_for(:menu, action), { action: action.action_name, controller: 'rails_admin/main' }, class: (action.pjax? ? "pjax" : ""), data: data_method ? {method: data_method, confirm: t("admin.actions.#{action.action_name}.confirm")} : nil
|
11
|
+
= link_to { action: action.action_name, controller: 'rails_admin/main' }, class: (action.pjax? ? "pjax" : ""), data: data_method ? {method: data_method, confirm: t("admin.actions.#{action.action_name}.confirm")} : nil
|
12
|
+
span
|
13
|
+
= content_tag :i, '', class: action.link_icon
|
11
14
|
|
12
15
|
|
13
16
|
- if main_app_root_path = (main_app.root_path rescue false)
|
@@ -20,13 +23,3 @@ ul.nav.navbar-nav.root_links
|
|
20
23
|
li.top-nav-logout = link_to logout_path, title: "Выйти".freeze, method: logout_method
|
21
24
|
span
|
22
25
|
i.fa.fa-sign-out
|
23
|
-
|
24
|
-
/ - if main_app_root_path = (main_app.root_path rescue false)
|
25
|
-
/ li= link_to t('admin.home.name').capitalize, main_app_root_path
|
26
|
-
/ - if _current_user
|
27
|
-
/ - if user_link = edit_user_link
|
28
|
-
/ li= user_link
|
29
|
-
/ - if logout_path.present?
|
30
|
-
/ li= link_to content_tag('span', t('admin.misc.log_out'), class: 'label label-important'), logout_path, method: logout_method
|
31
|
-
/ - if _current_user.respond_to?(:email) && _current_user.email.present?
|
32
|
-
/ li= image_tag "#{(request.ssl? ? 'https://secure' : 'http://www')}.gravatar.com/avatar/#{Digest::MD5.hexdigest _current_user.email}?s=30", style: 'padding-top:5px'
|