Change name to AdminStripeElements to avoid confusion; add status bar for StatusMessages

This commit is contained in:
stveep
2018-06-17 20:38:48 +01:00
parent 8272aebe29
commit a848b9172e
6 changed files with 19 additions and 18 deletions

View File

@@ -1,9 +1,10 @@
angular.module("admin.payments").controller "PaymentCtrl", ($scope, Payment, Loading) ->
angular.module("admin.payments").controller "PaymentCtrl", ($scope, Payment, StatusMessage) ->
$scope.form_data = Payment.form_data
$scope.submitted = false
$scope.StatusMessage = StatusMessage
$scope.submitPayment = () ->
return false if $scope.submitted == true
$scope.submitted = true
Loading.message = t("submitting_payment")
StatusMessage.display 'progress', t("submitting_payment")
Payment.purchase()

View File

@@ -1,4 +1,4 @@
angular.module("admin.payments").directive "stripeElements", ($injector, StripeElements) ->
angular.module('admin.payments').directive "stripeElements", ($injector, AdminStripeElements) ->
restrict: 'E'
template: "<label for='card-element'>\
<div id='card-element'></div>\
@@ -31,5 +31,5 @@ angular.module("admin.payments").directive "stripeElements", ($injector, StripeE
displayError.textContent = ''
return
StripeElements.stripe = stripe
StripeElements.card = card
AdminStripeElements.stripe = stripe
AdminStripeElements.card = card

View File

@@ -1 +1 @@
angular.module("admin.payments", ['OfnStripe','Loading','RailsFlashLoader','ngResource','admin.resources', 'ofn.admin','Navigation'])
angular.module("admin.payments", ['ngResource','admin.resources', 'ofn.admin', "admin.utils"])

View File

@@ -1,4 +1,4 @@
angular.module('admin.payments').factory 'Payment', (StripeElements, currentOrderNumber, paymentMethods, PaymentMethods, PaymentResource, Navigation, RailsFlashLoader)->
angular.module('admin.payments').factory 'Payment', (AdminStripeElements, currentOrderNumber, paymentMethods, PaymentMethods, PaymentResource, StatusMessage)->
new class Payment
order: currentOrderNumber
form_data: {}
@@ -34,14 +34,14 @@ angular.module('admin.payments').factory 'Payment', (StripeElements, currentOrde
purchase: ->
if @paymentMethodType() == 'stripe'
StripeElements.requestToken(@form_data, @submit)
AdminStripeElements.requestToken(@form_data, @submit)
else
@submit()
submit: =>
munged = @preprocess()
PaymentResource.create({order_id: munged.order_id}, munged, (response, headers, status)=>
Navigation.go "/admin/orders/" + munged.order_id + "/payments"
$window.location.pathname = "/admin/orders/" + munged.order_id + "/payments"
, (response) ->
RailsFlashLoader.loadFlash({error: t("error saving payment")})
StatusMessage.display 'error', t("error saving payment")
)

View File

@@ -1,22 +1,19 @@
angular.module("admin.payments").factory 'StripeElements', ($rootScope, Loading, RailsFlashLoader) ->
new class StripeElements
# TODO: add locale here for translations of error messages etc. from Stripe
angular.module("admin.payments").factory 'AdminStripeElements', ($rootScope, StatusMessage) ->
new class AdminStripeElements
# These are both set from the StripeElements directive
# These are both set from the AdminStripeElements directive
stripe: null
card: null
# New Stripe Elements method
requestToken: (secrets, submit, loading_message = t("processing_payment")) ->
requestToken: (secrets, submit) ->
return unless @stripe? && @card?
Loading.message = loading_message
cardData = @makeCardData(secrets)
@stripe.createToken(@card, cardData).then (response) =>
if(response.error)
Loading.clear()
RailsFlashLoader.loadFlash({error: t("error") + ": #{response.error.message}"})
StatusMessage.display 'error', response.error.message
else
secrets.token = response.token.id
secrets.cc_type = @mapCC(response.token.card.brand)

View File

@@ -0,0 +1,3 @@
/ insert_before "fieldset.no-border-top"
%save-bar{ persist: "true" }