File "squareup.twig"
Full path: /home/cakedeco/retaildirectonline.co.uk/catalog/view/theme/default/template/extension/payment/squareup.twig
File
size: 8.07 B (8.07 KB bytes)
MIME-type: text/html
Charset: utf-8
Download Open Edit Advanced Editor &nnbsp; Back
{% if sandbox_message %}
<div class="alert alert-warning">
<i class="fa fa-exclamation-circle"></i> {{ sandbox_message }}
</div>
{% endif %}
<div id="squareup-notification">
<div class="text-center alert alert-info"><i class="fa fa-circle-o-notch fa-spin"></i> {{ text_loading }}</div>
</div>
<form class="form-horizontal" action="{{ action }}" method="POST" id="squareup_card_details_form" style="display: none;">
<fieldset>
<legend>{{ text_card_details }}</legend>
{% if cards %}
<div class="form-group">
<label class="col-sm-2 control-label" for="squareup_select_card">{{ text_saved_card }}</label>
<div class="col-sm-10">
<select class="form-control" name="squareup_select_card" id="squareup_select_card">
<option selected value>{{ text_new_card }}</option>
{% for card in cards %}
<option value="{{ card.id }}">{{ card.text }}</option>
{% endfor %}
</select>
</div>
</div>
{% endif %}
</fieldset>
<fieldset id="hide-card-details">
<div class="form-group">
<label class="col-sm-2 control-label" for="id_card_number">{{ text_card_number }}</label>
<div class="col-sm-10"><div id="id_card_number"></div></div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label" for="id_card_expiry">{{ text_card_expiry }}</label>
<div class="col-sm-10"><div id="id_card_expiry"></div></div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label" for="id_cvc">{{ text_card_cvc }}</label>
<div class="col-sm-10"><div id="id_cvc"></div></div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label" for="id_card_zip_code">{{ text_card_zip }}</label>
<div class="col-sm-10"><div id="id_card_zip_code"></div></div>
</div>
{% if is_logged %}
<div class="form-group">
<label class="col-sm-2 control-label" for="squareup_save_card">{{ text_card_save }}</label>
<div class="col-sm-10">
<input type="checkbox" id="squareup_save_card" value="1" name="squareup_save_card"/>
</div>
</div>
{% endif %}
</fieldset>
<div class="buttons">
<div class="pull-right">
<input type="button" value="{{ button_confirm }}" id="button-confirm-order" data-loading-text="{{ text_loading }}" class="btn btn-primary">
</div>
</div>
<input type="hidden" name="squareup_nonce" id="squareup_nonce"/>
</form>
<style>
.control-label {
cursor: pointer;
}
.form-control--focus {
/* Indicates how form inputs should appear when they have focus */
outline: 5px auto rgb(59, 153, 252);
}
.form-control--error {
/* Indicates how form inputs should appear when they contain invalid values */
outline: 5px auto rgb(255, 97, 97);
}
#squareup_save_card {
margin-top: 10px;
cursor: pointer;
}
</style>
<script type="text/javascript">
$(document).ready(function() {
var app_id = '{{ app_id }}';
var paymentFormSettings = {
applicationId: app_id,
inputClass: 'form-control',
inputStyles: [{
fontSize: '15px'
}],
cardNumber: {
elementId: 'id_card_number',
placeholder: '{{ text_card_placeholder }}'
},
cvv: {
elementId: 'id_cvc',
placeholder: '{{ text_cvv }}'
},
expirationDate: {
elementId: 'id_card_expiry',
placeholder: '{{ text_expiry }}'
},
postalCode: {
elementId: 'id_card_zip_code'
},
callbacks: {
// Called when the SqPaymentForm completes a request to generate a card
// nonce, even if the request failed because of an error.
cardNonceResponseReceived: function(errors, nonce, cardData) {
if (errors) {
var message = '';
errors.forEach(function(error) {
message += error.message + '. ';
});
squareupError(message);
} else {
// No errors occurred. Extract the card nonce.
$('#squareup_nonce').val(nonce);
submitForm();
}
},
unsupportedBrowserDetected: function() {
squareupError("{{ error_browser_not_supported }}");
// Fill in this callback to alert buyers when their browser is not supported.
},
paymentFormLoaded: function() {
// Fill in this callback to perform actions after the payment form is
// done loading (such as setting the postal code field programmatically).
paymentForm.setPostalCode('{{ payment_zip }}');
$('#squareup-notification').empty();
$('#squareup_card_details_form').slideDown();
}
}
};
function submitForm() {
var form = '#squareup_card_details_form';
$.ajax({
url : $(form).attr('action'),
dataType : 'json',
type : $(form).attr('method'),
data : $(form).serialize(),
beforeSend : function() {
$('#button-confirm-order').button('loading');
},
success : function(json) {
if (json.error) {
squareupError(json.error);
} else if (json.redirect) {
document.location = json.redirect;
}
},
error : function(jqXHR, ajaxSettings, thrownError) {
squareupError(thrownError);
},
complete : function() {
$('#button-confirm-order').button('reset');
}
});
}
function onScriptLoad() {
paymentForm = new SqPaymentForm(paymentFormSettings);
paymentForm.build();
}
function onConfirmCheckout() {
if ($('#squareup_select_card').val()) {
submitForm();
} else {
paymentForm.requestCardNonce();
}
}
function squareupError(error) {
$('#button-confirm-order').button('reset');
$('#squareup-notification').html('<div class="alert alert-danger"><button type="button" class="close" data-dismiss="alert" aria-label="X"><span aria-hidden="true">×</span></button><i class="fa fa-exclamation-circle"></i> ' + error + '</div>');
}
function toggleAjaxSetup(status) {
$.ajaxSetup({
cache: status
});
}
function initSquareup(init_ajax_setup) {
toggleAjaxSetup(false);
var script = document.createElement('script');
script.type="text/javascript";
$("head").append(script);
script.onload = onScriptLoad;
script.src="{{ squareup_js_api }}";
script.async = true;
toggleAjaxSetup(init_ajax_setup);
}
$('#button-confirm-order').unbind().click(function(e) {
e.preventDefault();
e.stopPropagation();
$('#squareup-notification').empty();
$('#button-confirm-order').button('loading');
onConfirmCheckout();
});
$('#squareup_select_card').change(function() {
if ($(this).val()) {
$('#hide-card-details').slideUp();
} else {
$('#hide-card-details').slideDown();
}
});
initSquareup($.ajaxSetup().cache);
});
</script>