@fleetbase/storefront-engine 0.2.7 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/addon/components/file-record.hbs +9 -2
- package/addon/components/file-record.js +3 -2
- package/addon/components/modals/add-store-hours.hbs +12 -2
- package/addon/components/modals/assign-driver.hbs +18 -5
- package/addon/components/modals/create-first-store.hbs +18 -6
- package/addon/components/modals/create-gateway.hbs +19 -7
- package/addon/components/modals/create-network-category.hbs +23 -5
- package/addon/components/modals/create-network.hbs +15 -7
- package/addon/components/modals/create-new-variant.hbs +20 -4
- package/addon/components/modals/create-notification-channel.hbs +22 -17
- package/addon/components/modals/create-product-category.hbs +22 -7
- package/addon/components/modals/create-store.hbs +11 -3
- package/addon/components/modals/import-products.hbs +34 -15
- package/addon/components/modals/incoming-order.hbs +29 -19
- package/addon/components/modals/manage-addons.hbs +50 -9
- package/addon/components/modals/manage-addons.js +3 -2
- package/addon/components/modals/order-ready-assign-driver.hbs +24 -13
- package/addon/components/modals/select-addon-category.hbs +8 -1
- package/addon/components/modals/share-network.hbs +23 -8
- package/addon/components/modals/store-details.hbs +4 -4
- package/addon/components/modals/store-form.hbs +24 -5
- package/addon/components/modals/store-location-form.hbs +26 -16
- package/addon/components/network-category-picker.hbs +17 -6
- package/addon/components/schedule-manager.hbs +8 -1
- package/addon/components/schedule-manager.js +6 -5
- package/addon/components/store-selector.hbs +14 -3
- package/addon/components/widget/customers.hbs +16 -7
- package/addon/components/widget/customers.js +2 -1
- package/addon/components/widget/orders.hbs +58 -23
- package/addon/components/widget/orders.js +17 -16
- package/addon/components/widget/storefront-metrics.hbs +5 -5
- package/addon/controllers/customers/index.js +21 -13
- package/addon/controllers/networks/index/network/index.js +16 -9
- package/addon/controllers/networks/index/network/stores.js +39 -31
- package/addon/controllers/networks/index/network.js +3 -2
- package/addon/controllers/networks/index.js +10 -3
- package/addon/controllers/orders/index.js +30 -23
- package/addon/controllers/products/index/category/edit.js +5 -3
- package/addon/controllers/products/index/category/new.js +10 -9
- package/addon/controllers/products/index/category.js +8 -7
- package/addon/controllers/products/index/index.js +9 -2
- package/addon/controllers/products/index.js +9 -8
- package/addon/controllers/settings/gateways.js +7 -6
- package/addon/controllers/settings/index.js +1 -0
- package/addon/controllers/settings/locations.js +18 -11
- package/addon/controllers/settings/notifications.js +8 -7
- package/addon/services/storefront.js +13 -7
- package/addon/templates/application.hbs +8 -8
- package/addon/templates/customers/index/edit.hbs +0 -1
- package/addon/templates/customers/index.hbs +23 -4
- package/addon/templates/home.hbs +1 -1
- package/addon/templates/networks/index/network/customers.hbs +0 -1
- package/addon/templates/networks/index/network/index.hbs +200 -62
- package/addon/templates/networks/index/network/orders.hbs +0 -1
- package/addon/templates/networks/index/network/stores.hbs +18 -3
- package/addon/templates/networks/index/network.hbs +5 -5
- package/addon/templates/networks/index.hbs +12 -7
- package/addon/templates/orders/index/edit.hbs +0 -1
- package/addon/templates/orders/index/new.hbs +0 -1
- package/addon/templates/orders/index/view.hbs +0 -1
- package/addon/templates/orders/index.hbs +25 -6
- package/addon/templates/products/index/category/new.hbs +65 -12
- package/addon/templates/products/index.hbs +27 -6
- package/addon/templates/settings/api.hbs +3 -3
- package/addon/templates/settings/gateways.hbs +10 -10
- package/addon/templates/settings/index.hbs +146 -51
- package/addon/templates/settings/locations.hbs +13 -6
- package/addon/templates/settings/notifications.hbs +5 -7
- package/addon/templates/settings.hbs +6 -6
- package/composer.json +3 -3
- package/extension.json +1 -1
- package/package.json +3 -1
- package/translations/en-us.yaml +574 -1
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
</div>
|
|
13
13
|
<div class="w-full my-2">
|
|
14
14
|
<div class="flex px-6 py-4 border-t border-b border-gray-100 dark:border-gray-800">
|
|
15
|
-
<h5 class="dark:text-gray-100 font-semibold">
|
|
15
|
+
<h5 class="dark:text-gray-100 font-semibold">{{t "storefront.common.store"}}</h5>
|
|
16
16
|
</div>
|
|
17
17
|
<div class="flex items-start px-6 py-2">
|
|
18
18
|
<img src={{@options.store.logo_url}} class="w-12 h-12 rounded-md shadow-sm mr-4" alt={{@options.store.name}} />
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
</div>
|
|
25
25
|
<div class="w-full my-2">
|
|
26
26
|
<div class="flex px-6 py-4 border-t border-b border-gray-100 dark:border-gray-800">
|
|
27
|
-
<h5 class="dark:text-gray-100 font-semibold">
|
|
27
|
+
<h5 class="dark:text-gray-100 font-semibold">{{t "storefront.component.modals.incoming-order.assigned"}}</h5>
|
|
28
28
|
</div>
|
|
29
29
|
<div class="flex flex-col px-6 py-2">
|
|
30
30
|
{{#if @options.order.driver_assigned.id}}
|
|
@@ -32,15 +32,25 @@
|
|
|
32
32
|
<img src={{@options.order.driver_assigned.photoUrl}} class="w-12 h-12 rounded-md shadow-sm mr-4" alt={{@options.order.driver_assigned.name}} />
|
|
33
33
|
<div>
|
|
34
34
|
<h5 class="font-semibold dark:text-white text-base">{{n-a @options.order.driver_assigned.displayName}}</h5>
|
|
35
|
-
<div class="font-semibold dark:text-gray-100 text-sm">{{n-a @options.order.driver_assigned.phone "
|
|
35
|
+
<div class="font-semibold dark:text-gray-100 text-sm">{{n-a @options.order.driver_assigned.phone (t "storefront.component.modals.incoming-order.no-phone")}}</div>
|
|
36
36
|
</div>
|
|
37
37
|
</div>
|
|
38
38
|
{{else}}
|
|
39
|
-
<h5 class="text-red-500 text-sm">
|
|
39
|
+
<h5 class="text-red-500 text-sm">{{t "storefront.component.modals.incoming-order.not-assigned"}}</h5>
|
|
40
40
|
{{/if}}
|
|
41
41
|
{{#if @options.assignDriver}}
|
|
42
42
|
<div class="mt-2.5">
|
|
43
|
-
<Button
|
|
43
|
+
<Button
|
|
44
|
+
@size="xs"
|
|
45
|
+
@type="default"
|
|
46
|
+
@icon="steering-wheel"
|
|
47
|
+
@text={{if
|
|
48
|
+
@options.order.has_driver_assigned
|
|
49
|
+
(t "storefront.component.modals.incoming-order.change-driver")
|
|
50
|
+
(t "storefront.component.modals.incoming-order.assign-driver")
|
|
51
|
+
}}
|
|
52
|
+
@onClick={{@options.assignDriver}}
|
|
53
|
+
/>
|
|
44
54
|
</div>
|
|
45
55
|
{{/if}}
|
|
46
56
|
</div>
|
|
@@ -49,9 +59,9 @@
|
|
|
49
59
|
<div class="flex px-6 py-4 border-t border-b border-gray-100 dark:border-gray-800">
|
|
50
60
|
<div class="flex-1">
|
|
51
61
|
{{#if @options.order.meta.is_pickup}}
|
|
52
|
-
<h5 class="dark:text-gray-100 font-semibold">
|
|
62
|
+
<h5 class="dark:text-gray-100 font-semibold">{{t "storefront.common.pickup"}}</h5>
|
|
53
63
|
{{else}}
|
|
54
|
-
<h5 class="dark:text-gray-100 font-semibold">
|
|
64
|
+
<h5 class="dark:text-gray-100 font-semibold">{{t "storefront.common.delivery"}}</h5>
|
|
55
65
|
{{/if}}
|
|
56
66
|
</div>
|
|
57
67
|
</div>
|
|
@@ -61,7 +71,7 @@
|
|
|
61
71
|
<div class="flex-1">
|
|
62
72
|
<div class="rounded-md bg-blue-50 mr-4">
|
|
63
73
|
<div class="rounded-t-md bg-blue-100 px-3 py-2 mb-3">
|
|
64
|
-
<span class="text-blue-500 font-semibold text-sm truncate">
|
|
74
|
+
<span class="text-blue-500 font-semibold text-sm truncate">{{t "storefront.component.modals.incoming-order.pickup-order"}}</span>
|
|
65
75
|
</div>
|
|
66
76
|
<div class="flex flex-row items-center mb-4 pb-4 px-3">
|
|
67
77
|
<div class="flex items-center justify-center rounded-full bg-blue-500 w-8 h-8 mr-3">
|
|
@@ -104,8 +114,8 @@
|
|
|
104
114
|
</div>
|
|
105
115
|
<div class="w-full my-2 flex flex-col">
|
|
106
116
|
<div class="flex px-6 py-4 border-t border-b border-gray-100 dark:border-gray-800">
|
|
107
|
-
<div class="flex-1
|
|
108
|
-
<h5 class="dark:text-gray-100 font-semibold">
|
|
117
|
+
<div class="flex-1">
|
|
118
|
+
<h5 class="dark:text-gray-100 font-semibold">{{t "storefront.common.customer"}}</h5>
|
|
109
119
|
</div>
|
|
110
120
|
</div>
|
|
111
121
|
<div class="py-2 px-6">
|
|
@@ -124,7 +134,7 @@
|
|
|
124
134
|
{{#unless @options.order.meta.is_pickup}}
|
|
125
135
|
<div class="rounded-md bg-blue-50">
|
|
126
136
|
<div class="rounded-t-md bg-blue-100 px-3 py-2 mb-3">
|
|
127
|
-
<span class="text-blue-500 font-semibold text-sm truncate">
|
|
137
|
+
<span class="text-blue-500 font-semibold text-sm truncate">{{t "storefront.component.modals.incoming-order.address"}}</span>
|
|
128
138
|
</div>
|
|
129
139
|
<div class="flex flex-row items-center mb-4 pb-4 px-3">
|
|
130
140
|
<div class="flex items-center justify-center rounded-full bg-blue-500 w-8 h-8 mr-3">
|
|
@@ -141,7 +151,7 @@
|
|
|
141
151
|
<div class="w-full my-2 flex flex-col">
|
|
142
152
|
<div class="flex px-6 py-4 border-t border-b border-gray-100 dark:border-gray-800">
|
|
143
153
|
<div class="flex-1 flex-row justify-between items-center">
|
|
144
|
-
<h5 class="dark:text-gray-100 font-semibold">
|
|
154
|
+
<h5 class="dark:text-gray-100 font-semibold">{{t "storefront.component.modals.incoming-order.tracking"}}</h5>
|
|
145
155
|
<h5 class="dark:text-gray-100 font-semibold">({{@options.order.tracking}})</h5>
|
|
146
156
|
</div>
|
|
147
157
|
</div>
|
|
@@ -159,12 +169,12 @@
|
|
|
159
169
|
<div class="w-full my-2">
|
|
160
170
|
<div class="flex items-center justify-between px-6 py-4 border-t border-b border-gray-100 dark:border-gray-800">
|
|
161
171
|
<div>
|
|
162
|
-
<h5 class="dark:text-gray-100 font-semibold">
|
|
172
|
+
<h5 class="dark:text-gray-100 font-semibold">{{t "storefront.component.modals.incoming-order.summary"}}</h5>
|
|
163
173
|
</div>
|
|
164
174
|
{{#if @options.order.payload.cod_amount}}
|
|
165
175
|
<div>
|
|
166
176
|
<FaIcon @icon="money-bill-wave" @size="sm" class="text-green-400 mr-1" />
|
|
167
|
-
<span class="font-semibold text-green-400 text-sm">
|
|
177
|
+
<span class="font-semibold text-green-400 text-sm">{{t "storefront.common.cash"}}</span>
|
|
168
178
|
</div>
|
|
169
179
|
{{/if}}
|
|
170
180
|
</div>
|
|
@@ -209,31 +219,31 @@
|
|
|
209
219
|
</div>
|
|
210
220
|
<div class="px-6 py-2.5 space-y-2 border-t border-b border-gray-100 dark:border-gray-800">
|
|
211
221
|
<div class="flex items-center justify-between">
|
|
212
|
-
<span class="dark:text-gray-50 text-sm">
|
|
222
|
+
<span class="dark:text-gray-50 text-sm">{{t "storefront.component.modals.incoming-order.subtotal"}}</span>
|
|
213
223
|
<span class="dark:text-gray-50 text-sm">{{format-currency @options.order.meta.subtotal @options.order.meta.currency}}</span>
|
|
214
224
|
</div>
|
|
215
225
|
{{#unless @options.order.meta.is_pickup}}
|
|
216
226
|
<div class="flex items-center justify-between">
|
|
217
|
-
<span class="dark:text-gray-50 text-sm">
|
|
227
|
+
<span class="dark:text-gray-50 text-sm">{{t "storefront.component.modals.incoming-order.fee"}}</span>
|
|
218
228
|
<span class="dark:text-gray-50 text-sm">{{format-currency @options.order.meta.delivery_fee @options.order.meta.currency}}</span>
|
|
219
229
|
</div>
|
|
220
230
|
{{/unless}}
|
|
221
231
|
{{#if @options.order.meta.tip}}
|
|
222
232
|
<div class="flex items-center justify-between">
|
|
223
|
-
<span class="dark:text-gray-50 text-sm">
|
|
233
|
+
<span class="dark:text-gray-50 text-sm">{{t "storefront.component.modals.incoming-order.tip"}}</span>
|
|
224
234
|
<span class="dark:text-gray-50 text-sm">{{get-tip-amount @options.order.meta.tip @options.order.meta.subtotal @options.order.meta.currency}}</span>
|
|
225
235
|
</div>
|
|
226
236
|
{{/if}}
|
|
227
237
|
{{#if @options.order.meta.delivery_tip}}
|
|
228
238
|
<div class="flex items-center justify-between">
|
|
229
|
-
<span class="dark:text-gray-50 text-sm">
|
|
239
|
+
<span class="dark:text-gray-50 text-sm">{{t "storefront.component.modals.incoming-order.delivery-tip"}}</span>
|
|
230
240
|
<span class="dark:text-gray-50 text-sm">{{get-tip-amount @options.order.meta.delivery_tip @options.order.meta.subtotal @options.order.meta.currency}}</span>
|
|
231
241
|
</div>
|
|
232
242
|
{{/if}}
|
|
233
243
|
</div>
|
|
234
244
|
<div class="px-6 py-2">
|
|
235
245
|
<div class="flex items-center justify-between">
|
|
236
|
-
<span class="dark:text-gray-50 font-bold text-sm">
|
|
246
|
+
<span class="dark:text-gray-50 font-bold text-sm">{{t "storefront.common.total"}}</span>
|
|
237
247
|
<span class="dark:text-gray-50 font-bold text-sm">{{format-currency @options.order.meta.total @options.order.meta.currency}}</span>
|
|
238
248
|
</div>
|
|
239
249
|
</div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<Modal::Default @onOpen={{fn this.fetchCategories @options.store}} @modalIsOpened={{@modalIsOpened}} @options={{@options}} @confirm={{@onConfirm}} @decline={{@onDecline}}>
|
|
1
|
+
s<Modal::Default @onOpen={{fn this.fetchCategories @options.store}} @modalIsOpened={{@modalIsOpened}} @options={{@options}} @confirm={{@onConfirm}} @decline={{@onDecline}}>
|
|
2
2
|
<div class="modal-body-container">
|
|
3
3
|
<div class="flex items-center justify-between mb-4">
|
|
4
4
|
<div>
|
|
@@ -7,7 +7,14 @@
|
|
|
7
7
|
{{/if}}
|
|
8
8
|
</div>
|
|
9
9
|
<div>
|
|
10
|
-
<Button
|
|
10
|
+
<Button
|
|
11
|
+
@type="magic"
|
|
12
|
+
@text={{t "storefront.component.modals.manage-addons.title"}}
|
|
13
|
+
@icon="plus"
|
|
14
|
+
@iconPrefix="fas"
|
|
15
|
+
@onClick={{fn this.createCategory @options.store}}
|
|
16
|
+
@disabled={{this.isLoading}}
|
|
17
|
+
/>
|
|
11
18
|
</div>
|
|
12
19
|
</div>
|
|
13
20
|
|
|
@@ -17,11 +24,24 @@
|
|
|
17
24
|
<div class="flex items-center rounded-md shadow-sm px-3 py-2 font-semibold bg-gray-200 dark:bg-gray-800 dark:text-gray-100 mb-2">
|
|
18
25
|
<div class="flex-1 flex items-center">
|
|
19
26
|
<FaIcon @icon="pencil" class="mr-1 dark:text-gray-100" />
|
|
20
|
-
<Input
|
|
27
|
+
<Input
|
|
28
|
+
@type="text"
|
|
29
|
+
@value={{category.name}}
|
|
30
|
+
{{on "blur" (fn this.saveCategory category)}}
|
|
31
|
+
class="w-full px-2 m-0 border-none bg-transparent dark:text-gray-100"
|
|
32
|
+
/>
|
|
21
33
|
</div>
|
|
22
34
|
<div class="flex items-center">
|
|
23
|
-
<Button
|
|
24
|
-
|
|
35
|
+
<Button
|
|
36
|
+
@text={{t "storefront.component.modals.manage-addons.new-addon"}}
|
|
37
|
+
@icon="plus"
|
|
38
|
+
@iconPrefix="fas"
|
|
39
|
+
@onClick={{fn this.insertNewAddon category}}
|
|
40
|
+
class="mr-3"
|
|
41
|
+
/>
|
|
42
|
+
<a href="javascript:;" {{on "click" (fn this.deleteCategory index)}} class="destroy-action opacity-50 hover:opacity-100 text-sm">{{t
|
|
43
|
+
"storefront.component.modals.manage-addons.delete"
|
|
44
|
+
}}</a>
|
|
25
45
|
</div>
|
|
26
46
|
</div>
|
|
27
47
|
<div class="space-y-2 mb-2">
|
|
@@ -29,16 +49,37 @@
|
|
|
29
49
|
<div class="grid grid-cols-10 gap-1 px-3 py-2 rounded-md dark:bg-gray-900 bg-gray-200">
|
|
30
50
|
<div class="col-span-3 flex items-center">
|
|
31
51
|
<FaIcon @icon="tag" class="text-sky-400 mr-2" />
|
|
32
|
-
<Input
|
|
52
|
+
<Input
|
|
53
|
+
@type="text"
|
|
54
|
+
@value={{addon.name}}
|
|
55
|
+
{{on "blur" (fn this.saveAddon addon)}}
|
|
56
|
+
class="form-input flex-1 w-full"
|
|
57
|
+
placeholder={{t "storefront.component.modals.manage-addons.addon-name"}}
|
|
58
|
+
/>
|
|
33
59
|
</div>
|
|
34
60
|
<div class="col-span-4">
|
|
35
|
-
<Input
|
|
61
|
+
<Input
|
|
62
|
+
@type="text"
|
|
63
|
+
@value={{addon.description}}
|
|
64
|
+
{{on "blur" (fn this.saveAddon addon)}}
|
|
65
|
+
class="form-input w-full"
|
|
66
|
+
placeholder={{t "storefront.component.modals.manage-addons.description"}}
|
|
67
|
+
/>
|
|
36
68
|
</div>
|
|
37
69
|
<div class="col-span-2">
|
|
38
|
-
<MoneyInput
|
|
70
|
+
<MoneyInput
|
|
71
|
+
class="w-full"
|
|
72
|
+
@currency={{this.activeStore.currency}}
|
|
73
|
+
@canSelectCurrency={{false}}
|
|
74
|
+
@value={{addon.price}}
|
|
75
|
+
@onFormatCompleted={{fn this.saveAddon addon}}
|
|
76
|
+
@disabled={{this.isLoading}}
|
|
77
|
+
/>
|
|
39
78
|
</div>
|
|
40
79
|
<div class="flex items-center justify-center text-center text-sm">
|
|
41
|
-
<a href="javascript:;" class="destroy-action opacity-50 hover:opacity-100" {{on "click" (fn this.removeAddon category i)}}>
|
|
80
|
+
<a href="javascript:;" class="destroy-action opacity-50 hover:opacity-100" {{on "click" (fn this.removeAddon category i)}}>{{t
|
|
81
|
+
"storefront.common.remove"
|
|
82
|
+
}}</a>
|
|
42
83
|
</div>
|
|
43
84
|
</div>
|
|
44
85
|
{{/each}}
|
|
@@ -5,6 +5,7 @@ import { action } from '@ember/object';
|
|
|
5
5
|
|
|
6
6
|
export default class ModalsManageAddonsComponent extends Component {
|
|
7
7
|
@service store;
|
|
8
|
+
@service intl;
|
|
8
9
|
@service currentUser;
|
|
9
10
|
@service modalsManager;
|
|
10
11
|
@tracked categories = [];
|
|
@@ -39,7 +40,7 @@ export default class ModalsManageAddonsComponent extends Component {
|
|
|
39
40
|
|
|
40
41
|
@action deleteCategory(index) {
|
|
41
42
|
const category = this.categories.objectAt(index);
|
|
42
|
-
const result = confirm('
|
|
43
|
+
const result = confirm(this.intl.t('storefront.component.modals.manage-addons.delete-this-addon-category-assosiated-will-lost'));
|
|
43
44
|
|
|
44
45
|
if (result) {
|
|
45
46
|
this.categories.removeAt(index);
|
|
@@ -54,7 +55,7 @@ export default class ModalsManageAddonsComponent extends Component {
|
|
|
54
55
|
|
|
55
56
|
@action createCategory(store) {
|
|
56
57
|
const category = this.store.createRecord('addon-category', {
|
|
57
|
-
name: '
|
|
58
|
+
name: this.intl.t('storefront.component.modals.manage-addons.untitled-addon-category'),
|
|
58
59
|
for: 'storefront_product_addon',
|
|
59
60
|
owner_type: 'storefront:store',
|
|
60
61
|
owner_uuid: store.id,
|
|
@@ -1,31 +1,42 @@
|
|
|
1
1
|
<Modal::Default @modalIsOpened={{@modalIsOpened}} @options={{@options}} @confirm={{@onConfirm}} @decline={{@onDecline}}>
|
|
2
2
|
<div class="modal-body-container">
|
|
3
3
|
<div class="sm:flex sm:items-start">
|
|
4
|
-
<div
|
|
5
|
-
class="flex items-center justify-center flex-shrink-0 w-12 h-12 mx-auto bg-red-100 rounded-full sm:mx-0 sm:h-10 sm:w-10">
|
|
4
|
+
<div class="flex items-center justify-center flex-shrink-0 w-12 h-12 mx-auto bg-red-100 rounded-full sm:mx-0 sm:h-10 sm:w-10">
|
|
6
5
|
<svg class="w-6 h-6 text-red-600" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
|
7
|
-
<path
|
|
8
|
-
|
|
6
|
+
<path
|
|
7
|
+
stroke-linecap="round"
|
|
8
|
+
stroke-linejoin="round"
|
|
9
|
+
stroke-width="2"
|
|
10
|
+
d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"
|
|
11
|
+
>
|
|
9
12
|
</path>
|
|
10
13
|
</svg>
|
|
11
14
|
</div>
|
|
12
15
|
<div class="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left">
|
|
13
16
|
<div class="mb-4">
|
|
14
17
|
<p class="text-sm leading-5 text-gray-500 dark:text-white">
|
|
15
|
-
|
|
16
|
-
to dispatch to. <br><br>Or optionally you can opt to dispatch order as adhoc which will ping the
|
|
17
|
-
order to all nearby drivers to be accepted.
|
|
18
|
+
{{t "storefront.component.modals.order-ready-assign-driver.driver-dispatch" htmlSafe=true}}
|
|
18
19
|
</p>
|
|
19
20
|
</div>
|
|
20
21
|
<div class="input-group">
|
|
21
|
-
<ShortToggle
|
|
22
|
+
<ShortToggle
|
|
23
|
+
@isToggled={{@options.adhoc}}
|
|
24
|
+
@onToggle={{fn (mut @options.adhoc)}}
|
|
25
|
+
@label={{t "storefront.component.modals.order-ready-assign-driver.adhoc-dispatch-nearby-drivers"}}
|
|
26
|
+
/>
|
|
22
27
|
</div>
|
|
23
28
|
{{#unless @options.adhoc}}
|
|
24
|
-
<InputGroup class="mt-4" @name=
|
|
25
|
-
<ModelSelect
|
|
26
|
-
@
|
|
27
|
-
@
|
|
28
|
-
@
|
|
29
|
+
<InputGroup class="mt-4" @name={{t "storefront.component.modals.order-ready-assign-driver.select-driver"}}>
|
|
30
|
+
<ModelSelect
|
|
31
|
+
@modelName="driver"
|
|
32
|
+
@selectedModel={{@options.driver}}
|
|
33
|
+
@placeholder={{t "storefront.component.modals.order-ready-assign-driver.select-driver-to-assign"}}
|
|
34
|
+
@triggerClass="form-select form-input"
|
|
35
|
+
@infiniteScroll={{false}}
|
|
36
|
+
@renderInPlace={{true}}
|
|
37
|
+
@onChange={{fn (mut @options.driver)}}
|
|
38
|
+
as |model|
|
|
39
|
+
>
|
|
29
40
|
{{model.name}}
|
|
30
41
|
</ModelSelect>
|
|
31
42
|
</InputGroup>
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
<Modal::Default @modalIsOpened={{@modalIsOpened}} @options={{@options}} @confirm={{@onConfirm}} @decline={{@onDecline}}>
|
|
2
2
|
<div class="modal-body-container">
|
|
3
|
-
<ComboBox
|
|
3
|
+
<ComboBox
|
|
4
|
+
@options={{@options.addonCategories}}
|
|
5
|
+
@selected={{@options.product.addon_categories}}
|
|
6
|
+
@optionLabel="name"
|
|
7
|
+
@comparator="name"
|
|
8
|
+
@selectionBoxLabel="Selected"
|
|
9
|
+
@onChange={{@options.updateProductAddonCategories}}
|
|
10
|
+
/>
|
|
4
11
|
</div>
|
|
5
12
|
</Modal::Default>
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
<div class="flex flex-col items-center justify-center mb-2">
|
|
4
4
|
<FaIcon @icon="mail-bulk" @size="4x" class="text-sky-400" />
|
|
5
5
|
<div class="my-2 text-center">
|
|
6
|
-
<h2 class="dark:text-gray-100 font-semibold">
|
|
6
|
+
<h2 class="dark:text-gray-100 font-semibold">{{t "storefront.component.modals.share-network.invite-member"}}</h2>
|
|
7
7
|
<p class="my-2 px-6">
|
|
8
|
-
|
|
8
|
+
{{t "storefront.component.modals.share-network.email-below"}}
|
|
9
9
|
</p>
|
|
10
10
|
</div>
|
|
11
11
|
</div>
|
|
@@ -13,22 +13,37 @@
|
|
|
13
13
|
<div class="rounded-md border dark:border-gray-800 dark:bg-gray-800 p-4 mb-5">
|
|
14
14
|
<h4 class="dark:text-gray-50 font-semibold mb-2">Share with people and organizations</h4>
|
|
15
15
|
<p class="mb-4 text-sm dark:text-gray-200">
|
|
16
|
-
|
|
16
|
+
{{t "storefront.component.modals.share-network.invite-network"}}
|
|
17
17
|
</p>
|
|
18
18
|
<div>
|
|
19
|
-
<TagInput
|
|
19
|
+
<TagInput
|
|
20
|
+
class="form-input"
|
|
21
|
+
@placeholder={{t "storefront.component.modals.share-network.add-email"}}
|
|
22
|
+
@tags={{@options.recipients}}
|
|
23
|
+
@addTag={{@options.addRecipient}}
|
|
24
|
+
@removeTagAtIndex={{@options.removeRecipient}}
|
|
25
|
+
as |tag|
|
|
26
|
+
>
|
|
20
27
|
{{tag}}
|
|
21
28
|
</TagInput>
|
|
22
29
|
</div>
|
|
23
30
|
</div>
|
|
24
31
|
|
|
25
|
-
<div class="rounded-md border dark:border-
|
|
26
|
-
<h4 class="dark:text-gray-50 mb-4 font-semibold">
|
|
32
|
+
<div class="rounded-md border dark:border-fgray-800 dark:bg-gray-800 p-4">
|
|
33
|
+
<h4 class="dark:text-gray-50 mb-4 font-semibold">{{t "storefront.component.modals.share-network.get-link"}}</h4>
|
|
27
34
|
<div class="input-group mb-0i">
|
|
28
|
-
<Toggle
|
|
35
|
+
<Toggle
|
|
36
|
+
@isToggled={{@options.network.options.shareable_link_enabled}}
|
|
37
|
+
@onToggle={{@options.toggleShareableLink}}
|
|
38
|
+
@label={{t "storefront.component.modals.share-network.enable-shareable-link"}}
|
|
39
|
+
@helpText={{t "storefront.component.modals.share-network.anyone-with-this-link-able-to-join-your-network"}}
|
|
40
|
+
/>
|
|
29
41
|
</div>
|
|
30
42
|
{{#if @options.network.options.shareable_link_enabled}}
|
|
31
|
-
<ClickToCopy
|
|
43
|
+
<ClickToCopy
|
|
44
|
+
class="mt-4 rounded-md border dark:border-gray-900 dark:bg-gray-900 truncate px-4 py-2.5 text-sm text-green-400 dark:text-green-300 text-center"
|
|
45
|
+
@value={{@options.shareableLink}}
|
|
46
|
+
/>
|
|
32
47
|
{{/if}}
|
|
33
48
|
</div>
|
|
34
49
|
</div>
|
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
<div class="modal-body-container">
|
|
3
3
|
<div class="grid grid-cols-1 gap-2 lg:grid-cols-2 lg:gap-4 text-xs dark:text-gray-100">
|
|
4
4
|
<div class="field-info-container">
|
|
5
|
-
<div class="field-name">
|
|
5
|
+
<div class="field-name">{{t "storefront.common.name"}}</div>
|
|
6
6
|
<div class="field-value">{{n-a @options.store.name}}</div>
|
|
7
7
|
</div>
|
|
8
8
|
<div class="field-info-container">
|
|
9
|
-
<div class="field-name">
|
|
9
|
+
<div class="field-name">{{t "storefront.common.description"}}</div>
|
|
10
10
|
<div class="field-value">{{n-a @options.store.description}}</div>
|
|
11
11
|
</div>
|
|
12
12
|
<div class="field-info-container">
|
|
13
|
-
<div class="field-name">
|
|
13
|
+
<div class="field-name">{{t "storefront.common.tag"}}</div>
|
|
14
14
|
<div class="field-value">{{n-a @options.store.tagsList}}</div>
|
|
15
15
|
</div>
|
|
16
16
|
<div class="field-info-container">
|
|
17
|
-
<div class="field-name">
|
|
17
|
+
<div class="field-name">{{t "storefront.common.currency"}}</div>
|
|
18
18
|
<div class="field-value">{{n-a @options.store.currency}}</div>
|
|
19
19
|
</div>
|
|
20
20
|
</div>
|
|
@@ -1,20 +1,39 @@
|
|
|
1
1
|
<Modal::Default @modalIsOpened={{@modalIsOpened}} @options={{@options}} @confirm={{@onConfirm}} @decline={{@onDecline}}>
|
|
2
2
|
<div class="modal-body-container">
|
|
3
|
-
<InputGroup
|
|
4
|
-
|
|
3
|
+
<InputGroup
|
|
4
|
+
@id="storefront_name_input"
|
|
5
|
+
@name={{t "storefront.common.name"}}
|
|
6
|
+
@value={{@options.store.name}}
|
|
7
|
+
@placeholder={{t "storefront.component.modals.store-form.storefront-name"}}
|
|
8
|
+
@helpText={{t "storefront.component.modals.store-form.the-name-of-your-store"}}
|
|
9
|
+
/>
|
|
10
|
+
<InputGroup
|
|
11
|
+
@name={{t "storefront.common.Description"}}
|
|
12
|
+
@value={{@options.store.description}}
|
|
13
|
+
@placeholder={{t "storefront.component.modals.store-form.storefront-description-placeholder"}}
|
|
14
|
+
@helpText={{t "storefront.component.modals.store-form.give-your-store-brief-description"}}
|
|
15
|
+
/>
|
|
5
16
|
<InputGroup @name="Tags">
|
|
6
|
-
<TagInput
|
|
17
|
+
<TagInput
|
|
18
|
+
class="form-input"
|
|
19
|
+
@placeholder={{t "storefront.component.modals.store-form.add-tags-placeholder"}}
|
|
20
|
+
@allowSpacesInTags={{true}}
|
|
21
|
+
@tags={{@options.store.tags}}
|
|
22
|
+
@addTag={{this.addTag}}
|
|
23
|
+
@removeTagAtIndex={{this.removeTag}}
|
|
24
|
+
as |tag|
|
|
25
|
+
>
|
|
7
26
|
{{tag}}
|
|
8
27
|
</TagInput>
|
|
9
28
|
</InputGroup>
|
|
10
|
-
<InputGroup @name="
|
|
29
|
+
<InputGroup @name={{t "storefront.common.currency"}}>
|
|
11
30
|
<CurrencySelect @value={{@options.store.currency}} @onSelect={{fn (mut @options.store.currency)}} @triggerClass="w-full form-select" />
|
|
12
31
|
</InputGroup>
|
|
13
32
|
|
|
14
33
|
<div class="store-boolean-settings">
|
|
15
34
|
<div class="input-group">
|
|
16
35
|
<Toggle @isToggled={{@options.store.online}} @onToggle={{fn (mut @options.store.online)}}>
|
|
17
|
-
<FaIcon @icon="plug" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">
|
|
36
|
+
<FaIcon @icon="plug" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t "storefront.common.online"}}</span>
|
|
18
37
|
</Toggle>
|
|
19
38
|
</div>
|
|
20
39
|
</div>
|
|
@@ -1,30 +1,40 @@
|
|
|
1
1
|
<Modal::Default @modalIsOpened={{@modalIsOpened}} @options={{@options}} @confirm={{@onConfirm}} @decline={{@onDecline}}>
|
|
2
2
|
<div class="modal-body-container">
|
|
3
3
|
<div class="grid grid-cols-3 gap-1 text-xs dark:text-gray-100">
|
|
4
|
-
<InputGroup @name="
|
|
5
|
-
<InputGroup @name="
|
|
6
|
-
<AutocompleteInput @value={{@options.place.street1}} @onSelect={{@options.autocomplete}} placeholder="
|
|
4
|
+
<InputGroup @name={{t "storefront.common.name"}} @autocomplete="nope" @value={{@options.place.name}} @wrapperClass="col-span-3" />
|
|
5
|
+
<InputGroup @name={{t "storefront.common.street-1"}} @value={{@options.place.street1}} @wrapperClass="col-span-3">
|
|
6
|
+
<AutocompleteInput @value={{@options.place.street1}} @onSelect={{@options.autocomplete}} placeholder={{t "storefront.common.street-1"}} class="w-full" as |result|>
|
|
7
7
|
{{result.address}}
|
|
8
8
|
</AutocompleteInput>
|
|
9
9
|
</InputGroup>
|
|
10
|
-
<InputGroup @name="
|
|
11
|
-
<InputGroup @name="
|
|
12
|
-
<InputGroup @name="
|
|
13
|
-
<InputGroup @name=
|
|
14
|
-
<InputGroup @name=
|
|
15
|
-
<InputGroup @name="
|
|
16
|
-
<InputGroup @name="
|
|
17
|
-
<InputGroup @name="
|
|
18
|
-
<CountrySelect
|
|
10
|
+
<InputGroup @name={{t "storefront.component.modals.store-location-form.street-2"}} @autocomplete="nope" @value={{@options.place.street2}} @wrapperClass="col-span-3" />
|
|
11
|
+
<InputGroup @name={{t "storefront.common.neighborhood"}} @autocomplete="nope" @value={{@options.place.neighborhood}} />
|
|
12
|
+
<InputGroup @name={{t "storefront.common.building"}} @autocomplete="nope" @value={{@options.place.building}} />
|
|
13
|
+
<InputGroup @name={{t "storefront.component.modals.store-location-form.security-access-code"}} @autocomplete="nope" @value={{@options.place.security_access_code}} />
|
|
14
|
+
<InputGroup @name={{t "storefront.component.modals.store-location-form.postal-code"}} @autocomplete="nope" @value={{@options.place.postal_code}} />
|
|
15
|
+
<InputGroup @name={{t "storefront.common.city"}} @autocomplete="nope" @value={{@options.place.city}} />
|
|
16
|
+
<InputGroup @name={{t "storefront.common.state"}} @autocomplete="nope" @value={{@options.place.province}} />
|
|
17
|
+
<InputGroup @name={{t "storefront.common.country"}} @wrapperClass="col-span-2">
|
|
18
|
+
<CountrySelect
|
|
19
|
+
class="w-full form-input form-select form-datalist"
|
|
20
|
+
@value={{@options.place.country}}
|
|
21
|
+
@onChange={{fn (mut @options.place.country)}}
|
|
22
|
+
placeholder={{t "storefront.common.country"}}
|
|
23
|
+
/>
|
|
19
24
|
</InputGroup>
|
|
20
|
-
<InputGroup @name="
|
|
21
|
-
<CoordinatesInput
|
|
25
|
+
<InputGroup @name={{t "storefront.common.coordinates"}} @wrapperClass="col-span-2">
|
|
26
|
+
<CoordinatesInput
|
|
27
|
+
@value={{@options.place.location}}
|
|
28
|
+
@onChange={{@options.updatePlaceCoordinates}}
|
|
29
|
+
@onGeocode={{@options.autocomplete}}
|
|
30
|
+
@onInit={{@options.setCoordinatesInput}}
|
|
31
|
+
/>
|
|
22
32
|
</InputGroup>
|
|
23
33
|
<div class="col-span-1"></div>
|
|
24
|
-
<InputGroup @name="
|
|
34
|
+
<InputGroup @name={{t "storefront.common.phone"}}>
|
|
25
35
|
<PhoneInput @value={{@options.place.phone}} @autocomplete="nope" @onInput={{fn (mut @options.place.phone)}} class="form-input w-full" />
|
|
26
36
|
</InputGroup>
|
|
27
|
-
<InputGroup @name="
|
|
37
|
+
<InputGroup @name={{t "storefront.common.email"}} @autocomplete="nope" @value={{@options.place.email}} />
|
|
28
38
|
</div>
|
|
29
39
|
</div>
|
|
30
40
|
</Modal::Default>
|
|
@@ -1,16 +1,27 @@
|
|
|
1
|
-
<DropdownButton
|
|
1
|
+
<DropdownButton
|
|
2
|
+
@renderInPlace={{true}}
|
|
3
|
+
@size="xs"
|
|
4
|
+
@type="magic"
|
|
5
|
+
@icon="folder-tree"
|
|
6
|
+
@iconSize="sm"
|
|
7
|
+
@text={{this.buttonTitle}}
|
|
8
|
+
@buttonClass={{concat "w-full truncate w-48" " " @buttonClass}}
|
|
9
|
+
@buttonWrapperClass={{concat "w-full" " " @buttonWrapperClass}}
|
|
10
|
+
@wrapperClass={{@wrapperClass}}
|
|
11
|
+
as |dd|
|
|
12
|
+
>
|
|
2
13
|
<div role="menu" class="store-selector-dropdown-menu next-dd-menu py-1">
|
|
3
14
|
<div role="group" class="px-1 overflow-y-scroll max-h-72">
|
|
4
15
|
{{#if this.isLoading}}
|
|
5
16
|
<div class="text-sm flex flex-row items-center px-3 py-0.5 border-0 my-1">
|
|
6
17
|
<Spinner class="mr-2i" />
|
|
7
|
-
<span class="dark:text-gray-100 test-sm">
|
|
18
|
+
<span class="dark:text-gray-100 test-sm">{{t "storefront.common.loading"}}</span>
|
|
8
19
|
</div>
|
|
9
20
|
{{else}}
|
|
10
21
|
{{#if this.selectedCategory}}
|
|
11
22
|
<a href="javascript:;" class="next-dd-item" role="menuitem" {{on "click" this.loadParentCategories}}>
|
|
12
23
|
<FaIcon @icon="arrow-left" class="mr-2" />
|
|
13
|
-
<span>
|
|
24
|
+
<span>{{t "storefront.common.back"}}</span>
|
|
14
25
|
</a>
|
|
15
26
|
{{/if}}
|
|
16
27
|
{{#each this.categories as |category|}}
|
|
@@ -20,9 +31,9 @@
|
|
|
20
31
|
{{else}}
|
|
21
32
|
<div class="text-sm flex flex-row items-center px-3 py-0.5 border-0 my-1 truncate">
|
|
22
33
|
{{#if this.selectedCategory}}
|
|
23
|
-
<span>
|
|
34
|
+
<span>{{t "storefront.component.network-category-picker.no-subcategory"}} {{this.selectedCategory.name}}</span>
|
|
24
35
|
{{else}}
|
|
25
|
-
<span>
|
|
36
|
+
<span>{{t "storefront.component.network-category-picker.no-categories"}}</span>
|
|
26
37
|
{{/if}}
|
|
27
38
|
</div>
|
|
28
39
|
{{/each}}
|
|
@@ -32,7 +43,7 @@
|
|
|
32
43
|
<div class="next-dd-menu-seperator"></div>
|
|
33
44
|
<div role="group" class="px-1">
|
|
34
45
|
<a href="javascript:;" class="next-dd-item" role="menuitem" {{on "click" (dropdown-fn dd this.onCreateNewCategory)}}>
|
|
35
|
-
|
|
46
|
+
{{t "storefront.component.network-category-picker.create-category"}}
|
|
36
47
|
</a>
|
|
37
48
|
</div>
|
|
38
49
|
</div>
|
|
@@ -4,7 +4,14 @@
|
|
|
4
4
|
<div class="content-panel-header items-center {{@contentPanelHeaderClass}}">
|
|
5
5
|
<h4 class="font-semibold text-sm dark:text-gray-100">{{day}}</h4>
|
|
6
6
|
<div>
|
|
7
|
-
<Button
|
|
7
|
+
<Button
|
|
8
|
+
@icon="calendar-week"
|
|
9
|
+
@text={{t "storefront.component.schedule-manager.add-hours"}}
|
|
10
|
+
@textClass="truncate text-xs"
|
|
11
|
+
@size="sm"
|
|
12
|
+
@onClick={{fn this.addHours @subject day}}
|
|
13
|
+
class="{{@addHoursButtonClass}}"
|
|
14
|
+
/>
|
|
8
15
|
</div>
|
|
9
16
|
</div>
|
|
10
17
|
<div class="content-panel-body {{@contentPanelBodyClass}}">
|