fae-rails 2.1.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -2
- data/app/assets/config/fae/manifest.js +2 -0
- data/app/assets/javascripts/fae/_contrast.js +50 -0
- data/app/assets/javascripts/fae/_deploy.js +198 -0
- data/app/assets/javascripts/fae/_modals.js +94 -0
- data/app/assets/javascripts/fae/application.js +7 -1
- data/app/assets/javascripts/fae/form/_ajax.js +17 -5
- data/app/assets/javascripts/fae/form/_filtering.js +34 -0
- data/app/assets/javascripts/fae/form/_form.js +5 -2
- data/app/assets/javascripts/fae/form/_form_manager.js +295 -0
- data/app/assets/javascripts/fae/form/_slugger.js.erb +2 -2
- data/app/assets/javascripts/fae/form/_validator.js +224 -55
- data/app/assets/javascripts/fae/form/drag_drop.js +109 -0
- data/app/assets/javascripts/fae/form/inputs/_select.js +10 -4
- data/app/assets/javascripts/fae/form/inputs/_text.js +23 -9
- data/app/assets/javascripts/fae/vendor/simplemde/codemirror-4.inline-attachment.js +95 -0
- data/app/assets/javascripts/fae/vendor/simplemde/inline-attachment.js +405 -0
- data/app/assets/stylesheets/fae/application.css +1 -0
- data/app/assets/stylesheets/fae/base.scss +7 -3
- data/app/assets/stylesheets/fae/globals/_tags.scss +1 -1
- data/app/assets/stylesheets/fae/globals/imports/_variables.scss +1 -0
- data/app/assets/stylesheets/fae/globals/layout/_base.scss +9 -4
- data/app/assets/stylesheets/fae/globals/layout/_content-header.scss +14 -4
- data/app/assets/stylesheets/fae/globals/legacy/_pre-1.3.scss +1 -1
- data/app/assets/stylesheets/fae/globals/navigation/_footer.scss +1 -1
- data/app/assets/stylesheets/fae/globals/navigation/_header.scss +3 -3
- data/app/assets/stylesheets/fae/globals/navigation/_multi-col-subnav.scss +50 -0
- data/app/assets/stylesheets/fae/globals/navigation/_sidenav.scss +2 -2
- data/app/assets/stylesheets/fae/globals/navigation/_utility.scss +1 -1
- data/app/assets/stylesheets/fae/modules/_buttons.scss +11 -0
- data/app/assets/stylesheets/fae/modules/_deploy.scss +25 -0
- data/app/assets/stylesheets/fae/modules/_errors-bar.scss +19 -0
- data/app/assets/stylesheets/fae/modules/_modal.scss +25 -0
- data/app/assets/stylesheets/fae/modules/_toggles.scss +39 -23
- data/app/assets/stylesheets/fae/modules/forms/_asset-actions.scss +1 -1
- data/app/assets/stylesheets/fae/modules/forms/_base.scss +14 -1
- data/app/assets/stylesheets/fae/modules/forms/_checkbox.scss +1 -1
- data/app/assets/stylesheets/fae/modules/forms/_date.scss +20 -4
- data/app/assets/stylesheets/fae/modules/forms/_form-manager.scss +82 -0
- data/app/assets/stylesheets/fae/modules/forms/_hints.scss +1 -1
- data/app/assets/stylesheets/fae/modules/forms/_label.scss +1 -1
- data/app/assets/stylesheets/fae/modules/forms/_radio.scss +1 -1
- data/app/assets/stylesheets/fae/modules/forms/_select.scss +9 -8
- data/app/assets/stylesheets/fae/modules/forms/_simple-mde.scss +72 -1
- data/app/assets/stylesheets/fae/modules/forms/_textarea.scss +1 -1
- data/app/assets/stylesheets/fae/modules/tables/_base.scss +1 -1
- data/app/assets/stylesheets/fae/modules/tables/_filters.scss +4 -0
- data/app/assets/stylesheets/fae/modules/tables/_pagination.scss +2 -2
- data/app/assets/stylesheets/fae/pages/_error.scss +1 -1
- data/app/assets/stylesheets/fae/pages/_login.scss +5 -1
- data/app/assets/stylesheets/fae/simplemde_override.scss +32 -0
- data/app/controllers/fae/application_controller.rb +9 -2
- data/app/controllers/fae/base_controller.rb +6 -2
- data/app/controllers/fae/deploy_controller.rb +24 -0
- data/app/controllers/fae/deploy_hooks_controller.rb +71 -0
- data/app/controllers/fae/form_managers_controller.rb +19 -0
- data/app/controllers/fae/options_controller.rb +1 -0
- data/app/controllers/fae/setup_controller.rb +2 -2
- data/app/controllers/fae/static_pages_controller.rb +6 -1
- data/app/controllers/fae/users_controller.rb +11 -1
- data/app/controllers/fae/utilities_controller.rb +18 -6
- data/app/helpers/fae/application_helper.rb +36 -2
- data/app/helpers/fae/form_helper.rb +26 -2
- data/app/helpers/fae/view_helper.rb +26 -9
- data/app/models/concerns/fae/base_model_concern.rb +17 -0
- data/app/models/concerns/fae/seo_set_concern.rb +1 -0
- data/app/models/fae/change.rb +20 -6
- data/app/models/fae/deploy_hook.rb +12 -0
- data/app/models/fae/form_manager.rb +24 -0
- data/app/models/fae/option.rb +1 -0
- data/app/models/fae/seo_set.rb +14 -0
- data/app/models/fae/user.rb +2 -2
- data/app/services/fae/netlify_api.rb +213 -0
- data/app/uploaders/fae/file_uploader.rb +1 -1
- data/app/uploaders/fae/image_uploader.rb +2 -2
- data/app/views/devise/unlocks/new.html.slim +5 -9
- data/app/views/fae/application/_content_form.html.slim +16 -11
- data/app/views/fae/application/_file_uploader.html.slim +7 -2
- data/app/views/fae/application/_global_search_results.html.slim +1 -1
- data/app/views/fae/application/_header.slim +4 -1
- data/app/views/fae/application/_mobilenav.slim +3 -0
- data/app/views/fae/application/_seo_set_form.html.slim +12 -0
- data/app/views/fae/deploy/index.html.slim +40 -0
- data/app/views/fae/deploy_hooks/_form.html.slim +18 -0
- data/app/views/fae/deploy_hooks/_table.html.slim +28 -0
- data/app/views/fae/deploy_hooks/edit.html.slim +3 -0
- data/app/views/fae/deploy_hooks/new.html.slim +3 -0
- data/app/views/fae/images/_image_uploader.html.slim +12 -3
- data/app/views/fae/options/_form.html.slim +6 -2
- data/app/views/fae/pages/activity_log.html.slim +7 -3
- data/app/views/fae/pages/home.html.slim +3 -4
- data/app/views/fae/shared/_errors.slim +0 -3
- data/app/views/fae/shared/_form_header.html.slim +20 -12
- data/app/views/fae/shared/_nested_table.html.slim +5 -2
- data/app/views/fae/shared/_recent_changes.html.slim +1 -1
- data/app/views/fae/shared/_shared_nested_table.html.slim +9 -3
- data/app/views/layouts/fae/application.html.slim +2 -1
- data/config/deploy.rb +3 -1
- data/config/initializers/carrierwave.rb +41 -2
- data/config/initializers/devise.rb +6 -6
- data/config/initializers/fae_judge.rb +4 -2
- data/config/locales/fae.en.yml +49 -4
- data/config/locales/fae.zh-CN.yml +2 -2
- data/config/puma.rb +82 -0
- data/config/routes.rb +9 -1
- data/db/migrate/20140809222030_add_user_table.rb +1 -1
- data/db/migrate/20190925153222_create_fae_form_managers.rb +11 -0
- data/db/migrate/20220118192729_create_fae_publish_hooks.rb +10 -0
- data/db/migrate/20220128133730_rename_publish_hooks.rb +5 -0
- data/db/migrate/20220202153607_add_position_to_deploy_hooks.rb +6 -0
- data/db/migrate/20221118161833_create_fae_seo_sets.rb +13 -0
- data/lib/fae/concerns/models/base.rb +2 -0
- data/lib/fae/engine.rb +3 -3
- data/lib/fae/options.rb +18 -18
- data/lib/fae/version.rb +1 -1
- data/lib/generators/fae/base_generator.rb +28 -5
- data/lib/generators/fae/controller_generator.rb +0 -1
- data/lib/generators/fae/install_generator.rb +1 -1
- data/lib/generators/fae/model_generator.rb +1 -2
- data/lib/generators/fae/nested_index_scaffold_generator.rb +1 -2
- data/lib/generators/fae/nested_scaffold_generator.rb +23 -2
- data/lib/generators/fae/page_generator.rb +1 -2
- data/lib/generators/fae/scaffold_generator.rb +1 -1
- data/lib/generators/fae/templates/assets/fae.js +1 -1
- data/lib/generators/fae/templates/controllers/nested_scaffold_controller.rb +13 -1
- data/lib/generators/fae/templates/controllers/scaffold_controller.rb +7 -0
- data/lib/generators/fae/templates/initializers/fae.rb +16 -1
- data/lib/generators/fae/templates/views/_form.html.slim +12 -1
- data/lib/generators/fae/templates/views/_form_index_nested.html.slim +15 -1
- data/lib/generators/fae/templates/views/_form_nested.html.slim +22 -2
- data/lib/generators/fae/templates/views/static_page_form.html.slim +13 -1
- metadata +53 -24
- data/config/deploy/dev.rb +0 -19
- data/config/deploy/prod.rb +0 -19
- data/config/deploy/stage.rb +0 -19
- /data/app/assets/javascripts/fae/vendor/{simplemde.min.js → simplemde/simplemde.min.js} +0 -0
data/config/routes.rb
CHANGED
@@ -11,8 +11,10 @@ Fae::Engine.routes.draw do
|
|
11
11
|
get 'logout' => '/devise/sessions#destroy', as: :destroy_user_session
|
12
12
|
end
|
13
13
|
resources :users
|
14
|
+
resources :deploy_hooks
|
14
15
|
|
15
16
|
get 'settings' => 'users#settings', as: 'settings'
|
17
|
+
get 'deploy' => 'deploy#index', as: 'deploy'
|
16
18
|
get 'help' => 'pages#help', as: 'help'
|
17
19
|
get 'activity' => 'pages#activity_log', as: 'activity_log'
|
18
20
|
post 'activity/filter' => 'pages#activity_log_filter', as: 'activity_log_filter'
|
@@ -38,7 +40,13 @@ Fae::Engine.routes.draw do
|
|
38
40
|
get 'content_blocks/:slug' => '/admin/content_blocks#edit', as: 'edit_content_block'
|
39
41
|
match 'content_blocks/:slug/update' => '/admin/content_blocks#update', via: [:put, :patch], as: 'update_content_block'
|
40
42
|
|
41
|
-
#
|
43
|
+
get 'form_managers/fields' => 'form_managers#fields', as: 'form_managers_fields'
|
44
|
+
post 'form_managers/update' => 'form_managers#update', as: 'form_managers_update'
|
45
|
+
|
46
|
+
get 'deploy/deploys_list' => 'deploy#deploys_list', as: 'deploy_deploys_list'
|
47
|
+
post 'deploy/deploy_site' => 'deploy#deploy_site', as: 'deploy_deploy_site'
|
48
|
+
|
49
|
+
## catch all 404
|
42
50
|
match "*path" => 'pages#error404', via: [:get, :post]
|
43
51
|
|
44
52
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class CreateFaeFormManagers < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
|
+
create_table :fae_form_managers do |t|
|
4
|
+
t.string :form_manager_model_name, index: true
|
5
|
+
t.integer :form_manager_model_id, index: true
|
6
|
+
t.text :fields
|
7
|
+
|
8
|
+
t.timestamps
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class CreateFaeSeoSets < ActiveRecord::Migration[7.0]
|
2
|
+
def change
|
3
|
+
create_table :fae_seo_sets do |t|
|
4
|
+
t.string :seo_title
|
5
|
+
t.text :seo_description
|
6
|
+
t.string :social_media_title
|
7
|
+
t.text :social_media_description
|
8
|
+
t.references :seo_setable, polymorphic: true, index: true
|
9
|
+
|
10
|
+
t.timestamps
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/fae/engine.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'devise'
|
2
|
-
|
3
2
|
module Fae
|
4
3
|
class Engine < ::Rails::Engine
|
5
4
|
isolate_namespace Fae
|
@@ -15,8 +14,9 @@ module Fae
|
|
15
14
|
require 'slim'
|
16
15
|
require 'kaminari'
|
17
16
|
require 'fae/version'
|
17
|
+
require "sprockets/railtie"
|
18
18
|
|
19
|
-
config.
|
19
|
+
config.eager_load_paths += %W(#{config.root}/app)
|
20
20
|
|
21
21
|
config.to_prepare do
|
22
22
|
# Require decorators from main application
|
@@ -29,7 +29,7 @@ module Fae
|
|
29
29
|
|
30
30
|
config.generators do |g|
|
31
31
|
g.test_framework :rspec, fixture: false
|
32
|
-
g.fixture_replacement :
|
32
|
+
g.fixture_replacement :factory_bot, dir: 'spec/factories'
|
33
33
|
g.assets false
|
34
34
|
g.helper false
|
35
35
|
end
|
data/lib/fae/options.rb
CHANGED
@@ -4,24 +4,24 @@ require_relative 'validation_helper_collection'
|
|
4
4
|
|
5
5
|
module Fae
|
6
6
|
# configurable defaults
|
7
|
-
|
8
|
-
mattr_accessor :devise_secret_key, :devise_mailer_sender, :dashboard_exclusions, :max_image_upload_size, :max_file_upload_size, :languages, :recreate_versions, :validation_helpers, :track_changes, :tracker_history_length, :slug_separator, :disabled_environments, :per_page, :use_cache
|
7
|
+
mattr_accessor :devise_secret_key, :devise_mailer_sender, :dashboard_exclusions, :max_image_upload_size, :max_file_upload_size, :languages, :recreate_versions, :validation_helpers, :track_changes, :tracker_history_length, :slug_separator, :disabled_environments, :per_page, :use_cache, :use_form_manager, :netlify
|
9
8
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
9
|
+
self.devise_secret_key = ''
|
10
|
+
self.devise_mailer_sender = 'change-me@example.com'
|
11
|
+
self.dashboard_exclusions = []
|
12
|
+
self.max_image_upload_size = 2
|
13
|
+
self.max_file_upload_size = 5
|
14
|
+
self.languages = {}
|
15
|
+
self.recreate_versions = false
|
16
|
+
self.validation_helpers = ValidationHelperCollection.new
|
17
|
+
self.track_changes = true
|
18
|
+
self.tracker_history_length = 15
|
19
|
+
self.slug_separator = '-'
|
20
|
+
self.disabled_environments = []
|
21
|
+
self.per_page = 25
|
22
|
+
self.use_cache = false
|
23
|
+
self.use_form_manager = false
|
24
|
+
self.netlify = {}
|
25
25
|
|
26
26
|
# this function maps the vars from your app into your engine
|
27
27
|
def self.setup(&block)
|
@@ -32,4 +32,4 @@ module Fae
|
|
32
32
|
Devise.mailer_sender = Fae.devise_mailer_sender
|
33
33
|
Kaminari.config.default_per_page = Fae.per_page
|
34
34
|
end
|
35
|
-
end
|
35
|
+
end
|
data/lib/fae/version.rb
CHANGED
@@ -4,6 +4,9 @@ module Fae
|
|
4
4
|
argument :attributes, type: :array, default: [], banner: "field[:type][:index] field[:type][:index]"
|
5
5
|
class_option :namespace, type: :string, default: 'admin', desc: 'Sets the namespace of the generator'
|
6
6
|
class_option :template, type: :string, default: 'slim', desc: 'Sets the template engine of the generator'
|
7
|
+
class_option :polymorphic, type: :boolean, default: false, desc: 'Makes the model and scaffolding polymorphic. parent-model is ignored if passed.'
|
8
|
+
|
9
|
+
Rails::Generators::GeneratedAttribute::DEFAULT_TYPES += ['image', 'file', 'seo_set']
|
7
10
|
|
8
11
|
@@attributes_flat = []
|
9
12
|
@@attribute_names = []
|
@@ -21,12 +24,15 @@ module Fae
|
|
21
24
|
def set_globals
|
22
25
|
if attributes.present?
|
23
26
|
attributes.each do |arg|
|
24
|
-
#
|
25
|
-
# we don't want them in attributes_flat or attribute_names as they are not real model generator field options
|
27
|
+
# prevent these from being in attributes_flat or attribute_names as they are not real model generator field options
|
26
28
|
if is_attachment(arg)
|
27
29
|
@@attachments << arg
|
28
30
|
else
|
29
|
-
@@attributes_flat << "#{arg.name}:#{arg.type}"
|
31
|
+
@@attributes_flat << "#{arg.name}:#{arg.type}" + (arg.has_index? ? ":index" : "")
|
32
|
+
end
|
33
|
+
|
34
|
+
if options.polymorphic
|
35
|
+
@@attributes_flat << "#{polymorphic_name}:references{polymorphic}"
|
30
36
|
end
|
31
37
|
|
32
38
|
if is_association(arg)
|
@@ -71,6 +77,7 @@ module Fae
|
|
71
77
|
@attachments = @@attachments
|
72
78
|
@has_position = @@has_position
|
73
79
|
@display_field = @@display_field
|
80
|
+
@polymorphic_name = polymorphic_name
|
74
81
|
template "views/index.html.#{options.template}", "app/views/#{options.namespace}/#{plural_file_name}/index.html.#{options.template}"
|
75
82
|
template "views/_form.html.#{options.template}", "app/views/#{options.namespace}/#{plural_file_name}/_form.html.#{options.template}"
|
76
83
|
copy_file "views/new.html.#{options.template}", "app/views/#{options.namespace}/#{plural_file_name}/new.html.#{options.template}"
|
@@ -137,6 +144,12 @@ RUBY
|
|
137
144
|
has_fae_image :#{attachment.name}\n
|
138
145
|
RUBY
|
139
146
|
end
|
147
|
+
elsif attachment.type == :seo_set
|
148
|
+
inject_into_file "app/models/#{file_name}.rb", after: "include Fae::BaseModelConcern\n" do
|
149
|
+
<<-RUBY
|
150
|
+
has_fae_seo_set :#{attachment.name}\n
|
151
|
+
RUBY
|
152
|
+
end
|
140
153
|
elsif attachment.type == :file
|
141
154
|
inject_into_file "app/models/#{file_name}.rb", after: "include Fae::BaseModelConcern\n" do
|
142
155
|
<<-RUBY
|
@@ -172,6 +185,8 @@ RUBY
|
|
172
185
|
'Types::FaeImageType'
|
173
186
|
when 'file'
|
174
187
|
'Types::FaeFileType'
|
188
|
+
when 'seo_set'
|
189
|
+
'Types::FaeSeoSetType'
|
175
190
|
else
|
176
191
|
'String'
|
177
192
|
end
|
@@ -192,8 +207,16 @@ RUBY
|
|
192
207
|
end
|
193
208
|
|
194
209
|
def is_attachment(arg)
|
195
|
-
[:image
|
210
|
+
[:image, :file, :seo_set].include?(arg.type)
|
211
|
+
end
|
212
|
+
|
213
|
+
def polymorphic_name
|
214
|
+
"#{file_name.underscore}able"
|
215
|
+
end
|
216
|
+
|
217
|
+
def polymorphic_name
|
218
|
+
"#{file_name.underscore}able"
|
196
219
|
end
|
197
220
|
|
198
221
|
end
|
199
|
-
end
|
222
|
+
end
|
@@ -21,10 +21,12 @@ module Fae
|
|
21
21
|
inject_model_attachments
|
22
22
|
inject_position_scope
|
23
23
|
inject_parent_info if options.parent_model.present?
|
24
|
+
inject_polymorphic_info if options.polymorphic
|
24
25
|
end
|
25
26
|
|
26
27
|
def generate_nested_controller_file
|
27
28
|
@attachments = @@attachments
|
29
|
+
@polymorphic_name = polymorphic_name
|
28
30
|
template "controllers/nested_scaffold_controller.rb", "app/controllers/#{options.namespace}/#{file_name.pluralize}_controller.rb"
|
29
31
|
end
|
30
32
|
|
@@ -39,11 +41,30 @@ module Fae
|
|
39
41
|
|
40
42
|
def inject_parent_info
|
41
43
|
inject_into_file "app/models/#{file_name}.rb", after: "BaseModelConcern\n" do <<-RUBY
|
42
|
-
\n belongs_to :#{options.parent_model.underscore}, touch: true
|
44
|
+
\n belongs_to :#{options.parent_model.underscore}, touch: true
|
45
|
+
def fae_nested_parent
|
46
|
+
:#{options.parent_model.underscore}
|
47
|
+
end
|
48
|
+
RUBY
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def inject_polymorphic_info
|
53
|
+
inject_into_file "app/models/#{file_name}.rb", after: "BaseModelConcern\n" do <<-RUBY
|
54
|
+
def fae_nested_parent
|
55
|
+
:#{polymorphic_name}
|
56
|
+
end
|
57
|
+
RUBY
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def inject_polymorphic_info
|
62
|
+
inject_into_file "app/models/#{file_name}.rb", after: "BaseModelConcern\n" do <<-RUBY
|
43
63
|
|
44
64
|
def fae_nested_parent
|
45
|
-
:#{
|
65
|
+
:#{polymorphic_name}
|
46
66
|
end
|
67
|
+
|
47
68
|
RUBY
|
48
69
|
end
|
49
70
|
end
|
@@ -1,5 +1,17 @@
|
|
1
1
|
module <%= options.namespace.capitalize %>
|
2
2
|
class <%= class_name.pluralize %>Controller < Fae::NestedBaseController
|
3
|
+
|
4
|
+
<% if options.polymorphic %>
|
5
|
+
def new
|
6
|
+
@item = @klass.new
|
7
|
+
raise_undefined_parent if @item.fae_nested_foreign_key.blank?
|
8
|
+
item_id = params[:item_id].to_i || nil
|
9
|
+
item_class = params[:item_class] || nil
|
10
|
+
@item.send("<%= @polymorphic_name %>_id=", item_id)
|
11
|
+
@item.send("<%= @polymorphic_name %>_type=", item_class)
|
12
|
+
build_assets
|
13
|
+
end
|
14
|
+
<% end %>
|
3
15
|
<% if @attachments.present? %>
|
4
16
|
private
|
5
17
|
|
@@ -10,4 +22,4 @@ module <%= options.namespace.capitalize %>
|
|
10
22
|
end
|
11
23
|
<% end %>
|
12
24
|
end
|
13
|
-
end
|
25
|
+
end
|
@@ -5,7 +5,14 @@ module <%= options.namespace.capitalize %>
|
|
5
5
|
|
6
6
|
def build_assets
|
7
7
|
<% @attachments.each do |attachment| -%>
|
8
|
+
<% if attachment.type == :seo_set -%>
|
9
|
+
if @item.<%= attachment.name %>.blank?
|
10
|
+
@item.build_<%= attachment.name %>
|
11
|
+
@item.<%= attachment.name %>.build_social_media_image
|
12
|
+
end
|
13
|
+
<% else -%>
|
8
14
|
@item.build_<%= attachment.name %> if @item.<%= attachment.name %>.blank?
|
15
|
+
<% end -%>
|
9
16
|
<% end -%>
|
10
17
|
end
|
11
18
|
<% end %>
|
@@ -60,4 +60,19 @@ Fae.setup do |config|
|
|
60
60
|
# on the parent app
|
61
61
|
# Defaults to false
|
62
62
|
# config.use_cache = true
|
63
|
-
|
63
|
+
|
64
|
+
## use_form_manager
|
65
|
+
# Enable Manage Form buttons in form headers
|
66
|
+
# Defaults to false
|
67
|
+
# config.use_form_manager = true
|
68
|
+
|
69
|
+
## Netlify configs
|
70
|
+
# Environment variables are recommended for any sensitive Netlify configuration details.
|
71
|
+
# config.netlify = {
|
72
|
+
# api_user: 'netlify-api-user',
|
73
|
+
# api_token: 'netlify-api-token',
|
74
|
+
# site: 'site-name-in-netlify',
|
75
|
+
# site_id: 'site-id-in-netlify',
|
76
|
+
# api_base: 'https://api.netlify.com/api/v1/'
|
77
|
+
# }
|
78
|
+
end
|
@@ -1,4 +1,13 @@
|
|
1
|
-
|
1
|
+
ruby:
|
2
|
+
form_options = {
|
3
|
+
html: {
|
4
|
+
data: {
|
5
|
+
form_manager_model: @item.fae_form_manager_model_name,
|
6
|
+
form_manager_info: (@form_manager.present? ? @form_manager.to_json : nil)
|
7
|
+
}
|
8
|
+
}
|
9
|
+
}
|
10
|
+
= simple_form_for([:admin, @item], form_options) do |f|
|
2
11
|
== render 'fae/shared/form_header', header: @klass_name
|
3
12
|
|
4
13
|
main.content
|
@@ -14,5 +23,7 @@
|
|
14
23
|
= fae_image_form f, :<%= attachment.name -%>
|
15
24
|
<% elsif attachment.type == :file -%>
|
16
25
|
= fae_file_form f, :<%= attachment.name -%>
|
26
|
+
<% elsif attachment.type == :seo_set -%>
|
27
|
+
= fae_seo_set_form f, :<%= attachment.name -%>
|
17
28
|
<% end -%>
|
18
29
|
<% end -%>
|
@@ -1,4 +1,18 @@
|
|
1
|
-
|
1
|
+
ruby:
|
2
|
+
form_options = {
|
3
|
+
html: {
|
4
|
+
multipart: true,
|
5
|
+
novalidate: true,
|
6
|
+
class: 'js-file-form',
|
7
|
+
remote: true,
|
8
|
+
data: {
|
9
|
+
type: "html",
|
10
|
+
form_manager_model: @item.fae_form_manager_model_name,
|
11
|
+
form_manager_info: (@form_manager.present? ? @form_manager.to_json : nil)
|
12
|
+
}
|
13
|
+
}
|
14
|
+
}
|
15
|
+
= simple_form_for(['<%= options.namespace %>', @item], form_options) do |f|
|
2
16
|
<% @form_attrs.each do |attr| -%>
|
3
17
|
= fae_input f, :<%= attr %>
|
4
18
|
<% end -%>
|
@@ -1,4 +1,18 @@
|
|
1
|
-
|
1
|
+
ruby:
|
2
|
+
form_options = {
|
3
|
+
html: {
|
4
|
+
multipart: true,
|
5
|
+
novalidate: true,
|
6
|
+
class: 'js-file-form',
|
7
|
+
remote: true,
|
8
|
+
data: {
|
9
|
+
type: "html",
|
10
|
+
form_manager_model: @item.fae_form_manager_model_name,
|
11
|
+
form_manager_info: (@form_manager.present? ? @form_manager.to_json : nil)
|
12
|
+
}
|
13
|
+
}
|
14
|
+
}
|
15
|
+
= simple_form_for([:admin, @item], form_options) do |f|
|
2
16
|
<% @form_attrs.each do |attr| -%>
|
3
17
|
= fae_input f, :<%= attr %>
|
4
18
|
<% end -%>
|
@@ -9,9 +23,15 @@
|
|
9
23
|
= fae_file_form f, :<%= attachment.name -%>
|
10
24
|
<% end -%>
|
11
25
|
<% end -%>
|
12
|
-
<% if options.
|
26
|
+
<% if options.polymorphic %>
|
27
|
+
= f.hidden_field :<%= @polymorphic_name %>_id
|
28
|
+
= f.hidden_field :<%= @polymorphic_name %>_type
|
29
|
+
<% elsif options.parent_model.present? %>
|
13
30
|
= f.hidden_field :<%= options.parent_model.underscore %>_id
|
14
31
|
<% end -%>
|
15
32
|
|
16
33
|
= f.submit
|
17
34
|
= button_tag 'Cancel', type: 'button', class: 'js-cancel-nested cancel-nested-button'
|
35
|
+
|
36
|
+
- if Fae.use_form_manager
|
37
|
+
a.button.js-launch-form-manager href='#' = t('fae.form.launch_form_manager')
|
@@ -1,4 +1,16 @@
|
|
1
|
-
|
1
|
+
ruby:
|
2
|
+
form_options = {
|
3
|
+
url: fae.update_content_block_path(slug: @item.slug),
|
4
|
+
method: :put,
|
5
|
+
html: {
|
6
|
+
data: {
|
7
|
+
form_manager_model: @item.fae_form_manager_model_name,
|
8
|
+
form_manager_model_id: @item.fae_form_manager_model_id,
|
9
|
+
form_manager_info: (@form_manager.present? ? @form_manager.to_json : nil)
|
10
|
+
}
|
11
|
+
}
|
12
|
+
}
|
13
|
+
= simple_form_for @item, form_options do |f|
|
2
14
|
== render 'fae/shared/form_header', header: @item
|
3
15
|
|
4
16
|
main.content
|