From 313e95a8e4a54c93d0ee787bf1bd503745971515 Mon Sep 17 00:00:00 2001 From: Uri Gorelik Date: Mon, 25 Jan 2016 16:30:49 -0500 Subject: [PATCH 1/3] Added support for StripeJS on Spree admin --- .../payments/source_forms/_stripe.html.erb | 82 ++++++++++++++++++- .../spree/checkout/payment/_stripe.html.erb | 21 ----- lib/spree_gateway/engine.rb | 31 +++++++ 3 files changed, 112 insertions(+), 22 deletions(-) delete mode 100644 app/views/spree/checkout/payment/_stripe.html.erb diff --git a/app/views/spree/admin/payments/source_forms/_stripe.html.erb b/app/views/spree/admin/payments/source_forms/_stripe.html.erb index e32fdd71..afd4b265 100644 --- a/app/views/spree/admin/payments/source_forms/_stripe.html.erb +++ b/app/views/spree/admin/payments/source_forms/_stripe.html.erb @@ -1 +1,81 @@ -<%= render "spree/admin/payments/source_forms/gateway", payment_method: payment_method, previous_cards: payment_method.reusable_sources(@order) %> \ No newline at end of file +<%= render "spree/admin/payments/source_forms/gateway", payment_method: payment_method, previous_cards: payment_method.reusable_sources(@order) %> + + + + + + +<%- if @order.has_checkout_step?('address') -%> + +<%- end -%> diff --git a/app/views/spree/checkout/payment/_stripe.html.erb b/app/views/spree/checkout/payment/_stripe.html.erb deleted file mode 100644 index 45daebb4..00000000 --- a/app/views/spree/checkout/payment/_stripe.html.erb +++ /dev/null @@ -1,21 +0,0 @@ -<%= render "spree/checkout/payment/gateway", :payment_method => payment_method %> - - - - -<%= javascript_include_tag "store/gateway/stripe" %> - diff --git a/lib/spree_gateway/engine.rb b/lib/spree_gateway/engine.rb index 2f52c414..e99e7315 100644 --- a/lib/spree_gateway/engine.rb +++ b/lib/spree_gateway/engine.rb @@ -34,5 +34,36 @@ class Engine < Rails::Engine app.config.spree.payment_methods << Spree::Gateway::Migs app.config.spree.payment_methods << Spree::Gateway::SpreedlyCoreGateway end + + def self.activate + if SpreeGateway::Engine.frontend_available? + Rails.application.config.assets.precompile += [ + 'lib/assets/javascripts/spree/frontend/spree_gateway.js', + 'lib/assets/javascripts/spree/frontend/spree_gateway.css', + ] + Dir.glob(File.join(File.dirname(__FILE__), "../../controllers/frontend/*/*_decorator*.rb")) do |c| + Rails.configuration.cache_classes ? require(c) : load(c) + end + end + end + + def self.backend_available? + @@backend_available ||= ::Rails::Engine.subclasses.map(&:instance).map{ |e| e.class.to_s }.include?('Spree::Backend::Engine') + end + + def self.frontend_available? + @@frontend_available ||= ::Rails::Engine.subclasses.map(&:instance).map{ |e| e.class.to_s }.include?('Spree::Frontend::Engine') + end + + if self.backend_available? + paths["app/views"] << "lib/views/backend" + end + + if self.frontend_available? + paths["app/controllers"] << "lib/controllers/frontend" + paths["app/views"] << "lib/views/frontend" + end + + config.to_prepare &method(:activate).to_proc end end From c1c97d882806dfc2abe3af640eac795cbfdc6e1a Mon Sep 17 00:00:00 2001 From: Uri Gorelik Date: Mon, 25 Jan 2016 16:57:19 -0500 Subject: [PATCH 2/3] Modified _stripe.html.erb to suit HealthWave's needs - Using an environment variable to access the publishable key - Using different jQuery anchors --- .../spree/admin/payments/source_forms/_stripe.html.erb | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/app/views/spree/admin/payments/source_forms/_stripe.html.erb b/app/views/spree/admin/payments/source_forms/_stripe.html.erb index afd4b265..ad5c3c07 100644 --- a/app/views/spree/admin/payments/source_forms/_stripe.html.erb +++ b/app/views/spree/admin/payments/source_forms/_stripe.html.erb @@ -2,12 +2,11 @@ + + + + +<%- if @order.has_checkout_step?('address') -%> + +<%- end -%>