orange 0.5.1 → 0.5.2
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/lib/orange-core/carton.rb +1 -1
- data/lib/orange-core/views/default_resource/list.haml +1 -1
- data/lib/orange-more.rb +1 -0
- data/lib/orange-more/analytics/resources/analytics_resource.rb +1 -1
- data/lib/orange-more/donations.rb +1 -0
- data/lib/orange-more/donations/cartons/donation_carton.rb +9 -0
- data/lib/orange-more/donations/plugin.rb +12 -0
- data/lib/orange-more/donations/resources/donations_resource.rb +51 -0
- data/lib/orange-more/donations/views/donations/donate_form.haml +21 -0
- data/lib/orange-more/donations/views/donations/donate_thanks.haml +2 -0
- data/lib/orange-more/donations/views/donations/paypal_form.haml +13 -0
- data/lib/orange-more/sitemap/resources/sitemap_resource.rb +1 -1
- metadata +10 -3
data/lib/orange-core/carton.rb
CHANGED
data/lib/orange-more.rb
CHANGED
|
@@ -15,6 +15,7 @@ require File.join(libdir, 'orange-more', 'testimonials')
|
|
|
15
15
|
require File.join(libdir, 'orange-more', 'adverts')
|
|
16
16
|
require File.join(libdir, 'orange-more', 'contactforms')
|
|
17
17
|
require File.join(libdir, 'orange-more', 'analytics')
|
|
18
|
+
require File.join(libdir, 'orange-more', 'donations')
|
|
18
19
|
require File.join(libdir, 'orange-more', 'cloud')
|
|
19
20
|
require File.join(libdir, 'orange-more', 'debugger')
|
|
20
21
|
require File.join(libdir, 'orange-more', 'subsites')
|
|
@@ -16,7 +16,7 @@ module Orange
|
|
|
16
16
|
def pageviews(route, opts = {})
|
|
17
17
|
return "No GA" unless gattica
|
|
18
18
|
r = route.to_s
|
|
19
|
-
# Strip
|
|
19
|
+
# Strip trailing slash if present. GA doesn't like it.
|
|
20
20
|
if r.rindex('/') > 0
|
|
21
21
|
r[r.rindex('/')] = ''
|
|
22
22
|
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require File.join('orange-more', 'donations', 'plugin')
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Dir.glob(File.join(File.dirname(__FILE__), 'cartons', '*.rb')).each {|f| require f }
|
|
2
|
+
Dir.glob(File.join(File.dirname(__FILE__), 'resources', '*.rb')).each {|f| require f }
|
|
3
|
+
|
|
4
|
+
module Orange::Plugins
|
|
5
|
+
class Donations < Base
|
|
6
|
+
views_dir File.join(File.dirname(__FILE__), 'views')
|
|
7
|
+
|
|
8
|
+
resource Orange::DonationsResource.new
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
Orange.plugin(Orange::Plugins::Donations.new)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
module Orange
|
|
2
|
+
class DonationsResource < Orange::ModelResource
|
|
3
|
+
use OrangeDonation
|
|
4
|
+
call_me :donations
|
|
5
|
+
def stack_init
|
|
6
|
+
orange[:admin, true].add_link("Content", :resource => @my_orange_name, :text => 'Donations')
|
|
7
|
+
orange[:radius].define_tag "donations" do |tag|
|
|
8
|
+
template = tag.attr["template"] || "donate_form"
|
|
9
|
+
orange[:donations].form(tag.locals.packet, {:template => template})
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def form(packet, opts = {})
|
|
14
|
+
template = opts[:template].to_sym || :donate_form
|
|
15
|
+
packet['route.return_path'] = packet.request.path.to_s
|
|
16
|
+
do_view(packet, template, opts)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def donate_cancel(packet, opts = {})
|
|
20
|
+
id = packet.session['donation_id']
|
|
21
|
+
m = model_class.get(id)
|
|
22
|
+
m.destroy!
|
|
23
|
+
packet.flash['error'] = "There was an issue completing the process on Paypal."
|
|
24
|
+
packet.reroute((packet.flash('reroute.to') || '/'))
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def process(packet, opts = {})
|
|
28
|
+
params = packet.request.params
|
|
29
|
+
route = params.delete('r')
|
|
30
|
+
params['donation_amount'] = params['donation_amount'].sub(/\$/, '')
|
|
31
|
+
if params['donor_phone'] == '' && packet.request.post? && params['donation_amount'] != '' && params['donation_amount'].to_f >= 0
|
|
32
|
+
template = "paypal_form"
|
|
33
|
+
params.delete('donor_phone')
|
|
34
|
+
obj = self.new(packet, {:no_reroute => true, :params => params})
|
|
35
|
+
packet.session['donation_id'] = obj.id
|
|
36
|
+
packet.flash['reroute.to'] = route
|
|
37
|
+
opts[:donation_amount] = params['donation_amount']
|
|
38
|
+
opts[:paypal_id] = orange.options['paypal_id'] || ''
|
|
39
|
+
do_view(packet, template, opts)
|
|
40
|
+
else
|
|
41
|
+
packet.flash['error'] = "An error has occurred. Please try your submission again."
|
|
42
|
+
packet.reroute(route)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def donate_success(packet, opts = {})
|
|
47
|
+
template = "donate_thanks"
|
|
48
|
+
do_view(packet, template, opts)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
:javascript
|
|
2
|
+
$(function(){
|
|
3
|
+
$('#donate_form').validate();
|
|
4
|
+
});
|
|
5
|
+
%p
|
|
6
|
+
- if(flash['error'])
|
|
7
|
+
.error= flash('error')
|
|
8
|
+
%form{ :class => 'donate_form', :id => 'donate_form', :action => route_to(:donations, :process), :method => 'POST' }
|
|
9
|
+
%label{ :for => 'donor_name'} Your Name
|
|
10
|
+
%input{ :type => 'text', :minlength => '4', :maxlength => '80', :id => 'donor_name', :name => 'donor_name', :class => 'required' }
|
|
11
|
+
%div.donor_phone
|
|
12
|
+
%label{ :for => 'donor_phone'} Your Phone
|
|
13
|
+
%input{ :type => 'text', :minlength => '4', :maxlength => '80', :id => 'donor_phone', :name => 'donor_phone', :value => '' }
|
|
14
|
+
%label{ :for => 'donor_company'} Your Company
|
|
15
|
+
%input{ :type => 'text', :minlength => '4', :maxlength => '180', :id => 'donor_company', :name => 'donor_company', :value => '' }
|
|
16
|
+
%label{ :for => 'donor_email'} Your E-mail
|
|
17
|
+
%input{ :type => 'text', :class => 'email', :id => 'donor_email', :name => 'donor_email' }
|
|
18
|
+
%label{ :for => 'donation_amount'} Donation Amount: $
|
|
19
|
+
%input{ :type => 'text', :class => 'donation_amount', :id => 'donation_amount', :name => 'donation_amount' }
|
|
20
|
+
%input{ :type => 'submit', :value => 'Submit' }
|
|
21
|
+
%input{ :type => 'hidden', :id => 'r', :name => 'r', :value => packet['route.return_path'] }
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
%h3 Redirecting to PayPal...
|
|
2
|
+
%form{ :id => 'pform', :name => '_xclick', :action => 'https://www.paypal.com/cgi-bin/webscr', :method => "post" }
|
|
3
|
+
%input{ :type => 'hidden', :name => 'cmd', :value => "_donations" }
|
|
4
|
+
%input{ :type => 'hidden', :name => 'business', :value => paypal_id }
|
|
5
|
+
%input{ :type => 'hidden', :name => 'item_name', :value => "WNSF Donation" }
|
|
6
|
+
%input{ :type => 'hidden', :name => 'currency_code', :value => "USD" }
|
|
7
|
+
%input{ :type => 'hidden', :name => 'amount', :value => donation_amount }
|
|
8
|
+
%input{ :type => 'hidden', :name => 'return', :value => 'http://'+packet['route.site_url'] + route_to(:donations, :donate_success) }
|
|
9
|
+
%input{ :type => 'hidden', :name => 'cancel_return', :value => 'http://'+packet['route.site_url'] + route_to(:donations, :donate_cancel)}
|
|
10
|
+
:javascript
|
|
11
|
+
$(function(){
|
|
12
|
+
$('#pform').submit();
|
|
13
|
+
})
|
|
@@ -232,7 +232,7 @@ module Orange
|
|
|
232
232
|
hash = model.attributes
|
|
233
233
|
# return slug(model.title) if hash.has_key?(:title)
|
|
234
234
|
# return slug(model.name) if hash.has_key?(:name)
|
|
235
|
-
return 'page-'+model.id
|
|
235
|
+
return 'page-'+model.id.to_s
|
|
236
236
|
end
|
|
237
237
|
|
|
238
238
|
def link_text_for(route)
|
metadata
CHANGED
|
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
|
5
5
|
segments:
|
|
6
6
|
- 0
|
|
7
7
|
- 5
|
|
8
|
-
-
|
|
9
|
-
version: 0.5.
|
|
8
|
+
- 2
|
|
9
|
+
version: 0.5.2
|
|
10
10
|
platform: ruby
|
|
11
11
|
authors:
|
|
12
12
|
- David Haslem
|
|
@@ -14,7 +14,7 @@ autorequire:
|
|
|
14
14
|
bindir: bin
|
|
15
15
|
cert_chain: []
|
|
16
16
|
|
|
17
|
-
date: 2010-06-
|
|
17
|
+
date: 2010-06-07 00:00:00 -04:00
|
|
18
18
|
default_executable:
|
|
19
19
|
dependencies:
|
|
20
20
|
- !ruby/object:Gem::Dependency
|
|
@@ -186,6 +186,13 @@ files:
|
|
|
186
186
|
- lib/orange-more/disqus/plugin.rb
|
|
187
187
|
- lib/orange-more/disqus/resources/disqus_resource.rb
|
|
188
188
|
- lib/orange-more/disqus/views/disqus/comment_thread.haml
|
|
189
|
+
- lib/orange-more/donations.rb
|
|
190
|
+
- lib/orange-more/donations/cartons/donation_carton.rb
|
|
191
|
+
- lib/orange-more/donations/plugin.rb
|
|
192
|
+
- lib/orange-more/donations/resources/donations_resource.rb
|
|
193
|
+
- lib/orange-more/donations/views/donations/donate_form.haml
|
|
194
|
+
- lib/orange-more/donations/views/donations/donate_thanks.haml
|
|
195
|
+
- lib/orange-more/donations/views/donations/paypal_form.haml
|
|
189
196
|
- lib/orange-more/events.rb
|
|
190
197
|
- lib/orange-more/events/assets/js/events.js
|
|
191
198
|
- lib/orange-more/events/cartons/orange_calendar.rb
|