first commit

This commit is contained in:
Konstantin
2026-05-30 09:27:58 +03:00
commit de0344d218
2371 changed files with 661486 additions and 0 deletions
@@ -0,0 +1,467 @@
{{ header }}{{ column_left }}
<div id="content">
<div class="page-header">
<div class="container-fluid">
<div class="pull-right">
<button type="submit" form="form-custom-field" data-toggle="tooltip" title="{{ button_save }}" class="btn btn-primary"><i class="fa fa-save"></i></button>
<a href="{{ cancel }}" data-toggle="tooltip" title="{{ button_cancel }}" class="btn btn-default"><i class="fa fa-reply"></i></a></div>
<h1>{{ heading_title }}</h1>
<ul class="breadcrumb">
{% for breadcrumb in breadcrumbs %}
<li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
{% endfor %}
</ul>
</div>
</div>
<div class="container-fluid"> {% if error_warning %}
<div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }}
<button type="button" class="close" data-dismiss="alert">&times;</button>
</div>
{% endif %}
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-pencil"></i> {{ text_form }}</h3>
</div>
<div class="panel-body">
<form action="{{ action }}" method="post" enctype="multipart/form-data" id="form-custom-field" class="form-horizontal">
<fieldset>
<legend>{{ text_custom_field }}</legend>
<div class="form-group required">
<label class="col-sm-2 control-label">{{ entry_name }}</label>
<div class="col-sm-10"> {% for language in languages %}
<div class="input-group"><span class="input-group-addon"><img src="language/{{ language.code }}/{{ language.code }}.png" title="{{ language.name }}" /></span>
<input type="text" name="custom_field_description[{{ language.language_id }}][name]" value="{{ custom_field_description[language.language_id] ? custom_field_description[language.language_id].name }}" placeholder="{{ entry_name }}" class="form-control" />
</div>
{% if error_name[language.language_id] %}
<div class="text-danger">{{ error_name[language.language_id] }}</div>
{% endif %}
{% endfor %}
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label" for="input-location">{{ entry_location }}</label>
<div class="col-sm-10">
<select name="location" id="input-location" class="form-control">
{% if location == 'account' %}
<option value="account" selected="selected">{{ text_account }}</option>
{% else %}
<option value="account">{{ text_account }}</option>
{% endif %}
{% if location == 'address' %}
<option value="address" selected="selected">{{ text_address }}</option>
{% else %}
<option value="address">{{ text_address }}</option>
{% endif %}
{% if location == 'affiliate' %}
<option value="affiliate" selected="selected">{{ text_affiliate }}</option>
{% else %}
<option value="affiliate">{{ text_affiliate }}</option>
{% endif %}
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label" for="input-type">{{ entry_type }}</label>
<div class="col-sm-10">
<select name="type" id="input-type" class="form-control">
<optgroup label="{{ text_choose }}">
{% if type == 'select' %}
<option value="select" selected="selected">{{ text_select }}</option>
{% else %}
<option value="select">{{ text_select }}</option>
{% endif %}
{% if type == 'radio' %}
<option value="radio" selected="selected">{{ text_radio }}</option>
{% else %}
<option value="radio">{{ text_radio }}</option>
{% endif %}
{% if type == 'checkbox' %}
<option value="checkbox" selected="selected">{{ text_checkbox }}</option>
{% else %}
<option value="checkbox">{{ text_checkbox }}</option>
{% endif %}
</optgroup>
<optgroup label="{{ text_input }}">
{% if type == 'text' %}
<option value="text" selected="selected">{{ text_text }}</option>
{% else %}
<option value="text">{{ text_text }}</option>
{% endif %}
{% if type == 'textarea' %}
<option value="textarea" selected="selected">{{ text_textarea }}</option>
{% else %}
<option value="textarea">{{ text_textarea }}</option>
{% endif %}
</optgroup>
<optgroup label="{{ text_file }}">
{% if type == 'file' %}
<option value="file" selected="selected">{{ text_file }}</option>
{% else %}
<option value="file">{{ text_file }}</option>
{% endif %}
</optgroup>
<optgroup label="{{ text_date }}">
{% if type == 'date' %}
<option value="date" selected="selected">{{ text_date }}</option>
{% else %}
<option value="date">{{ text_date }}</option>
{% endif %}
{% if type == 'time' %}
<option value="time" selected="selected">{{ text_time }}</option>
{% else %}
<option value="time">{{ text_time }}</option>
{% endif %}
{% if type == 'datetime' %}
<option value="datetime" selected="selected">{{ text_datetime }}</option>
{% else %}
<option value="datetime">{{ text_datetime }}</option>
{% endif %}
</optgroup>
</select>
</div>
</div>
<div class="form-group" id="display-value">
<label class="col-sm-2 control-label" for="input-value">{{ entry_value }}</label>
<div class="col-sm-10">
<input type="text" name="value" value="{{ value }}" placeholder="{{ entry_value }}" id="input-value" class="form-control" />
</div>
</div>
<div class="form-group" id="display-validation">
<label class="col-sm-2 control-label" for="input-validation"><span data-toggle="tooltip" title="{{ help_regex }}">{{ entry_validation }}</span></label>
<div class="col-sm-10">
<input type="text" name="validation" id="input-validation" value="{{ validation }}" placeholder="{{ text_regex }}" class="form-control"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">{{ entry_customer_group }}</label>
<div class="col-sm-10">{% set customer_group_row = 0 %}
{% for customer_group in customer_groups %}
<div class="checkbox">
<label> {% if customer_group.customer_group_id in custom_field_customer_group %}
<input type="checkbox" name="custom_field_customer_group[{{ customer_group_row }}][customer_group_id]" value="{{ customer_group.customer_group_id }}" checked="checked" />
{{ customer_group.name }}
{% else %}
<input type="checkbox" name="custom_field_customer_group[{{ customer_group_row }}][customer_group_id]" value="{{ customer_group.customer_group_id }}" />
{{ customer_group.name }}
{% endif %} </label>
</div>
{% set customer_group_row = customer_group_row + 1 %}
{% endfor %}</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">{{ entry_required }}</label>
<div class="col-sm-10">{% set customer_group_row = 0 %}
{% for customer_group in customer_groups %}
<div class="checkbox">
<label> {% if customer_group.customer_group_id in custom_field_required %}
<input type="checkbox" name="custom_field_customer_group[{{ customer_group_row }}][required]" value="{{ customer_group.customer_group_id }}" checked="checked" />
{{ customer_group.name }}
{% else %}
<input type="checkbox" name="custom_field_customer_group[{{ customer_group_row }}][required]" value="{{ customer_group.customer_group_id }}" />
{{ customer_group.name }}
{% endif %}</label>
</div>
{% set customer_group_row = customer_group_row + 1 %}
{% endfor %}</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label" for="input-status">{{ entry_status }}</label>
<div class="col-sm-10">
<select name="status" id="input-status" class="form-control">
{% if status %}
<option value="1" selected="selected">{{ text_enabled }}</option>
<option value="0">{{ text_disabled }}</option>
{% else %}
<option value="1">{{ text_enabled }}</option>
<option value="0" selected="selected">{{ text_disabled }}</option>
{% endif %}
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label" for="input-sort-order"><span data-toggle="tooltip" title="{{ help_sort_order }}">{{ entry_sort_order }}</span></label>
<div class="col-sm-10">
<input type="text" name="sort_order" value="{{ sort_order }}" placeholder="{{ entry_sort_order }}" id="input-sort-order" class="form-control" />
</div>
</div>
</fieldset>
<br />
<div id="custom-field-value">
<fieldset>
<legend>{{ text_value }}</legend>
<table class="table table-striped table-bordered table-hover">
<thead>
<tr>
<td class="text-left required">{{ entry_custom_value }}</td>
<td class="text-right">{{ entry_sort_order }}</td>
<td></td>
</tr>
</thead>
<tbody>
{% set custom_field_value_row = 0 %}
{% for custom_field_value in custom_field_values %}
<tr id="custom-field-value-row{{ custom_field_value_row }}">
<td class="text-left" style="width: 70%;"><input type="hidden" name="custom_field_value[{{ custom_field_value_row }}][custom_field_value_id]" value="{{ custom_field_value.custom_field_value_id }}" />
{% for language in languages %}
<div class="input-group"> <span class="input-group-addon"><img src="language/{{ language.code }}/{{ language.code }}.png" title="{{ language.name }}" /></span>
<input type="text" name="custom_field_value[{{ custom_field_value_row }}][custom_field_value_description][{{ language.language_id }}][name]" value="{{ custom_field_value.custom_field_value_description[language.language_id] ? custom_field_value.custom_field_value_description[language.language_id].name }}" placeholder="{{ entry_custom_value }}" class="form-control" />
</div>
{% if error_custom_field_value[custom_field_value_row][language.language_id] %}
<div class="text-danger">{{ error_custom_field_value[custom_field_value_row][language.language_id] }}</div>
{% endif %}
{% endfor %}</td>
<td class="text-right"><input type="text" name="custom_field_value[{{ custom_field_value_row }}][sort_order]" value="{{ custom_field_value.sort_order }}" placeholder="{{ entry_sort_order }}" class="form-control" /></td>
<td class="text-left"><button onclick="$('#custom-field-value-row{{ custom_field_value_row }}').remove();" data-toggle="tooltip" title="{{ button_remove }}" class="btn btn-danger"><i class="fa fa-minus-circle"></i></button></td>
</tr>
{% set custom_field_value_row = custom_field_value_row + 1 %}
{% endfor %}
</tbody>
<tfoot>
<tr>
<td colspan="2"></td>
<td class="text-left"><button type="button" onclick="addCustomFieldValue();" data-toggle="tooltip" title="{{ button_custom_field_value_add }}" class="btn btn-primary"><i class="fa fa-plus-circle"></i></button></td>
</tr>
</tfoot>
</table>
</fieldset>
</div>
</form>
</div>
</div>
</div>
<script type="text/javascript"><!--
$('select[name=\'type\']').on('change', function() {
if (this.value == 'select' || this.value == 'radio' || this.value == 'checkbox') {
$('#custom-field-value').show();
$('#display-value, #display-validation').hide();
} else {
$('#custom-field-value').hide();
$('#display-value, #display-validation').show();
}
if (this.value == 'date') {
$('#display-value > div').html('<div class="input-group date"><input type="text" name="value" value="' + $('#input-value').val() + '" placeholder="{{ entry_value }}" data-date-format="YYYY-MM-DD" id="input-value" class="form-control" /><span class="input-group-btn"><button type="button" class="btn btn-default"><i class="fa fa-calendar"></i></button></span></div>');
} else if (this.value == 'time') {
$('#display-value > div').html('<div class="input-group time"><input type="text" name="value" value="' + $('#input-value').val() + '" placeholder="{{ entry_value }}" data-date-format="HH:mm" id="input-value" class="form-control" /><span class="input-group-btn"><button type="button" class="btn btn-default"><i class="fa fa-calendar"></i></button></span></div>');
} else if (this.value == 'datetime') {
$('#display-value > div').html('<div class="input-group datetime"><input type="text" name="value" value="' + $('#input-value').val() + '" placeholder="{{ entry_value }}" data-date-format="YYYY-MM-DD HH:mm" id="input-value" class="form-control" /><span class="input-group-btn"><button type="button" class="btn btn-default"><i class="fa fa-calendar"></i></button></span></div>');
} else if (this.value == 'textarea') {
$('#display-value > div').html('<textarea name="value" placeholder="{{ entry_value }}" id="input-value" class="form-control">' + $('#input-value').val() + '</textarea>');
} else {
$('#display-value > div').html('<input type="text" name="value" value="' + $('#input-value').val() + '" placeholder="{{ entry_value }}" id="input-value" class="form-control" />');
}
$('.date').datetimepicker({
language: '{{ datepicker }}',
pickTime: false
});
$('.time').datetimepicker({
language: '{{ datepicker }}',
pickDate: false
});
$('.datetime').datetimepicker({
language: '{{ datepicker }}',
pickDate: true,
pickTime: true
});
});
$('select[name=\'type\']').trigger('change');
var custom_field_value_row = {{ custom_field_value_row }};
function addCustomFieldValue() {
html = '<tr id="custom-field-value-row' + custom_field_value_row + '">';
html += ' <td class="text-left" style="width: 70%;"><input type="hidden" name="custom_field_value[' + custom_field_value_row + '][custom_field_value_id]" value="" />';
{% for language in languages %}
html += ' <div class="input-group">';
html += ' <span class="input-group-addon"><img src="language/{{ language.code }}/{{ language.code }}.png" title="{{ language.name }}" /></span><input type="text" name="custom_field_value[' + custom_field_value_row + '][custom_field_value_description][{{ language.language_id }}][name]" value="" placeholder="{{ entry_custom_value }}" class="form-control" />';
html += ' </div>';
{% endfor %}
html += ' </td>';
html += ' <td class="text-right"><input type="text" name="custom_field_value[' + custom_field_value_row + '][sort_order]" value="" placeholder="{{ entry_sort_order }}" class="form-control" /></td>';
html += ' <td class="text-left"><button type="button" onclick="$(\'#custom-field-value-row' + custom_field_value_row + '\').remove();" data-toggle="tooltip" title="{{ button_remove }}" class="btn btn-danger"><i class="fa fa-minus-circle"></i></button></td>';
html += '</tr>';
$('#custom-field-value tbody').append(html);
custom_field_value_row++;
}
//--></script></div>
{{ footer }}
@@ -0,0 +1,94 @@
{{ header }}{{ column_left }}
<div id="content">
<div class="page-header">
<div class="container-fluid">
<div class="pull-right"><a href="{{ add }}" data-toggle="tooltip" title="{{ button_add }}" class="btn btn-primary"><i class="fa fa-plus"></i></a>
<button type="button" data-toggle="tooltip" title="{{ button_delete }}" class="btn btn-danger" onclick="confirm('{{ text_confirm }}') ? $('#form-custom-field').submit() : false;"><i class="fa fa-trash-o"></i></button>
</div>
<h1>{{ heading_title }}</h1>
<ul class="breadcrumb">
{% for breadcrumb in breadcrumbs %}
<li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
{% endfor %}
</ul>
</div>
</div>
<div class="container-fluid">
{% if error_warning %}
<div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }}
<button type="button" class="close" data-dismiss="alert">&times;</button>
</div>
{% endif %}
{% if success %}
<div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> {{ success }}
<button type="button" class="close" data-dismiss="alert">&times;</button>
</div>
{% endif %}
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-list"></i> {{ text_list }}</h3>
</div>
<div class="panel-body">
<form action="{{ delete }}" method="post" enctype="multipart/form-data" id="form-custom-field">
<div class="table-responsive">
<table class="table table-bordered table-hover">
<thead>
<tr>
<td style="width: 1px;" class="text-center"><input type="checkbox" onclick="$('input[name*=\'selected\']').prop('checked', this.checked);" /></td>
<td class="text-left">{% if sort == 'cfd.name' %}
<a href="{{ sort_name }}" class="{{ order|lower }}">{{ column_name }}</a>
{% else %}
<a href="{{ sort_name }}">{{ column_name }}</a>
{% endif %}</td>
<td class="text-left">{% if sort == 'cf.location' %}
<a href="{{ sort_location }}" class="{{ order|lower }}">{{ column_location }}</a>
{% else %}
<a href="{{ sort_location }}">{{ column_location }}</a>
{% endif %}</td>
<td class="text-left">{% if sort == 'cf.type' %}
<a href="{{ sort_type }}" class="{{ order|lower }}">{{ column_type }}</a>
{% else %}
<a href="{{ sort_type }}">{{ column_type }}</a>
{% endif %}</td>
<td class="text-right">{% if sort == 'cf.sort_order' %}
<a href="{{ sort_sort_order }}" class="{{ order|lower }}">{{ column_sort_order }}</a>
{% else %}
<a href="{{ sort_sort_order }}">{{ column_sort_order }}</a>
{% endif %}</td>
<td class="text-right">{{ column_action }}</td>
</tr>
</thead>
<tbody>
{% if custom_fields %}
{% for custom_field in custom_fields %}
<tr>
<td class="text-center">{% if custom_field.custom_field_id in selected %}
<input type="checkbox" name="selected[]" value="{{ custom_field.custom_field_id }}" checked="checked" />
{% else %}
<input type="checkbox" name="selected[]" value="{{ custom_field.custom_field_id }}" />
{% endif %}</td>
<td class="text-left">{{ custom_field.name }}</td>
<td class="text-left">{{ custom_field.location }}</td>
<td class="text-left">{{ custom_field.type }}</td>
<td class="text-right">{{ custom_field.sort_order }}</td>
<td class="text-right"><a href="{{ custom_field.edit }}" data-toggle="tooltip" title="{{ button_edit }}" class="btn btn-primary"><i class="fa fa-pencil"></i></a></td>
</tr>
{% endfor %}
{% else %}
<tr>
<td class="text-center" colspan="6">{{ text_no_results }}</td>
</tr>
{% endif %}
</tbody>
</table>
</div>
</form>
<div class="row">
<div class="col-sm-6 text-left">{{ pagination }}</div>
<div class="col-sm-6 text-right">{{ results }}</div>
</div>
</div>
</div>
</div>
</div>
{{ footer }}
@@ -0,0 +1,257 @@
{{ header }}{{ column_left }}
<div id="content">
<div class="page-header">
<div class="container-fluid">
<div class="pull-right"><button type="button" data-toggle="tooltip" title="{{ button_filter }}" onclick="$('#filter-customer').toggleClass('hidden-sm hidden-xs');" class="btn btn-default hidden-md hidden-lg"><i class="fa fa-filter"></i></button></div>
<h1>{{ heading_title }}</h1>
<ul class="breadcrumb">
{% for breadcrumb in breadcrumbs %}
<li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
{% endfor %}
</ul>
</div>
</div>
<div class="container-fluid">{% if error_warning %}
<div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }}
<button type="button" class="close" data-dismiss="alert">&times;</button>
</div>
{% endif %}
{% if success %}
<div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> {{ success }}
<button type="button" class="close" data-dismiss="alert">&times;</button>
</div>
{% endif %}
<div class="row">
<div id="filter-customer" class="col-md-3 col-md-push-9 col-sm-12 hidden-sm hidden-xs">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-filter"></i> {{ text_filter }}</h3>
</div>
<div class="panel-body">
<div class="form-group">
<label class="control-label" for="input-name">{{ entry_name }}</label>
<input type="text" name="filter_name" value="{{ filter_name }}" placeholder="{{ entry_name }}" id="input-name" class="form-control" />
</div>
<div class="form-group">
<label class="control-label" for="input-email">{{ entry_email }}</label>
<input type="text" name="filter_email" value="{{ filter_email }}" placeholder="{{ entry_email }}" id="input-email" class="form-control" />
</div>
<div class="form-group">
<label class="control-label" for="input-customer-group">{{ entry_customer_group }}</label>
<select name="filter_customer_group_id" id="input-customer-group" class="form-control">
<option value=""></option>
{% for customer_group in customer_groups %}
{% if customer_group.customer_group_id == filter_customer_group_id %}
<option value="{{ customer_group.customer_group_id }}" selected="selected">{{ customer_group.name }}</option>
{% else %}
<option value="{{ customer_group.customer_group_id }}">{{ customer_group.name }}</option>
{% endif %}
{% endfor %}
</select>
</div>
<div class="form-group">
<label class="control-label" for="input-type">{{ entry_type }}</label>
<select name="filter_type" id="input-type" class="form-control">
<option value=""></option>
{% if filter_type == 'customer' %}
<option value="customer" selected="selected">{{ text_customer }}</option>
{% else %}
<option value="customer">{{ text_customer }}</option>
{% endif %}
{% if filter_type == 'affiliate' %}
<option value="affiliate" selected="selected">{{ text_affiliate }}</option>
{% else %}
<option value="affiliate">{{ text_affiliate }}</option>
{% endif %}
</select>
</div>
<div class="form-group">
<label class="control-label" for="input-date-added">{{ entry_date_added }}</label>
<div class="input-group date">
<input type="text" name="filter_date_added" value="{{ filter_date_added }}" placeholder="{{ entry_date_added }}" data-date-format="YYYY-MM-DD" id="input-date-added" class="form-control" />
<span class="input-group-btn">
<button type="button" class="btn btn-default"><i class="fa fa-calendar"></i></button>
</span></div>
</div>
<div class="form-group text-right">
<button type="button" id="button-filter" class="btn btn-default"><i class="fa fa-filter"></i> {{ button_filter }}</button>
</div>
</div>
</div>
</div>
<div class="col-md-9 col-md-pull-3 col-sm-12">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-list"></i> {{ text_list }}</h3>
</div>
<div class="panel-body">
<div id="customer-approval"></div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript"><!--
$('#customer-approval').delegate('.pagination a', 'click', function(e) {
e.preventDefault();
$('#customer-approval').load(this.href);
});
$('#customer-approval').load('index.php?route=customer/customer_approval/customer_approval&user_token={{ user_token }}');
$('#customer-approval').on('click', '.btn-success, .btn-danger', function(e) {
e.preventDefault();
var element = this;
$.ajax({
url: $(element).attr('href'),
dataType: 'json',
beforeSend: function() {
$(element).button('loading');
},
complete: function() {
$(element).button('reset');
},
success: function(json) {
$('.alert-dismissible').remove();
if (json['error']) {
$('#customer-approval').before('<div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> ' + json['error'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>');
}
if (json['success']) {
$('#customer-approval').load('index.php?route=customer/customer_approval/customer_approval&user_token={{ user_token }}');
$('#customer-approval').before('<div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>');
}
},
error: function(xhr, ajaxOptions, thrownError) {
alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
}
});
});
$('#button-filter').on('click', function() {
url = '';
var filter_name = $('input[name=\'filter_name\']').val();
if (filter_name) {
url += '&filter_name=' + encodeURIComponent(filter_name);
}
var filter_email = $('input[name=\'filter_email\']').val();
if (filter_email) {
url += '&filter_email=' + encodeURIComponent(filter_email);
}
var filter_customer_group_id = $('select[name=\'filter_customer_group_id\']').val();
if (filter_customer_group_id !== '') {
url += '&filter_customer_group_id=' + encodeURIComponent(filter_customer_group_id);
}
var filter_type = $('select[name=\'filter_type\']').val();
if (filter_type !== '') {
url += '&filter_type=' + filter_type;
}
var filter_date_added = $('input[name=\'filter_date_added\']').val();
if (filter_date_added) {
url += '&filter_date_added=' + encodeURIComponent(filter_date_added);
}
$('#customer-approval').load('index.php?route=customer/customer_approval/customer_approval&user_token={{ user_token }}' + url);
});
//--></script>
<script type="text/javascript"><!--
$('input[name=\'filter_name\']').autocomplete({
'source': function(request, response) {
$.ajax({
url: 'index.php?route=customer/customer/autocomplete&user_token={{ user_token }}&filter_name=' + encodeURIComponent(request),
dataType: 'json',
success: function(json) {
response($.map(json, function(item) {
return {
label: item['name'],
value: item['customer_id']
}
}));
}
});
},
'select': function(item) {
$('input[name=\'filter_name\']').val(item['label']);
}
});
$('input[name=\'filter_email\']').autocomplete({
'source': function(request, response) {
$.ajax({
url: 'index.php?route=customer/customer/autocomplete&user_token={{ user_token }}&filter_email=' + encodeURIComponent(request),
dataType: 'json',
success: function(json) {
response($.map(json, function(item) {
return {
label: item['email'],
value: item['customer_id']
}
}));
}
});
},
'select': function(item) {
$('input[name=\'filter_email\']').val(item['label']);
}
});
$('#filter-customer').on('keydown', function(e) {
if (e.keyCode == 13) {
$('#button-filter').trigger('click')
}
});
//--></script>
<script type="text/javascript"><!--
$('.date').datetimepicker({
language: '{{ datepicker }}',
pickTime: false
});
//--></script>
</div>
{{ footer }}
@@ -0,0 +1,36 @@
<div class="table-responsive">
<table class="table table-bordered table-hover">
<thead>
<tr>
<td class="text-left">{{ column_name }}</td>
<td class="text-left">{{ column_email }}</td>
<td class="text-left">{{ column_customer_group }}</td>
<td class="text-left">{{ column_type }}</td>
<td class="text-left">{{ column_date_added }}</td>
<td class="text-right">{{ column_action }}</td>
</tr>
</thead>
<tbody>
{% if customer_approvals %}
{% for customer_approval in customer_approvals %}
<tr>
<td class="text-left">{{ customer_approval.name }}</td>
<td class="text-left">{{ customer_approval.email }}</td>
<td class="text-left">{{ customer_approval.customer_group }}</td>
<td class="text-left">{{ customer_approval.type }}</td>
<td class="text-left">{{ customer_approval.date_added }}</td>
<td class="text-right"><a href="{{ customer_approval.approve }}" data-toggle="tooltip" title="{{ button_approve }}" class="btn btn-success"><i class="fa fa-thumbs-o-up"></i></a> <a href="{{ customer_approval.deny }}" data-toggle="tooltip" title="{{ button_deny }}" class="btn btn-danger"><i class="fa fa-thumbs-o-down"></i></a> <a href="{{ customer_approval.edit }}" data-toggle="tooltip" title="{{ button_edit }}" class="btn btn-primary"><i class="fa fa-pencil"></i></a></td>
</tr>
{% endfor %}
{% else %}
<tr>
<td class="text-center" colspan="6">{{ text_no_results }}</td>
</tr>
{% endif %}
</tbody>
</table>
</div>
<div class="row">
<div class="col-sm-6 text-left">{{ pagination }}</div>
<div class="col-sm-6 text-right">{{ results }}</div>
</div>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,85 @@
{{ header }}{{ column_left }}
<div id="content">
<div class="page-header">
<div class="container-fluid">
<div class="pull-right">
<button type="submit" form="form-customer-group" data-toggle="tooltip" title="{{ button_save }}" class="btn btn-primary"><i class="fa fa-save"></i></button>
<a href="{{ cancel }}" data-toggle="tooltip" title="{{ button_cancel }}" class="btn btn-default"><i class="fa fa-reply"></i></a></div>
<h1>{{ heading_title }}</h1>
<ul class="breadcrumb">
{% for breadcrumb in breadcrumbs %}
<li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
{% endfor %}
</ul>
</div>
</div>
<div class="container-fluid">
{% if error_warning %}
<div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }}
<button type="button" class="close" data-dismiss="alert">&times;</button>
</div>
{% endif %}
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-pencil"></i> {{ text_form }}</h3>
</div>
<div class="panel-body">
<form action="{{ action }}" method="post" enctype="multipart/form-data" id="form-customer-group" class="form-horizontal">
<div class="form-group required">
<label class="col-sm-2 control-label">{{ entry_name }}</label>
<div class="col-sm-10">
{% for language in languages %}
<div class="input-group"><span class="input-group-addon"><img src="language/{{ language.code }}/{{ language.code }}.png" title="{{ language.name }}" /></span>
<input type="text" name="customer_group_description[{{ language.language_id }}][name]" value="{{ customer_group_description[language.language_id] ? customer_group_description[language.language_id].name }}" placeholder="{{ entry_name }}" class="form-control" />
</div>
{% if error_name[language.language_id] %}
<div class="text-danger">{{ error_name[language.language_id] }}</div>
{% endif %}
{% endfor %}
</div>
</div>
{% for language in languages %}
<div class="form-group">
<label class="col-sm-2 control-label" for="input-description{{ language.language_id }}">{{ entry_description }}</label>
<div class="col-sm-10">
<div class="input-group"><span class="input-group-addon"><img src="language/{{ language.code }}/{{ language.code }}.png" title="{{ language.name }}" /></span>
<textarea name="customer_group_description[{{ language.language_id }}][description]" rows="5" placeholder="{{ entry_description }}" id="input-description{{ language.language_id }}" class="form-control">{{ customer_group_description[language.language_id] ? customer_group_description[language.language_id].description }}</textarea>
</div>
</div>
</div>
{% endfor %}
<div class="form-group">
<label class="col-sm-2 control-label"><span data-toggle="tooltip" title="{{ help_approval }}">{{ entry_approval }}</span></label>
<div class="col-sm-10">
<label class="radio-inline">
{% if approval %}
<input type="radio" name="approval" value="1" checked="checked" />
{{ text_yes }}
{% else %}
<input type="radio" name="approval" value="1" />
{{ text_yes }}
{% endif %}
</label>
<label class="radio-inline">
{% if not approval %}
<input type="radio" name="approval" value="0" checked="checked" />
{{ text_no }}
{% else %}
<input type="radio" name="approval" value="0" />
{{ text_no }}
{% endif %}
</label>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label" for="input-sort-order">{{ entry_sort_order }}</label>
<div class="col-sm-10">
<input type="text" name="sort_order" value="{{ sort_order }}" placeholder="{{ entry_sort_order }}" id="input-sort-order" class="form-control" />
</div>
</div>
</form>
</div>
</div>
</div>
</div>
{{ footer }}
@@ -0,0 +1,82 @@
{{ header }}{{ column_left }}
<div id="content">
<div class="page-header">
<div class="container-fluid">
<div class="pull-right"><a href="{{ add }}" data-toggle="tooltip" title="{{ button_add }}" class="btn btn-primary"><i class="fa fa-plus"></i></a>
<button type="button" data-toggle="tooltip" title="{{ button_delete }}" class="btn btn-danger" onclick="confirm('{{ text_confirm }}') ? $('#form-customer-group').submit() : false;"><i class="fa fa-trash-o"></i></button>
</div>
<h1>{{ heading_title }}</h1>
<ul class="breadcrumb">
{% for breadcrumb in breadcrumbs %}
<li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
{% endfor %}
</ul>
</div>
</div>
<div class="container-fluid">
{% if error_warning %}
<div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }}
<button type="button" class="close" data-dismiss="alert">&times;</button>
</div>
{% endif %}
{% if success %}
<div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> {{ success }}
<button type="button" class="close" data-dismiss="alert">&times;</button>
</div>
{% endif %}
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-list"></i> {{ text_list }}</h3>
</div>
<div class="panel-body">
<form action="{{ delete }}" method="post" enctype="multipart/form-data" id="form-customer-group">
<div class="table-responsive">
<table class="table table-bordered table-hover">
<thead>
<tr>
<td style="width: 1px;" class="text-center"><input type="checkbox" onclick="$('input[name*=\'selected\']').prop('checked', this.checked);" /></td>
<td class="text-left">{% if sort == 'cgd.name' %}
<a href="{{ sort_name }}" class="{{ order|lower }}">{{ column_name }}</a>
{% else %}
<a href="{{ sort_name }}">{{ column_name }}</a>
{% endif %}</td>
<td class="text-right">{% if sort == 'cg.sort_order' %}
<a href="{{ sort_sort_order }}" class="{{ order|lower }}">{{ column_sort_order }}</a>
{% else %}
<a href="{{ sort_sort_order }}">{{ column_sort_order }}</a>
{% endif %}</td>
<td class="text-right">{{ column_action }}</td>
</tr>
</thead>
<tbody>
{% if customer_groups %}
{% for customer_group in customer_groups %}
<tr>
<td class="text-center">{% if customer_group.customer_group_id in selected %}
<input type="checkbox" name="selected[]" value="{{ customer_group.customer_group_id }}" checked="checked" />
{% else %}
<input type="checkbox" name="selected[]" value="{{ customer_group.customer_group_id }}" />
{% endif %}</td>
<td class="text-left">{{ customer_group.name }}</td>
<td class="text-right">{{ customer_group.sort_order }}</td>
<td class="text-right"><a href="{{ customer_group.edit }}" data-toggle="tooltip" title="{{ button_edit }}" class="btn btn-primary"><i class="fa fa-pencil"></i></a></td>
</tr>
{% endfor %}
{% else %}
<tr>
<td class="text-center" colspan="4">{{ text_no_results }}</td>
</tr>
{% endif %}
</tbody>
</table>
</div>
</form>
<div class="row">
<div class="col-sm-6 text-left">{{ pagination }}</div>
<div class="col-sm-6 text-right">{{ results }}</div>
</div>
</div>
</div>
</div>
</div>
{{ footer }}
@@ -0,0 +1,28 @@
<div class="table-responsive">
<table class="table table-bordered">
<thead>
<tr>
<td class="text-left">{{ column_date_added }}</td>
<td class="text-left">{{ column_comment }}</td>
</tr>
</thead>
<tbody>
{% if histories %}
{% for history in histories %}
<tr>
<td class="text-left">{{ history.date_added }}</td>
<td class="text-left">{{ history.comment }}</td>
</tr>
{% endfor %}
{% else %}
<tr>
<td class="text-center" colspan="2">{{ text_no_results }}</td>
</tr>
{% endif %}
</tbody>
</table>
</div>
<div class="row">
<div class="col-sm-6 text-left">{{ pagination }}</div>
<div class="col-sm-6 text-right">{{ results }}</div>
</div>
@@ -0,0 +1,29 @@
<div class="table-responsive">
<table class="table table-bordered table-hover">
<thead>
<tr>
<td class="text-left">{{ column_ip }}</td>
<td class="text-right">{{ column_total }}</td>
<td class="text-left">{{ column_date_added }}</td>
</tr>
</thead>
<tbody>
{% if ips %}
{% for ip in ips %}
<tr>
<td class="text-left"><a href="//whatismyipaddress.com/ip/{{ ip.ip }}" target="_blank">{{ ip.ip }}</a></td>
<td class="text-right"><a href="{{ ip.filter_ip }}" target="_blank">{{ ip.total }}</a></td>
<td class="text-left">{{ ip.date_added }}</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-left">{{ pagination }}</div>
<div class="col-sm-6 text-right">{{ results }}</div>
</div>
@@ -0,0 +1,269 @@
{{ header }}{{ column_left }}
<div id="content">
<div class="page-header">
<div class="container-fluid">
<div class="pull-right">
<button type="button" data-toggle="tooltip" title="{{ button_filter }}" onclick="$('#filter-customer').toggleClass('hidden-sm hidden-xs');" class="btn btn-default hidden-md hidden-lg"><i class="fa fa-filter"></i></button>
<a href="{{ add }}" data-toggle="tooltip" title="{{ button_add }}" class="btn btn-primary"><i class="fa fa-plus"></i></a>
<button type="button" data-toggle="tooltip" title="{{ button_delete }}" class="btn btn-danger" onclick="confirm('{{ text_confirm }}') ? $('#form-customer').submit() : false;"><i class="fa fa-trash-o"></i></button>
</div>
<h1>{{ heading_title }}</h1>
<ul class="breadcrumb">
{% for breadcrumb in breadcrumbs %}
<li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
{% endfor %}
</ul>
</div>
</div>
<div class="container-fluid">{% if error_warning %}
<div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }}
<button type="button" class="close" data-dismiss="alert">&times;</button>
</div>
{% endif %}
{% if success %}
<div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> {{ success }}
<button type="button" class="close" data-dismiss="alert">&times;</button>
</div>
{% endif %}
<div class="row">
<div id="filter-customer" class="col-md-3 col-md-push-9 col-sm-12 hidden-sm hidden-xs">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-filter"></i> {{ text_filter }}</h3>
</div>
<div class="panel-body">
<div class="form-group">
<label class="control-label" for="input-name">{{ entry_name }}</label>
<input type="text" name="filter_name" value="{{ filter_name }}" placeholder="{{ entry_name }}" id="input-name" class="form-control" />
</div>
<div class="form-group">
<label class="control-label" for="input-email">{{ entry_email }}</label>
<input type="text" name="filter_email" value="{{ filter_email }}" placeholder="{{ entry_email }}" id="input-email" class="form-control" />
</div>
<div class="form-group">
<label class="control-label" for="input-customer-group">{{ entry_customer_group }}</label>
<select name="filter_customer_group_id" id="input-customer-group" class="form-control">
<option value=""></option>
{% for customer_group in customer_groups %}
{% if customer_group.customer_group_id == filter_customer_group_id %}
<option value="{{ customer_group.customer_group_id }}" selected="selected">{{ customer_group.name }}</option>
{% else %}
<option value="{{ customer_group.customer_group_id }}">{{ customer_group.name }}</option>
{% endif %}
{% endfor %}
</select>
</div>
<div class="form-group">
<label class="control-label" for="input-status">{{ entry_status }}</label>
<select name="filter_status" id="input-status" class="form-control">
<option value=""></option>
{% if filter_status == '1' %}
<option value="1" selected="selected">{{ text_enabled }}</option>
{% else %}
<option value="1">{{ text_enabled }}</option>
{% endif %}
{% if filter_status == '0' %}
<option value="0" selected="selected">{{ text_disabled }}</option>
{% else %}
<option value="0">{{ text_disabled }}</option>
{% endif %}
</select>
</div>
<div class="form-group">
<label class="control-label" for="input-ip">{{ entry_ip }}</label>
<input type="text" name="filter_ip" value="{{ filter_ip }}" placeholder="{{ entry_ip }}" id="input-ip" class="form-control" />
</div>
<div class="form-group">
<label class="control-label" for="input-date-added">{{ entry_date_added }}</label>
<div class="input-group date">
<input type="text" name="filter_date_added" value="{{ filter_date_added }}" placeholder="{{ entry_date_added }}" data-date-format="YYYY-MM-DD" id="input-date-added" class="form-control" />
<span class="input-group-btn">
<button type="button" class="btn btn-default"><i class="fa fa-calendar"></i></button>
</span>
</div>
</div>
<div class="form-group text-right">
<button type="button" id="button-filter" class="btn btn-default"><i class="fa fa-filter"></i> {{ button_filter }}</button>
</div>
</div>
</div>
</div>
<div class="col-md-9 col-md-pull-3 col-sm-12">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-list"></i> {{ text_list }}</h3>
</div>
<div class="panel-body">
<div class="table-responsive">
<form action="{{ delete }}" method="post" enctype="multipart/form-data" id="form-customer">
<table class="table table-bordered table-hover">
<thead>
<tr>
<td style="width: 1px;" class="text-center"><input type="checkbox" onclick="$('input[name*=\'selected\']').prop('checked', this.checked);" /></td>
<td class="text-left">{% if sort == 'name' %}<a href="{{ sort_name }}" class="{{ order|lower }}">{{ column_name }}</a>{% else %}<a href="{{ sort_name }}">{{ column_name }}</a>{% endif %}</td>
<td class="text-left">{% if sort == 'c.email' %}<a href="{{ sort_email }}" class="{{ order|lower }}">{{ column_email }}</a>{% else %}<a href="{{ sort_email }}">{{ column_email }}</a>{% endif %}</td>
<td class="text-left">{% if sort == 'customer_group' %}<a href="{{ sort_customer_group }}" class="{{ order|lower }}">{{ column_customer_group }}</a> {% else %} <a href="{{ sort_customer_group }}">{{ column_customer_group }}</a>{% endif %}</td>
<td class="text-left">{% if sort == 'c.status' %}<a href="{{ sort_status }}" class="{{ order|lower }}">{{ column_status }}</a>{% else %}<a href="{{ sort_status }}">{{ column_status }}</a>{% endif %}</td>
<td class="text-left">{% if sort == 'c.ip' %}<a href="{{ sort_ip }}" class="{{ order|lower }}">{{ column_ip }}</a>{% else %}<a href="{{ sort_ip }}">{{ column_ip }}</a>{% endif %}</td>
<td class="text-left">{% if sort == 'c.date_added' %}<a href="{{ sort_date_added }}" class="{{ order|lower }}">{{ column_date_added }}</a>{% else %}<a href="{{ sort_date_added }}">{{ column_date_added }}</a>{% endif %}</td>
<td class="text-right">{{ column_action }}</td>
</tr>
</thead>
<tbody>
{% if customers %}
{% for customer in customers %}
<tr>
<td class="text-center">{% if customer.customer_id in selected %}
<input type="checkbox" name="selected[]" value="{{ customer.customer_id }}" checked="checked" />
{% else %}
<input type="checkbox" name="selected[]" value="{{ customer.customer_id }}" />
{% endif %}
</td>
<td class="text-left">{{ customer.name }}</td>
<td class="text-left">{{ customer.email }}</td>
<td class="text-left">{{ customer.customer_group }}</td>
<td class="text-left">{{ customer.status }}</td>
<td class="text-left">{{ customer.ip }}</td>
<td class="text-left">{{ customer.date_added }}</td>
<td class="text-right">
<div class="btn-group" style="min-width: 65px;">
<a href="{{ customer.edit }}" data-toggle="tooltip" title="{{ button_edit }}" class="btn btn-primary"><i class="fa fa-pencil"></i></a>
<button type="button" data-toggle="dropdown" class="btn btn-primary dropdown-toggle"><span class="caret"></span></button>
<ul class="dropdown-menu dropdown-menu-right">
<li class="dropdown-header">{{ text_option }}</li>
{% if customer.unlock %}
<li><a href="{{ customer.unlock }}"><i class="fa fa-unlock"></i> {{ text_unlock }}</a></li>
{% else %}
<li class="disabled"><a><i class="fa fa-unlock"></i> {{ text_unlock }}</a></li>
{% endif %}
<li role="separator" class="divider"></li>
<li class="dropdown-header">{{ text_login }}</li>
{% for store in customer.store %}
<li><a href="{{ store.href }}" target="_blank"><i class="fa fa-lock"></i> {{ store.name }}</a></li>
{% endfor %}
</ul>
</div>
</td>
</tr>
{% endfor %}
{% else %}
<tr>
<td class="text-center" colspan="8">{{ text_no_results }}</td>
</tr>
{% endif %}
</tbody>
</table>
</div>
</form>
<div class="row">
<div class="col-sm-6 text-left">{{ pagination }}</div>
<div class="col-sm-6 text-right">{{ results }}</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript"><!--
$('.table-responsive').on('shown.bs.dropdown', function (e) {
var t = $(this),
m = $(e.target).find('.dropdown-menu'),
tb = t.offset().top + t.height(),
mb = m.offset().top + m.outerHeight(true),
d = 20;
if (t[0].scrollWidth > t.innerWidth()) {
if (mb + d > tb) {
t.css('padding-bottom', ((mb + d) - tb));
}
} else {
t.css('overflow', 'visible');
}
}).on('hidden.bs.dropdown', function () {
$(this).css({'padding-bottom': '', 'overflow': ''});
});
//--></script>
<script type="text/javascript"><!--
$('#button-filter').on('click', function() {
url = 'index.php?route=customer/customer&user_token={{ user_token }}';
var filter_name = $('input[name=\'filter_name\']').val();
if (filter_name) {
url += '&filter_name=' + encodeURIComponent(filter_name);
}
var filter_email = $('input[name=\'filter_email\']').val();
if (filter_email) {
url += '&filter_email=' + encodeURIComponent(filter_email);
}
var filter_customer_group_id = $('select[name=\'filter_customer_group_id\']').val();
if (filter_customer_group_id !== '') {
url += '&filter_customer_group_id=' + encodeURIComponent(filter_customer_group_id);
}
var filter_status = $('select[name=\'filter_status\']').val();
if (filter_status !== '') {
url += '&filter_status=' + encodeURIComponent(filter_status);
}
var filter_ip = $('input[name=\'filter_ip\']').val();
if (filter_ip) {
url += '&filter_ip=' + encodeURIComponent(filter_ip);
}
var filter_date_added = $('input[name=\'filter_date_added\']').val();
if (filter_date_added) {
url += '&filter_date_added=' + encodeURIComponent(filter_date_added);
}
location = url;
});
//--></script>
<script type="text/javascript"><!--
$('input[name=\'filter_name\']').autocomplete({
'source': function(request, response) {
$.ajax({
url: 'index.php?route=customer/customer/autocomplete&user_token={{ user_token }}&filter_name=' + encodeURIComponent(request),
dataType: 'json',
success: function(json) {
response($.map(json, function(item) {
return {
label: item['name'],
value: item['customer_id']
}
}));
}
});
},
'select': function(item) {
$('input[name=\'filter_name\']').val(item['label']);
}
});
$('input[name=\'filter_email\']').autocomplete({
'source': function(request, response) {
$.ajax({
url: 'index.php?route=customer/customer/autocomplete&user_token={{ user_token }}&filter_email=' + encodeURIComponent(request),
dataType: 'json',
success: function(json) {
response($.map(json, function(item) {
return {
label: item['email'],
value: item['customer_id']
}
}));
}
});
},
'select': function(item) {
$('input[name=\'filter_email\']').val(item['label']);
}
});
//--></script>
<script type="text/javascript"><!--
$('.date').datetimepicker({
language: '{{ datepicker }}',
pickTime: false
});
//--></script>
<script type="text/javascript"><!--
$('#filter-customer').on('keydown', function(e) {
if (e.keyCode == 13) {
$('#button-filter').trigger('click')
}
});
//--></script>
</div>
{{ footer }}
@@ -0,0 +1,35 @@
<div class="table-responsive">
<table class="table table-bordered table-hover">
<thead>
<tr>
<td class="text-left">{{ column_date_added }}</td>
<td class="text-left">{{ column_description }}</td>
<td class="text-right">{{ column_points }}</td>
</tr>
</thead>
<tbody>
{% if rewards %}
{% for reward in rewards %}
<tr>
<td class="text-left">{{ reward.date_added }}</td>
<td class="text-left">{{ reward.description }}</td>
<td class="text-right">{{ reward.points }}</td>
</tr>
{% endfor %}
<tr>
<td></td>
<td class="text-right"><b>{{ text_balance }}</b></td>
<td class="text-right">{{ balance }}</td>
</tr>
{% 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-left">{{ pagination }}</div>
<div class="col-sm-6 text-right">{{ results }}</div>
</div>
@@ -0,0 +1,35 @@
<div class="table-responsive">
<table class="table table-bordered table-hover">
<thead>
<tr>
<td class="text-left">{{ column_date_added }}</td>
<td class="text-left">{{ column_description }}</td>
<td class="text-right">{{ column_amount }}</td>
</tr>
</thead>
<tbody>
{% if transactions %}
{% for transaction in transactions %}
<tr>
<td class="text-left">{{ transaction.date_added }}</td>
<td class="text-left">{{ transaction.description }}</td>
<td class="text-right">{{ transaction.amount }}</td>
</tr>
{% endfor %}
<tr>
<td>&nbsp;</td>
<td class="text-right"><b>{{ text_balance }}</b></td>
<td class="text-right">{{ balance }}</td>
</tr>
{% 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-left">{{ pagination }}</div>
<div class="col-sm-6 text-right">{{ results }}</div>
</div>