wheelhouse-forms 1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. data/LICENSE +22 -0
  2. data/README.md +39 -0
  3. data/app/assets/images/wheelhouse-forms/checkbox.png +0 -0
  4. data/app/assets/images/wheelhouse-forms/checkboxes.png +0 -0
  5. data/app/assets/images/wheelhouse-forms/content.png +0 -0
  6. data/app/assets/images/wheelhouse-forms/countries.png +0 -0
  7. data/app/assets/images/wheelhouse-forms/csv.png +0 -0
  8. data/app/assets/images/wheelhouse-forms/custom.png +0 -0
  9. data/app/assets/images/wheelhouse-forms/drag.png +0 -0
  10. data/app/assets/images/wheelhouse-forms/field-set.png +0 -0
  11. data/app/assets/images/wheelhouse-forms/form.png +0 -0
  12. data/app/assets/images/wheelhouse-forms/radio-buttons.png +0 -0
  13. data/app/assets/images/wheelhouse-forms/select.png +0 -0
  14. data/app/assets/images/wheelhouse-forms/states.png +0 -0
  15. data/app/assets/images/wheelhouse-forms/submit-button.png +0 -0
  16. data/app/assets/images/wheelhouse-forms/text-area.png +0 -0
  17. data/app/assets/images/wheelhouse-forms/text-field.png +0 -0
  18. data/app/assets/javascripts/wheelhouse-forms/admin.js +125 -0
  19. data/app/assets/javascripts/wheelhouse-forms/jquery.autogrow.js +50 -0
  20. data/app/assets/javascripts/wheelhouse-forms/jquery.options.js +24 -0
  21. data/app/assets/stylesheets/wheelhouse-forms/admin.css.sass +244 -0
  22. data/app/controllers/forms/forms_controller.rb +9 -0
  23. data/app/controllers/forms/submissions_controller.rb +19 -0
  24. data/app/handlers/forms/form_handler.rb +17 -0
  25. data/app/helpers/forms/forms_helper.rb +36 -0
  26. data/app/helpers/forms/mailer_helper.rb +67 -0
  27. data/app/helpers/forms/submissions_helper.rb +71 -0
  28. data/app/mailers/forms/mailer.rb +11 -0
  29. data/app/models/forms/field_collection.rb +21 -0
  30. data/app/models/forms/fields/checkbox.rb +8 -0
  31. data/app/models/forms/fields/checkboxes.rb +10 -0
  32. data/app/models/forms/fields/content_field.rb +7 -0
  33. data/app/models/forms/fields/countries_dropdown.rb +14 -0
  34. data/app/models/forms/fields/custom_field.rb +8 -0
  35. data/app/models/forms/fields/field.rb +28 -0
  36. data/app/models/forms/fields/field_set.rb +14 -0
  37. data/app/models/forms/fields/optioned_field.rb +17 -0
  38. data/app/models/forms/fields/radio_buttons.rb +10 -0
  39. data/app/models/forms/fields/select_field.rb +10 -0
  40. data/app/models/forms/fields/states_dropdown.rb +15 -0
  41. data/app/models/forms/fields/submit_button.rb +7 -0
  42. data/app/models/forms/fields/text_area.rb +8 -0
  43. data/app/models/forms/fields/text_field.rb +21 -0
  44. data/app/models/forms/form.rb +65 -0
  45. data/app/models/forms/submission.rb +53 -0
  46. data/app/renderers/forms/checkbox_renderer.rb +7 -0
  47. data/app/renderers/forms/checkboxes_renderer.rb +18 -0
  48. data/app/renderers/forms/content_field_renderer.rb +5 -0
  49. data/app/renderers/forms/custom_field_renderer.rb +5 -0
  50. data/app/renderers/forms/field_collection_renderer.rb +13 -0
  51. data/app/renderers/forms/field_renderer.rb +57 -0
  52. data/app/renderers/forms/field_set_renderer.rb +10 -0
  53. data/app/renderers/forms/form_renderer.rb +30 -0
  54. data/app/renderers/forms/labelled_field_renderer.rb +10 -0
  55. data/app/renderers/forms/radio_buttons_renderer.rb +18 -0
  56. data/app/renderers/forms/select_field_renderer.rb +9 -0
  57. data/app/renderers/forms/submit_button_renderer.rb +5 -0
  58. data/app/renderers/forms/text_area_renderer.rb +7 -0
  59. data/app/renderers/forms/text_field_renderer.rb +7 -0
  60. data/app/templates/form.html.haml +9 -0
  61. data/app/templates/form.xhr.haml +4 -0
  62. data/app/templates/form/submission.html.haml +15 -0
  63. data/app/views/forms/forms/_checkbox.haml +3 -0
  64. data/app/views/forms/forms/_checkboxes.haml +10 -0
  65. data/app/views/forms/forms/_content_field.haml +3 -0
  66. data/app/views/forms/forms/_countries_dropdown.haml +4 -0
  67. data/app/views/forms/forms/_custom_field.haml +4 -0
  68. data/app/views/forms/forms/_field_set.haml +16 -0
  69. data/app/views/forms/forms/_radio_buttons.haml +10 -0
  70. data/app/views/forms/forms/_select_field.haml +10 -0
  71. data/app/views/forms/forms/_states_dropdown.haml +4 -0
  72. data/app/views/forms/forms/_submissions.haml +20 -0
  73. data/app/views/forms/forms/_submit_button.haml +2 -0
  74. data/app/views/forms/forms/_text_area.haml +3 -0
  75. data/app/views/forms/forms/_text_field.haml +4 -0
  76. data/app/views/forms/forms/designer.haml +56 -0
  77. data/app/views/forms/forms/edit.html.haml +5 -0
  78. data/app/views/forms/forms/form.haml +22 -0
  79. data/app/views/forms/forms/new.html.haml +4 -0
  80. data/app/views/forms/forms/show.html.haml +4 -0
  81. data/app/views/forms/submissions/form.haml +16 -0
  82. data/app/views/forms/submissions/show.html.haml +4 -0
  83. data/config/countries.yml +245 -0
  84. data/config/locales/en.yml +7 -0
  85. data/config/routes.rb +7 -0
  86. data/config/states.yml +62 -0
  87. data/lib/forms/csv_exporter.rb +41 -0
  88. data/lib/wheelhouse-forms.rb +26 -0
  89. metadata +149 -0
