From c10bbfa44442c86fda82c16524341d5f21b63664 Mon Sep 17 00:00:00 2001 From: claucece Date: Tue, 22 Sep 2015 10:48:14 -0500 Subject: subscriptions, translation --- .../billing/app/controllers/customer_controller.rb | 63 ++++------------------ engines/billing/app/controllers/subscriptors.rb | 9 ++++ engines/billing/app/helpers/billing_helper.rb | 2 +- .../app/views/customer/_subs_form.html.haml | 10 ++++ engines/billing/app/views/customer/new.html.haml | 44 +++++++-------- .../billing/app/views/subscriptions/new.html.erb | 52 ++++++++++-------- .../app/views/subscriptions/new12.html.haml | 27 ++++++++++ 7 files changed, 106 insertions(+), 101 deletions(-) create mode 100644 engines/billing/app/controllers/subscriptors.rb create mode 100644 engines/billing/app/views/customer/_subs_form.html.haml create mode 100644 engines/billing/app/views/subscriptions/new12.html.haml (limited to 'engines/billing') diff --git a/engines/billing/app/controllers/customer_controller.rb b/engines/billing/app/controllers/customer_controller.rb index 6cbcb44..3a82ff7 100644 --- a/engines/billing/app/controllers/customer_controller.rb +++ b/engines/billing/app/controllers/customer_controller.rb @@ -1,64 +1,19 @@ class CustomerController < BillingBaseController - before_filter :require_login, :fetch_customer - - def show - if @customer - @customer.with_braintree_data! - @default_cc = @customer.default_credit_card - @active_subscription = @customer.subscriptions - @transactions = @customer.braintree_customer.transactions - end - end + before_filter :require_login def new - if @customer.has_payment_info? - redirect_to edit_customer_path(@user), :notice => 'Here is your saved customer data' - else - fetch_new_transparent_redirect_data - end - end - - def edit - fetch_edit_transparent_redirect_data - end - - def confirm - @result = Braintree::TransparentRedirect.confirm(request.query_string) - if @result.success? - @customer.braintree_customer = @result.customer - @customer.save - render :action => "confirm" - elsif @customer.has_payment_info? - fetch_edit_transparent_redirect_data - render :action => "edit" + if current_user.braintree_customer_id + Braintree::Customer.find current_user.braintree_customer_id else - fetch_new_transparent_redirect_data - render :action => "new" + customer = Braintree::Customer.create(payment_method_nonce: params[:payment_method_nonce]).customer + current_user.update_attributes braintree_customer_id: customer.id + customer end end - protected - - def fetch_new_transparent_redirect_data - access_denied unless @user == current_user # admins cannot do this for others - @tr_data = Braintree::TransparentRedirect. - create_customer_data(:redirect_url => confirm_customer_url) - end - - def fetch_edit_transparent_redirect_data - access_denied unless @user == current_user # admins cannot do this for others - @customer.with_braintree_data! - @default_cc = @customer.default_credit_card - @tr_data = Braintree::TransparentRedirect. - update_customer_data(:redirect_url => confirm_customer_url, - :customer_id => @customer.braintree_customer_id) ##?? + def show + if current_user.braintree_customer_id + Braintree::Customer.find current_user.braintree_customer_id end - - def fetch_customer - @customer = Customer.find_by_user_id(@user.id) - if @user == current_user - @customer ||= Customer.new(user: @user) - end - access_denied unless (@customer and (@customer.user == current_user)) or admin? end end diff --git a/engines/billing/app/controllers/subscriptors.rb b/engines/billing/app/controllers/subscriptors.rb new file mode 100644 index 0000000..2e80e69 --- /dev/null +++ b/engines/billing/app/controllers/subscriptors.rb @@ -0,0 +1,9 @@ +def braintree_customer + if current_user.braintree_customer_id + Braintree::Customer.find current_user.braintree_customer_id + else + customer = Braintree::Customer.create(payment_method_nonce: params[:payment_method_nonce]).customer + current_user.update_attributes braintree_customer_id: customer.id + customer + end +end diff --git a/engines/billing/app/helpers/billing_helper.rb b/engines/billing/app/helpers/billing_helper.rb index b9e5e2e..cb8abd6 100644 --- a/engines/billing/app/helpers/billing_helper.rb +++ b/engines/billing/app/helpers/billing_helper.rb @@ -14,7 +14,7 @@ module BillingHelper if (admin? and user == current_user) billing_admin_path else - show_or_new_customer_link(user) + new_subscription_path end end diff --git a/engines/billing/app/views/customer/_subs_form.html.haml b/engines/billing/app/views/customer/_subs_form.html.haml new file mode 100644 index 0000000..82828cd --- /dev/null +++ b/engines/billing/app/views/customer/_subs_form.html.haml @@ -0,0 +1,10 @@ +%p + = t(:personal_info) +%div + = text_field_tag :first_name, "",placeholder: "First Name", class: "radius" +%div + = text_field_tag :last_name, "",placeholder: "Last Name", class: "radius" +%div + = text_field_tag :company, "",placeholder: "Company", class: "radius" +%div + = text_field_tag :phone, "",placeholder: "Phone", class: "radius" diff --git a/engines/billing/app/views/customer/new.html.haml b/engines/billing/app/views/customer/new.html.haml index e1f5ba9..81185e4 100644 --- a/engines/billing/app/views/customer/new.html.haml +++ b/engines/billing/app/views/customer/new.html.haml @@ -1,24 +1,20 @@ -- if @result - #total-errors{:style => "color:red;"} - = h(@result.errors.size) - error(s) -= braintree_form_for :customer do |f| - = field_set_tag "Customer" do - %dl - %dt= f.label :first_name, 'First Name' - %dd= f.text_field :first_name - %dt= f.label :last_name, 'Last Name' - %dd= f.text_field :last_name - %dt= f.label :phone, 'Phone' - %dd= f.text_field :phone - = field_set_tag "Credit Card" do - - f.fields_for :credit_card do |cc| - %dl - %dt= cc.label :number, 'Number' - %dd= cc.text_field :number - %dt= cc.label :expiration_date, 'Expiration Date (MM/YY)' - %dd= cc.text_field :expiration_date - %dt= cc.label :cvv, 'CVV' - %dd= cc.text_field :cvv - = hidden_field_tag :tr_data, @tr_data - = f.submit 'Save Payment Info' +%h2.mbs New Customer +%br/ += form_tag new_customer_path, id: "checkout-form" do + - if current_user and !current_user.has_payment_info? + = render 'subs_form' unless current_user.is_anonymous? + %br/ + %p + = t(:donation_info) + %div{:id => "payment-form" } + %div{:id => "coinbase-container-id" } + %input{:name => "amount", :placeholder => "Enter amount", :type => "text"} + %input.btn.btn-primary{:type => "submit", :value => "Donate"} +%script{:src => "https://js.braintreegateway.com/v2/braintree.js"} +:javascript + var clientToken = "#{@client_token}"; + braintree.setup(clientToken, "dropin", { + container: "payment-form", + form: "checkout-form", + coinbase: { container: "coinbase-container-id" } + }); diff --git a/engines/billing/app/views/subscriptions/new.html.erb b/engines/billing/app/views/subscriptions/new.html.erb index f3e143a..2336981 100644 --- a/engines/billing/app/views/subscriptions/new.html.erb +++ b/engines/billing/app/views/subscriptions/new.html.erb @@ -3,33 +3,41 @@
<%= form_tag subscriptions_path, id: "checkout-form" do %> <% if current_user and !current_user.has_payment_info? %> - <%= render 'customer_form' unless @anonymous_user%> - <% end %> + <%= render 'customer_form' %> + <% end %>

Choose subcription:

-