alchemy-ajax-form 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +310 -0
  4. data/Rakefile +36 -0
  5. data/app/assets/config/alchemy_ajax_form_manifest.js +3 -0
  6. data/app/assets/images/ajax_form.png +0 -0
  7. data/app/assets/images/alchemy/ajax_form.png +0 -0
  8. data/app/assets/javascripts/ajax_forms.js.erb +185 -0
  9. data/app/controllers/alchemy/admin/ajax_forms_controller.rb +53 -0
  10. data/app/controllers/alchemy/ajax_forms_controller.rb +34 -0
  11. data/app/mailers/alchemy/ajax_forms_mailer.rb +42 -0
  12. data/app/models/alchemy/ajax_form.rb +68 -0
  13. data/app/models/alchemy/ajax_form_ability.rb +22 -0
  14. data/app/views/alchemy/admin/ajax_forms/_table.html.erb +22 -0
  15. data/app/views/alchemy/ajax_forms/create.json.jbuilder +6 -0
  16. data/app/views/alchemy/ajax_forms_mailer/mjml_notify_message.mjml.erb +1 -0
  17. data/app/views/alchemy/ajax_forms_mailer/mjml_notify_user_message.mjml.erb +1 -0
  18. data/app/views/alchemy/ajax_forms_mailer/notify_message.html.erb +1 -0
  19. data/app/views/alchemy/ajax_forms_mailer/notify_user_message.html.erb +1 -0
  20. data/app/views/layouts/alchemy/base_mailer.html.erb +323 -0
  21. data/app/views/layouts/alchemy/mjml_base_mailer.mjml +23 -0
  22. data/config/initializer/assets.rb +1 -0
  23. data/config/locales/it.yml +56 -0
  24. data/config/routes.rb +4 -0
  25. data/lib/alchemy/ajax/form.rb +18 -0
  26. data/lib/alchemy/ajax/form/engine.rb +21 -0
  27. data/lib/alchemy/ajax/form/version.rb +7 -0
  28. data/lib/alchemy/ajax_form_resource.rb +45 -0
  29. data/lib/generators/custom_form/USAGE +8 -0
  30. data/lib/generators/custom_form/custom_form_generator.rb +191 -0
  31. data/lib/generators/custom_form/templates/app/controllers/admin/generic_controller.rb.tt +3 -0
  32. data/lib/generators/custom_form/templates/app/controllers/generic_controller.rb.tt +3 -0
  33. data/lib/generators/custom_form/templates/app/lib/generic_resource.rb.tt +4 -0
  34. data/lib/generators/custom_form/templates/app/model/generic_ability.rb.tt +18 -0
  35. data/lib/generators/custom_form/templates/app/model/generic_form.rb.tt +15 -0
  36. data/lib/generators/custom_form/templates/app/views/alchemy/ajax_forms_mailer/_generic_form.html.erb.tt +38 -0
  37. data/lib/generators/custom_form/templates/app/views/alchemy/ajax_forms_mailer/_generic_user_form.html.erb.tt +39 -0
  38. data/lib/generators/custom_form/templates/app/views/alchemy/elements/_generic_ajax_form_view.html.erb.tt +50 -0
  39. data/lib/generators/custom_form/templates/config/initializers/alchemy_ajax_forms.rb.tt +26 -0
  40. data/lib/generators/custom_form/templates/db/migrate/generic_migration.rb.tt +12 -0
  41. data/lib/tasks/alchemy/ajax/form_tasks.rake +4 -0
  42. 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
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :alchemy_ajax_form do
3
+ # # Task goes here
4
+ # 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: []