data/config/routes.rb ADDED
@@ -0,0 +1,7 @@
1
+ Forms::Plugin.routes.draw do
2
+ extend Wheelhouse::RouteExtensions
3
+
4
+ resources :forms do
5
+ resources :submissions
6
+ end
7
+ end
data/config/states.yml ADDED
@@ -0,0 +1,62 @@
1
+ US:
2
+ AL: Alabama
3
+ AK: Alaska
4
+ AZ: Arizona
5
+ AR: Arkansas
6
+ CA: California
7
+ CO: Colorado
8
+ CT: Connecticut
9
+ DE: Delaware
10
+ DC: District Of Columbia
11
+ FL: Florida
12
+ GA: Georgia
13
+ HI: Hawaii
14
+ ID: Idaho
15
+ IL: Illinois
16
+ IN: Indiana
17
+ IA: Iowa
18
+ KS: Kansas
19
+ KY: Kentucky
20
+ LA: Louisiana
21
+ ME: Maine
22
+ MD: Maryland
23
+ MA: Massachusetts
24
+ MI: Michigan
25
+ MN: Minnesota
26
+ MS: Mississippi
27
+ MO: Missouri
28
+ MT: Montana
29
+ NE: Nebraska
30
+ NV: Nevada
31
+ NH: New Hampshire
32
+ NJ: New Jersey
33
+ NM: New Mexico
34
+ NY: New York
35
+ NC: North Carolina
36
+ ND: North Dakota
37
+ OH: Ohio
38
+ OK: Oklahoma
39
+ OR: Oregon
40
+ PA: Pennsylvania
41
+ RI: Rhode Island
42
+ SC: South Carolina
43
+ SD: South Dakota
44
+ TN: Tennessee
45
+ TX: Texas
46
+ UT: Utah
47
+ VT: Vermont
48
+ VA: Virginia
49
+ WA: Washington
50
+ WV: West Virginia
51
+ WI: Wisconsin
52
+ WY: Wyoming
53
+
54
+ Australia:
55
+ ACT: Australian Capital Territory
56
+ NSW: New South Wales
57
+ NT: Northern Territory
58
+ SA: South Australia
59
+ TAS: Tasmania
60
+ VIC: Victoria
61
+ WA: Western Australia
62
+ QLD: Queensland
@@ -0,0 +1,41 @@
1
+ require 'csv'
2
+
3
+ class Forms::CsvExporter
4
+ def initialize(form)
5
+ @form = form
6
+ end
7
+
8
+ def to_csv
9
+ CSV.generate do |csv|
10
+ csv << headers
11
+
12
+ @form.submissions.each do |submission|
13
+ csv << values(submission)
14
+ end
15
+ end
16
+ end
17
+
18
+ private
19
+ def headers
20
+ ["Submitted at"] + fields.map(&:label)
21
+ end
22
+
23
+ def values(submission)
24
+ [submission.created_at] + fields.map { |field|
25
+ value = submission.value_for(field)
26
+
27
+ case value
28
+ when Array
29
+ value.join(", ")
30
+ when Hash
31
+ value.map { |k, v| "#{k}: #{v}" }.join(", ")
32
+ else
33
+ value
34
+ end
35
+ }
36
+ end
37
+
38
+ def fields
39
+ @fields ||= @form.fields.flatten.select { |f| f.respond_to?(:label) }
40
+ end
41
+ end
@@ -0,0 +1,26 @@
1
+ require "wheelhouse"
2
+
3
+ module Forms
4
+ class Plugin < Wheelhouse::Plugin
5
+ config.wheelhouse.forms = ActiveSupport::OrderedOptions.new
6
+
7
+ # Disable custom fields by default
8
+ config.wheelhouse.forms.custom_fields = false
9
+
10
+ isolate_namespace Forms
11
+
12
+ resource { Form }
13
+
14
+ initializer :add_mailer_template_paths do
15
+ Forms::Mailer.prepend_view_path(paths["app/templates"].existent.to_a)
16
+ end
17
+
18
+ initializer :precompile_assets do |app|
19
+ app.config.assets.precompile += %w(wheelhouse-forms/admin.*)
20
+ end
21
+
22
+ def self.load_yaml(file)
23
+ YAML.load(IO.read(File.join(paths["config"].first, file)))
24
+ end
25
+ end
26
+ end
metadata ADDED
@@ -0,0 +1,149 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wheelhouse-forms
3
+ version: !ruby/object:Gem::Version
4
+ version: '1.0'
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Sam Pohlenz
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-12-04 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: wheelhouse
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '1.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.0'
30
+ description: Integrates forms into your Wheelhouse CMS site.
31
+ email: info@wheelhousecms.com
32
+ executables: []
33
+ extensions: []
34
+ extra_rdoc_files: []
35
+ files:
36
+ - app/assets/images/wheelhouse-forms/checkbox.png
37
+ - app/assets/images/wheelhouse-forms/checkboxes.png
38
+ - app/assets/images/wheelhouse-forms/content.png
39
+ - app/assets/images/wheelhouse-forms/countries.png
40
+ - app/assets/images/wheelhouse-forms/csv.png
41
+ - app/assets/images/wheelhouse-forms/custom.png
42
+ - app/assets/images/wheelhouse-forms/drag.png
43
+ - app/assets/images/wheelhouse-forms/field-set.png
44
+ - app/assets/images/wheelhouse-forms/form.png
45
+ - app/assets/images/wheelhouse-forms/radio-buttons.png
46
+ - app/assets/images/wheelhouse-forms/select.png
47
+ - app/assets/images/wheelhouse-forms/states.png
48
+ - app/assets/images/wheelhouse-forms/submit-button.png
49
+ - app/assets/images/wheelhouse-forms/text-area.png
50
+ - app/assets/images/wheelhouse-forms/text-field.png
51
+ - app/assets/javascripts/wheelhouse-forms/admin.js
52
+ - app/assets/javascripts/wheelhouse-forms/jquery.autogrow.js
53
+ - app/assets/javascripts/wheelhouse-forms/jquery.options.js
54
+ - app/assets/stylesheets/wheelhouse-forms/admin.css.sass
55
+ - app/controllers/forms/forms_controller.rb
56
+ - app/controllers/forms/submissions_controller.rb
57
+ - app/handlers/forms/form_handler.rb
58
+ - app/helpers/forms/forms_helper.rb
59
+ - app/helpers/forms/mailer_helper.rb
60
+ - app/helpers/forms/submissions_helper.rb
61
+ - app/mailers/forms/mailer.rb
62
+ - app/models/forms/field_collection.rb
63
+ - app/models/forms/fields/checkbox.rb
64
+ - app/models/forms/fields/checkboxes.rb
65
+ - app/models/forms/fields/content_field.rb
66
+ - app/models/forms/fields/countries_dropdown.rb
67
+ - app/models/forms/fields/custom_field.rb
68
+ - app/models/forms/fields/field.rb
69
+ - app/models/forms/fields/field_set.rb
70
+ - app/models/forms/fields/optioned_field.rb
71
+ - app/models/forms/fields/radio_buttons.rb
72
+ - app/models/forms/fields/select_field.rb
73
+ - app/models/forms/fields/states_dropdown.rb
74
+ - app/models/forms/fields/submit_button.rb
75
+ - app/models/forms/fields/text_area.rb
76
+ - app/models/forms/fields/text_field.rb
77
+ - app/models/forms/form.rb
78
+ - app/models/forms/submission.rb
79
+ - app/renderers/forms/checkbox_renderer.rb
80
+ - app/renderers/forms/checkboxes_renderer.rb
81
+ - app/renderers/forms/content_field_renderer.rb
82
+ - app/renderers/forms/custom_field_renderer.rb
83
+ - app/renderers/forms/field_collection_renderer.rb
84
+ - app/renderers/forms/field_renderer.rb
85
+ - app/renderers/forms/field_set_renderer.rb
86
+ - app/renderers/forms/form_renderer.rb
87
+ - app/renderers/forms/labelled_field_renderer.rb
88
+ - app/renderers/forms/radio_buttons_renderer.rb
89
+ - app/renderers/forms/select_field_renderer.rb
90
+ - app/renderers/forms/submit_button_renderer.rb
91
+ - app/renderers/forms/text_area_renderer.rb
92
+ - app/renderers/forms/text_field_renderer.rb
93
+ - app/templates/form/submission.html.haml
94
+ - app/templates/form.html.haml
95
+ - app/templates/form.xhr.haml
96
+ - app/views/forms/forms/_checkbox.haml
97
+ - app/views/forms/forms/_checkboxes.haml
98
+ - app/views/forms/forms/_content_field.haml
99
+ - app/views/forms/forms/_countries_dropdown.haml
100
+ - app/views/forms/forms/_custom_field.haml
101
+ - app/views/forms/forms/_field_set.haml
102
+ - app/views/forms/forms/_radio_buttons.haml
103
+ - app/views/forms/forms/_select_field.haml
104
+ - app/views/forms/forms/_states_dropdown.haml
105
+ - app/views/forms/forms/_submissions.haml
106
+ - app/views/forms/forms/_submit_button.haml
107
+ - app/views/forms/forms/_text_area.haml
108
+ - app/views/forms/forms/_text_field.haml
109
+ - app/views/forms/forms/designer.haml
110
+ - app/views/forms/forms/edit.html.haml
111
+ - app/views/forms/forms/form.haml
112
+ - app/views/forms/forms/new.html.haml
113
+ - app/views/forms/forms/show.html.haml
114
+ - app/views/forms/submissions/form.haml
115
+ - app/views/forms/submissions/show.html.haml
116
+ - config/countries.yml
117
+ - config/locales/en.yml
118
+ - config/routes.rb
119
+ - config/states.yml
120
+ - lib/forms/csv_exporter.rb
121
+ - lib/wheelhouse-forms.rb
122
+ - README.md
123
+ - LICENSE
124
+ homepage: https://www.wheelhousecms.com
125
+ licenses: []
126
+ post_install_message:
127
+ rdoc_options: []
128
+ require_paths:
129
+ - lib
130
+ required_ruby_version: !ruby/object:Gem::Requirement
131
+ none: false
132
+ requirements:
133
+ - - ! '>='
134
+ - !ruby/object:Gem::Version
135
+ version: 1.8.7
136
+ required_rubygems_version: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: 1.3.6
142
+ requirements: []
143
+ rubyforge_project:
144
+ rubygems_version: 1.8.24
145
+ signing_key:
146
+ specification_version: 3
147
+ summary: Wheelhouse CMS Forms Plugin
148
+ test_files: []
149
+ has_rdoc: