radiant-forms-extension 3.2.2 → 3.2.4

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/VERSION CHANGED
@@ -1 +1 @@
1
- 3.2.2
1
+ 3.2.4
@@ -4,10 +4,18 @@ class FormsController < ApplicationController
4
4
 
5
5
  skip_before_filter :verify_authenticity_token
6
6
 
7
+ def new
8
+ @response = find_or_create_response
9
+ @response.update_attribute(:result, nil)
10
+
11
+ redirect_to :back
12
+ end
13
+
7
14
  def update
8
15
  @page = Page.find(params[:page_id]) rescue Page.first
9
16
  @page.data = params
10
17
  @page.request = OpenStruct.new({
18
+ :referrer => request.referer,
11
19
  :session => session # Creating a pretend response object
12
20
  })
13
21
 
data/config/routes.rb CHANGED
@@ -4,6 +4,6 @@ ActionController::Routing::Routes.draw do |map|
4
4
  admin.resources :forms
5
5
  end
6
6
 
7
- map.resources :forms, :only => [ :update ]
7
+ map.resources :forms, :only => [ :new, :update ]
8
8
 
9
9
  end
data/forms_extension.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  class FormsExtension < Radiant::Extension
2
- version '2.0'
2
+ version '3.2.4'
3
3
  description 'Radiant Form extension. Site wide, useful form management'
4
4
  url 'http://github.com/squaretalent/radiant-forms-extension'
5
5
 
@@ -179,13 +179,25 @@ module Forms
179
179
  desc %{
180
180
  Allows access to the response of a submitted form
181
181
  @<r:response>...<r:get /><r:clear />...</r:response>@
182
-
183
- _Will not expand if a form has not been submitted or has been cleared_
184
182
  }
185
183
  tag 'response' do |tag|
186
184
  tag.locals.response = Forms::Tags::Responses.current(tag,request)
187
185
 
188
- tag.expand if tag.locals.response.present? and tag.locals.response.result.present?
186
+ tag.expand
187
+ end
188
+
189
+ desc %{
190
+ Expands if a response object exists in the user session
191
+ }
192
+ tag 'response:if_response' do |tag|
193
+ tag.expand if tag.locals.response.present? and tag.locals.response.results.present?
194
+ end
195
+
196
+ desc %{
197
+ Expands unless a response object exists in the user session
198
+ }
199
+ tag 'response:unless_response' do |tag|
200
+ tag.expand if tag.locals.response.blank? or tag.locals.response.results.blank?
189
201
  end
190
202
 
191
203
  desc %{
@@ -194,58 +206,77 @@ module Forms
194
206
  @<r:response:clear />@
195
207
  }
196
208
  tag 'response:clear' do |tag|
197
- Forms::Tags::Responses.clear(tag)
209
+ if tag.locals.response.present? and tag.locals.response.result.present?
210
+ Forms::Tags::Responses.clear(tag)
211
+ end
198
212
 
199
- nil
213
+ tag.expand
200
214
  end
201
215
 
202
216
  desc %{ Expand if there is a response to a specified for value }
203
217
  tag 'response:if_results' do |tag|
204
218
  extension = tag.attr['extension'].to_sym
205
- tag.locals.response_extension = tag.locals.response.result[:results][extension]
206
-
207
- tag.expand if tag.locals.response_extension.present?
219
+ if tag.locals.response.result.present?
220
+ tag.locals.response_extension = tag.locals.response.result[:results][extension]
221
+
222
+ if tag.locals.response_extension.present?
223
+ tag.expand
224
+ end
225
+ end
208
226
  end
209
227
 
210
228
  desc %{ Expand if there is a response to a specified for value }
211
229
  tag 'response:unless_results' do |tag|
212
230
  extension = tag.attr['extension'].to_sym
213
- tag.locals.response_extension = tag.locals.response.result[:results][extension]
214
231
 
215
- tag.expand unless tag.locals.response_extension.present?
232
+ unless tag.locals.response.result.present?
233
+ tag.expand
234
+ else
235
+ tag.locals.response_extension = tag.locals.response.result[:results][extension]
236
+
237
+ unless tag.locals.response_extension.present?
238
+ tag.expand
239
+ end
240
+ end
216
241
  end
217
242
 
218
243
  desc %{ Expand if there is a positive response to a specified for value of an extension
219
244
 
220
245
  <pre>
221
- <r:response:if_get extension='bogus_gateway' value='checkout'>yay</r:response:if_get>
246
+ <r:response:if_get extension='bogus_gateway' name='checkout'>yay</r:response:if_get>
222
247
  </pre>
223
248
  }
224
249
  tag 'response:if_get' do |tag|
225
- query = tag.attr['name'].to_sym
226
- result = tag.locals.response_extension[query]
250
+ if tag.locals.response_extension.present?
251
+ query = tag.attr['name'].to_sym
252
+ result = tag.locals.response_extension[query]
227
253
 
228
- tag.expand if result.present? and result === true
254
+ tag.expand if result.present? and result === true
255
+ end
229
256
  end
230
257
 
231
258
  desc %{ Expand if there is a negative response to a specified for value of an extension
232
259
 
233
260
  <pre>
234
- <r:response:unless_get extension='bogus_gateway' value='checkout'>no</r:response:unless_get>
261
+ <r:response:unless_get extension='bogus_gateway' name='checkout'>no</r:response:unless_get>
235
262
  </pre>
236
263
  }
237
264
  tag 'response:unless_get' do |tag|
238
- query = tag.attr['name'].to_sym
239
- result = tag.locals.response_extension[query]
265
+ if tag.locals.response_extension.present?
266
+ query = tag.attr['name'].to_sym
267
+ result = tag.locals.response_extension[query]
240
268
 
241
- tag.expand if !result.present? or result != true
269
+ tag.expand if !result.present? or result != true
270
+ else
271
+ tag.expand
272
+ end
242
273
  end
243
274
 
244
275
  desc %{
245
276
  Access the attributes of a submitted form.
246
277
 
247
278
  @<r:response:get name="object[value]" />@ an object which was submitted with the form
248
- @<r:response:get name="result[mail][value]" />@ a response to the mail extension hooking the form
279
+ @<r:response:get name="results[mail][value]" />@ a response to the mail extension hooking the form
249
280
 
250
281
  _Refer to the readme on extensions to find out what they return_
251
282
  }
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{radiant-forms-extension}
8
- s.version = "3.2.2"
8
+ s.version = "3.2.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["dirkkelly"]
12
- s.date = %q{2010-10-25}
12
+ s.date = %q{2010-10-26}
13
13
  s.description = %q{Send data from a page to a form handler, extendable with addons}
14
14
  s.email = %q{dirk.kelly@squaretalent.com}
15
15
  s.extra_rdoc_files = [
@@ -3,6 +3,22 @@ require File.dirname(__FILE__) + '/../spec_helper'
3
3
  describe FormsController do
4
4
  dataset :pages, :forms
5
5
 
6
+ context '#new' do
7
+
8
+ it 'should redirect to :back' do
9
+ request.env['HTTP_REFERER'] = '/back'
10
+ @object = Object.new
11
+ stub(@object).result = { :some => 'array'}
12
+
13
+ mock(controller).find_or_create_response { @object }
14
+ mock(@object).update_attribute(:result, nil)
15
+
16
+ get :new
17
+
18
+ response.should redirect_to("/back")
19
+ end
20
+ end
21
+
6
22
  context '#create' do
7
23
 
8
24
  before :each do
@@ -26,6 +26,8 @@ describe Forms::Tags::Core do
26
26
  'form:read:each',
27
27
 
28
28
  'response',
29
+ 'response:if_response',
30
+ 'response:unless_response',
29
31
  'response:clear',
30
32
  'response:get',
31
33
  'response:if_results',
@@ -174,6 +176,15 @@ describe Forms::Tags::Core do
174
176
  end
175
177
 
176
178
  describe 'unless_results' do
179
+ context 'response result does not exist' do
180
+ it 'should render' do
181
+ @response.result = nil
182
+
183
+ tag = %{<r:response:unless_results extension='bogus'>success</r:response:unless_results>}
184
+ exp = %{success}
185
+ @page.should render(tag).as(exp)
186
+ end
187
+ end
177
188
  context 'extension did not send results' do
178
189
  it 'should render' do
179
190
  tag = %{<r:response:unless_results extension='bogus'>success</r:response:unless_results>}
@@ -190,6 +201,7 @@ describe Forms::Tags::Core do
190
201
  @page.should render(tag).as(exp)
191
202
  end
192
203
  end
204
+
193
205
  end
194
206
 
195
207
  describe 'if_get' do
data/spec/spec.opts CHANGED
@@ -1,4 +1,3 @@
1
1
  --colour
2
2
  --format specdoc
3
- --loadby mtime
4
- --reverse
3
+ --loadby mtime
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: radiant-forms-extension
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 7
5
5
  prerelease: false
6
6
  segments:
7
7
  - 3
8
8
  - 2
9
- - 2
10
- version: 3.2.2
9
+ - 4
10
+ version: 3.2.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - dirkkelly
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-25 00:00:00 +08:00
18
+ date: 2010-10-26 00:00:00 +08:00
19
19
  default_executable:
20
20
  dependencies: []
21
21