rails_admin_cms 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|