alchemy-ajax-form 1.0.0
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 +310 -0
- data/Rakefile +36 -0
- data/app/assets/config/alchemy_ajax_form_manifest.js +3 -0
- data/app/assets/images/ajax_form.png +0 -0
- data/app/assets/images/alchemy/ajax_form.png +0 -0
- data/app/assets/javascripts/ajax_forms.js.erb +185 -0
- data/app/controllers/alchemy/admin/ajax_forms_controller.rb +53 -0
- data/app/controllers/alchemy/ajax_forms_controller.rb +34 -0
- data/app/mailers/alchemy/ajax_forms_mailer.rb +42 -0
- data/app/models/alchemy/ajax_form.rb +68 -0
- data/app/models/alchemy/ajax_form_ability.rb +22 -0
- data/app/views/alchemy/admin/ajax_forms/_table.html.erb +22 -0
- data/app/views/alchemy/ajax_forms/create.json.jbuilder +6 -0
- data/app/views/alchemy/ajax_forms_mailer/mjml_notify_message.mjml.erb +1 -0
- data/app/views/alchemy/ajax_forms_mailer/mjml_notify_user_message.mjml.erb +1 -0
- data/app/views/alchemy/ajax_forms_mailer/notify_message.html.erb +1 -0
- data/app/views/alchemy/ajax_forms_mailer/notify_user_message.html.erb +1 -0
- data/app/views/layouts/alchemy/base_mailer.html.erb +323 -0
- data/app/views/layouts/alchemy/mjml_base_mailer.mjml +23 -0
- data/config/initializer/assets.rb +1 -0
- data/config/locales/it.yml +56 -0
- data/config/routes.rb +4 -0
- data/lib/alchemy/ajax/form.rb +18 -0
- data/lib/alchemy/ajax/form/engine.rb +21 -0
- data/lib/alchemy/ajax/form/version.rb +7 -0
- data/lib/alchemy/ajax_form_resource.rb +45 -0
- data/lib/generators/custom_form/USAGE +8 -0
- data/lib/generators/custom_form/custom_form_generator.rb +191 -0
- data/lib/generators/custom_form/templates/app/controllers/admin/generic_controller.rb.tt +3 -0
- data/lib/generators/custom_form/templates/app/controllers/generic_controller.rb.tt +3 -0
- data/lib/generators/custom_form/templates/app/lib/generic_resource.rb.tt +4 -0
- data/lib/generators/custom_form/templates/app/model/generic_ability.rb.tt +18 -0
- data/lib/generators/custom_form/templates/app/model/generic_form.rb.tt +15 -0
- data/lib/generators/custom_form/templates/app/views/alchemy/ajax_forms_mailer/_generic_form.html.erb.tt +38 -0
- data/lib/generators/custom_form/templates/app/views/alchemy/ajax_forms_mailer/_generic_user_form.html.erb.tt +39 -0
- data/lib/generators/custom_form/templates/app/views/alchemy/elements/_generic_ajax_form_view.html.erb.tt +50 -0
- data/lib/generators/custom_form/templates/config/initializers/alchemy_ajax_forms.rb.tt +26 -0
- data/lib/generators/custom_form/templates/db/migrate/generic_migration.rb.tt +12 -0
- data/lib/tasks/alchemy/ajax/form_tasks.rake +4 -0
- metadata +182 -0
@@ -0,0 +1,39 @@
|
|
1
|
+
<% if Alchemy::Ajax::Form.enable_mjml %>
|
2
|
+
<mj-column>
|
3
|
+
<mj-text align="left" color="#55575d" font-family="Arial, sans-serif" font-size="13px" line-height="22px" padding-bottom="0px" padding-top="5px" padding="10px 25px">
|
4
|
+
<p style="line-height: 16px; text-align: center; margin: 10px 0;font-size:12px;color:#000;font-family:'Times New Roman',Helvetica,Arial,sans-serif">
|
5
|
+
<% attributes.each do |attr| %>
|
6
|
+
<span><b><%%= <%= name.singularize.classify %>.human_attribute_name(:<%= attr.name %>) %>:</b></span>
|
7
|
+
<span>
|
8
|
+
<%%= rec.<%=attr.name %> %>
|
9
|
+
</span><br>
|
10
|
+
<% end %>
|
11
|
+
</p>
|
12
|
+
</mj-text>
|
13
|
+
</mj-column>
|
14
|
+
<% else %>
|
15
|
+
<!--[if mso]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding-right: 10px; padding-left: 10px; padding-top: 10px; padding-bottom: 10px; font-family: Arial, sans-serif"><![endif]-->
|
16
|
+
<div style="color:#0D0D0D;font-family:'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;line-height:1.2;padding-top:10px;padding-right:10px;padding-bottom:10px;padding-left:10px;">
|
17
|
+
<div style="font-size: 12px; line-height: 1.2; color: #0D0D0D; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; mso-line-height-alt: 14px;">
|
18
|
+
<!-- put here intro <p style="font-size: 28px; line-height: 1.2; word-break: break-word; text-align: left; mso-line-height-alt: 34px; margin: 0;"><span style="font-size: 28px;"><strong><span style="font-size: 28px;">Hello Username,</span></strong></span><br/><span style="font-size: 28px;">Registration completed</span></p> -->
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
<!--[if mso]></td></tr></table><![endif]-->
|
22
|
+
<!--[if mso]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding-right: 10px; padding-left: 10px; padding-top: 10px; padding-bottom: 10px; font-family: Arial, sans-serif"><![endif]-->
|
23
|
+
<div style="color:#000000;font-family:'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;line-height:1.5;padding-top:10px;padding-right:10px;padding-bottom:10px;padding-left:10px;">
|
24
|
+
<div style="font-size: 12px; line-height: 1.5; color: #000000; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; mso-line-height-alt: 18px;">
|
25
|
+
<p style="font-size: 14px; line-height: 1.5; word-break: break-word; text-align: left; mso-line-height-alt: 21px; margin: 0;">
|
26
|
+
|
27
|
+
<% attributes.each do |attr| %>
|
28
|
+
<span><b><%%= <%= name.singularize.classify %>.human_attribute_name(:<%= attr.name %>) %>:</b></span>
|
29
|
+
<span>
|
30
|
+
<%%= rec.<%=attr.name %> %>
|
31
|
+
</span><br>
|
32
|
+
<% end %>
|
33
|
+
|
34
|
+
</p>
|
35
|
+
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
<!--[if mso]></td></tr></table><![endif]-->
|
39
|
+
<% end %>
|
@@ -0,0 +1,50 @@
|
|
1
|
+
<%%- cache(element) do -%>
|
2
|
+
<%%= element_view_for(element) do |el| -%>
|
3
|
+
|
4
|
+
|
5
|
+
<%%
|
6
|
+
privacy_link = element.content_by_name(:privacy_page).essence.link
|
7
|
+
privacy_title = element.content_by_name(:privacy_page).essence.body
|
8
|
+
@<%= name.underscore.singularize %> = <%= name.singularize.classify %>.new
|
9
|
+
@<%= name.underscore.singularize %>.alcm_element = element.id
|
10
|
+
%>
|
11
|
+
|
12
|
+
|
13
|
+
<div class="messages"></div>
|
14
|
+
|
15
|
+
|
16
|
+
<%%= form_for(@<%= name.underscore.singularize %>, url: main_app.<%= name.underscore.pluralize %>_path, method: :post, multipart: true,html:{class: "ajax_forms"}) do |f| %>
|
17
|
+
<%%= f.hidden_field :alcm_element %>
|
18
|
+
<div class="row">
|
19
|
+
<% attributes.each do |attr| %>
|
20
|
+
<div class="box-input col-12">
|
21
|
+
<%%= f.<%=attr.field_type.to_s%> :<%= attr.name %> %>
|
22
|
+
</div>
|
23
|
+
<% end %>
|
24
|
+
</div>
|
25
|
+
|
26
|
+
<%% if !privacy_title.blank? %>
|
27
|
+
<div class="privacy">
|
28
|
+
<div class="single_privacy">
|
29
|
+
<%%= f.check_box :check_privacy %>
|
30
|
+
<%%= link_to privacy_link do %>
|
31
|
+
<label><%%= privacy_title %></label>
|
32
|
+
<%% end %>
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
<%% else %>
|
36
|
+
<%%= f.check_box :check_privacy %>
|
37
|
+
<%% end %>
|
38
|
+
|
39
|
+
|
40
|
+
<div class="submit">
|
41
|
+
<%%= f.submit t(:submit), data: {disable_with: false} %>
|
42
|
+
</div>
|
43
|
+
|
44
|
+
<%% end %>
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
<%%- end -%>
|
49
|
+
<%%- end -%>
|
50
|
+
|
@@ -0,0 +1,26 @@
|
|
1
|
+
Alchemy::Modules.register_module({
|
2
|
+
name: 'alchemy_ajax_forms',
|
3
|
+
order: 1,
|
4
|
+
navigation: {
|
5
|
+
name: 'modules.<%= name.pluralize.underscore%>',
|
6
|
+
controller: '/admin/<%= name.pluralize.underscore%>',
|
7
|
+
action: 'index',
|
8
|
+
image: 'alchemy/ajax_form.png',
|
9
|
+
sub_navigation: [
|
10
|
+
{
|
11
|
+
name: 'modules.<%= name.pluralize.underscore%>',
|
12
|
+
controller: '/admin/<%= name.pluralize.underscore%>',
|
13
|
+
action: 'index'
|
14
|
+
},
|
15
|
+
]
|
16
|
+
}
|
17
|
+
})
|
18
|
+
|
19
|
+
Alchemy.register_ability(<%= name.singularize.classify%>Ability)
|
20
|
+
|
21
|
+
module Alchemy
|
22
|
+
|
23
|
+
EMAIL_NOTIFY= "example@example.it"
|
24
|
+
EMAIL_NOTIFY_FROM = "no-reply@example.it"
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class Create<%= name.classify.singularize %> < ActiveRecord::Migration[<%= Rails::VERSION::MAJOR %>.<%= Rails::VERSION::MINOR %>]
|
2
|
+
def change
|
3
|
+
create_table :<%= name.underscore.pluralize %> do |t|
|
4
|
+
<% attributes.each do |attr| %>
|
5
|
+
t.<%= attr.type %> :<%= attr.name %>
|
6
|
+
<% end %>
|
7
|
+
t.boolean :check_privacy
|
8
|
+
t.references :language, index: true
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
metadata
ADDED
@@ -0,0 +1,182 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: alchemy-ajax-form
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Alessandro Baccanelli
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-12-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '5.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '5.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: js-routes
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: sass-rails
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '5.0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: alchemy_cms
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '4.0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '4.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: recaptcha
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '4.7'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '4.7'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: mjml-rails
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '4.1'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '4.1'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: jquery-rails
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '4.0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '4.0'
|
111
|
+
description: Structure to implement the forms using ajax and management in the backend
|
112
|
+
email:
|
113
|
+
- alessandro.baccanelli@archimedianet.it
|
114
|
+
executables: []
|
115
|
+
extensions: []
|
116
|
+
extra_rdoc_files: []
|
117
|
+
files:
|
118
|
+
- MIT-LICENSE
|
119
|
+
- README.md
|
120
|
+
- Rakefile
|
121
|
+
- app/assets/config/alchemy_ajax_form_manifest.js
|
122
|
+
- app/assets/images/ajax_form.png
|
123
|
+
- app/assets/images/alchemy/ajax_form.png
|
124
|
+
- app/assets/javascripts/ajax_forms.js.erb
|
125
|
+
- app/controllers/alchemy/admin/ajax_forms_controller.rb
|
126
|
+
- app/controllers/alchemy/ajax_forms_controller.rb
|
127
|
+
- app/mailers/alchemy/ajax_forms_mailer.rb
|
128
|
+
- app/models/alchemy/ajax_form.rb
|
129
|
+
- app/models/alchemy/ajax_form_ability.rb
|
130
|
+
- app/views/alchemy/admin/ajax_forms/_table.html.erb
|
131
|
+
- app/views/alchemy/ajax_forms/create.json.jbuilder
|
132
|
+
- app/views/alchemy/ajax_forms_mailer/mjml_notify_message.mjml.erb
|
133
|
+
- app/views/alchemy/ajax_forms_mailer/mjml_notify_user_message.mjml.erb
|
134
|
+
- app/views/alchemy/ajax_forms_mailer/notify_message.html.erb
|
135
|
+
- app/views/alchemy/ajax_forms_mailer/notify_user_message.html.erb
|
136
|
+
- app/views/layouts/alchemy/base_mailer.html.erb
|
137
|
+
- app/views/layouts/alchemy/mjml_base_mailer.mjml
|
138
|
+
- config/initializer/assets.rb
|
139
|
+
- config/locales/it.yml
|
140
|
+
- config/routes.rb
|
141
|
+
- lib/alchemy/ajax/form.rb
|
142
|
+
- lib/alchemy/ajax/form/engine.rb
|
143
|
+
- lib/alchemy/ajax/form/version.rb
|
144
|
+
- lib/alchemy/ajax_form_resource.rb
|
145
|
+
- lib/generators/custom_form/USAGE
|
146
|
+
- lib/generators/custom_form/custom_form_generator.rb
|
147
|
+
- lib/generators/custom_form/templates/app/controllers/admin/generic_controller.rb.tt
|
148
|
+
- lib/generators/custom_form/templates/app/controllers/generic_controller.rb.tt
|
149
|
+
- lib/generators/custom_form/templates/app/lib/generic_resource.rb.tt
|
150
|
+
- lib/generators/custom_form/templates/app/model/generic_ability.rb.tt
|
151
|
+
- lib/generators/custom_form/templates/app/model/generic_form.rb.tt
|
152
|
+
- lib/generators/custom_form/templates/app/views/alchemy/ajax_forms_mailer/_generic_form.html.erb.tt
|
153
|
+
- lib/generators/custom_form/templates/app/views/alchemy/ajax_forms_mailer/_generic_user_form.html.erb.tt
|
154
|
+
- lib/generators/custom_form/templates/app/views/alchemy/elements/_generic_ajax_form_view.html.erb.tt
|
155
|
+
- lib/generators/custom_form/templates/config/initializers/alchemy_ajax_forms.rb.tt
|
156
|
+
- lib/generators/custom_form/templates/db/migrate/generic_migration.rb.tt
|
157
|
+
- lib/tasks/alchemy/ajax/form_tasks.rake
|
158
|
+
homepage: ''
|
159
|
+
licenses:
|
160
|
+
- MIT
|
161
|
+
metadata: {}
|
162
|
+
post_install_message:
|
163
|
+
rdoc_options: []
|
164
|
+
require_paths:
|
165
|
+
- lib
|
166
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
167
|
+
requirements:
|
168
|
+
- - ">="
|
169
|
+
- !ruby/object:Gem::Version
|
170
|
+
version: '0'
|
171
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
172
|
+
requirements:
|
173
|
+
- - ">="
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
version: '0'
|
176
|
+
requirements: []
|
177
|
+
rubyforge_project:
|
178
|
+
rubygems_version: 2.4.8
|
179
|
+
signing_key:
|
180
|
+
specification_version: 4
|
181
|
+
summary: Structure to implement the forms using ajax and management in the backend
|
182
|
+
test_files: []
|