/
index.html
127 lines (115 loc) · 3.94 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
{% extends "commerce/_layouts/promotions" %}
{% set selectedSidebarNavItem = 'sales' %}
{% do view.registerAssetBundle('craft\\web\\assets\\admintable\\AdminTableAsset') -%}
{% do view.registerTranslations('commerce', [
'Couldn’t reorder sale.',
'Delete',
'Disabled',
'Duration',
'Effect',
'Enabled',
'Name',
'No sales exist yet.',
'No',
'Overrides previous?',
'Sale reordered.',
'Set status',
'Stops subsequent?',
'Yes',
]) %}
{% block actionButton %}
<a href="{{ url('commerce/promotions/sales/new') }}" class="btn submit add icon">{{ 'New sale'|t('commerce') }}</a>
{% endblock %}
{% block content %}
<p>{{ 'Sales are pricing rules that apply to your product catalog.'|t('commerce') }}</p>
<div id="sales-vue-admin-table"></div>
{% hook "cp.commerce.sales.index" %}
{% endblock %}
{% set tableData = [] %}
{% for sale in sales %}
{% set effect %}
{% if sale.apply == 'byPercent' or sale.apply == 'toPercent' %}
{{ sale.applyAmountAsPercent }}
{{ sale.apply == 'byPercent' ? '(off original price)'|t('commerce') : '(of original price)'|t('commerce') }}
{% else %}
{{ sale.applyAmountAsFlat|commerceCurrency(craft.commerce.paymentCurrencies.primaryPaymentCurrency.iso,convert=true) }}
{{ sale.apply == 'byFlat' ? '(off original price)'|t('commerce') : '(new price)'|t('commerce') }}
{% endif %}
{% endset %}
{% set dateRange = (sale.dateFrom ? sale.dateFrom|datetime('short') : '∞') ~ ' - ' ~ (sale.dateTo ? sale.dateTo|datetime('short') : '∞') %}
{% if not sale.dateFrom and not sale.dateTo %}
{% set dateRange = '∞' %}
{% endif %}
{% set tableData = tableData|merge([{
id: sale.id,
title: sale.name|t('site'),
url: url('commerce/promotions/sales/' ~ sale.id),
status: sale.enabled ? true : false,
duration: dateRange,
effect: effect,
ignore: sale.ignorePrevious ? true : false,
stop: sale.stopProcessing ? true : false,
}]) %}
{% endfor %}
{% js %}
var actions = [
{
label: Craft.t('commerce', 'Set status'),
actions: [
{
label: Craft.t('commerce', 'Enabled'),
action: 'commerce/sales/update-status',
param: 'status',
value: 'enabled',
status: 'enabled'
},
{
label: Craft.t('commerce', 'Disabled'),
action: 'commerce/sales/update-status',
param: 'status',
value: 'disabled',
status: 'disabled'
},
]
},
{
label: Craft.t('commerce', 'Delete'),
action: 'commerce/sales/delete',
error: true
}
];
var columns = [
{ name: '__slot:title', title: Craft.t('commerce', 'Name') },
{ name: 'duration', title: Craft.t('commerce', 'Duration') },
{ name: 'effect', title: Craft.t('commerce', 'Effect') },
{ name: 'ignore', title: Craft.t('commerce', 'Overrides previous?'),
callback: function(value) {
if (value) {
return '<span data-icon="check" title="'+Craft.escapeHtml(Craft.t('commerce', 'Yes'))+'"></span>';
}
return '';
}
},
{ name: 'stop', title: Craft.t('commerce', 'Stops subsequent?'),
callback: function(value) {
if (value) {
return '<span data-icon="check" title="'+Craft.escapeHtml(Craft.t('commerce', 'Yes'))+'"></span>';
}
return '';
}
}
];
new Craft.VueAdminTable({
actions: actions,
checkboxes: true,
columns: columns,
container: '#sales-vue-admin-table',
deleteAction: 'commerce/sales/delete',
emptyMessage: Craft.t('commerce', 'No sales exist yet.'),
padded: true,
reorderAction: 'commerce/sales/reorder',
reorderSuccessMessage: Craft.t('commerce', 'Sale reordered.') ,
reorderFailMessage: Craft.t('commerce', 'Couldn’t reorder sale.'),
tableData: {{ tableData|json_encode|raw }}
});
{% endjs %}