wheelhouse-forms 1.0

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.
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: