ack_rocket_cms 0.7.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (132) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +21 -0
  3. data/.rspec +1 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +19 -0
  7. data/Gemfile +5 -0
  8. data/Gemfile.lock +244 -0
  9. data/LICENSE.txt +22 -0
  10. data/README.md +74 -0
  11. data/Rakefile +1 -0
  12. data/app/assets/javascripts/head.load.js +707 -0
  13. data/app/assets/javascripts/jquery.placeholder.js +157 -0
  14. data/app/assets/javascripts/rocket_cms.js.coffee +10 -0
  15. data/app/assets/javascripts/rocket_cms/flash.js.coffee +3 -0
  16. data/app/assets/javascripts/rocket_cms/map.js.coffee +22 -0
  17. data/app/assets/stylesheets/rocket_cms.css.sass +6 -0
  18. data/app/assets/stylesheets/rocket_cms/flash.css.sass +66 -0
  19. data/app/assets/stylesheets/rocket_cms/normalize.css.scss +406 -0
  20. data/app/controllers/concerns/no_cache.rb +12 -0
  21. data/app/controllers/concerns/rs_errors.rb +63 -0
  22. data/app/controllers/concerns/rs_menu.rb +45 -0
  23. data/app/controllers/concerns/rs_pages.rb +41 -0
  24. data/app/controllers/contacts_controller.rb +3 -0
  25. data/app/controllers/home_controller.rb +5 -0
  26. data/app/controllers/news_controller.rb +3 -0
  27. data/app/controllers/pages_controller.rb +4 -0
  28. data/app/controllers/search_controller.rb +4 -0
  29. data/app/mailers/contact_mailer.rb +15 -0
  30. data/app/models/concerns/boolean_field.rb +17 -0
  31. data/app/models/concerns/enableable.rb +8 -0
  32. data/app/models/concerns/geocodeable.rb +4 -0
  33. data/app/models/concerns/mappable.rb +95 -0
  34. data/app/models/concerns/seoable.rb +42 -0
  35. data/app/models/concerns/sitemap_data.rb +20 -0
  36. data/app/models/concerns/sort_field.rb +17 -0
  37. data/app/models/concerns/sortable.rb +8 -0
  38. data/app/models/contact_message.rb +11 -0
  39. data/app/models/menu.rb +11 -0
  40. data/app/models/news.rb +10 -0
  41. data/app/models/page.rb +11 -0
  42. data/app/views/blocks/_footer.html.haml +1 -0
  43. data/app/views/contact_mailer/new_message_email.html.haml +16 -0
  44. data/app/views/contacts/index.html.haml +10 -0
  45. data/app/views/contacts/new.html.haml +10 -0
  46. data/app/views/contacts/sent.html.haml +4 -0
  47. data/app/views/errors/_base.html.haml +3 -0
  48. data/app/views/errors/error_403.html.haml +1 -0
  49. data/app/views/errors/error_404.html.haml +1 -0
  50. data/app/views/errors/error_500.html.haml +1 -0
  51. data/app/views/home/index.html.haml +1 -0
  52. data/app/views/layouts/application.html.haml +23 -0
  53. data/app/views/layouts/application.html.slim +24 -0
  54. data/app/views/news/index.html.haml +9 -0
  55. data/app/views/news/show.html.haml +8 -0
  56. data/app/views/pages/show.html.haml +1 -0
  57. data/app/views/rails_admin/main/_check_boxes.html.haml +27 -0
  58. data/app/views/rails_admin/main/_enum_check_boxes.html.haml +5 -0
  59. data/app/views/rails_admin/main/_enum_radio_buttons.html.haml +5 -0
  60. data/app/views/rails_admin/main/_form_raw.html.haml +1 -0
  61. data/app/views/search/index.html.haml +19 -0
  62. data/app/views/shared/_admin_link.html.haml +3 -0
  63. data/app/views/shared/_messages.html.haml +7 -0
  64. data/app/views/shared/_meta.html.haml +6 -0
  65. data/app/views/shared/_obj.html.haml +20 -0
  66. data/app/views/shared/_og.html.haml +4 -0
  67. data/config/locales/en.rocket_admin.yml +6 -0
  68. data/config/locales/en.rs.yml +20 -0
  69. data/config/locales/ru.cancan.yml +4 -0
  70. data/config/locales/ru.devise.yml +65 -0
  71. data/config/locales/ru.kaminari.yml +17 -0
  72. data/config/locales/ru.models.yml +92 -0
  73. data/config/locales/ru.mongoid.yml +450 -0
  74. data/config/locales/ru.rails_admin.yml +148 -0
  75. data/config/locales/ru.rocket_admin.yml +6 -0
  76. data/config/locales/ru.rs.yml +20 -0
  77. data/config/locales/ru.simple_captcha.yml +3 -0
  78. data/config/locales/ru.simple_form.yml +9 -0
  79. data/lib/filename_to_slug.rb +34 -0
  80. data/lib/generators/rocket_cms/ability_generator.rb +15 -0
  81. data/lib/generators/rocket_cms/admin_generator.rb +21 -0
  82. data/lib/generators/rocket_cms/capify_generator.rb +40 -0
  83. data/lib/generators/rocket_cms/layout_generator.rb +15 -0
  84. data/lib/generators/rocket_cms/migration_generator.rb +19 -0
  85. data/lib/generators/rocket_cms/templates/Capfile +17 -0
  86. data/lib/generators/rocket_cms/templates/ability.erb +28 -0
  87. data/lib/generators/rocket_cms/templates/admin.erb +81 -0
  88. data/lib/generators/rocket_cms/templates/deploy.erb +47 -0
  89. data/lib/generators/rocket_cms/templates/dl.erb +30 -0
  90. data/lib/generators/rocket_cms/templates/migration_contact_messages.rb +15 -0
  91. data/lib/generators/rocket_cms/templates/migration_news.rb +21 -0
  92. data/lib/generators/rocket_cms/templates/migration_pages.rb +36 -0
  93. data/lib/generators/rocket_cms/templates/production.erb +8 -0
  94. data/lib/generators/rocket_cms/templates/unicorn.erb +66 -0
  95. data/lib/generators/rocket_cms/utils.rb +22 -0
  96. data/lib/manual_slug.rb +11 -0
  97. data/lib/manual_slug/active_record.rb +32 -0
  98. data/lib/manual_slug/mongoid.rb +36 -0
  99. data/lib/rails_admin/custom_show_in_app.rb +39 -0
  100. data/lib/rocket_cms.rb +88 -0
  101. data/lib/rocket_cms/admin.rb +152 -0
  102. data/lib/rocket_cms/configuration.rb +67 -0
  103. data/lib/rocket_cms/controller.rb +24 -0
  104. data/lib/rocket_cms/controllers/contacts.rb +70 -0
  105. data/lib/rocket_cms/controllers/news.rb +31 -0
  106. data/lib/rocket_cms/controllers/pages.rb +19 -0
  107. data/lib/rocket_cms/controllers/search.rb +45 -0
  108. data/lib/rocket_cms/elastic_search.rb +31 -0
  109. data/lib/rocket_cms/engine.rb +39 -0
  110. data/lib/rocket_cms/migration.rb +31 -0
  111. data/lib/rocket_cms/model.rb +25 -0
  112. data/lib/rocket_cms/models/active_record/contact_message.rb +14 -0
  113. data/lib/rocket_cms/models/active_record/menu.rb +14 -0
  114. data/lib/rocket_cms/models/active_record/news.rb +23 -0
  115. data/lib/rocket_cms/models/active_record/page.rb +17 -0
  116. data/lib/rocket_cms/models/contact_message.rb +27 -0
  117. data/lib/rocket_cms/models/menu.rb +29 -0
  118. data/lib/rocket_cms/models/mongoid/contact_message.rb +20 -0
  119. data/lib/rocket_cms/models/mongoid/menu.rb +12 -0
  120. data/lib/rocket_cms/models/mongoid/news.rb +27 -0
  121. data/lib/rocket_cms/models/mongoid/page.rb +26 -0
  122. data/lib/rocket_cms/models/news.rb +50 -0
  123. data/lib/rocket_cms/models/page.rb +76 -0
  124. data/lib/rocket_cms/patch.rb +58 -0
  125. data/lib/rocket_cms/rails_admin_menu.rb +145 -0
  126. data/lib/rocket_cms/simple_form_patch.rb +12 -0
  127. data/lib/rocket_cms/tasks.rb +13 -0
  128. data/lib/rocket_cms/version.rb +3 -0
  129. data/release.sh +13 -0
  130. data/rocket_cms.gemspec +54 -0
  131. data/template.rb +557 -0
  132. metadata +533 -0
