This commit is contained in:
O K
2025-12-12 10:46:12 +02:00
parent b1b2ef5949
commit 59d2ce3cd1
6 changed files with 386 additions and 159 deletions

View File

@@ -35,7 +35,7 @@
<a href="#tab-status" data-bs-toggle="tab" class="nav-link">{{ tab_order_statuses }}</a>
</li>
<li class="nav-item">
<a href="#tab-advanced" data-bs-toggle="tab" class="nav-link">{{ tab_advanced }}</a>
<a href="#tab-fiscalization" data-bs-toggle="tab" class="nav-link">{{ tab_fiscalization }}</a>
</li>
<li class="nav-item">
<a href="#tab-logs" data-bs-toggle="tab" class="nav-link">{{ tab_logs }}</a>
@@ -43,11 +43,13 @@
</ul>
<div class="tab-content">
<div id="tab-general" class="tab-pane active">
{# General Tab #}
<div id="tab-general" class="tab-pane active pt-3">
<div class="row mb-3 required">
<label for="input-merchant-id" class="col-sm-2 col-form-label">{{ entry_merchant_id }}</label>
<div class="col-sm-10">
<input type="text" name="payment_hutko_merchant_id" value="{{ payment_hutko_merchant_id }}" placeholder="{{ entry_merchant_id }}" id="input-payment-hutko-merchant-id" class="form-control"/>
<div class="form-text">{{ text_info_merchant }}</div>
<div id="error-payment-hutko-merchant-id" class="invalid-feedback"></div>
</div>
</div>
@@ -55,6 +57,7 @@
<label for="input-secret-key" class="col-sm-2 col-form-label">{{ entry_secret_key }}</label>
<div class="col-sm-10">
<input type="text" name="payment_hutko_secret_key" value="{{ payment_hutko_secret_key }}" placeholder="{{ entry_secret_key }}" id="input-payment-hutko-secret-key" class="form-control"/>
<div class="form-text">{{ text_info_secret }}</div>
<div id="error-payment-hutko-secret-key" class="invalid-feedback"></div>
</div>
</div>
@@ -84,7 +87,6 @@
</select>
</div>
</div>
<div class="row mb-3">
<label class="col-sm-2 col-form-label">{{ entry_total }}</label>
<div class="col-sm-10">
@@ -94,7 +96,8 @@
</div>
</div>
<div id="tab-status" class="tab-pane">
{# Order Statuses Tab #}
<div id="tab-status" class="tab-pane pt-3">
<div class="row mb-3">
<label class="col-sm-2 col-form-label">{{ entry_new_order_status }}</label>
<div class="col-sm-10">
@@ -103,9 +106,9 @@
<option value="{{ status.order_status_id }}" {% if status.order_status_id == payment_hutko_new_order_status_id %} selected {% endif %}>{{ status.name }}</option>
{% endfor %}
</select>
<div class="form-text">{{ help_new_order_status }}</div>
</div>
</div>
<!-- Repeat logic for other statuses -->
<div class="row mb-3">
<label class="col-sm-2 col-form-label">{{ entry_success_status }}</label>
<div class="col-sm-10">
@@ -114,11 +117,43 @@
<option value="{{ status.order_status_id }}" {% if status.order_status_id == payment_hutko_success_status_id %} selected {% endif %}>{{ status.name }}</option>
{% endfor %}
</select>
<div class="form-text">{{ help_success_status }}</div>
</div>
</div>
<div class="row mb-3">
<label class="col-sm-2 col-form-label">{{ entry_declined_status }}</label>
<div class="col-sm-10">
<select name="payment_hutko_declined_status_id" class="form-select">
{% for status in order_statuses %}
<option value="{{ status.order_status_id }}" {% if status.order_status_id == payment_hutko_declined_status_id %} selected {% endif %}>{{ status.name }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="row mb-3">
<label class="col-sm-2 col-form-label">{{ entry_expired_status }}</label>
<div class="col-sm-10">
<select name="payment_hutko_expired_status_id" class="form-select">
{% for status in order_statuses %}
<option value="{{ status.order_status_id }}" {% if status.order_status_id == payment_hutko_expired_status_id %} selected {% endif %}>{{ status.name }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="row mb-3">
<label class="col-sm-2 col-form-label">{{ entry_refunded_status }}</label>
<div class="col-sm-10">
<select name="payment_hutko_refunded_status_id" class="form-select">
{% for status in order_statuses %}
<option value="{{ status.order_status_id }}" {% if status.order_status_id == payment_hutko_refunded_status_id %} selected {% endif %}>{{ status.name }}</option>
{% endfor %}
</select>
</div>
</div>
</div>
<div id="tab-advanced" class="tab-pane">
{# Fiscalization Tab #}
<div id="tab-fiscalization" class="tab-pane pt-3">
<div class="row mb-3">
<label class="col-sm-2 col-form-label">{{ entry_shipping_include }}</label>
<div class="col-sm-10">
@@ -126,8 +161,34 @@
<input type="hidden" name="payment_hutko_shipping_include" value="0"/>
<input type="checkbox" name="payment_hutko_shipping_include" value="1" class="form-check-input" {% if payment_hutko_shipping_include %} checked {% endif %}/>
</div>
<div class="form-text">{{ help_shipping_include }}</div>
</div>
</div>
<div class="row mb-3">
<label class="col-sm-2 col-form-label">{{ entry_shipping_product_name }}</label>
<div class="col-sm-10">
<input type="text" name="payment_hutko_shipping_product_name" value="{{ payment_hutko_shipping_product_name }}" class="form-control" placeholder="Shipping"/>
<div class="form-text">{{ help_shipping_product_name }}</div>
</div>
</div>
<div class="row mb-3">
<label class="col-sm-2 col-form-label">{{ entry_shipping_product_code }}</label>
<div class="col-sm-10">
<input type="text" name="payment_hutko_shipping_product_code" value="{{ payment_hutko_shipping_product_code }}" class="form-control" placeholder="SHIPPING_001"/>
<div class="form-text">{{ help_shipping_product_code }}</div>
</div>
</div>
<div class="row mb-3">
<label class="col-sm-2 col-form-label">{{ entry_include_discount_to_total }}</label>
<div class="col-sm-10">
<div class="form-check form-switch">
<input type="hidden" name="payment_hutko_include_discount_to_total" value="0"/>
<input type="checkbox" name="payment_hutko_include_discount_to_total" value="1" class="form-check-input" {% if payment_hutko_include_discount_to_total %} checked {% endif %}/>
</div>
<div class="form-text">{{ help_include_discount_to_total }}</div>
</div>
</div>
<div class="row mb-3">
<label class="col-sm-2 col-form-label">{{ entry_save_logs }}</label>
<div class="col-sm-10">
@@ -135,12 +196,19 @@
<input type="hidden" name="payment_hutko_save_logs" value="0"/>
<input type="checkbox" name="payment_hutko_save_logs" value="1" class="form-check-input" {% if payment_hutko_save_logs %} checked {% endif %}/>
</div>
<div class="form-text">{{ help_save_logs }}</div>
</div>
</div>
</div>
<div id="tab-logs" class="tab-pane">
<pre class="bg-light p-3 border">{{ log_content }}</pre>
{# Logs Tab #}
<div id="tab-logs" class="tab-pane pt-3">
<div class="alert alert-info">{{ help_save_logs }}</div>
<div class="card bg-light">
<div class="card-body p-2" style="max-height: 400px; overflow-y: auto; font-family: monospace;">
{{ log_content|raw }}
</div>
</div>
</div>
</div>
</form>
@@ -148,4 +216,4 @@
</div>
</div>
</div>
{{ footer }}
{{ footer }}

View File

@@ -5,31 +5,33 @@
<div class="card-body">
<table class="table table-bordered">
<tr>
<td>{{ text_hutko_transaction_ref_label }}</td>
<td style="width: 200px;"><strong>{{ text_hutko_transaction_ref_label }}</strong></td>
<td>{{ hutko_transaction_ref_display }}</td>
</tr>
</table>
{% if hutko_transaction_ref_display != text_not_available %}
<hr>
<h5>{{ text_hutko_refund_title }}</h5>
<div class="row g-3 align-items-center mb-3">
<div class="col-auto">
<input type="text" id="input-refund-amount" class="form-control" placeholder="{{ entry_refund_amount }}">
</div>
<div class="col-auto">
<input type="text" id="input-refund-comment" class="form-control" placeholder="{{ entry_refund_comment }}">
</div>
<div class="col-auto">
<button type="button" id="button-hutko-refund" class="btn btn-warning">{{ button_hutko_refund }}</button>
<div class="border-top mt-3 pt-3">
<h5>{{ text_hutko_refund_title }}</h5>
<div class="row g-2 align-items-center mb-2">
<div class="col-auto">
<input type="text" id="input-refund-amount" class="form-control" placeholder="{{ entry_refund_amount }}">
</div>
<div class="col-auto">
<input type="text" id="input-refund-comment" class="form-control" placeholder="{{ entry_refund_comment }}">
</div>
<div class="col-auto">
<button type="button" id="button-hutko-refund" class="btn btn-warning">{{ button_hutko_refund }}</button>
</div>
</div>
<div id="hutko-refund-response"></div>
</div>
<div id="hutko-refund-response"></div>
<hr>
<h5>{{ text_hutko_status_title }}</h5>
<button type="button" id="button-hutko-status" class="btn btn-info text-white">{{ button_hutko_status_check }}</button>
<div id="hutko-status-response" class="mt-2"></div>
<div class="border-top mt-3 pt-3">
<h5>{{ text_hutko_status_title }}</h5>
<button type="button" id="button-hutko-status" class="btn btn-info text-white">{{ button_hutko_status_check }}</button>
<div id="hutko-status-response" class="mt-2"></div>
</div>
{% endif %}
</div>
</div>
@@ -40,7 +42,7 @@ $('#button-hutko-refund').on('click', function () {
var btn = $(this);
$.ajax({
url: '{{ hutko_refund_action_url|raw }}',
url: '{{ refund_url|raw }}',
type: 'post',
dataType: 'json',
data: {
@@ -49,11 +51,11 @@ $('#button-hutko-refund').on('click', function () {
'order_id': {{ order_id }}
},
beforeSend: function () {
btn.prop('disabled', true);
btn.prop('disabled', true).text('{{ text_loading }}');
$('#hutko-refund-response').html('');
},
complete: function () {
btn.prop('disabled', false);
btn.prop('disabled', false).text('{{ button_hutko_refund }}');
},
success: function (json) {
if (json['error']) {
@@ -61,6 +63,7 @@ $('#button-hutko-refund').on('click', function () {
}
if (json['success']) {
$('#hutko-refund-response').html('<div class="alert alert-success">' + json['success'] + '</div>');
// Reload history if possible, or reload page
setTimeout(function(){ location.reload(); }, 2000);
}
},
@@ -73,16 +76,16 @@ $('#button-hutko-refund').on('click', function () {
$('#button-hutko-status').on('click', function () {
var btn = $(this);
$.ajax({
url: '{{ hutko_status_action_url|raw }}',
url: '{{ status_url|raw }}',
type: 'post',
dataType: 'json',
data: {'hutko_transaction_ref': '{{ hutko_transaction_ref_display }}'},
beforeSend: function () {
btn.prop('disabled', true);
btn.prop('disabled', true).text('{{ text_loading }}');
$('#hutko-status-response').html('');
},
complete: function () {
btn.prop('disabled', false);
btn.prop('disabled', false).text('{{ button_hutko_status_check }}');
},
success: function (json) {
if (json['error']) {
@@ -90,7 +93,7 @@ $('#button-hutko-status').on('click', function () {
}
if (json['success']) {
let data = json['data'] ? JSON.stringify(json['data'], null, 2) : '';
$('#hutko-status-response').html('<div class="alert alert-success">' + json['success'] + '<pre class="mt-2 bg-light p-2">' + data + '</pre></div>');
$('#hutko-status-response').html('<div class="alert alert-success">' + json['success'] + '<pre class="mt-2 bg-light p-2" style="max-height:200px;overflow:auto;">' + data + '</pre></div>');
}
},
error: function (xhr, ajaxOptions, thrownError) {