first commit
This commit is contained in:
55
catalog/view/template/account/account.twig
Normal file
55
catalog/view/template/account/account.twig
Normal file
@ -0,0 +1,55 @@
|
||||
{{ header }}
|
||||
<div id="account-account" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% if success %}
|
||||
<div class="alert alert-success alert-dismissible"><i class="fa-solid fa-circle-check"></i> {{ success }}</div>
|
||||
{% endif %}
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h2>{{ text_my_account }}</h2>
|
||||
<ul class="list-unstyled">
|
||||
<li><a href="{{ edit }}">{{ text_edit }}</a></li>
|
||||
<li><a href="{{ password }}">{{ text_password }}</a></li>
|
||||
<li><a href="{{ address }}">{{ text_address }}</a></li>
|
||||
<li><a href="{{ wishlist }}">{{ text_wishlist }}</a></li>
|
||||
</ul>
|
||||
<h2>
|
||||
{{ text_my_orders }}
|
||||
</h2>
|
||||
<ul class="list-unstyled">
|
||||
<li><a href="{{ order }}">{{ text_order }}</a></li>
|
||||
<li><a href="{{ subscription }}">{{ text_subscription }}</a></li>
|
||||
<li><a href="{{ download }}">{{ text_download }}</a></li>
|
||||
{% if reward %}
|
||||
<li><a href="{{ reward }}">{{ text_reward }}</a></li>
|
||||
{% endif %}
|
||||
<li><a href="{{ return }}">{{ text_return }}</a></li>
|
||||
<li><a href="{{ transaction }}">{{ text_transaction }}</a></li>
|
||||
</ul>
|
||||
{% if affiliate %}
|
||||
<h2>
|
||||
{{ text_my_affiliate }}
|
||||
</h2>
|
||||
<ul class="list-unstyled">
|
||||
{% if not tracking %}
|
||||
<li><a href="{{ affiliate }}">{{ text_affiliate_add }}</a></li>
|
||||
{% else %}
|
||||
<li><a href="{{ affiliate }}">{{ text_affiliate_edit }}</a></li>
|
||||
<li><a href="{{ tracking }}">{{ text_tracking }}</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
<h2>
|
||||
{{ text_my_newsletter }}
|
||||
</h2>
|
||||
<ul class="list-unstyled">
|
||||
<li><a href="{{ newsletter }}">{{ text_newsletter }}</a></li>
|
||||
</ul>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
{{ footer }}
|
62
catalog/view/template/account/address.twig
Normal file
62
catalog/view/template/account/address.twig
Normal file
@ -0,0 +1,62 @@
|
||||
{{ header }}
|
||||
<div id="account-address" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% if success %}
|
||||
<div class="alert alert-success alert-dismissible"><i class="fa-solid fa-circle-check"></i> {{ success }}</div>
|
||||
{% endif %}
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ text_address_book }}</h1>
|
||||
<div id="address">{{ list }}</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<a href="{{ back }}" class="btn btn-light">{{ button_back }}</a>
|
||||
</div>
|
||||
<div class="col text-end">
|
||||
<a href="{{ add }}" class="btn btn-primary">{{ button_new_address }}</a>
|
||||
</div>
|
||||
</div>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
<script type="text/javascript"><!--
|
||||
$('#address').on('click', '.btn-danger', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
var element = this;
|
||||
|
||||
$.ajax({
|
||||
url: $(element).attr('href'),
|
||||
dataType: 'json',
|
||||
beforeSend: function () {
|
||||
$(element).prop('disabled', true);
|
||||
},
|
||||
complete: function () {
|
||||
$(element).prop('disabled', false);
|
||||
},
|
||||
success: function (json) {
|
||||
console.log(json);
|
||||
|
||||
$('.alert-dismissible').remove();
|
||||
|
||||
if (json['error']) {
|
||||
$('#address').before('<div class="alert alert-danger alert-dismissible"><i class="fa-solid fa-circle-exclamation"></i> ' + json['error'] + ' <button type="button" class="btn-close" data-bs-dismiss="alert"></button></div>');
|
||||
}
|
||||
|
||||
if (json['success']) {
|
||||
$('#address').before('<div class="alert alert-success alert-dismissible"><i class="fa-solid fa-circle-check"></i> ' + json['success'] + ' <button type="button" class="btn-close" data-bs-dismiss="alert"></button></div>');
|
||||
|
||||
$('#address').load('index.php?route=account/address.list&language={{ language }}&customer_token={{ customer_token }}');
|
||||
}
|
||||
},
|
||||
error: function (xhr, ajaxOptions, thrownError) {
|
||||
console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
|
||||
}
|
||||
});
|
||||
});
|
||||
//--></script>
|
||||
{{ footer }}
|
275
catalog/view/template/account/address_form.twig
Normal file
275
catalog/view/template/account/address_form.twig
Normal file
@ -0,0 +1,275 @@
|
||||
{{ header }}
|
||||
<div id="account-address" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ text_address }}</h1>
|
||||
<form id="form-address" action="{{ save }}" method="post" data-oc-toggle="ajax">
|
||||
<fieldset>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-firstname" class="col-sm-2 col-form-label">{{ entry_firstname }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="firstname" value="{{ firstname }}" placeholder="{{ entry_firstname }}" id="input-firstname" class="form-control"/>
|
||||
<div id="error-firstname" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-lastname" class="col-sm-2 col-form-label">{{ entry_lastname }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="lastname" value="{{ lastname }}" placeholder="{{ entry_lastname }}" id="input-lastname" class="form-control"/>
|
||||
<div id="error-lastname" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="input-company" class="col-sm-2 col-form-label">{{ entry_company }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="company" value="{{ company }}" placeholder="{{ entry_company }}" id="input-company" class="form-control"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-address-1" class="col-sm-2 col-form-label">{{ entry_address_1 }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="address_1" value="{{ address_1 }}" placeholder="{{ entry_address_1 }}" id="input-address-1" class="form-control"/>
|
||||
<div id="error-address-1" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="input-address-2" class="col-sm-2 col-form-label">{{ entry_address_2 }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="address_2" value="{{ address_2 }}" placeholder="{{ entry_address_2 }}" id="input-address-2" class="form-control"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-city" class="col-sm-2 col-form-label">{{ entry_city }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="city" value="{{ city }}" placeholder="{{ entry_city }}" id="input-city" class="form-control"/>
|
||||
<div id="error-city" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-postcode" class="col-sm-2 col-form-label">{{ entry_postcode }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="postcode" value="{{ postcode }}" placeholder="{{ entry_postcode }}" id="input-postcode" class="form-control"/>
|
||||
<div id="error-postcode" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-country" class="col-sm-2 col-form-label">{{ entry_country }}</label>
|
||||
<div class="col-sm-10">
|
||||
<select name="country_id" id="input-country" class="form-select">
|
||||
<option value="0">{{ text_select }}</option>
|
||||
{% for country in countries %}
|
||||
<option value="{{ country.country_id }}"{% if country.country_id == country_id %} selected{% endif %}>{{ country.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<div id="error-country" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-zone" class="col-sm-2 col-form-label">{{ entry_zone }}</label>
|
||||
<div class="col-sm-10">
|
||||
<select name="zone_id" id="input-zone" class="form-select"></select>
|
||||
<div id="error-zone" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% for custom_field in custom_fields %}
|
||||
|
||||
{% if custom_field.type == 'select' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %}">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<select name="custom_field[{{ custom_field.custom_field_id }}]" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-select">
|
||||
<option value="">{{ text_select }}</option>
|
||||
{% for custom_field_value in custom_field.custom_field_value %}
|
||||
<option value="{{ custom_field_value.custom_field_value_id }}"{% if address_custom_field[custom_field.custom_field_id] and custom_field_value.custom_field_value_id == address_custom_field[custom_field.custom_field_id] %} selected{% endif %}>{{ custom_field_value.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'radio' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %}">
|
||||
<label class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div id="input-custom-field-{{ custom_field.custom_field_id }}">
|
||||
{% for custom_field_value in custom_field.custom_field_value %}
|
||||
<div class="form-check">
|
||||
<input type="radio" name="custom_field[{{ custom_field.custom_field_id }}]" value="{{ custom_field_value.custom_field_value_id }}" id="input-custom-value-{{ custom_field_value.custom_field_value_id }}" class="form-check-input"{% if address_custom_field[custom_field.custom_field_id] and custom_field_value.custom_field_value_id == address_custom_field[custom_field.custom_field_id] %} checked{% endif %}/> <label for="input-custom-value-{{ custom_field_value.custom_field_value_id }}" class="form-check-label">{{ custom_field_value.name }}</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'checkbox' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %}">
|
||||
<label class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div id="input-custom-field-{{ custom_field.custom_field_id }}">
|
||||
{% for custom_field_value in custom_field.custom_field_value %}
|
||||
<div class="form-check">
|
||||
<input type="checkbox" name="custom_field[{{ custom_field.custom_field_id }}][]" value="{{ custom_field_value.custom_field_value_id }}" id="input-custom-value-{{ custom_field_value.custom_field_value_id }}" class="form-check-input"{% if address_custom_field[custom_field.custom_field_id] and custom_field_value.custom_field_value_id in address_custom_field[custom_field.custom_field_id] %} checked{% endif %}/> <label for="input-custom-value-{{ custom_field_value.custom_field_value_id }}" class="form-check-label">{{ custom_field_value.name }}</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'text' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %}">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="custom_field[{{ custom_field.custom_field_id }}]" value="{% if address_custom_field[custom_field.custom_field_id] %}{{ address_custom_field[custom_field.custom_field_id] }}{% else %}{{ custom_field.value }}{% endif %}" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control"/>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'textarea' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %}">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea name="custom_field[{{ custom_field.custom_field_id }}]" rows="5" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control">{% if address_custom_field[custom_field.custom_field_id] %}{{ address_custom_field[custom_field.custom_field_id] }}{% else %}{{ custom_field.value }}{% endif %}</textarea>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'file' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %}">
|
||||
<label class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div>
|
||||
<button type="button" data-oc-toggle="upload" data-oc-url="{{ upload }}" data-oc-size-max="{{ config_file_max_size }}" data-oc-size-error="{{ error_upload_size }}" data-oc-target="#input-custom-field-{{ custom_field.custom_field_id }}" class="btn btn-light"><i class="fa-solid fa-upload"></i> {{ button_upload }}</button>
|
||||
<input type="hidden" name="custom_field[{{ custom_field.custom_field_id }}]" value="{% if address_custom_field[custom_field.custom_field_id] %}{{ address_custom_field[custom_field.custom_field_id] }}{% endif %}" id="input-custom-field-{{ custom_field.custom_field_id }}"/>
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'date' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %}">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="input-group">
|
||||
<input type="text" name="custom_field[{{ custom_field.custom_field_id }}]" value="{% if address_custom_field[custom_field.custom_field_id] %}{{ address_custom_field[custom_field.custom_field_id] }}{% else %}{{ custom_field.value }}{% endif %}" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control date"/>
|
||||
<div class="input-group-text"><i class="fa-regular fa-calendar"></i></div>
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'time' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %}">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="input-group">
|
||||
<input type="text" name="custom_field[{{ custom_field.custom_field_id }}]" value="{% if address_custom_field[custom_field.custom_field_id] %}{{ address_custom_field[custom_field.custom_field_id] }}{% else %}{{ custom_field.value }}{% endif %}" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control time"/>
|
||||
<div class="input-group-text"><i class="fa-regular fa-calendar"></i></div>
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'datetime' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %}">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="input-group">
|
||||
<input type="text" name="custom_field[{{ custom_field.custom_field_id }}]" value="{% if address_custom_field[custom_field.custom_field_id] %}{{ address_custom_field[custom_field.custom_field_id] }}{% else %}{{ custom_field.value }}{% endif %}" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control datetime"/>
|
||||
<div class="input-group-text"><i class="fa-regular fa-calendar"></i></div>
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
<div class="row mb-3">
|
||||
<label class="col-sm-2 col-form-label">{{ entry_default }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-check-inline">
|
||||
<input type="radio" name="default" value="1" id="input-default-yes" class="form-check-input"{% if default %} checked{% endif %}/> <label for="input-default-yes" class="form-check-label">{{ text_yes }}</label>
|
||||
</div>
|
||||
<div class="form-check-inline">
|
||||
<input type="radio" name="default" value="0" id="input-default-no" class="form-check-input"{% if not default %} checked{% endif %}/> <label for="input-default-no" class="form-check-label">{{ text_no }}</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<a href="{{ back }}" class="btn btn-light">{{ button_back }}</a>
|
||||
</div>
|
||||
<div class="col text-end">
|
||||
<button type="submit" class="btn btn-primary">{{ button_continue }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
<script type="text/javascript"><!--
|
||||
$('#input-country').on('change', function () {
|
||||
var element = this;
|
||||
|
||||
$.ajax({
|
||||
url: 'index.php?route=localisation/country&country_id=' + this.value + '&language={{ language }}',
|
||||
dataType: 'json',
|
||||
beforeSend: function () {
|
||||
$(element).prop('disabled', true);
|
||||
$('#input-zone').prop('disabled', true);
|
||||
},
|
||||
complete: function () {
|
||||
$(element).prop('disabled', false);
|
||||
$('#input-zone').prop('disabled', false);
|
||||
},
|
||||
success: function (json) {
|
||||
if (json['postcode_required'] == '1') {
|
||||
$('#input-postcode').parent().parent().addClass('required');
|
||||
} else {
|
||||
$('#input-postcode').parent().parent().removeClass('required');
|
||||
}
|
||||
|
||||
html = '<option value="">{{ text_select|escape('js') }}</option>';
|
||||
|
||||
if (json['zone'] && json['zone'] != '') {
|
||||
for (i = 0; i < json['zone'].length; i++) {
|
||||
html += '<option value="' + json['zone'][i]['zone_id'] + '"';
|
||||
|
||||
if (json['zone'][i]['zone_id'] == '{{ zone_id }}') {
|
||||
html += ' selected';
|
||||
}
|
||||
|
||||
html += '>' + json['zone'][i]['name'] + '</option>';
|
||||
}
|
||||
} else {
|
||||
html += '<option value="0" selected>{{ text_none|escape('js') }}</option>';
|
||||
}
|
||||
|
||||
$('#input-zone').html(html);
|
||||
},
|
||||
error: function (xhr, ajaxOptions, thrownError) {
|
||||
console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#input-country').trigger('change');
|
||||
//--></script>
|
||||
{{ footer }}
|
14
catalog/view/template/account/address_list.twig
Normal file
14
catalog/view/template/account/address_list.twig
Normal file
@ -0,0 +1,14 @@
|
||||
{% if addresses %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover">
|
||||
{% for address in addresses %}
|
||||
<tr>
|
||||
<td class="text-start">{{ address.address }}</td>
|
||||
<td class="text-end"><a href="{{ address.edit }}" data-bs-toggle="tooltip" title="{{ button_edit }}" class="btn btn-primary"><i class="fa-regular fa-solid fa-pencil"></i></a> <a href="{{ address.delete }}" data-bs-toggle="tooltip" title="{{ button_delete }}" class="btn btn-danger"><i class="fa-regular fa-trash-can"></i></a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
{% else %}
|
||||
<p>{{ text_no_results }}</p>
|
||||
{% endif %}
|
248
catalog/view/template/account/affiliate.twig
Normal file
248
catalog/view/template/account/affiliate.twig
Normal file
@ -0,0 +1,248 @@
|
||||
{{ header }}
|
||||
<div id="account-affiliate" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
<form id="form-affiliate" action="{{ save }}" method="post" data-oc-toggle="ajax">
|
||||
|
||||
<fieldset>
|
||||
<legend>{{ text_my_affiliate }}</legend>
|
||||
<div class="row mb-3">
|
||||
<label for="input-company" class="col-sm-2 col-form-label">{{ entry_company }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="company" value="{{ company }}" placeholder="{{ entry_company }}" id="input-company" class="form-control"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="input-website" class="col-sm-2 col-form-label">{{ entry_website }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="website" value="{{ website }}" placeholder="{{ entry_website }}" id="input-website" class="form-control"/>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{{ text_payment }}</legend>
|
||||
<div class="row mb-3">
|
||||
<label for="input-tax" class="col-sm-2 col-form-label">{{ entry_tax }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="tax" value="{{ tax }}" placeholder="{{ entry_tax }}" id="input-tax" class="form-control"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label class="col-sm-2 col-form-label">{{ entry_payment_method }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-check">
|
||||
<input type="radio" name="payment_method" value="cheque" id="input-payment-cheque" class="form-check-input"{% if payment_method == 'cheque' %} checked{% endif %}/>
|
||||
<label for="input-payment-cheque" class="form-check-label">{{ text_cheque }}</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input type="radio" name="payment_method" value="paypal" id="input-payment-paypal" class="form-check-input"{% if payment_method == 'paypal' %} checked{% endif %}/>
|
||||
<label for="input-payment-paypal" class="form-check-label">{{ text_paypal }}</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input type="radio" name="payment_method" value="bank" id="input-payment-bank" class="form-check-input"{% if payment_method == 'bank' %} checked{% endif %}/>
|
||||
<label for="input-payment-bank" class="form-check-label">{{ text_bank }}</label>
|
||||
</div>
|
||||
<div id="error-payment-method" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required payment" id="payment-cheque">
|
||||
<label for="input-cheque" class="col-sm-2 col-form-label">{{ entry_cheque }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="cheque" value="{{ cheque }}" placeholder="{{ entry_cheque }}" id="input-cheque" class="form-control"/>
|
||||
<div id="error-cheque" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required payment" id="payment-paypal">
|
||||
<label for="input-paypal" class="col-sm-2 col-form-label">{{ entry_paypal }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="paypal" value="{{ paypal }}" placeholder="{{ entry_paypal }}" id="input-paypal" class="form-control"/>
|
||||
<div id="error-paypal" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="payment-bank" class="payment">
|
||||
<div class="row mb-3">
|
||||
<label for="input-bank-name" class="col-sm-2 col-form-label">{{ entry_bank_name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="bank_name" value="{{ bank_name }}" placeholder="{{ entry_bank_name }}" id="input-bank-name" class="form-control"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="input-bank-branch-number" class="col-sm-2 col-form-label">{{ entry_bank_branch_number }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="bank_branch_number" value="{{ bank_branch_number }}" placeholder="{{ entry_bank_branch_number }}" id="input-bank-branch-number" class="form-control"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="input-bank-swift-code" class="col-sm-2 col-form-label">{{ entry_bank_swift_code }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="bank_swift_code" value="{{ bank_swift_code }}" placeholder="{{ entry_bank_swift_code }}" id="input-bank-swift-code" class="form-control"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required row">
|
||||
<label for="input-bank-account-name" class="col-sm-2 col-form-label">{{ entry_bank_account_name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="bank_account_name" value="{{ bank_account_name }}" placeholder="{{ entry_bank_account_name }}" id="input-bank-account-name" class="form-control"/>
|
||||
<div id="error-bank-account-name" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required row">
|
||||
<label for="input-bank-account-number" class="col-sm-2 col-form-label">{{ entry_bank_account_number }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="bank_account_number" value="{{ bank_account_number }}" placeholder="{{ entry_bank_account_number }}" id="input-bank-account-number" class="form-control"/>
|
||||
<div id="error-bank-account-number" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% for custom_field in custom_fields %}
|
||||
{% if custom_field.location == 'affiliate' %}
|
||||
|
||||
{% if custom_field.type == 'select' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %} custom-field">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<select name="custom_field[{{ custom_field.custom_field_id }}]" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-select">
|
||||
<option value="">{{ text_select }}</option>
|
||||
{% for custom_field_value in custom_field.custom_field_value %}
|
||||
<option value="{{ custom_field_value.custom_field_value_id }}"{% if affiliate_custom_field[custom_field.custom_field_id] and custom_field_value.custom_field_value_id == affiliate_custom_field[custom_field.custom_field_id] %} selected{% endif %}>{{ custom_field_value.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'radio' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %} custom-field">
|
||||
<label class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div id="input-custom-field-{{ custom_field.custom_field_id }}">
|
||||
{% for custom_field_value in custom_field.custom_field_value %}
|
||||
<div class="form-check">
|
||||
<input type="radio" name="custom_field[{{ custom_field.custom_field_id }}]" value="{{ custom_field_value.custom_field_value_id }}" id="input-custom-value-{{ custom_field_value.custom_field_value_id }}" class="form-check-input"{% if affiliate_custom_field[custom_field.custom_field_id] and custom_field_value.custom_field_value_id == affiliate_custom_field[custom_field.custom_field_id] %} checked{% endif %}/> <label for="input-custom-value-{{ custom_field_value.custom_field_value_id }}" class="form-check-label">{{ custom_field_value.name }}</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'checkbox' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %} custom-field">
|
||||
<label class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div id="input-custom-field-{{ custom_field.custom_field_id }}">
|
||||
{% for custom_field_value in custom_field.custom_field_value %}
|
||||
<div class="form-check">
|
||||
<input type="checkbox" name="custom_field[{{ custom_field.custom_field_id }}]" value="{{ custom_field_value.custom_field_value_id }}" id="input-custom-value-{{ custom_field_value.custom_field_value_id }}" class="form-check-input"{% if affiliate_custom_field[custom_field.custom_field_id] and custom_field_value.custom_field_value_id in affiliate_custom_field[custom_field.custom_field_id] %} checked{% endif %}/> <label for="input-custom-value-{{ custom_field_value.custom_field_value_id }}" class="form-check-label">{{ custom_field_value.name }}</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'text' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %} custom-field">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="custom_field[{{ custom_field.custom_field_id }}]" value="{% if affiliate_custom_field[custom_field.custom_field_id] %}{{ affiliate_custom_field[custom_field.custom_field_id] }}{% else %}{{ custom_field.value }}{% endif %}" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control"/>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'textarea' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %} custom-field">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea name="custom_field[{{ custom_field.custom_field_id }}]" rows="5" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control">{% if affiliate_custom_field[custom_field.custom_field_id] %}{{ affiliate_custom_field[custom_field.custom_field_id] }}{% else %}{{ custom_field.value }}{% endif %}</textarea>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'file' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %} custom-field">
|
||||
<label class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div>
|
||||
<button type="button" data-oc-toggle="upload" data-oc-url="{{ upload }}" data-oc-size-max="{{ config_file_max_size }}" data-oc-size-error="{{ error_upload_size }}" data-oc-target="#input-custom-field-{{ custom_field.custom_field_id }}" class="btn btn-light"><i class="fa-solid fa-upload"></i> {{ button_upload }}</button>
|
||||
<input type="hidden" name="custom_field[{{ custom_field.custom_field_id }}]" value="{% if affiliate_custom_field[custom_field.custom_field_id] %}{{ affiliate_custom_field[custom_field.custom_field_id] }}{% endif %}" id="input-custom-field-{{ custom_field.custom_field_id }}"/>
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'date' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %} custom-field">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="input-group">
|
||||
<input type="text" name="custom_field[{{ custom_field.custom_field_id }}]" value="{% if affiliate_custom_field[custom_field.custom_field_id] %}{{ affiliate_custom_field[custom_field.custom_field_id] }}{% else %}{{ custom_field.value }}{% endif %}" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control date"/>
|
||||
<div class="input-group-text"><i class="fa-regular fa-calendar"></i></div>
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'time' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %} custom-field">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="input-group">
|
||||
<input type="text" name="custom_field[{{ custom_field.custom_field_id }}]" value="{% if affiliate_custom_field[custom_field.custom_field_id] %}{{ affiliate_custom_field[custom_field.custom_field_id] }}{% else %}{{ custom_field.value }}{% endif %}" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control time"/>
|
||||
<div class="input-group-text"><i class="fa-regular fa-calendar"></i></div>
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'datetime' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %} custom-field">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="input-group">
|
||||
<input type="text" name="custom_field[{{ custom_field.custom_field_id }}]" value="{% if affiliate_custom_field[custom_field.custom_field_id] %}{{ affiliate_custom_field[custom_field.custom_field_id] }}{% else %}{{ custom_field.value }}{% endif %}" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control datetime"/>
|
||||
<div class="input-group-text"><i class="fa-regular fa-calendar"></i></div>
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</fieldset>
|
||||
<div class="text-end">
|
||||
{% if text_agree %}
|
||||
<div class="form-check form-switch form-switch-lg form-check-reverse form-check-inline">
|
||||
<label class="form-check-label">{{ text_agree }}</label> <input type="hidden" name="agree" value="0"/> <input type="checkbox" name="agree" value="1" id="input-agree" class="form-check-input"/>
|
||||
</div>
|
||||
{% endif %}
|
||||
<button type="submit" class="btn btn-primary">{{ button_continue }}</button>
|
||||
</div>
|
||||
</form>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
<script type="text/javascript"><!--
|
||||
$('input[name=\'payment_method\']').on('change', function() {
|
||||
$('.payment').hide();
|
||||
|
||||
$('#payment-' + this.value).show();
|
||||
});
|
||||
|
||||
$('input[name=\'payment_method\']:checked').trigger('change');
|
||||
//--></script>
|
||||
{{ footer }}
|
49
catalog/view/template/account/download.twig
Normal file
49
catalog/view/template/account/download.twig
Normal file
@ -0,0 +1,49 @@
|
||||
{{ header }}
|
||||
<div id="account-download" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
{% if downloads %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="text-end"><strong>{{ column_order_id }}</strong></td>
|
||||
<td class="text-start"><strong>{{ column_name }}</strong></td>
|
||||
<td class="text-start"><strong>{{ column_size }}</strong></td>
|
||||
<td class="text-start"><strong>{{ column_date_added }}</strong></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for download in downloads %}
|
||||
<tr>
|
||||
<td class="text-end">{{ download.order_id }}</td>
|
||||
<td class="text-start">{{ download.name }}</td>
|
||||
<td class="text-start">{{ download.size }}</td>
|
||||
<td class="text-start">{{ download.date_added }}</td>
|
||||
<td><a href="{{ download.href }}" data-bs-toggle="tooltip" title="{{ button_download }}" class="btn btn-primary"><i class="fa-solid fa-cloud-arrow-down"></i></a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="col-sm-6 text-start">{{ pagination }}</div>
|
||||
<div class="col-sm-6 text-end">{{ results }}</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<p>{{ text_no_results }}</p>
|
||||
{% endif %}
|
||||
<div class="text-end">
|
||||
<a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a>
|
||||
</div>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
{{ footer }}
|
181
catalog/view/template/account/edit.twig
Normal file
181
catalog/view/template/account/edit.twig
Normal file
@ -0,0 +1,181 @@
|
||||
{{ header }}
|
||||
<div id="account-edit" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
<form id="form-customer" action="{{ save }}" method="post" data-oc-toggle="ajax">
|
||||
<fieldset>
|
||||
<legend>{{ text_your_details }}</legend>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-firstname" class="col-sm-2 col-form-label">{{ entry_firstname }} </label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="firstname" value="{{ firstname }}" placeholder="{{ entry_firstname }}" id="input-firstname" class="form-control"/>
|
||||
<div id="error-firstname" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-lastname" class="col-sm-2 col-form-label">{{ entry_lastname }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="lastname" value="{{ lastname }}" placeholder="{{ entry_lastname }}" id="input-lastname" class="form-control"/>
|
||||
<div id="error-lastname" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-email" class="col-sm-2 col-form-label">{{ entry_email }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="email" name="email" value="{{ email }}" placeholder="{{ entry_email }}" id="input-email" class="form-control"/>
|
||||
<div id="error-email" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if config_telephone_display %}
|
||||
<div class="row mb-3{% if config_telephone_required %} required{% endif %}">
|
||||
<label for="input-telephone" class="col-sm-2 col-form-label">{{ entry_telephone }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="tel" name="telephone" value="{{ telephone }}" placeholder="{{ entry_telephone }}" id="input-telephone" class="form-control"/>
|
||||
<div id="error-telephone" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% for custom_field in custom_fields %}
|
||||
|
||||
{% if custom_field.type == 'select' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %} custom-field">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<select name="custom_field[{{ custom_field.custom_field_id }}]" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-select">
|
||||
<option value="">{{ text_select }}</option>
|
||||
{% for custom_field_value in custom_field.custom_field_value %}
|
||||
<option value="{{ custom_field_value.custom_field_value_id }}"{% if account_custom_field[custom_field.custom_field_id] and custom_field_value.custom_field_value_id == account_custom_field[custom_field.custom_field_id] %} selected{% endif %}>{{ custom_field_value.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'radio' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %} custom-field">
|
||||
<label class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div id="input-custom-field-{{ custom_field.custom_field_id }}">
|
||||
{% for custom_field_value in custom_field.custom_field_value %}
|
||||
<div class="form-check">
|
||||
<input type="radio" name="custom_field[{{ custom_field.custom_field_id }}]" value="{{ custom_field_value.custom_field_value_id }}" id="input-custom-value-{{ custom_field_value.custom_field_value_id }}" class="form-check-input"{% if account_custom_field[custom_field.custom_field_id] and custom_field_value.custom_field_value_id == account_custom_field[custom_field.custom_field_id] %} checked{% endif %}/> <label for="input-custom-value-{{ custom_field_value.custom_field_value_id }}" class="form-check-label">{{ custom_field_value.name }}</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'checkbox' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %} custom-field">
|
||||
<label class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div id="input-custom-field-{{ custom_field.custom_field_id }}">
|
||||
{% for custom_field_value in custom_field.custom_field_value %}
|
||||
<div class="form-check">
|
||||
<input type="checkbox" name="custom_field[{{ custom_field.custom_field_id }}][]" value="{{ custom_field_value.custom_field_value_id }}" id="input-custom-value-{{ custom_field_value.custom_field_value_id }}" class="form-check-input"{% if account_custom_field[custom_field.custom_field_id] and custom_field_value.custom_field_value_id in account_custom_field[custom_field.custom_field_id] %} checked{% endif %}/> <label for="input-custom-value-{{ custom_field_value.custom_field_value_id }}" class="form-check-label">{{ custom_field_value.name }}</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'text' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %} custom-field">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="custom_field[{{ custom_field.custom_field_id }}]" value="{% if account_custom_field[custom_field.custom_field_id] %}{{ account_custom_field[custom_field.custom_field_id] }}{% else %}{{ custom_field.value }}{% endif %}" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control"/>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'textarea' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %} custom-field">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea name="custom_field[{{ custom_field.custom_field_id }}]" rows="5" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control">{% if account_custom_field[custom_field.custom_field_id] %}{{ account_custom_field[custom_field.custom_field_id] }}{% else %}{{ custom_field.value }}{% endif %}</textarea>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'file' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %} custom-field">
|
||||
<label class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div>
|
||||
<button type="button" data-oc-toggle="upload" data-oc-url="{{ upload }}" data-oc-size-max="{{ config_file_max_size }}" data-oc-size-error="{{ error_upload_size }}" data-oc-target="#input-custom-field-{{ custom_field.custom_field_id }}" class="btn btn-light"><i class="fa-solid fa-upload"></i> {{ button_upload }}</button>
|
||||
<input type="hidden" name="custom_field[{{ custom_field.custom_field_id }}]" value="{% if account_custom_field[custom_field.custom_field_id] %}{{ account_custom_field[custom_field.custom_field_id] }}{% endif %}" id="input-custom-field-{{ custom_field.custom_field_id }}"/>
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'date' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %} custom-field">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="input-group">
|
||||
<input type="text" name="custom_field[{{ custom_field.custom_field_id }}]" value="{% if account_custom_field[custom_field.custom_field_id] %}{{ account_custom_field[custom_field.custom_field_id] }}{% else %}{{ custom_field.value }}{% endif %}" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control date"/>
|
||||
<div class="input-group-text"><i class="fa-regular fa-calendar"></i></div>
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'time' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %} custom-field">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="input-group">
|
||||
<input type="text" name="custom_field[{{ custom_field.custom_field_id }}]" value="{% if account_custom_field[custom_field.custom_field_id] %}{{ account_custom_field[custom_field.custom_field_id] }}{% else %}{{ custom_field.value }}{% endif %}" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control time"/>
|
||||
<div class="input-group-text"><i class="fa-regular fa-calendar"></i></div>
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'datetime' %}
|
||||
<div class="row mb-3{% if custom_field.required %} required{% endif %} custom-field">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="input-group">
|
||||
<input type="text" name="custom_field[{{ custom_field.custom_field_id }}]" value="{% if account_custom_field[custom_field.custom_field_id] %}{{ account_custom_field[custom_field.custom_field_id] }}{% else %}{{ custom_field.value }}{% endif %}" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control datetime"/>
|
||||
<div class="input-group-text"><i class="fa-regular fa-calendar"></i></div>
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
</fieldset>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<a href="{{ back }}" class="btn btn-light">{{ button_back }}</a>
|
||||
</div>
|
||||
<div class="col text-end">
|
||||
<button type="submit" class="btn btn-primary">{{ button_continue }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
{{ footer }}
|
35
catalog/view/template/account/forgotten.twig
Normal file
35
catalog/view/template/account/forgotten.twig
Normal file
@ -0,0 +1,35 @@
|
||||
{{ header }}
|
||||
<div id="account-forgotten" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
<p>{{ text_email }}</p>
|
||||
<form id="form-forgotten" action="{{ confirm }}" method="post" data-oc-toggle="ajax">
|
||||
<fieldset>
|
||||
<legend>{{ text_your_email }}</legend>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-email" class="col-sm-2 col-form-label">{{ entry_email }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="email" value="" placeholder="{{ entry_email }}" id="input-email" class="form-control"/>
|
||||
<div id="error-email" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<a href="{{ back }}" class="btn btn-light">{{ button_back }}</a>
|
||||
</div>
|
||||
<div class="col text-end">
|
||||
<button type="submit" class="btn btn-primary">{{ button_continue }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
{{ footer }}
|
41
catalog/view/template/account/forgotten_reset.twig
Normal file
41
catalog/view/template/account/forgotten_reset.twig
Normal file
@ -0,0 +1,41 @@
|
||||
{{ header }}
|
||||
<div id="account-reset" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
<form id="form-reset" action="{{ save }}" method="post" data-oc-toggle="ajax">
|
||||
<fieldset>
|
||||
<legend>{{ text_password }}</legend>
|
||||
<div class="row mb-3">
|
||||
<label for="input-password" class="col-sm-2 col-form-label">{{ entry_password }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="password" name="password" value="" id="input-password" class="form-control"/>
|
||||
<div id="error-password" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="input-confirm" class="col-sm-2 col-form-label">{{ entry_confirm }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="password" name="confirm" value="" id="input-confirm" class="form-control"/>
|
||||
<div id="error-confirm" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<a href="{{ back }}" class="btn btn-light">{{ button_back }}</a>
|
||||
</div>
|
||||
<div class="col text-end">
|
||||
<button type="submit" class="btn btn-primary">{{ button_continue }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
{{ footer }}
|
54
catalog/view/template/account/login.twig
Normal file
54
catalog/view/template/account/login.twig
Normal file
@ -0,0 +1,54 @@
|
||||
{{ header }}
|
||||
<div id="account-login" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% if success %}
|
||||
<div class="alert alert-success alert-dismissible"><i class="fa-solid fa-circle-check"></i> {{ success }} <button type="button" class="btn-close" data-bs-dismiss="alert"></button></div>
|
||||
{% endif %}
|
||||
{% if error_warning %}
|
||||
<div class="alert alert-danger alert-dismissible"><i class="fa-solid fa-circle-exclamation"></i> {{ error_warning }} <button type="button" class="btn-close" data-bs-dismiss="alert"></button></div>
|
||||
{% endif %}
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<div class="row">
|
||||
<div class="col mb-3">
|
||||
<div class="border rounded p-3 d-flex flex-column h-100">
|
||||
<h2>{{ text_new_customer }}</h2>
|
||||
<p><strong>{{ text_register }}</strong></p>
|
||||
<p>{{ text_register_account }}</p>
|
||||
<div class="text-end">
|
||||
<a href="{{ register }}" class="btn btn-primary">{{ button_continue }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col mb-3">
|
||||
<div class="border rounded p-3 d-flex flex-column h-100">
|
||||
<form id="form-login" action="{{ login }}" method="post" data-oc-toggle="ajax">
|
||||
<h2>{{ text_returning_customer }}</h2>
|
||||
<p><strong>{{ text_i_am_returning_customer }}</strong></p>
|
||||
<div class="mb-3">
|
||||
<label for="input-email" class="col-form-label">{{ entry_email }}</label>
|
||||
<input type="text" name="email" value="{{ email }}" placeholder="{{ entry_email }}" id="input-email" class="form-control"/>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="input-password" class="col-form-label">{{ entry_password }}</label>
|
||||
<input type="password" name="password" value="{{ password }}" placeholder="{{ entry_password }}" id="input-password" class="form-control mb-1"/>
|
||||
<a href="{{ forgotten }}">{{ text_forgotten }}</a>
|
||||
</div>
|
||||
<div class="text-end">
|
||||
<button type="submit" class="btn btn-primary">{{ button_login }}</button>
|
||||
</div>
|
||||
{% if redirect %}
|
||||
<input type="hidden" name="redirect" value="{{ redirect }}"/>
|
||||
{% endif %}
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
{{ footer }}
|
36
catalog/view/template/account/newsletter.twig
Normal file
36
catalog/view/template/account/newsletter.twig
Normal file
@ -0,0 +1,36 @@
|
||||
{{ header }}
|
||||
<div id="account-newsletter" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
<form id="form-newsletter" action="{{ save }}" method="post" data-oc-toggle="ajax">
|
||||
<fieldset>
|
||||
<div class="row mb-3 mb-0">
|
||||
<label class="col-md-3 col-form-label">{{ entry_newsletter }}</label>
|
||||
<div class="col-md-9">
|
||||
<div class="form-check form-switch form-switch-lg">
|
||||
<input type="hidden" name="newsletter" value="0"/>
|
||||
<input type="checkbox" name="newsletter" value="1" id="input-newsletter" class="form-check-input"{% if newsletter %} checked{% endif %}/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<a href="{{ back }}" class="btn btn-light">{{ button_back }}</a>
|
||||
</div>
|
||||
<div class="col text-end">
|
||||
<button type="submit" class="btn btn-primary">{{ button_continue }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{{ content_bottom }}
|
||||
</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
{{ footer }}
|
30
catalog/view/template/account/order_history.twig
Normal file
30
catalog/view/template/account/order_history.twig
Normal file
@ -0,0 +1,30 @@
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="text-start"><strong>{{ column_date_added }}</strong></td>
|
||||
<td class="text-start"><strong>{{ column_comment }}</strong></td>
|
||||
<td class="text-start"><strong>{{ column_status }}</strong></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% if histories %}
|
||||
{% for history in histories %}
|
||||
<tr>
|
||||
<td class="text-start">{{ history.date_added }}</td>
|
||||
<td class="text-start">{{ history.comment }}</td>
|
||||
<td class="text-start">{{ history.status }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<tr>
|
||||
<td class="text-center" colspan="3">{{ text_no_results }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6 text-start">{{ pagination }}</div>
|
||||
<div class="col-sm-6 text-end">{{ results }}</div>
|
||||
</div>
|
166
catalog/view/template/account/order_info.twig
Normal file
166
catalog/view/template/account/order_info.twig
Normal file
@ -0,0 +1,166 @@
|
||||
{{ header }}
|
||||
<div id="account-order" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
<div class="row row-cols-md-2">
|
||||
<div class="col">
|
||||
<table class="table table-bordered table-hover">
|
||||
{% if invoice_no %}
|
||||
<tr>
|
||||
<td><strong>{{ text_invoice_no }}</strong></td>
|
||||
<td>{{ invoice_no }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
<tr>
|
||||
<td><strong>{{ text_order_id }}</strong></td>
|
||||
<td>#{{ order_id }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>{{ text_order_status }}</strong></td>
|
||||
<td>{{ order_status }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col">
|
||||
<table class="table table-bordered table-hover">
|
||||
{% if shipping_method %}
|
||||
<tr>
|
||||
<td><strong>{{ text_shipping_method }}</strong></td>
|
||||
<td>{{ shipping_method }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
<tr>
|
||||
<td><strong>{{ text_payment_method }}</strong></td>
|
||||
<td>{{ payment_method }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>{{ text_date_added }}</strong></td>
|
||||
<td>{{ date_added }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
{% if payment_address or shipping_address %}
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
{% if payment_address %}
|
||||
<td class="text-start align-top"><strong>{{ text_payment_address }}</strong></td>
|
||||
{% endif %}
|
||||
{% if shipping_address %}
|
||||
<td class="text-start align-top"><strong>{{ text_shipping_address }}</strong></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
{% if payment_address %}
|
||||
<td class="text-start align-top">{{ payment_address }}</td>
|
||||
{% endif %}
|
||||
{% if shipping_address %}
|
||||
<td class="text-start align-top">{{ shipping_address }}</td>
|
||||
{% endif %}</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="text-start"><strong>{{ column_name }}</strong></td>
|
||||
<td class="text-start"><strong>{{ column_model }}</strong></td>
|
||||
<td class="text-end"><strong>{{ column_quantity }}</strong></td>
|
||||
<td class="text-end"><strong>{{ column_price }}</strong></td>
|
||||
<td class="text-end"><strong>{{ column_total }}</strong></td>
|
||||
{% if products %}
|
||||
<td class="text-end"><strong>{{ column_action }}</strong></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for product in products %}
|
||||
<tr>
|
||||
<td class="text-start"><a href="{{ product.href }}">{{ product.name }}</a>
|
||||
{% for option in product.option %}
|
||||
<br/>
|
||||
<small> - {{ option.name }}: {{ option.value }}</small>
|
||||
{% endfor %}
|
||||
{% if product.reward %}
|
||||
<br/>
|
||||
<small> - {{ text_points }}: {{ product.reward }}</small>
|
||||
{% endif %}
|
||||
{% if product.subscription %}
|
||||
<br/>
|
||||
<small> - {{ text_subscription }}: <a href="{{ product.subscription }}" target="_blank">{{ product.subscription_description }}</a></small>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="text-start">{{ product.model }}</td>
|
||||
<td class="text-end">{{ product.quantity }}</td>
|
||||
<td class="text-end">{{ product.price }}</td>
|
||||
<td class="text-end">{{ product.total }}</td>
|
||||
<td class="text-end text-nowrap">{% if product.reorder %}<a href="{{ product.reorder }}" data-bs-toggle="tooltip" title="{{ button_reorder }}" class="btn btn-primary"><i class="fa-solid fa-cart-shopping"></i></a>{% endif %}
|
||||
<a href="{{ product.return }}" data-bs-toggle="tooltip" title="{{ button_return }}" class="btn btn-danger"><i class="fa-solid fa-reply"></i></a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
||||
{% for voucher in vouchers %}
|
||||
<tr>
|
||||
<td class="text-start">{{ voucher.description }}</td>
|
||||
<td class="text-start"></td>
|
||||
<td class="text-end">1</td>
|
||||
<td class="text-end">{{ voucher.amount }}</td>
|
||||
<td class="text-end">{{ voucher.amount }}</td>
|
||||
{% if products %}
|
||||
<td></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
{% for total in totals %}
|
||||
<tr>
|
||||
<td colspan="3"></td>
|
||||
<td class="text-end"><b>{{ total.title }}</b></td>
|
||||
<td class="text-end">{{ total.text }}</td>
|
||||
{% if products %}
|
||||
<td></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
{% if comment %}
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="text-start"><strong>{{ text_comment }}</strong></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-start">{{ comment }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
<h2>{{ text_history }}</h2>
|
||||
<div id="history">{{ history }}</div>
|
||||
<div class="text-end mt-3"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
<script type="text/javascript"><!--
|
||||
$('#history').on('click', '.pagination a', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
$('#history').load(this.href);
|
||||
});
|
||||
//--></script>
|
||||
{{ footer }}
|
51
catalog/view/template/account/order_list.twig
Normal file
51
catalog/view/template/account/order_list.twig
Normal file
@ -0,0 +1,51 @@
|
||||
{{ header }}
|
||||
<div id="account-order" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
{% if orders %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="text-end">{{ column_order_id }}</td>
|
||||
<td class="text-start">{{ column_customer }}</td>
|
||||
<td class="text-end">{{ column_product }}</td>
|
||||
<td class="text-start">{{ column_status }}</td>
|
||||
<td class="text-end">{{ column_total }}</td>
|
||||
<td class="text-start">{{ column_date_added }}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for order in orders %}
|
||||
<tr>
|
||||
<td class="text-end">#{{ order.order_id }}</td>
|
||||
<td class="text-start">{{ order.name }}</td>
|
||||
<td class="text-end">{{ order.products }}</td>
|
||||
<td class="text-start">{{ order.status }}</td>
|
||||
<td class="text-end">{{ order.total }}</td>
|
||||
<td class="text-start">{{ order.date_added }}</td>
|
||||
<td class="text-end"><a href="{{ order.view }}" data-bs-toggle="tooltip" title="{{ button_view }}" class="btn btn-info"><i class="fa-solid fa-eye"></i></a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="col-sm-6 text-start">{{ pagination }}</div>
|
||||
<div class="col-sm-6 text-end">{{ results }}</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<p>{{ text_no_results }}</p>
|
||||
{% endif %}
|
||||
<div class="text-end"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
{{ footer }}
|
41
catalog/view/template/account/password.twig
Normal file
41
catalog/view/template/account/password.twig
Normal file
@ -0,0 +1,41 @@
|
||||
{{ header }}
|
||||
<div id="account-password" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
<form id="form-password" action="{{ save }}" method="post" data-oc-toggle="ajax">
|
||||
<fieldset>
|
||||
<legend>{{ text_password }}</legend>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-password" class="col-md-3 col-form-label">{{ entry_password }}</label>
|
||||
<div class="col-md-9">
|
||||
<input type="password" name="password" value="{{ password }}" placeholder="{{ entry_password }}" id="input-password" class="form-control" autocomplete="new-password"/>
|
||||
<div id="error-password" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-confirm" class="col-md-3 col-form-label">{{ entry_confirm }}</label>
|
||||
<div class="col-md-9">
|
||||
<input type="password" name="confirm" value="{{ confirm }}" placeholder="{{ entry_confirm }}" id="input-confirm" class="form-control"/>
|
||||
<div id="error-confirm" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<a href="{{ back }}" class="btn btn-light">{{ button_back }}</a>
|
||||
</div>
|
||||
<div class="col text-end">
|
||||
<button type="submit" class="btn btn-primary">{{ button_continue }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
{{ footer }}
|
50
catalog/view/template/account/payment_method.twig
Normal file
50
catalog/view/template/account/payment_method.twig
Normal file
@ -0,0 +1,50 @@
|
||||
{{ header }}
|
||||
<div id="account-payment-method" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
<div id="payment-method">{{ list }}</div>
|
||||
<div class="text-end"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
<script type="text/javascript"><!--
|
||||
$('#payment-method').on('click', '.btn-danger', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
var element = this;
|
||||
|
||||
$.ajax({
|
||||
url: $(element).attr('href'),
|
||||
dataType: 'json',
|
||||
beforeSend: function () {
|
||||
$(element).prop('disabled', true);
|
||||
},
|
||||
complete: function () {
|
||||
$(element).prop('disabled', false);
|
||||
},
|
||||
success: function (json) {
|
||||
$('.alert-dismissible').remove();
|
||||
|
||||
if (json['error']) {
|
||||
$('#alert').prepend('<div class="alert alert-danger alert-dismissible"><i class="fa-solid fa-circle-exclamation"></i> ' + json['error'] + ' <button type="button" class="btn-close" data-bs-dismiss="alert"></button></div>');
|
||||
}
|
||||
|
||||
if (json['success']) {
|
||||
$('#alert').prepend('<div class="alert alert-success alert-dismissible"><i class="fa-solid fa-circle-check"></i> ' + json['success'] + ' <button type="button" class="btn-close" data-bs-dismiss="alert"></button></div>');
|
||||
|
||||
$('#payment-method').load('index.php?route=account/payment_method.list&customer_token={{ customer_token }}');
|
||||
}
|
||||
},
|
||||
error: function (xhr, ajaxOptions, thrownError) {
|
||||
console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
|
||||
}
|
||||
});
|
||||
});
|
||||
//--></script>
|
||||
{{ footer }}
|
29
catalog/view/template/account/payment_method_list.twig
Normal file
29
catalog/view/template/account/payment_method_list.twig
Normal file
@ -0,0 +1,29 @@
|
||||
{% if payment_methods %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-start">{{ column_payment_method }}</th>
|
||||
<th></th>
|
||||
<th class="text-start">{{ column_type }}</th>
|
||||
<th class="text-start">{{ column_date_expire }}</th>
|
||||
<th class="text-end">{{ column_action }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tbody>
|
||||
{% for payment_method in payment_methods %}
|
||||
<tr>
|
||||
<td class="text-start">{{ payment_method.name }}</td>
|
||||
<td class="text-start">{{ payment_method.image }}</td>
|
||||
<td class="text-start">{{ payment_method.type }}</td>
|
||||
<td class="text-start">{{ payment_method.date_expire }}</td>
|
||||
<td class="text-end"><a href="{{ payment_method.delete }}" class="btn btn-danger">{{ button_delete }}</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% else %}
|
||||
<p>{{ text_no_results }}</p>
|
||||
{% endif %}
|
248
catalog/view/template/account/register.twig
Normal file
248
catalog/view/template/account/register.twig
Normal file
@ -0,0 +1,248 @@
|
||||
{{ header }}
|
||||
<div id="account-register" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">
|
||||
{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
<p>{{ text_account_already }}</p>
|
||||
<form id="form-register" action="{{ register }}" method="post" data-oc-toggle="ajax">
|
||||
<fieldset id="account">
|
||||
<legend>{{ text_your_details }}</legend>
|
||||
{% if customer_groups|length > 1 %}
|
||||
<div class="row mb-3 required">
|
||||
<label class="col-sm-2 col-form-label">{{ entry_customer_group }}</label>
|
||||
<div class="col-sm-10">
|
||||
<select name="customer_group_id" id="input-customer-group" class="form-select">
|
||||
{% for customer_group in customer_groups %}
|
||||
<option value="{{ customer_group.customer_group_id }}"{% if customer_group.customer_group_id == customer_group_id %} selected{% endif %}>{{ customer_group.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-firstname" class="col-sm-2 col-form-label">{{ entry_firstname }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="firstname" value="" placeholder="{{ entry_firstname }}" id="input-firstname" class="form-control"/>
|
||||
<div id="error-firstname" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-lastname" class="col-sm-2 col-form-label">{{ entry_lastname }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="lastname" value="" placeholder="{{ entry_lastname }}" id="input-lastname" class="form-control"/>
|
||||
<div id="error-lastname" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-email" class="col-sm-2 col-form-label">{{ entry_email }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="email" name="email" value="" placeholder="{{ entry_email }}" id="input-email" class="form-control"/>
|
||||
<div id="error-email" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if config_telephone_display %}
|
||||
<div class="row mb-3{% if config_telephone_required %} required{% endif %}">
|
||||
<label for="input-telephone" class="col-sm-2 col-form-label">{{ entry_telephone }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="tel" name="telephone" value="" placeholder="{{ entry_telephone }}" id="input-telephone" class="form-control"/>
|
||||
<div id="error-telephone" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% for custom_field in custom_fields %}
|
||||
|
||||
{% if custom_field.type == 'select' %}
|
||||
<div class="row mb-3 custom-field custom-field-{{ custom_field.custom_field_id }}">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<select name="custom_field[{{ custom_field.custom_field_id }}]" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-select">
|
||||
<option value="">{{ text_select }}</option>
|
||||
{% for custom_field_value in custom_field.custom_field_value %}
|
||||
<option value="{{ custom_field_value.custom_field_value_id }}">{{ custom_field_value.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'radio' %}
|
||||
<div class="row mb-3 custom-field custom-field-{{ custom_field.custom_field_id }}">
|
||||
<label class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div id="input-custom-field-{{ custom_field.custom_field_id }}">
|
||||
{% for custom_field_value in custom_field.custom_field_value %}
|
||||
<div class="form-check">
|
||||
<input type="radio" name="custom_field[{{ custom_field.custom_field_id }}]" value="{{ custom_field_value.custom_field_value_id }}" id="input-custom-value-{{ custom_field_value.custom_field_value_id }}" class="form-check-input"/> <label for="input-custom-value-{{ custom_field_value.custom_field_value_id }}" class="form-check-label">{{ custom_field_value.name }}</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'checkbox' %}
|
||||
<div class="row mb-3 custom-field custom-field-{{ custom_field.custom_field_id }}">
|
||||
<label class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div id="input-custom-field-{{ custom_field.custom_field_id }}">
|
||||
{% for custom_field_value in custom_field.custom_field_value %}
|
||||
<div class="form-check">
|
||||
<input type="checkbox" name="custom_field[{{ custom_field.custom_field_id }}][]" value="{{ custom_field_value.custom_field_value_id }}" id="input-custom-value-{{ custom_field_value.custom_field_value_id }}" class="form-check-input"/> <label for="input-custom-value-{{ custom_field_value.custom_field_value_id }}" class="form-check-label">{{ custom_field_value.name }}</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'text' %}
|
||||
<div class="row mb-3 custom-field custom-field-{{ custom_field.custom_field_id }}">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="custom_field[{{ custom_field.custom_field_id }}]" value="{{ custom_field.value }}" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control"/>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'textarea' %}
|
||||
<div class="row mb-3 custom-field custom-field-{{ custom_field.custom_field_id }}">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea name="custom_field[{{ custom_field.custom_field_id }}]" rows="5" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control">{{ custom_field.value }}</textarea>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'file' %}
|
||||
<div class="row mb-3 custom-field custom-field-{{ custom_field.custom_field_id }}">
|
||||
<label class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div>
|
||||
<button type="button" data-oc-toggle="upload" data-oc-url="{{ upload }}" data-oc-size-max="{{ config_file_max_size }}" data-oc-size-error="{{ error_upload_size }}" data-oc-target="#input-custom-field-{{ custom_field.custom_field_id }}" class="btn btn-light"><i class="fa-solid fa-upload"></i> {{ button_upload }}</button>
|
||||
<input type="hidden" name="custom_field[{{ custom_field.custom_field_id }}]" value="" id="input-custom-field-{{ custom_field.custom_field_id }}"/>
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'date' %}
|
||||
<div class="row mb-3 custom-field custom-field-{{ custom_field.custom_field_id }}">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="input-group">
|
||||
<input type="text" name="custom_field[{{ custom_field.custom_field_id }}]" value="{{ custom_field.value }}" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control date"/>
|
||||
<div class="input-group-text"><i class="fa-regular fa-calendar"></i></div>
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'time' %}
|
||||
<div class="row mb-3 custom-field custom-field-{{ custom_field.custom_field_id }}">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="input-group">
|
||||
<input type="text" name="custom_field[{{ custom_field.custom_field_id }}]" value="{{ custom_field.value }}" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control time"/>
|
||||
<div class="input-group-text"><i class="fa-regular fa-calendar"></i></div>
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if custom_field.type == 'datetime' %}
|
||||
<div class="row mb-3 custom-field custom-field-{{ custom_field.custom_field_id }}">
|
||||
<label for="input-custom-field-{{ custom_field.custom_field_id }}" class="col-sm-2 col-form-label">{{ custom_field.name }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="input-group">
|
||||
<input type="text" name="custom_field[{{ custom_field.custom_field_id }}]" value="{{ custom_field.value }}" placeholder="{{ custom_field.name }}" id="input-custom-field-{{ custom_field.custom_field_id }}" class="form-control datetime"/>
|
||||
<div class="input-group-text"><i class="fa-regular fa-calendar"></i></div>
|
||||
</div>
|
||||
<div id="error-custom-field-{{ custom_field.custom_field_id }}" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{ text_your_password }}</legend>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-password" class="col-sm-2 col-form-label">{{ entry_password }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="password" name="password" value="" placeholder="{{ entry_password }}" id="input-password" class="form-control"/>
|
||||
<div id="error-password" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{ text_newsletter }}</legend>
|
||||
<div class="row mb-3">
|
||||
<label class="col-sm-2 col-form-label">{{ entry_newsletter }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-check form-switch form-switch-lg">
|
||||
<input type="hidden" name="newsletter" value="0"/> <input type="checkbox" name="newsletter" value="1" id="input-newsletter" class="form-check-input"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
{{ captcha }}
|
||||
<div class="text-end">
|
||||
{% if text_agree %}
|
||||
<div class="form-check form-switch form-switch-lg form-check-reverse form-check-inline">
|
||||
<label class="form-check-label">{{ text_agree }}</label> <input type="checkbox" name="agree" value="1" class="form-check-input"/>
|
||||
</div>
|
||||
{% endif %}
|
||||
<button type="submit" class="btn btn-primary">{{ button_continue }}</button>
|
||||
</div>
|
||||
</form>
|
||||
{{ content_bottom }}
|
||||
</div>
|
||||
{{ column_right }}
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript"><!--
|
||||
$('#input-customer-group').on('change', function() {
|
||||
$.ajax({
|
||||
url: 'index.php?route=account/custom_field&customer_group_id=' + this.value + '&language={{ language }}',
|
||||
dataType: 'json',
|
||||
success: function(json) {
|
||||
$('.custom-field').hide();
|
||||
$('.custom-field').removeClass('required');
|
||||
|
||||
for (i = 0; i < json.length; i++) {
|
||||
custom_field = json[i];
|
||||
|
||||
$('.custom-field-' + custom_field['custom_field_id']).show();
|
||||
|
||||
if (custom_field['required']) {
|
||||
$('.custom-field-' + custom_field['custom_field_id']).addClass('required');
|
||||
}
|
||||
}
|
||||
},
|
||||
error: function(xhr, ajaxOptions, thrownError) {
|
||||
console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#input-customer-group').trigger('change');
|
||||
//--></script>
|
||||
{{ footer }}
|
133
catalog/view/template/account/returns_form.twig
Normal file
133
catalog/view/template/account/returns_form.twig
Normal file
@ -0,0 +1,133 @@
|
||||
{{ header }}
|
||||
<div id="account-return" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}"> {{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
<p>{{ text_description }}</p>
|
||||
<form id="form-return" action="{{ save }}" method="post" data-oc-toggle="ajax">
|
||||
<fieldset>
|
||||
<legend>{{ text_order }}</legend>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-firstname" class="col-sm-2 col-form-label">{{ entry_firstname }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="firstname" value="{{ firstname }}" placeholder="{{ entry_firstname }}" id="input-firstname" class="form-control"/>
|
||||
<div id="error-firstname" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-lastname" class="col-sm-2 col-form-label">{{ entry_lastname }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="lastname" value="{{ lastname }}" placeholder="{{ entry_lastname }}" id="input-lastname" class="form-control"/>
|
||||
<div id="error-lastname" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-email" class="col-sm-2 col-form-label">{{ entry_email }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="email" value="{{ email }}" placeholder="{{ entry_email }}" id="input-email" class="form-control"/>
|
||||
<div id="error-email" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-telephone" class="col-sm-2 col-form-label">{{ entry_telephone }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="telephone" value="{{ telephone }}" placeholder="{{ entry_telephone }}" id="input-telephone" class="form-control"/>
|
||||
<div id="error-telephone" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-order-id" class="col-sm-2 col-form-label">{{ entry_order_id }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="order_id" value="{{ order_id }}" placeholder="{{ entry_order_id }}" id="input-order-id" class="form-control"/>
|
||||
<div id="error-order-id" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="input-date-ordered" class="col-sm-2 col-form-label">{{ entry_date_ordered }}</label>
|
||||
<div class="col-sm-10 col-md-4">
|
||||
<div class="input-group">
|
||||
<input type="text" name="date_ordered" value="{{ date_ordered }}" placeholder="{{ entry_date_ordered }}" id="input-date-ordered" class="form-control date"/>
|
||||
<div class="input-group-text"><i class="fa-regular fa-calendar"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{{ text_product }}</legend>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-product" class="col-sm-2 col-form-label">{{ entry_product }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="product" value="{{ product }}" placeholder="{{ entry_product }}" id="input-product" class="form-control"/> <input type="hidden" name="product_id" value="{{ product_id }}"/>
|
||||
<div id="error-product" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required">
|
||||
<label for="input-model" class="col-sm-2 col-form-label">{{ entry_model }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="model" value="{{ model }}" placeholder="{{ entry_model }}" id="input-model" class="form-control"/>
|
||||
<div id="error-model" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="input-quantity" class="col-sm-2 col-form-label">{{ entry_quantity }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="quantity" value="1" placeholder="{{ entry_quantity }}" id="input-quantity" class="form-control"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required">
|
||||
<label class="col-sm-2 col-form-label">{{ entry_reason }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div id="input-reason">
|
||||
{% for return_reason in return_reasons %}
|
||||
<div class="form-check">
|
||||
<input type="radio" name="return_reason_id" value="{{ return_reason.return_reason_id }}" id="input-return-reason-{{ return_reason.return_reason_id }}" class="form-check-input"/> <label for="input-return-reason-{{ return_reason.return_reason_id }}" class="form-check-label">{{ return_reason.name }}</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div id="error-reason" class="invalid-feedback"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 required">
|
||||
<label class="col-sm-2 col-form-label">{{ entry_opened }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-check form-check-inline">
|
||||
<input type="radio" name="opened" value="1" id="input-opened-yes" class="form-check-input" checked/>
|
||||
<label for="input-opened-yes" class="form-check-label">{{ text_yes }}</label>
|
||||
</div>
|
||||
<div class="form-check form-check-inline">
|
||||
<input type="radio" name="opened" value="0" id="input-opened-no" class="form-check-input"/>
|
||||
<label for="input-opened-no" class="form-check-label">{{ text_no }}</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="input-comment" class="col-sm-2 col-form-label">{{ entry_fault_detail }}</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea name="comment" rows="5" placeholder="{{ entry_fault_detail }}" id="input-comment" class="form-control"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
{{ captcha }}
|
||||
</fieldset>
|
||||
<div class="row">
|
||||
<div class="col-3"><a href="{{ back }}" class="btn btn-light">{{ button_back }}</a></div>
|
||||
<div class="col text-end">
|
||||
{% if text_agree %}
|
||||
<div class="form-check form-switch form-switch-lg form-check-reverse form-check-inline">
|
||||
<label class="form-check-label">{{ text_agree }}</label>
|
||||
<input type="hidden" name="agree" value="0"/>
|
||||
<input type="checkbox" name="agree" value="1" id="input-agree" class="form-check-input"/>
|
||||
</div>
|
||||
{% endif %}
|
||||
<button type="submit" class="btn btn-primary">{{ button_submit }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
{{ footer }}
|
113
catalog/view/template/account/returns_info.twig
Normal file
113
catalog/view/template/account/returns_info.twig
Normal file
@ -0,0 +1,113 @@
|
||||
{{ header }}
|
||||
<div id="account-return" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="text-start" colspan="2">{{ text_return_detail }}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-start" style="width: 50%;"><b>{{ text_return_id }}</b> #{{ return_id }}
|
||||
<br/>
|
||||
<b>{{ text_date_added }}</b> {{ date_added }}</td>
|
||||
<td class="text-start" style="width: 50%;"><b>{{ text_orders_id }}</b> #{{ order_id }}
|
||||
<br/>
|
||||
<b>{{ text_date_ordered }}</b> {{ date_ordered }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3>{{ text_product }}</h3>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="text-start" style="width: 33.3%;">{{ column_product }}</td>
|
||||
<td class="text-start" style="width: 33.3%;">{{ column_model }}</td>
|
||||
<td class="text-end" style="width: 33.3%;">{{ column_quantity }}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-start">{{ product }}</td>
|
||||
<td class="text-start">{{ model }}</td>
|
||||
<td class="text-end">{{ quantity }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<h3>{{ text_reason }}</h3>
|
||||
<div class="table-responsive">
|
||||
<table class="list table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="text-start" style="width: 33.3%;">{{ column_reason }}</td>
|
||||
<td class="text-start" style="width: 33.3%;">{{ column_opened }}</td>
|
||||
<td class="text-start" style="width: 33.3%;">{{ column_action }}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-start">{{ reason }}</td>
|
||||
<td class="text-start">{{ opened }}</td>
|
||||
<td class="text-start">{{ action }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% if comment %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="text-start">{{ text_comment }}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-start">{{ comment }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
<h3>{{ text_history }}</h3>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="text-start" style="width: 33.3%;">{{ column_date_added }}</td>
|
||||
<td class="text-start" style="width: 33.3%;">{{ column_status }}</td>
|
||||
<td class="text-start" style="width: 33.3%;">{{ column_comment }}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% if histories %}
|
||||
{% for history in histories %}
|
||||
<tr>
|
||||
<td class="text-start">{{ history.date_added }}</td>
|
||||
<td class="text-start">{{ history.status }}</td>
|
||||
<td class="text-start">{{ history.comment }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<tr>
|
||||
<td colspan="3" class="text-center">{{ text_no_results }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="text-end"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
{{ footer }}
|
49
catalog/view/template/account/returns_list.twig
Normal file
49
catalog/view/template/account/returns_list.twig
Normal file
@ -0,0 +1,49 @@
|
||||
{{ header }}
|
||||
<div id="account-return" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
{% if returns %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="text-end">{{ column_return_id }}</td>
|
||||
<td class="text-start">{{ column_status }}</td>
|
||||
<td class="text-start">{{ column_date_added }}</td>
|
||||
<td class="text-end">{{ column_order_id }}</td>
|
||||
<td class="text-start">{{ column_customer }}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for return in returns %}
|
||||
<tr>
|
||||
<td class="text-end">#{{ return.return_id }}</td>
|
||||
<td class="text-start">{{ return.status }}</td>
|
||||
<td class="text-start">{{ return.date_added }}</td>
|
||||
<td class="text-end">{{ return.order_id }}</td>
|
||||
<td class="text-start">{{ return.name }}</td>
|
||||
<td class="text-end"><a href="{{ return.href }}" data-bs-toggle="tooltip" title="{{ button_view }}" class="btn btn-info"><i class="fa-solid fa-eye"></i></a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="col-sm-6 text-start">{{ pagination }}</div>
|
||||
<div class="col-sm-6 text-end">{{ results }}</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<p>{{ text_no_results }}</p>
|
||||
{% endif %}
|
||||
<div class="text-end"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
{{ footer }}
|
48
catalog/view/template/account/reward.twig
Normal file
48
catalog/view/template/account/reward.twig
Normal file
@ -0,0 +1,48 @@
|
||||
{{ header }}
|
||||
<div id="account-reward" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
<p>{{ text_total }} <b>{{ total }}</b>.</p>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-start">{{ column_date_added }}</th>
|
||||
<th class="text-start">{{ column_description }}</th>
|
||||
<th class="text-end">{{ column_points }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% if rewards %}
|
||||
{% for reward in rewards %}
|
||||
<tr>
|
||||
<td class="text-start">{{ reward.date_added }}</td>
|
||||
<td class="text-start">{% if reward.order_id %} <a href="{{ reward.href }}">{{ reward.description }}</a> {% else %}
|
||||
{{ reward.description }}
|
||||
{% endif %}</td>
|
||||
<td class="text-end">{{ reward.points }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<tr>
|
||||
<td class="text-center" colspan="3">{{ text_no_results }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="col-sm-6 text-start">{{ pagination }}</div>
|
||||
<div class="col-sm-6 text-end">{{ results }}</div>
|
||||
</div>
|
||||
<div class="text-end"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
{{ footer }}
|
30
catalog/view/template/account/subscription_history.twig
Normal file
30
catalog/view/template/account/subscription_history.twig
Normal file
@ -0,0 +1,30 @@
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="text-start">{{ column_date_added }}</td>
|
||||
<td class="text-start">{{ column_comment }}</td>
|
||||
<td class="text-start">{{ column_status }}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% if histories %}
|
||||
{% for history in histories %}
|
||||
<tr>
|
||||
<td class="text-start">{{ history.date_added }}</td>
|
||||
<td class="text-start">{{ history.comment }}</td>
|
||||
<td class="text-start">{{ history.status }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<tr>
|
||||
<td class="text-center" colspan="3">{{ text_no_results }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6 text-start">{{ pagination }}</div>
|
||||
<div class="col-sm-6 text-end">{{ results }}</div>
|
||||
</div>
|
108
catalog/view/template/account/subscription_info.twig
Normal file
108
catalog/view/template/account/subscription_info.twig
Normal file
@ -0,0 +1,108 @@
|
||||
{{ header }}
|
||||
<div id="account-subscription" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
<div class="row row-cols-md-2">
|
||||
<div class="col">
|
||||
<table class="table table-bordered table-hover">
|
||||
<tr>
|
||||
<td><b>{{ text_subscription_id }}</b></td>
|
||||
<td>#{{ subscription_id }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>{{ text_status }}</b></td>
|
||||
<td>{{ subscription_status }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>{{ text_order_id }}</b></td>
|
||||
<td>#{{ order_id }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col">
|
||||
<table class="table table-bordered table-hover">
|
||||
{% if shipping_method %}
|
||||
<tr>
|
||||
<td><strong>{{ text_shipping_method }}</strong></td>
|
||||
<td>{{ shipping_method }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
<tr>
|
||||
<td><strong>{{ text_payment_method }}</strong></td>
|
||||
<td>{{ payment_method }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>{{ text_date_added }}</b></td>
|
||||
<td>{{ date_added }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
{% if payment_address or shipping_address %}
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
{% if payment_address %}
|
||||
<td class="text-start align-top">{{ text_payment_address }}</td>
|
||||
{% endif %}
|
||||
|
||||
{% if shipping_address %}
|
||||
<td class="text-start align-top">{{ text_shipping_address }}</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
{% if payment_address %}
|
||||
<td class="text-start align-top">{{ payment_address }}</td>
|
||||
{% endif %}
|
||||
|
||||
{% if shipping_address %}
|
||||
<td class="text-start align-top">{{ shipping_address }}</td>
|
||||
{% endif %}</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="text-start w-50">{{ text_description }}</td>
|
||||
<td class="text-start w-50">{{ text_quantity }}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-start"><a href="{{ product }}">{{ name }}</a>
|
||||
<br/>{{ description }}</td>
|
||||
<td class="text-start">{{ product_quantity }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2>{{ text_history }}</h2>
|
||||
<div id="history">{{ history }}</div>
|
||||
<h2>{{ text_order }}</h2>
|
||||
<div id="order">{{ order }}</div>
|
||||
<div class="text-end mt-3"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
<script type="text/javascript"><!--
|
||||
$('#history').on('click', '.pagination a', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
$('#history').load(this.href);
|
||||
});
|
||||
|
||||
$('#order').on('click', '.pagination a', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
$('#order').load(this.href);
|
||||
});
|
||||
//--></script>
|
||||
{{ footer }}
|
50
catalog/view/template/account/subscription_list.twig
Normal file
50
catalog/view/template/account/subscription_list.twig
Normal file
@ -0,0 +1,50 @@
|
||||
{{ header }}
|
||||
<div id="account-subscription" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
{% if subscriptions %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="text-end">{{ column_subscription_id }}</td>
|
||||
<td class="text-start">{{ column_product }}</td>
|
||||
<td class="text-start">{{ column_status }}</td>
|
||||
<td class="text-start">{{ column_date_added }}</td>
|
||||
<td class="text-end"></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for subscription in subscriptions %}
|
||||
<tr>
|
||||
<td class="text-end">#{{ subscription.subscription_id }}</td>
|
||||
<td class="text-start"><a href="{{ subscription.product }}">{{ subscription.product_name }}</a>
|
||||
<br/>
|
||||
{{ subscription.description }}
|
||||
</td>
|
||||
<td class="text-start">{{ subscription.status }}</td>
|
||||
<td class="text-start">{{ subscription.date_added }}</td>
|
||||
<td class="text-end"><a href="{{ subscription.view }}" data-bs-toggle="tooltip" title="{{ button_view }}" class="btn btn-info"><i class="fa-solid fa-eye"></i></a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="col-sm-6 text-start">{{ pagination }}</div>
|
||||
<div class="col-sm-6 text-end">{{ results }}</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<p>{{ text_no_results }}</p>
|
||||
{% endif %}
|
||||
<div class="text-end"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
{{ footer }}
|
32
catalog/view/template/account/subscription_order.twig
Normal file
32
catalog/view/template/account/subscription_order.twig
Normal file
@ -0,0 +1,32 @@
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="text-end">{{ column_order_id }}</td>
|
||||
<td class="text-start">{{ column_status }}</td>
|
||||
<td class="text-end">{{ column_total }}</td>
|
||||
<td class="text-start">{{ column_date_added }}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% if orders %}
|
||||
{% for order in orders %}
|
||||
<tr>
|
||||
<td class="text-end"><a href="{{ order.view }}" target="_blank">{{ order.order_id }}</a></td>
|
||||
<td class="text-start">{{ order.status }}</td>
|
||||
<td class="text-end">{{ order.total }}</td>
|
||||
<td class="text-start">{{ order.date_added }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<tr>
|
||||
<td class="text-center" colspan="4">{{ text_no_results }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6 text-start">{{ pagination }}</div>
|
||||
<div class="col-sm-6 text-end">{{ results }}</div>
|
||||
</div>
|
59
catalog/view/template/account/tracking.twig
Normal file
59
catalog/view/template/account/tracking.twig
Normal file
@ -0,0 +1,59 @@
|
||||
{{ header }}
|
||||
<div id="account-tracking" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
<p>{{ text_description }}</p>
|
||||
<form>
|
||||
<div class="row mb-3">
|
||||
<label for="input-code" class="col-md-2 col-form-label">{{ entry_code }}</label>
|
||||
<div class="col-md-10">
|
||||
<textarea cols="40" rows="5" placeholder="{{ entry_code }}" id="input-code" class="form-control">{{ code }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="input-generator" class="col-md-2 col-form-label">{{ entry_generator }}</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" name="product" value="" placeholder="{{ entry_generator }}" id="input-generator" data-oc-target="autocomplete-generator" class="form-control" autocomplete="off"/>
|
||||
<ul id="autocomplete-generator" class="dropdown-menu"></ul>
|
||||
<div class="text-muted">{{ help_generator }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="input-link" class="col-md-2 col-form-label">{{ entry_link }}</label>
|
||||
<div class="col-md-10">
|
||||
<textarea name="link" cols="40" rows="5" placeholder="{{ entry_link }}" id="input-link" class="form-control"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="text-end"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
<script type="text/javascript"><!--
|
||||
$('#input-generator').autocomplete({
|
||||
'source': function(request, response) {
|
||||
return $.ajax({
|
||||
url: 'index.php?route=account/tracking.autocomplete&customer_token={{ customer_token }}&search=' + encodeURIComponent(request) + '&tracking=' + encodeURIComponent($('#input-code').val()) + '&language={{ language }}',
|
||||
dataType: 'json',
|
||||
success: function(json) {
|
||||
response($.map(json, function(item) {
|
||||
return {
|
||||
label: item['name'],
|
||||
value: item['link']
|
||||
}
|
||||
}));
|
||||
}
|
||||
});
|
||||
},
|
||||
'select': function(item) {
|
||||
$('#input-link').val(item['value']);
|
||||
}
|
||||
});
|
||||
//--></script>
|
||||
{{ footer }}
|
44
catalog/view/template/account/transaction.twig
Normal file
44
catalog/view/template/account/transaction.twig
Normal file
@ -0,0 +1,44 @@
|
||||
{{ header }}
|
||||
<div id="account-transaction" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
<p>{{ text_total }} <b>{{ total }}</b>.</p>
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="text-start">{{ column_date_added }}</td>
|
||||
<td class="text-start">{{ column_description }}</td>
|
||||
<td class="text-end">{{ column_amount }}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% if transactions %}
|
||||
{% for transaction in transactions %}
|
||||
<tr>
|
||||
<td class="text-start">{{ transaction.date_added }}</td>
|
||||
<td class="text-start">{{ transaction.description }}</td>
|
||||
<td class="text-end">{{ transaction.amount }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<tr>
|
||||
<td class="text-center" colspan="5">{{ text_no_results }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="row mb-3">
|
||||
<div class="col-sm-6 text-start">{{ pagination }}</div>
|
||||
<div class="col-sm-6 text-end">{{ results }}</div>
|
||||
</div>
|
||||
<div class="text-end"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
{{ footer }}
|
16
catalog/view/template/account/wishlist.twig
Normal file
16
catalog/view/template/account/wishlist.twig
Normal file
@ -0,0 +1,16 @@
|
||||
{{ header }}
|
||||
<div id="account-wishlist" class="container">
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="row">{{ column_left }}
|
||||
<div id="content" class="col">{{ content_top }}
|
||||
<h1>{{ heading_title }}</h1>
|
||||
<div id="wishlist">{{ list }}</div>
|
||||
<div class="text-end"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div>
|
||||
{{ content_bottom }}</div>
|
||||
{{ column_right }}</div>
|
||||
</div>
|
||||
{{ footer }}
|
46
catalog/view/template/account/wishlist_list.twig
Normal file
46
catalog/view/template/account/wishlist_list.twig
Normal file
@ -0,0 +1,46 @@
|
||||
{% if products %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="text-center"><strong>{{ column_image }}</strong></td>
|
||||
<td class="text-start"><strong>{{ column_name }}</strong></td>
|
||||
<td class="text-start"><strong>{{ column_model }}</strong></td>
|
||||
<td class="text-end"><strong>{{ column_stock }}</strong></td>
|
||||
<td class="text-end"><strong>{{ column_price }}</strong></td>
|
||||
<td class="text-end"><strong>{{ column_action }}</strong></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for product in products %}
|
||||
<tr>
|
||||
<td class="text-center">{% if product.thumb %}<a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}"/></a>{% endif %}</td>
|
||||
<td class="text-start"><a href="{{ product.href }}">{{ product.name }}</a></td>
|
||||
<td class="text-start">{{ product.model }}</td>
|
||||
<td class="text-end">{{ product.stock }}</td>
|
||||
<td class="text-end">
|
||||
{% if product.price %}
|
||||
<div class="price">
|
||||
{% if not product.special %}
|
||||
{{ product.price }}
|
||||
{% else %}
|
||||
<b>{{ product.special }}</b> <s>{{ product.price }}</s>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="text-end">
|
||||
<form method="post" data-oc-toggle="ajax" data-oc-load="{{ wishlist }}" data-oc-target="#wishlist">
|
||||
<input type="hidden" name="product_id" value="{{ product.product_id }}"/> <input type="hidden" name="quantity" value="{{ product.minimum }}"/>
|
||||
<button type="submit" formaction="{{ add_to_cart }}" data-bs-toggle="tooltip" title="{{ button_cart }}" class="btn btn-primary"><i class="fa-solid fa-cart-shopping fa-fw"></i></button>
|
||||
<button type="submit" formaction="{{ remove }}" data-bs-toggle="tooltip" title="{{ button_remove }}" class="btn btn-danger"><i class="fa-solid fa-circle-xmark fa-fw"></i></button>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% else %}
|
||||
<p>{{ text_no_results }}</p>
|
||||
{% endif %}
|
Reference in New Issue
Block a user