rails_admin_cms 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +36 -0
- data/Rakefile +26 -0
- data/app/assets/javascripts/rails_admin_cms/all.js.coffee +2 -0
- data/app/assets/javascripts/rails_admin_cms/cms.js.coffee +18 -0
- data/app/assets/javascripts/rails_admin_cms/cms/flashes.js.coffee +2 -0
- data/app/assets/javascripts/rails_admin_cms/cms/with_scope/forms.js.coffee +4 -0
- data/app/assets/javascripts/rails_admin_cms/cms/with_scope/viewables.js.coffee +14 -0
- data/app/assets/stylesheets/rails_admin_cms/all.css.sass +0 -0
- data/app/controllers/cms/attachments_controller.rb +20 -0
- data/app/controllers/cms/files_controller.rb +19 -0
- data/app/controllers/cms/forms_controller.rb +89 -0
- data/app/controllers/cms/pages_controller.rb +13 -0
- data/app/controllers/cms/viewables_controller.rb +49 -0
- data/app/controllers/concerns/cms/editing.rb +21 -0
- data/app/controllers/concerns/cms/localize.rb +15 -0
- data/app/helpers/cms/cache_helper.rb +26 -0
- data/app/helpers/cms/form_helper.rb +67 -0
- data/app/helpers/cms/locale_helper.rb +34 -0
- data/app/helpers/cms/view_helper.rb +37 -0
- data/app/helpers/cms/viewable_helper.rb +155 -0
- data/app/helpers/rails_admin/form_builder_decorator.rb +11 -0
- data/app/helpers/rails_admin/navigation_helper.rb +77 -0
- data/app/mailers/cms/forms_mailer.rb +48 -0
- data/app/models/admin/form/email.rb +41 -0
- data/app/models/admin/form/field.rb +25 -0
- data/app/models/admin/form/row.rb +36 -0
- data/app/models/admin/form/static/object.rb +15 -0
- data/app/models/admin/form/structure.rb +18 -0
- data/app/models/admin/setting.rb +21 -0
- data/app/models/admin/unique_key.rb +15 -0
- data/app/models/admin/viewable/block.rb +25 -0
- data/app/models/admin/viewable/form.rb +36 -0
- data/app/models/admin/viewable/image.rb +18 -0
- data/app/models/admin/viewable/link.rb +21 -0
- data/app/models/admin/viewable/page.rb +27 -0
- data/app/models/admin/viewable/select.rb +15 -0
- data/app/models/admin/viewable/text.rb +16 -0
- data/app/models/callbacks/form/field_after_create.rb +16 -0
- data/app/models/callbacks/form/field_after_destroy.rb +16 -0
- data/app/models/callbacks/form/field_before_update.rb +29 -0
- data/app/models/callbacks/restrictor.rb +30 -0
- data/app/models/callbacks/unique_key_before_update.rb +46 -0
- data/app/models/callbacks/viewable_after_destroy.rb +27 -0
- data/app/models/callbacks/viewable_before_update.rb +15 -0
- data/app/models/form.rb +43 -0
- data/app/models/form/email.rb +21 -0
- data/app/models/form/field.rb +75 -0
- data/app/models/form/row.rb +30 -0
- data/app/models/form/static.rb +17 -0
- data/app/models/form/static/attachment.rb +62 -0
- data/app/models/form/static/base.rb +10 -0
- data/app/models/form/static/email.rb +23 -0
- data/app/models/form/static/object.rb +12 -0
- data/app/models/form/structure.rb +90 -0
- data/app/models/setting.rb +85 -0
- data/app/models/unique_key.rb +62 -0
- data/app/models/viewable.rb +93 -0
- data/app/models/viewable/block.rb +39 -0
- data/app/models/viewable/field/url.rb +45 -0
- data/app/models/viewable/field/uuid.rb +61 -0
- data/app/models/viewable/form.rb +67 -0
- data/app/models/viewable/image.rb +6 -0
- data/app/models/viewable/link.rb +10 -0
- data/app/models/viewable/page.rb +24 -0
- data/app/models/viewable/select.rb +6 -0
- data/app/models/viewable/text.rb +6 -0
- data/app/presenters/base_list_presenter.rb +42 -0
- data/app/presenters/base_presenter.rb +17 -0
- data/app/presenters/viewable/block_presenter.rb +10 -0
- data/app/presenters/viewable/form_presenter.rb +15 -0
- data/app/presenters/viewable/image_presenter.rb +11 -0
- data/app/presenters/viewable/link_list_presenter.rb +44 -0
- data/app/presenters/viewable/link_presenter.rb +64 -0
- data/app/presenters/viewable/page_presenter.rb +4 -0
- data/app/presenters/viewable/select_list_presenter.rb +7 -0
- data/app/presenters/viewable/select_presenter.rb +15 -0
- data/app/presenters/viewable/text_presenter.rb +11 -0
- data/app/presenters/viewable/view_presenter.rb +38 -0
- data/app/presenters/viewable_list_presenter.rb +54 -0
- data/app/presenters/viewable_presenter.rb +27 -0
- data/app/views/cms/forms/create.js.erb +3 -0
- data/app/views/cms/shared/_flash_messages.js.erb +2 -0
- data/app/views/cms/viewables/update.js.erb +1 -0
- data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +10 -0
- data/config/initializers/assets.rb +6 -0
- data/config/initializers/route_translator.rb +3 -0
- data/config/locales/cms.en.yml +32 -0
- data/config/locales/cms.fr.yml +32 -0
- data/config/locales/flash.en.yml +43 -0
- data/config/locales/flash.fr.yml +43 -0
- data/config/locales/routes.en.yml +3 -0
- data/config/locales/routes.fr.yml +3 -0
- data/config/routes.rb +36 -0
- data/config/spring.rb +1 -0
- data/db/migrate/20151226023652_create_unique_key.rb +19 -0
- data/db/migrate/20151226054335_create_viewable_link.rb +14 -0
- data/db/migrate/20151227064933_create_viewable_text.rb +10 -0
- data/db/migrate/20151227072412_create_rich_rich_images.rich.rb +18 -0
- data/db/migrate/20151227072413_add_uri_cache_to_rich_image.rich.rb +6 -0
- data/db/migrate/20151227072414_refactor_image_to_file.rich.rb +13 -0
- data/db/migrate/20151228231201_create_viewable_image.rb +10 -0
- data/db/migrate/20151230050603_create_setting.rb +13 -0
- data/db/migrate/20151230072904_add_cms_mail_from_and_bcc_settings.rb +14 -0
- data/db/migrate/20151230085947_create_viewable_select.rb +10 -0
- data/db/migrate/20151231054310_create_viewable_block.rb +9 -0
- data/db/migrate/20151231102148_create_viewable_page.rb +13 -0
- data/db/migrate/20160101124428_create_viewable_form.rb +15 -0
- data/db/migrate/20160101140244_create_form_structure.rb +9 -0
- data/db/migrate/20160101141844_create_form_row.rb +13 -0
- data/db/migrate/20160102010317_create_form_field.rb +17 -0
- data/db/migrate/20160103120544_create_form_email.rb +18 -0
- data/lib/generators/cms/install/USAGE +8 -0
- data/lib/generators/cms/install/install_generator.rb +14 -0
- data/lib/generators/cms/install/templates/Gemfile +47 -0
- data/lib/generators/cms/install/templates/app/assets/javascripts/application.js +19 -0
- data/lib/generators/cms/install/templates/app/assets/stylesheets/application.css +17 -0
- data/lib/generators/cms/install/templates/app/controllers/application_controller.rb +9 -0
- data/lib/generators/cms/install/templates/app/controllers/cms/authenticate.rb +34 -0
- data/lib/generators/cms/install/templates/app/models/form/contact.rb +20 -0
- data/lib/generators/cms/install/templates/app/views/cms/blocks/_example.html.erb +13 -0
- data/lib/generators/cms/install/templates/app/views/cms/forms/contact/_form.html.erb +30 -0
- data/lib/generators/cms/install/templates/app/views/cms/forms/contact/new.html.erb +19 -0
- data/lib/generators/cms/install/templates/app/views/cms/forms_mailer/contact.html.erb +6 -0
- data/lib/generators/cms/install/templates/app/views/cms/forms_mailer/contact.text.erb +6 -0
- data/lib/generators/cms/install/templates/app/views/cms/pages/page.html.erb +29 -0
- data/lib/generators/cms/install/templates/app/views/layouts/application.html.erb +23 -0
- data/lib/generators/cms/install/templates/config/application.rb +36 -0
- data/lib/generators/cms/install/templates/config/initializers/rails_admin.rb +97 -0
- data/lib/generators/cms/install/templates/config/initializers/rich.rb +142 -0
- data/lib/generators/cms/install/templates/config/initializers/simple_form.rb +165 -0
- data/lib/generators/cms/install/templates/config/initializers/simple_form_bootstrap.rb +149 -0
- data/lib/generators/cms/install/templates/config/locales/routes.en.yml +4 -0
- data/lib/generators/cms/install/templates/config/locales/simple_form.en.yml +31 -0
- data/lib/generators/cms/install/templates/config/routes.rb +61 -0
- data/lib/generators/cms/install/templates/vendor/assets/javascripts/rails_admin/custom/ui.js.coffee +1 -0
- data/lib/generators/cms/install/templates/vendor/assets/stylesheets/rails_admin/custom/mixins.sass +0 -0
- data/lib/generators/cms/install/templates/vendor/assets/stylesheets/rails_admin/custom/theming.sass +1 -0
- data/lib/generators/cms/install/templates/vendor/assets/stylesheets/rails_admin/custom/variables.sass +0 -0
- data/lib/generators/cms/install/templates/vendor/assets/stylesheets/rich/editor.css +20 -0
- data/lib/rails_admin_cms.rb +28 -0
- data/lib/rails_admin_cms/config.rb +45 -0
- data/lib/rails_admin_cms/core_ext/boolean.rb +29 -0
- data/lib/rails_admin_cms/engine.rb +11 -0
- data/lib/rails_admin_cms/inflections.rb +4 -0
- data/lib/rails_admin_cms/utils.rb +30 -0
- data/lib/rails_admin_cms/version.rb +3 -0
- data/lib/tasks/rails_admin_cms_tasks.rake +4 -0
- metadata +669 -0
@@ -0,0 +1,149 @@
|
|
1
|
+
# Use this setup block to configure all options available in SimpleForm.
|
2
|
+
SimpleForm.setup do |config|
|
3
|
+
config.error_notification_class = 'alert alert-danger'
|
4
|
+
config.button_class = 'btn btn-default'
|
5
|
+
config.boolean_label_class = nil
|
6
|
+
|
7
|
+
config.wrappers :vertical_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
8
|
+
b.use :html5
|
9
|
+
b.use :placeholder
|
10
|
+
b.optional :maxlength
|
11
|
+
b.optional :pattern
|
12
|
+
b.optional :min_max
|
13
|
+
b.optional :readonly
|
14
|
+
b.use :label, class: 'control-label'
|
15
|
+
|
16
|
+
b.use :input, class: 'form-control'
|
17
|
+
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
18
|
+
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
19
|
+
end
|
20
|
+
|
21
|
+
config.wrappers :vertical_file_input, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
22
|
+
b.use :html5
|
23
|
+
b.use :placeholder
|
24
|
+
b.optional :maxlength
|
25
|
+
b.optional :readonly
|
26
|
+
b.use :label, class: 'control-label'
|
27
|
+
|
28
|
+
b.use :input
|
29
|
+
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
30
|
+
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
31
|
+
end
|
32
|
+
|
33
|
+
config.wrappers :vertical_boolean, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
34
|
+
b.use :html5
|
35
|
+
b.optional :readonly
|
36
|
+
|
37
|
+
b.wrapper tag: 'div', class: 'checkbox' do |ba|
|
38
|
+
ba.use :label_input
|
39
|
+
end
|
40
|
+
|
41
|
+
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
42
|
+
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
43
|
+
end
|
44
|
+
|
45
|
+
config.wrappers :vertical_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
46
|
+
b.use :html5
|
47
|
+
b.optional :readonly
|
48
|
+
b.use :label, class: 'control-label'
|
49
|
+
b.use :input
|
50
|
+
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
51
|
+
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
52
|
+
end
|
53
|
+
|
54
|
+
config.wrappers :horizontal_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
55
|
+
b.use :html5
|
56
|
+
b.use :placeholder
|
57
|
+
b.optional :maxlength
|
58
|
+
b.optional :pattern
|
59
|
+
b.optional :min_max
|
60
|
+
b.optional :readonly
|
61
|
+
b.use :label, class: 'col-sm-3 control-label'
|
62
|
+
|
63
|
+
b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
|
64
|
+
ba.use :input, class: 'form-control'
|
65
|
+
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
66
|
+
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
config.wrappers :horizontal_file_input, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
71
|
+
b.use :html5
|
72
|
+
b.use :placeholder
|
73
|
+
b.optional :maxlength
|
74
|
+
b.optional :readonly
|
75
|
+
b.use :label, class: 'col-sm-3 control-label'
|
76
|
+
|
77
|
+
b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
|
78
|
+
ba.use :input
|
79
|
+
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
80
|
+
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
config.wrappers :horizontal_boolean, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
85
|
+
b.use :html5
|
86
|
+
b.optional :readonly
|
87
|
+
|
88
|
+
b.wrapper tag: 'div', class: 'col-sm-offset-3 col-sm-9' do |wr|
|
89
|
+
wr.wrapper tag: 'div', class: 'checkbox' do |ba|
|
90
|
+
ba.use :label_input
|
91
|
+
end
|
92
|
+
|
93
|
+
wr.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
94
|
+
wr.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
config.wrappers :horizontal_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
99
|
+
b.use :html5
|
100
|
+
b.optional :readonly
|
101
|
+
|
102
|
+
b.use :label, class: 'col-sm-3 control-label'
|
103
|
+
|
104
|
+
b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
|
105
|
+
ba.use :input
|
106
|
+
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
107
|
+
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
config.wrappers :inline_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
112
|
+
b.use :html5
|
113
|
+
b.use :placeholder
|
114
|
+
b.optional :maxlength
|
115
|
+
b.optional :pattern
|
116
|
+
b.optional :min_max
|
117
|
+
b.optional :readonly
|
118
|
+
b.use :label, class: 'sr-only'
|
119
|
+
|
120
|
+
b.use :input, class: 'form-control'
|
121
|
+
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
122
|
+
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
123
|
+
end
|
124
|
+
|
125
|
+
config.wrappers :multi_select, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
126
|
+
b.use :html5
|
127
|
+
b.optional :readonly
|
128
|
+
b.use :label, class: 'control-label'
|
129
|
+
b.wrapper tag: 'div', class: 'form-inline' do |ba|
|
130
|
+
ba.use :input, class: 'form-control'
|
131
|
+
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
132
|
+
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
133
|
+
end
|
134
|
+
end
|
135
|
+
# Wrappers for forms and inputs using the Bootstrap toolkit.
|
136
|
+
# Check the Bootstrap docs (http://getbootstrap.com)
|
137
|
+
# to learn about the different styles for forms and inputs,
|
138
|
+
# buttons and other elements.
|
139
|
+
config.default_wrapper = :vertical_form
|
140
|
+
config.wrapper_mappings = {
|
141
|
+
check_boxes: :vertical_radio_and_checkboxes,
|
142
|
+
radio_buttons: :vertical_radio_and_checkboxes,
|
143
|
+
file: :vertical_file_input,
|
144
|
+
boolean: :vertical_boolean,
|
145
|
+
datetime: :multi_select,
|
146
|
+
date: :multi_select,
|
147
|
+
time: :multi_select
|
148
|
+
}
|
149
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
en:
|
2
|
+
simple_form:
|
3
|
+
"yes": 'Yes'
|
4
|
+
"no": 'No'
|
5
|
+
required:
|
6
|
+
text: 'required'
|
7
|
+
mark: '*'
|
8
|
+
# You can uncomment the line below if you need to overwrite the whole required html.
|
9
|
+
# When using html, text and mark won't be used.
|
10
|
+
# html: '<abbr title="required">*</abbr>'
|
11
|
+
error_notification:
|
12
|
+
default_message: "Please review the problems below:"
|
13
|
+
# Examples
|
14
|
+
# labels:
|
15
|
+
# defaults:
|
16
|
+
# password: 'Password'
|
17
|
+
# user:
|
18
|
+
# new:
|
19
|
+
# email: 'E-mail to sign in.'
|
20
|
+
# edit:
|
21
|
+
# email: 'E-mail.'
|
22
|
+
# hints:
|
23
|
+
# defaults:
|
24
|
+
# username: 'User name to sign in.'
|
25
|
+
# password: 'No special characters, please.'
|
26
|
+
# include_blanks:
|
27
|
+
# defaults:
|
28
|
+
# age: 'Rather not say'
|
29
|
+
# prompts:
|
30
|
+
# defaults:
|
31
|
+
# age: 'Select your age'
|
@@ -0,0 +1,61 @@
|
|
1
|
+
Rails.application.routes.draw do
|
2
|
+
mount Rich::Engine => '/rich', :as => 'rich'
|
3
|
+
mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
|
4
|
+
|
5
|
+
root to: "cms/pages#show", format: false, defaults: { cms_view_type: 'page', cms_body_class: 'page', locale: I18n.default_locale }
|
6
|
+
|
7
|
+
# The priority is based upon order of creation: first created -> highest priority.
|
8
|
+
# See how all your routes lay out with "rake routes".
|
9
|
+
|
10
|
+
# You can have the root of your site routed with "root"
|
11
|
+
# root 'welcome#index'
|
12
|
+
|
13
|
+
# Example of regular route:
|
14
|
+
# get 'products/:id' => 'catalog#view'
|
15
|
+
|
16
|
+
# Example of named route that can be invoked with purchase_url(id: product.id)
|
17
|
+
# get 'products/:id/purchase' => 'catalog#purchase', as: :purchase
|
18
|
+
|
19
|
+
# Example resource route (maps HTTP verbs to controller actions automatically):
|
20
|
+
# resources :products
|
21
|
+
|
22
|
+
# Example resource route with options:
|
23
|
+
# resources :products do
|
24
|
+
# member do
|
25
|
+
# get 'short'
|
26
|
+
# post 'toggle'
|
27
|
+
# end
|
28
|
+
#
|
29
|
+
# collection do
|
30
|
+
# get 'sold'
|
31
|
+
# end
|
32
|
+
# end
|
33
|
+
|
34
|
+
# Example resource route with sub-resources:
|
35
|
+
# resources :products do
|
36
|
+
# resources :comments, :sales
|
37
|
+
# resource :seller
|
38
|
+
# end
|
39
|
+
|
40
|
+
# Example resource route with more complex sub-resources:
|
41
|
+
# resources :products do
|
42
|
+
# resources :comments
|
43
|
+
# resources :sales do
|
44
|
+
# get 'recent', on: :collection
|
45
|
+
# end
|
46
|
+
# end
|
47
|
+
|
48
|
+
# Example resource route with concerns:
|
49
|
+
# concern :toggleable do
|
50
|
+
# post 'toggle'
|
51
|
+
# end
|
52
|
+
# resources :posts, concerns: :toggleable
|
53
|
+
# resources :photos, concerns: :toggleable
|
54
|
+
|
55
|
+
# Example resource route within a namespace:
|
56
|
+
# namespace :admin do
|
57
|
+
# # Directs /admin/products/* to Admin::ProductsController
|
58
|
+
# # (app/controllers/admin/products_controller.rb)
|
59
|
+
# resources :products
|
60
|
+
# end
|
61
|
+
end
|
data/lib/generators/cms/install/templates/vendor/assets/javascripts/rails_admin/custom/ui.js.coffee
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
#= require rich/base
|
data/lib/generators/cms/install/templates/vendor/assets/stylesheets/rails_admin/custom/mixins.sass
ADDED
File without changes
|
data/lib/generators/cms/install/templates/vendor/assets/stylesheets/rails_admin/custom/theming.sass
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
//= require rich/editor
|
File without changes
|
@@ -0,0 +1,20 @@
|
|
1
|
+
/*
|
2
|
+
This file defines the default set of CSS styles available in the Rich editor
|
3
|
+
*/
|
4
|
+
|
5
|
+
p.caption {
|
6
|
+
font-style: italic;
|
7
|
+
color: grey;
|
8
|
+
}
|
9
|
+
|
10
|
+
span.highlight {
|
11
|
+
background: yellow;
|
12
|
+
}
|
13
|
+
|
14
|
+
img.left {
|
15
|
+
float: left;
|
16
|
+
}
|
17
|
+
|
18
|
+
img.right {
|
19
|
+
float: right;
|
20
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require "rails-i18n"
|
2
|
+
require "rails_admin"
|
3
|
+
require "rails_admin-i18n"
|
4
|
+
require "route_translator"
|
5
|
+
|
6
|
+
require "active_link_to"
|
7
|
+
require "youtube_addy"
|
8
|
+
require "rich"
|
9
|
+
require "paperclip"
|
10
|
+
require "rails_admin_jcrop"
|
11
|
+
|
12
|
+
require "simple_form"
|
13
|
+
require "active_type"
|
14
|
+
require "email_validator"
|
15
|
+
require "country_select"
|
16
|
+
require "i18n_country_select"
|
17
|
+
require "invisible_captcha"
|
18
|
+
require "jquery-form-validator-rails"
|
19
|
+
require "bootstrap_flash_messages"
|
20
|
+
|
21
|
+
require "rails_admin_cms/engine"
|
22
|
+
require "rails_admin_cms/inflections"
|
23
|
+
require "rails_admin_cms/core_ext/boolean"
|
24
|
+
require "rails_admin_cms/config"
|
25
|
+
require "rails_admin_cms/utils"
|
26
|
+
|
27
|
+
module RailsAdminCMS
|
28
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module RailsAdminCMS
|
2
|
+
def self.config(&block)
|
3
|
+
if block_given?
|
4
|
+
block.call(RailsAdminCMS::Config)
|
5
|
+
else
|
6
|
+
RailsAdminCMS::Config
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
module Config
|
11
|
+
extend self
|
12
|
+
|
13
|
+
attr_writer(
|
14
|
+
:parent_controller,
|
15
|
+
:parent_mailer,
|
16
|
+
:with_paper_trail,
|
17
|
+
:custom_form_max_size,
|
18
|
+
:with_email_body
|
19
|
+
)
|
20
|
+
|
21
|
+
def parent_controller
|
22
|
+
@parent_controller || ::ApplicationController
|
23
|
+
end
|
24
|
+
|
25
|
+
def parent_mailer
|
26
|
+
@parent_mailer || "::ApplicationMailer".safe_constantize || Struct.new(:mailer) {
|
27
|
+
def send_email(_form)
|
28
|
+
mailer
|
29
|
+
end
|
30
|
+
}.new(Struct.new(:deliver_now).new(nil))
|
31
|
+
end
|
32
|
+
|
33
|
+
def with_paper_trail?
|
34
|
+
@with_paper_trail
|
35
|
+
end
|
36
|
+
|
37
|
+
def custom_form_max_size
|
38
|
+
@custom_form_max_size || 20
|
39
|
+
end
|
40
|
+
|
41
|
+
def with_email_body?
|
42
|
+
@with_email_body
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
String.class_eval do
|
2
|
+
def to_b
|
3
|
+
return true if self == true || self =~ (/^(true|t|yes|y|1)$/i)
|
4
|
+
return false if self == false || self.blank? || self =~ (/^(false|f|no|n|0)$/i)
|
5
|
+
raise ArgumentError.new("invalid value for Boolean: \"#{self}\"")
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
Fixnum.class_eval do
|
10
|
+
def to_b
|
11
|
+
return true if self == 1
|
12
|
+
return false if self == 0
|
13
|
+
raise ArgumentError.new("invalid value for Boolean: \"#{self}\"")
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
TrueClass.class_eval do
|
18
|
+
def to_i; 1; end
|
19
|
+
def to_b; self; end
|
20
|
+
end
|
21
|
+
|
22
|
+
FalseClass.class_eval do
|
23
|
+
def to_i; 0; end
|
24
|
+
def to_b; self; end
|
25
|
+
end
|
26
|
+
|
27
|
+
NilClass.class_eval do
|
28
|
+
def to_b; false; end
|
29
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module RailsAdminCMS
|
2
|
+
class Engine < ::Rails::Engine
|
3
|
+
initializer :append_migrations do |app|
|
4
|
+
unless app.root.to_s.match root.to_s
|
5
|
+
config.paths["db/migrate"].expanded.each do |expanded_path|
|
6
|
+
app.config.paths["db/migrate"] << expanded_path
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module CMS
|
2
|
+
extend self
|
3
|
+
|
4
|
+
def rb_all_names(dirname)
|
5
|
+
Dir["#{RailsAdminCMS::Engine.root}/#{dirname}/*.rb"].map { |name|
|
6
|
+
File.basename(name).sub(/\.rb$/, '')
|
7
|
+
} +
|
8
|
+
rb_names(dirname)
|
9
|
+
end
|
10
|
+
|
11
|
+
def rb_names(dirname)
|
12
|
+
Dir["#{Rails.root}/#{dirname}/*.rb"].map do |name|
|
13
|
+
File.basename(name).sub(/\.rb$/, '')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def html_names(dirname)
|
18
|
+
Dir["#{Rails.root}/#{dirname}/*.html.*"].map do |name|
|
19
|
+
File.basename(name).sub(/\.html\..+$/, '').sub(/^_/, '')
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def dir_names(dirname)
|
24
|
+
Dir["#{Rails.root}/#{dirname}/*"].select{ |name|
|
25
|
+
File.directory? name
|
26
|
+
}.map{ |name|
|
27
|
+
name.split('/').last
|
28
|
+
}
|
29
|
+
end
|
30
|
+
end
|