Handle js success/error messages

This commit is contained in:
PCoder 2020-12-31 10:32:25 +05:30
parent c3286a68a5
commit 42c9ec6f28
3 changed files with 28 additions and 14 deletions

View file

@ -333,6 +333,9 @@
var error_url = '{{ error_msg.redirect }}'; var error_url = '{{ error_msg.redirect }}';
var error_msg = '{{ error_msg.msg_body }}'; var error_msg = '{{ error_msg.msg_body }}';
var error_title = '{{ error_msg.msg_title }}'; var error_title = '{{ error_msg.msg_title }}';
var success_msg = '{{ success_msg.msg_body }}';
var success_title = '{{ success_msg.msg_title }}';
var success_url = '{{ success_msg.redirect }}';
window.stripeKey = "{{stripe_key}}"; window.stripeKey = "{{stripe_key}}";
</script> </script>
{%endblock%} {%endblock%}

View file

@ -735,6 +735,14 @@ class OrderConfirmationView(DetailView, FormView):
), ),
'cms_integration': get_cms_integration('default'), 'cms_integration': get_cms_integration('default'),
'error_msg': get_error_response_dict("Error", request), 'error_msg': get_error_response_dict("Error", request),
'success_msg': {
'msg_title': _("Thank you !"),
'msg_body': _("Your product will be provisioned as soon as "
"we receive the payment."),
'redirect': reverse('hosting:invoices') if
request.user.is_authenticated() else
reverse('datacenterlight:index')
},
'stripe_key': settings.STRIPE_API_PUBLIC_KEY, 'stripe_key': settings.STRIPE_API_PUBLIC_KEY,
}) })
return render(request, self.template_name, context) return render(request, self.template_name, context)

View file

@ -104,19 +104,22 @@ $(document).ready(function() {
} }
).then(function(result) { ).then(function(result) {
window.result = result; window.result = result;
fa_icon = $('.modal-icon > .fa');
modal_btn = $('#createvm-modal-done-btn');
if (result.error) { if (result.error) {
// Display error.message in your UI. // Display error.message in your UI.
var errorElement = document.getElementById('card-errors'); modal_btn.attr('href', error_url).removeClass('hide');
errorElement.textContent = result.error.message; fa_icon.attr('class', 'fa fa-close');
modal_btn.attr('class', '').addClass('btn btn-danger btn-ok btn-wide');
$('#createvm-modal-title').text(error_title);
$('#createvm-modal-body').html(result.error.message + " " + error_msg);
} else { } else {
// The payment has succeeded // The payment has succeeded
// Display a success message // Display a success message
alert("Thanks for the order. Your product will be provisioned " + modal_btn.attr('href', success_url).removeClass('hide');
"as soon as we receive the payment. Thank you.");
modal_btn.attr('href', err).removeClass('hide');
fa_icon.attr('class', 'checkmark'); fa_icon.attr('class', 'checkmark');
$('#createvm-modal-title').text(data.success.msg_title); $('#createvm-modal-title').text(success_title);
$('#createvm-modal-body').html(data.success.msg_body); $('#createvm-modal-body').html(success_msg);
} }
}); });
} }