radiant-forms-extension 2.0.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.
- data/.gitignore +3 -0
- data/README.md +117 -0
- data/Rakefile +137 -0
- data/VERSION +1 -0
- data/app/controllers/admin/forms_controller.rb +10 -0
- data/app/controllers/forms_controller.rb +35 -0
- data/app/models/form.rb +5 -0
- data/app/models/form_page.rb +7 -0
- data/app/models/response.rb +11 -0
- data/app/views/admin/forms/_fields.html.haml +56 -0
- data/app/views/admin/forms/_filters.html.haml +7 -0
- data/app/views/admin/forms/_form.html.haml +6 -0
- data/app/views/admin/forms/_header.html.haml +3 -0
- data/app/views/admin/forms/edit.html.haml +15 -0
- data/app/views/admin/forms/index.html.haml +20 -0
- data/app/views/admin/forms/new.html.haml +15 -0
- data/app/views/admin/forms/remove.html.haml +20 -0
- data/config/locales/en.yml +3 -0
- data/config/routes.rb +9 -0
- data/cucumber.yml +1 -0
- data/db/migrate/001_create_forms.rb +16 -0
- data/db/migrate/002_create_user_observer.rb +15 -0
- data/db/migrate/003_rename_output_to_content.rb +9 -0
- data/db/migrate/004_create_responses.rb +13 -0
- data/forms_extension.rb +24 -0
- data/lib/forms/admin_ui.rb +23 -0
- data/lib/forms/application_controller_extensions.rb +20 -0
- data/lib/forms/extension_methods.rb +14 -0
- data/lib/forms/page_extensions.rb +6 -0
- data/lib/forms/site_controller_extensions.rb +19 -0
- data/lib/forms/tags.rb +277 -0
- data/lib/tasks/forms_extension_tasks.rake +55 -0
- data/public/images/admin/extensions/form/form.png +0 -0
- data/radiant-forms-extension.gemspec +87 -0
- data/spec/controllers/forms_controller_spec.rb +150 -0
- data/spec/datasets/forms.rb +30 -0
- data/spec/lib/forms/extension_methods_spec.rb +41 -0
- data/spec/lib/forms/tags_spec.rb +122 -0
- data/spec/models/form_spec.rb +40 -0
- data/spec/models/response_spec.rb +31 -0
- data/spec/spec.opts +7 -0
- data/spec/spec_helper.rb +18 -0
- metadata +102 -0
@@ -0,0 +1,122 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
|
3
|
+
describe Forms::Tags do
|
4
|
+
dataset :pages, :forms
|
5
|
+
|
6
|
+
context 'form output' do
|
7
|
+
|
8
|
+
before :all do
|
9
|
+
@form = forms(:test)
|
10
|
+
@page = pages(:home)
|
11
|
+
end
|
12
|
+
|
13
|
+
describe '<r:form>' do
|
14
|
+
it 'should render the correct HTML' do
|
15
|
+
tag = %{<r:form name="#{@form.title}" />}
|
16
|
+
|
17
|
+
expected = %{<form enctype="multipart/form-data" name="#{@form.title}" method="post" action="/forms/#{@form.id}" id="form_test_form">
|
18
|
+
<input type="hidden" name="page_id" value="#{@page.id}" />
|
19
|
+
<input type="hidden" name="form_id" value="#{@form.id}" />
|
20
|
+
<input type="text" value="" name="request[test]" class="text" id="request_test" /></form>}
|
21
|
+
|
22
|
+
@page.should render(tag).as(expected)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe '<r:form:label>' do
|
27
|
+
|
28
|
+
it 'should render the correct HTML' do
|
29
|
+
tag = %{<r:form:label for="test[field]">text</r:form:label>}
|
30
|
+
expected = %{<label id="test_field_label" for="test_field">text</label>}
|
31
|
+
@page.should render(tag).as(expected)
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should require the name attribute' do
|
35
|
+
tag = %{<r:form:label />}
|
36
|
+
@page.should_not render(tag)
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
%w(text password reset checkbox radio hidden file button).each do |type|
|
42
|
+
|
43
|
+
describe "<r:form:#{type}>" do
|
44
|
+
|
45
|
+
it 'should render the correct HTML' do
|
46
|
+
tag = %{<r:form:#{type} name="test[field]">text</r:form:#{type}>}
|
47
|
+
expected = %{<input type="#{type}" value="" name="test[field]" class="#{type}" id="test_field" />}
|
48
|
+
@page.should render(tag).as(expected)
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'should require the name attribute' do
|
52
|
+
tag = %{<r:form:#{type} />}
|
53
|
+
@page.should_not render(tag)
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
describe '<r:form:select>' do
|
61
|
+
|
62
|
+
it 'should render the correct HTML' do
|
63
|
+
tag = %{<r:form:select name="test[field]" />}
|
64
|
+
expected = %{<select name="test[field]" id="test_field"></select>}
|
65
|
+
@page.should render(tag).as(expected)
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'should render correct options HTML' do
|
69
|
+
tag = %{<r:form:select name="test[field]"><r:option value="one" /><r:option value="two">three</r:option></r:form:select>}
|
70
|
+
expected = %{<select name="test[field]" id="test_field"><option value="one">one</option><option value="two">three</option></select>}
|
71
|
+
@page.should render(tag).as(expected)
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'should require the name attribute' do
|
75
|
+
tag = %{<r:form:select />}
|
76
|
+
@page.should_not render(tag)
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
80
|
+
|
81
|
+
describe '<r:form:radios>' do
|
82
|
+
|
83
|
+
it 'should render the correct HTML' do
|
84
|
+
tag = %{<r:form:radios name="test[field]" />}
|
85
|
+
expected = %{}
|
86
|
+
@page.should render(tag).as(expected)
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'should render correct options HTML' do
|
90
|
+
tag = %{<r:form:radios name="test[field]"><r:option value="one" /><r:option value="two" /></r:form:radios>}
|
91
|
+
expected = %{<input name="test[field]" id="test_field_one" type="radio" value="one" /><input name="test[field]" id="test_field_two" type="radio" value="two" />}
|
92
|
+
@page.should render(tag).as(expected)
|
93
|
+
end
|
94
|
+
|
95
|
+
it 'should require the name attribute' do
|
96
|
+
tag = %{<r:form:radios />}
|
97
|
+
@page.should_not render(tag)
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
101
|
+
|
102
|
+
describe '<r:form:submit>' do
|
103
|
+
|
104
|
+
it 'should render the correct HTML' do
|
105
|
+
|
106
|
+
end
|
107
|
+
|
108
|
+
end
|
109
|
+
|
110
|
+
end
|
111
|
+
|
112
|
+
context 'form hooking' do
|
113
|
+
|
114
|
+
|
115
|
+
end
|
116
|
+
|
117
|
+
context 'form response' do
|
118
|
+
|
119
|
+
end
|
120
|
+
|
121
|
+
|
122
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
describe Form do
|
4
|
+
dataset :forms
|
5
|
+
|
6
|
+
describe '#attributes' do
|
7
|
+
|
8
|
+
before :all do
|
9
|
+
@form = forms(:test)
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should have a title string' do
|
13
|
+
@form.title.is_a?(String).should == true
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should have an action string' do
|
17
|
+
@form.action = ''
|
18
|
+
@form.action.is_a?(String).should == true
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should have a redirect_to string' do
|
22
|
+
@form.redirect_to = ''
|
23
|
+
@form.redirect_to.is_a?(String).should == true
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should have a body string' do
|
27
|
+
@form.body.is_a?(String).should == true
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should have an content string' do
|
31
|
+
@form.content.is_a?(String).should == true
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should have a config string' do
|
35
|
+
@form.config.is_a?(String).should == true
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
describe Response do
|
4
|
+
|
5
|
+
before :each do
|
6
|
+
@response = Response.new
|
7
|
+
@object = { 'test' => 'test' }
|
8
|
+
end
|
9
|
+
|
10
|
+
context 'setting' do
|
11
|
+
|
12
|
+
it 'should store an object' do
|
13
|
+
@response.result.should be_nil
|
14
|
+
@response.result = @object
|
15
|
+
@response.result.should_not be_nil
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should return an object' do
|
19
|
+
@response.result_json = @object.to_json
|
20
|
+
@response.result.should_not be_nil
|
21
|
+
@response.result == @object
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should set and return the same object' do
|
25
|
+
@response.result = @object
|
26
|
+
@response.result.should == @object
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
data/spec/spec.opts
ADDED
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
unless defined? RADIANT_ROOT
|
2
|
+
ENV["RAILS_ENV"] = "test"
|
3
|
+
case
|
4
|
+
when ENV["RADIANT_ENV_FILE"]
|
5
|
+
require ENV["RADIANT_ENV_FILE"]
|
6
|
+
when File.dirname(__FILE__) =~ %r{vendor/radiant/vendor/extensions}
|
7
|
+
require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../../../")}/config/environment"
|
8
|
+
else
|
9
|
+
require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../")}/config/environment"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
require "#{RADIANT_ROOT}/spec/spec_helper"
|
13
|
+
|
14
|
+
Dataset::Resolver.default << (File.dirname(__FILE__) + "/datasets")
|
15
|
+
|
16
|
+
Spec::Runner.configure do |config|
|
17
|
+
config.mock_with :rr
|
18
|
+
end
|
metadata
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: radiant-forms-extension
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- dirkkelly
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2010-08-02 00:00:00 +08:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: Send data from a page to a form handler, extendable with addons
|
17
|
+
email: dirk.kelly@squaretalent.com
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files:
|
23
|
+
- README.md
|
24
|
+
files:
|
25
|
+
- .gitignore
|
26
|
+
- README.md
|
27
|
+
- Rakefile
|
28
|
+
- VERSION
|
29
|
+
- app/controllers/admin/forms_controller.rb
|
30
|
+
- app/controllers/forms_controller.rb
|
31
|
+
- app/models/form.rb
|
32
|
+
- app/models/form_page.rb
|
33
|
+
- app/models/response.rb
|
34
|
+
- app/views/admin/forms/_fields.html.haml
|
35
|
+
- app/views/admin/forms/_filters.html.haml
|
36
|
+
- app/views/admin/forms/_form.html.haml
|
37
|
+
- app/views/admin/forms/_header.html.haml
|
38
|
+
- app/views/admin/forms/edit.html.haml
|
39
|
+
- app/views/admin/forms/index.html.haml
|
40
|
+
- app/views/admin/forms/new.html.haml
|
41
|
+
- app/views/admin/forms/remove.html.haml
|
42
|
+
- config/locales/en.yml
|
43
|
+
- config/routes.rb
|
44
|
+
- cucumber.yml
|
45
|
+
- db/migrate/001_create_forms.rb
|
46
|
+
- db/migrate/002_create_user_observer.rb
|
47
|
+
- db/migrate/003_rename_output_to_content.rb
|
48
|
+
- db/migrate/004_create_responses.rb
|
49
|
+
- forms_extension.rb
|
50
|
+
- lib/forms/admin_ui.rb
|
51
|
+
- lib/forms/application_controller_extensions.rb
|
52
|
+
- lib/forms/extension_methods.rb
|
53
|
+
- lib/forms/page_extensions.rb
|
54
|
+
- lib/forms/site_controller_extensions.rb
|
55
|
+
- lib/forms/tags.rb
|
56
|
+
- lib/tasks/forms_extension_tasks.rake
|
57
|
+
- public/images/admin/extensions/form/form.png
|
58
|
+
- radiant-forms-extension.gemspec
|
59
|
+
- spec/controllers/forms_controller_spec.rb
|
60
|
+
- spec/datasets/forms.rb
|
61
|
+
- spec/lib/forms/extension_methods_spec.rb
|
62
|
+
- spec/lib/forms/tags_spec.rb
|
63
|
+
- spec/models/form_spec.rb
|
64
|
+
- spec/models/response_spec.rb
|
65
|
+
- spec/spec.opts
|
66
|
+
- spec/spec_helper.rb
|
67
|
+
has_rdoc: true
|
68
|
+
homepage: http://github.com/squaretalent/radiant-forms-extension
|
69
|
+
licenses: []
|
70
|
+
|
71
|
+
post_install_message:
|
72
|
+
rdoc_options:
|
73
|
+
- --charset=UTF-8
|
74
|
+
require_paths:
|
75
|
+
- lib
|
76
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: "0"
|
81
|
+
version:
|
82
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: "0"
|
87
|
+
version:
|
88
|
+
requirements: []
|
89
|
+
|
90
|
+
rubyforge_project:
|
91
|
+
rubygems_version: 1.3.5
|
92
|
+
signing_key:
|
93
|
+
specification_version: 3
|
94
|
+
summary: Forms Extension for Radiant CMS
|
95
|
+
test_files:
|
96
|
+
- spec/controllers/forms_controller_spec.rb
|
97
|
+
- spec/datasets/forms.rb
|
98
|
+
- spec/lib/forms/extension_methods_spec.rb
|
99
|
+
- spec/lib/forms/tags_spec.rb
|
100
|
+
- spec/models/form_spec.rb
|
101
|
+
- spec/models/response_spec.rb
|
102
|
+
- spec/spec_helper.rb
|