Copy stripe js template into pinaxcon
Shouldnt be neccessary, template loader should be finding the template provided by the installed app. but it's not, and I want rego to go live today, so here we go. One day when things are nice this commit can be reverted and I will be crying a little less on the inside.
This commit is contained in:
parent
359640cfa1
commit
50145c03fe
1 changed files with 68 additions and 0 deletions
68
pinaxcon/templates/registrasion/stripe/js/form_handler.js
Normal file
68
pinaxcon/templates/registrasion/stripe/js/form_handler.js
Normal file
|
@ -0,0 +1,68 @@
|
|||
var stripe = Stripe('{{ PINAX_STRIPE_PUBLIC_KEY }}');
|
||||
var elements = stripe.elements();
|
||||
|
||||
function stripeify(elementId) {
|
||||
var element = elements.create(elementId);
|
||||
element.mount('#' + elementId);
|
||||
|
||||
var htmlElement = document.getElementById(elementId);
|
||||
var errors = elementId + "-errors";
|
||||
htmlElement.insertAdjacentHTML("afterend", "<div id='" + errors + "' role='alert' class='help-block'></div>");
|
||||
var displayError = document.getElementById(errors);
|
||||
|
||||
//Handle real-time validation errors from the card Element.
|
||||
element.addEventListener('change', function(event) {
|
||||
toggleErrorMessage(displayError, event.error);
|
||||
});
|
||||
|
||||
// Create a token or display an error when the form is submitted.
|
||||
var paymentForm = document.getElementById('payment-form');
|
||||
paymentForm.addEventListener('submit', function(event) {
|
||||
event.preventDefault();
|
||||
|
||||
stripe.createToken(element).then(function(result) {
|
||||
if (result.error) {
|
||||
// Inform the user if there was an error
|
||||
toggleErrorMessage(displayError, result.error);
|
||||
} else {
|
||||
// Send the token to your server
|
||||
stripeTokenHandler(result.token);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function toggleErrorMessage(errorElement, maybeError) {
|
||||
errorClass = inputErrorClassName();
|
||||
if (maybeError) {
|
||||
errorElement.textContent = maybeError.message;
|
||||
errorElement.parentNode.classList.add(errorClass);
|
||||
} else {
|
||||
errorElement.textContent = '';
|
||||
errorElement.parentNode.classList.remove(errorClass);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function inputErrorClassName() {
|
||||
return {% block form_control_error_class %}"has-error"{% endblock %};
|
||||
}
|
||||
|
||||
|
||||
function stripeTokenHandler(token) {
|
||||
// Insert the token ID into the form so it gets submitted to the server
|
||||
|
||||
var form = document.getElementById('payment-form');
|
||||
tokenHolder = form.getElementsByClassName('registrasion-stripe-token')[0];
|
||||
inputId = tokenHolder.dataset.inputId;
|
||||
|
||||
var hiddenInput = document.createElement('input');
|
||||
hiddenInput.setAttribute('type', 'hidden');
|
||||
hiddenInput.setAttribute('name', inputId);
|
||||
hiddenInput.setAttribute('value', token.id);
|
||||
|
||||
tokenHolder.appendChild(hiddenInput);
|
||||
|
||||
// Submit the form
|
||||
form.submit();
|
||||
}
|
Loading…
Reference in a new issue