@@ -0,0 +1,36 @@
1
+ class RocketCmsCreatePages < ActiveRecord::Migration
2
+ def change
3
+ create_table :menus do |t|
4
+ t.string :name, null: false
5
+ t.string :slug, null: false
6
+ t.timestamps
7
+ end
8
+ add_index :menus, :slug, unique: true
9
+
10
+ create_table :pages do |t|
11
+ t.boolean :enabled, default: true, null: false
12
+ t.integer :parent_id
13
+ t.integer :lft
14
+ t.integer :rgt
15
+ t.integer :depth
16
+
17
+ t.string :slug, null: false
18
+ t.attachment :image
19
+
20
+ t.string :regexp
21
+ t.string :redirect
22
+ t.text :content
23
+ t.string :fullpath, null: false
24
+ RocketCMS::Migration.seo_fields(t)
25
+ t.timestamps
26
+ end
27
+ add_index :pages, :slug, unique: true
28
+ add_index :pages, [:enabled, :lft]
29
+
30
+ create_join_table :menus, :pages
31
+
32
+ add_foreign_key(:menus_pages, :menus, dependent: :delete)
33
+ add_foreign_key(:menus_pages, :pages, dependent: :delete)
34
+ end
35
+ end
36
+
@@ -0,0 +1,8 @@
1
+ set :stage, :production
2
+
3
+ server '<%= domain %>', user: '<%= app_name.downcase %>', roles: %w{web app db}
4
+
5
+ set :rails_env, 'production'
6
+ set :unicorn_env, 'production'
7
+ set :unicorn_rack_env, 'production'
8
+
@@ -0,0 +1,66 @@
1
+ rails_env = ENV['RAILS_ENV'] || 'production'
2
+
3
+ deploy_to = '<%= deploy_to %>'
4
+ rails_root = "#{deploy_to}/current"
5
+
6
+ tmp_dir = "#{deploy_to}/shared/tmp"
7
+ pid_dir = "#{tmp_dir}/pids"
8
+ if File.directory?(tmp_dir) && !File.directory?(pid_dir)
9
+ puts "creating pid dir #{pid_dir}"
10
+ Dir.mkdir(pid_dir)
11
+ end
12
+ pid_file = "#{pid_dir}/unicorn.pid"
13
+
14
+ log_file = "#{deploy_to}/shared/log/unicorn.log"
15
+ err_log_file = "#{deploy_to}/shared/log/unicorn.error.log"
16
+
17
+ old_pid_file = pid_file + '.oldbin'
18
+
19
+ worker_processes 1
20
+ working_directory rails_root
21
+
22
+ timeout 120
23
+
24
+ # Specify path to socket unicorn listens to,
25
+ # we will use this in our nginx.conf later
26
+
27
+ listen "127.0.0.1:<%= port %>"
28
+
29
+ pid pid_file
30
+
31
+ # Set log file paths
32
+ stderr_path err_log_file
33
+ stdout_path log_file
34
+
35
+ # http://tech.tulentsev.com/2012/03/deploying-with-sinatra-capistrano-unicorn/
36
+ # NOTE: http://unicorn.bogomips.org/SIGNALS.html
37
+ preload_app true
38
+
39
+ # make sure that Bundler finds the Gemfile
40
+ before_exec do |server|
41
+ ENV['BUNDLE_GEMFILE'] = File.join( rails_root, 'Gemfile' )
42
+ end
43
+
44
+ before_fork do |server, worker|
45
+ # при использовании preload_app = true здесь должно быть закрытие всех открытых сокетов
46
+
47
+ # Mongoid сам заботится о переконнекте
48
+ # http://two.mongoid.org/docs/upgrading.html
49
+
50
+ # http://stackoverflow.com/a/9498372/2041969
51
+ # убиваем параллельный старый-процесс просле старта нового
52
+ if File.exists?( old_pid_file )
53
+ begin
54
+ Process.kill( "QUIT", File.read( old_pid_file ).to_i )
55
+ rescue Errno::ENOENT, Errno::ESRCH
56
+ puts "Old master alerady dead"
57
+ end
58
+ end
59
+ end
60
+
61
+ after_fork do |server, worker|
62
+ # pid-ы дочерних процессов
63
+ child_pid_file = server.config[:pid].sub(".pid", ".#{worker.nr}.pid")
64
+ system("echo #{Process.pid} > #{child_pid_file}")
65
+ end
66
+
@@ -0,0 +1,22 @@
1
+ # shamelessly stolen from https://github.com/sferik/rails_admin/blob/master/lib/generators/rails_admin/utils.rb
2
+
3
+ module RocketCms
4
+ module Generators
5
+ module Utils
6
+ module InstanceMethods
7
+ def display(output, color = :green)
8
+ say(" - #{output}", color)
9
+ end
10
+
11
+ def ask_for(wording, default_value = nil, override_if_present_value = nil)
12
+ if override_if_present_value.present?
13
+ display("Using [#{override_if_present_value}] for question '#{wording}'") && override_if_present_value
14
+ else
15
+ ask(" ? #{wording} Press <enter> for [#{default_value}] >", :yellow).presence || default_value
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+
@@ -0,0 +1,11 @@
1
+ module ManualSlug
2
+ autoload :Mongoid, 'manual_slug/mongoid'
3
+ autoload :ActiveRecord, 'manual_slug/active_record'
4
+ extend ActiveSupport::Concern
5
+ if RocketCMS.mongoid?
6
+ include ManualSlug::Mongoid
7
+ else
8
+ include ManualSlug::ActiveRecord
9
+ end
10
+ end
11
+
@@ -0,0 +1,32 @@
1
+ module ManualSlug::ActiveRecord
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ extend FriendlyId
6
+ end
7
+
8
+ def text_slug
9
+ slug
10
+ end
11
+ def text_slug=(s)
12
+ self.slug = s
13
+ end
14
+
15
+ module ClassMethods
16
+ def manual_slug(field, options = {}, callback = true)
17
+ friendly_id field, use: [:slugged, :finders]
18
+ define_method(:should_generate_new_friendly_id?) do
19
+ slug.blank?
20
+ end
21
+
22
+ skip_callback :validation, :before, :set_slug
23
+ before_validation do
24
+ if self.slug.blank?
25
+ self.send(:set_slug)
26
+ end
27
+ true
28
+ end if callback
29
+ end
30
+ end
31
+ end
32
+
@@ -0,0 +1,36 @@
1
+ module ManualSlug::Mongoid
2
+ extend ActiveSupport::Concern
3
+ include ::Mongoid::Slug
4
+
5
+ def text_slug
6
+ self._slugs.empty? ? '' : self._slugs.last
7
+ end
8
+ def text_slug=(slug)
9
+ if slug.blank?
10
+ self._slugs = []
11
+ else
12
+ self._slugs.delete(slug)
13
+ self._slugs << slug
14
+ end
15
+ end
16
+
17
+ module ClassMethods
18
+ def manual_slug(field, options = {}, callback = true)
19
+ options.merge!(permanent: true, history: true)
20
+ slug field, options
21
+
22
+ # we will create slugs manually when needed
23
+ skip_callback :create, :before, :build_slug
24
+
25
+ before_validation do
26
+ self._slugs = self._slugs.map{ |s| s.strip }.reject {|s| s.blank? } if self._slugs
27
+
28
+ if self._slugs.blank?
29
+ self.build_slug
30
+ end
31
+
32
+ true
33
+ end if callback
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,39 @@
1
+ module RailsAdmin
2
+ module Config
3
+ module Actions
4
+ class CustomShowInApp < RailsAdmin::Config::Actions::Base
5
+ RailsAdmin::Config::Actions.register(self)
6
+
7
+ register_instance_option :member do
8
+ true
9
+ end
10
+
11
+ register_instance_option :visible? do
12
+ authorized? && (bindings[:controller].main_app.url_for(bindings[:object]) rescue false)
13
+ end
14
+
15
+ register_instance_option :controller do
16
+ Proc.new do
17
+ if @object.class.name == 'Page'
18
+ redirect_to main_app.page_url(@object)
19
+ elsif @object.class.name == 'News'
20
+ redirect_to main_app.news_url(@object)
21
+ elsif @object.class.name == 'Obj'
22
+ redirect_to main_app.object_url(@object.category, @object)
23
+ else
24
+ redirect_to main_app.url_for(@object)
25
+ end
26
+ end
27
+ end
28
+
29
+ register_instance_option :link_icon do
30
+ 'icon-eye-open'
31
+ end
32
+
33
+ register_instance_option :pjax? do
34
+ false
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,88 @@
1
+ unless defined?(RocketCMS) && RocketCMS.respond_to?(:orm) && [:active_record, :mongoid].include?(RocketCMS.orm)
2
+ puts "please use rocket_cms_mongoid or rocket_cms_activerecord and not rocket_cms directly"
3
+ exit 1
4
+ end
5
+
6
+ require 'rocket_cms/version'
7
+ require 'devise'
8
+
9
+ require 'simple_form'
10
+ require 'rocket_cms/simple_form_patch'
11
+
12
+ require 'glebtv-simple_captcha'
13
+ require 'validates_email_format_of'
14
+ require 'smart_excerpt'
15
+ require 'filename_to_slug'
16
+ require 'rails_admin'
17
+ require 'rails_admin_nested_set'
18
+ require 'rails_admin_toggleable'
19
+ # require 'rails_admin_settings'
20
+
21
+ require 'x-real-ip'
22
+
23
+ require 'glebtv-ckeditor'
24
+
25
+ require 'sitemap_generator'
26
+ require 'kaminari'
27
+ require 'addressable/uri'
28
+ require 'turbolinks'
29
+ require 'simple-navigation'
30
+
31
+ require 'rocket_cms/configuration'
32
+ require 'rocket_cms/patch'
33
+ require 'rocket_cms/admin'
34
+ require 'rocket_cms/elastic_search'
35
+ require 'rocket_cms/model'
36
+ require 'rocket_cms/rails_admin_menu'
37
+ require 'rocket_cms/engine'
38
+ require 'rocket_cms/controller'
39
+
40
+ module RocketCMS
41
+ class << self
42
+ def mongoid?
43
+ RocketCMS.orm == :mongoid
44
+ end
45
+ def active_record?
46
+ RocketCMS.orm == :active_record
47
+ end
48
+ def model_namespace
49
+ "RocketCMS::Models::#{RocketCMS.orm.to_s.camelize}"
50
+ end
51
+ def orm_specific(name)
52
+ "#{model_namespace}::#{name}".constantize
53
+ end
54
+ end
55
+
56
+ autoload :Migration, 'rocket_cms/migration'
57
+
58
+ module Models
59
+ autoload :Menu, 'rocket_cms/models/menu'
60
+ autoload :Page, 'rocket_cms/models/page'
61
+ autoload :News, 'rocket_cms/models/news'
62
+ autoload :ContactMessage, 'rocket_cms/models/contact_message'
63
+
64
+ module Mongoid
65
+ autoload :Menu, 'rocket_cms/models/mongoid/menu'
66
+ autoload :Page, 'rocket_cms/models/mongoid/page'
67
+ autoload :News, 'rocket_cms/models/mongoid/news'
68
+ autoload :ContactMessage, 'rocket_cms/models/mongoid/contact_message'
69
+ end
70
+
71
+ module ActiveRecord
72
+ autoload :Menu, 'rocket_cms/models/active_record/menu'
73
+ autoload :Page, 'rocket_cms/models/active_record/page'
74
+ autoload :News, 'rocket_cms/models/active_record/news'
75
+ autoload :ContactMessage, 'rocket_cms/models/active_record/contact_message'
76
+ end
77
+ end
78
+
79
+ module Controllers
80
+ autoload :Contacts, 'rocket_cms/controllers/contacts'
81
+ autoload :News, 'rocket_cms/controllers/news'
82
+ autoload :Pages, 'rocket_cms/controllers/pages'
83
+ autoload :Search, 'rocket_cms/controllers/search'
84
+ end
85
+ end
86
+
87
+ require 'manual_slug'
88
+
@@ -0,0 +1,152 @@
1
+ module RocketCMS
2
+ class << self
3
+ def map_config(is_active = true)
4
+ Proc.new {
5
+ active is_active
6
+ label I18n.t('rs.map')
7
+ field :address, :string
8
+ field :map_address, :string
9
+ field :map_hint, :string
10
+ field :coordinates, :string do
11
+ read_only true
12
+ formatted_value{ bindings[:object].coordinates.to_json }
13
+ end
14
+ field :lat
15
+ field :lon
16
+ }
17
+ end
18
+
19
+ def seo_config(is_active = false)
20
+ Proc.new {
21
+ active is_active
22
+ label "SEO"
23
+ field :h1, :string
24
+ field :title, :string
25
+ field :keywords, :text
26
+ field :description, :text
27
+ field :robots, :string
28
+
29
+ field :og_title, :string
30
+ field :og_image
31
+ }
32
+ end
33
+
34
+ def page_config
35
+ Proc.new {
36
+ RocketCMS.apply_patches self
37
+ navigation_label I18n.t('rs.cms')
38
+ list do
39
+ scopes [:sorted, :enabled, nil]
40
+
41
+ field :enabled, :toggle
42
+ field :menus, :menu
43
+ field :name
44
+ field :fullpath do
45
+ pretty_value do
46
+ bindings[:view].content_tag(:a, bindings[:object].fullpath, href: bindings[:object].fullpath)
47
+ end
48
+ end
49
+ field :redirect
50
+ field :slug
51
+ RocketCMS.apply_patches self
52
+ end
53
+ edit do
54
+ field :name
55
+ field :excerpt, :ck_editor
56
+ field :content, :ck_editor
57
+ RocketCMS.apply_patches self
58
+ group :menu do
59
+ label I18n.t('rs.menu')
60
+ field :menus
61
+ field :fullpath, :string do
62
+ help I18n.t('rs.with_final_slash')
63
+ end
64
+ field :regexp, :string do
65
+ help I18n.t('rs.page_url_regex')
66
+ end
67
+ field :redirect, :string do
68
+ help I18n.t('rs.final_in_menu')
69
+ end
70
+ field :text_slug
71
+ end
72
+ group :seo, &RocketCMS.seo_config
73
+ group :sitemap_data, &RocketCMS.sitemap_data_config
74
+ end
75
+ RocketCMS.only_patches self, [:show, :export]
76
+ nested_set({
77
+ max_depth: RocketCMS.configuration.menu_max_depth
78
+ })
79
+ }
80
+ end
81
+
82
+ def menu_config
83
+ Proc.new {
84
+ navigation_label 'CMS'
85
+
86
+ field :enabled, :toggle
87
+ field :text_slug
88
+ field :name
89
+ RocketCMS.apply_patches self
90
+ RocketCMS.only_patches self, [:show, :list, :edit, :export]
91
+ }
92
+ end
93
+
94
+ def contact_message_config
95
+ Proc.new {
96
+ navigation_label I18n.t('rs.settings')
97
+ field :created_at do
98
+ read_only true
99
+ end
100
+ field :name
101
+ field :content, :text
102
+ field :email
103
+ field :phone
104
+
105
+ RocketCMS.apply_patches self
106
+ RocketCMS.only_patches self, [:show, :list, :edit, :export]
107
+ }
108
+ end
109
+
110
+ def news_config
111
+ Proc.new {
112
+ navigation_label I18n.t('rs.cms')
113
+ list do
114
+ scopes [:by_date, :enabled, nil]
115
+ end
116
+
117
+ field :enabled, :toggle
118
+ field :time
119
+ field :name
120
+ unless RocketCMS.configuration.news_image_styles.nil?
121
+ field :image
122
+ end
123
+ field :excerpt
124
+ RocketCMS.apply_patches self
125
+
126
+ edit do
127
+ field :content, :ck_editor
128
+ RocketCMS.apply_patches self
129
+ group :seo, &RocketCMS.seo_config
130
+ group :sitemap_data, &RocketCMS.sitemap_data_config
131
+ end
132
+
133
+ RocketCMS.only_patches self, [:show, :list, :export]
134
+ }
135
+ end
136
+
137
+ def sitemap_data_config(is_active = false)
138
+ Proc.new {
139
+ active is_active
140
+ label I18n.t('rs.sitemap_data')
141
+ field :sitemap_show
142
+ field :sitemap_lastmod
143
+ field :sitemap_changefreq, :enum do
144
+ enum do
145
+ SitemapData::SITEMAP_CHANGEFREQ_ARRAY
146
+ end
147
+ end
148
+ field :sitemap_priority
149
+ }
150
+ end
151
+ end
152
+ end