@fleetbase/storefront-engine 0.2.7 → 0.2.9

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.
Files changed (73) hide show
  1. package/addon/components/file-record.hbs +9 -2
  2. package/addon/components/file-record.js +3 -2
  3. package/addon/components/modals/add-store-hours.hbs +12 -2
  4. package/addon/components/modals/assign-driver.hbs +18 -5
  5. package/addon/components/modals/create-first-store.hbs +18 -6
  6. package/addon/components/modals/create-gateway.hbs +19 -7
  7. package/addon/components/modals/create-network-category.hbs +23 -5
  8. package/addon/components/modals/create-network.hbs +15 -7
  9. package/addon/components/modals/create-new-variant.hbs +20 -4
  10. package/addon/components/modals/create-notification-channel.hbs +22 -17
  11. package/addon/components/modals/create-product-category.hbs +22 -7
  12. package/addon/components/modals/create-store.hbs +11 -3
  13. package/addon/components/modals/import-products.hbs +34 -15
  14. package/addon/components/modals/incoming-order.hbs +29 -19
  15. package/addon/components/modals/manage-addons.hbs +50 -9
  16. package/addon/components/modals/manage-addons.js +3 -2
  17. package/addon/components/modals/order-ready-assign-driver.hbs +24 -13
  18. package/addon/components/modals/select-addon-category.hbs +8 -1
  19. package/addon/components/modals/share-network.hbs +23 -8
  20. package/addon/components/modals/store-details.hbs +4 -4
  21. package/addon/components/modals/store-form.hbs +24 -5
  22. package/addon/components/modals/store-location-form.hbs +26 -16
  23. package/addon/components/network-category-picker.hbs +17 -6
  24. package/addon/components/schedule-manager.hbs +8 -1
  25. package/addon/components/schedule-manager.js +6 -5
  26. package/addon/components/store-selector.hbs +14 -3
  27. package/addon/components/widget/customers.hbs +16 -7
  28. package/addon/components/widget/customers.js +2 -1
  29. package/addon/components/widget/orders.hbs +58 -23
  30. package/addon/components/widget/orders.js +17 -16
  31. package/addon/components/widget/storefront-metrics.hbs +5 -5
  32. package/addon/controllers/customers/index.js +21 -13
  33. package/addon/controllers/networks/index/network/index.js +16 -9
  34. package/addon/controllers/networks/index/network/stores.js +39 -31
  35. package/addon/controllers/networks/index/network.js +3 -2
  36. package/addon/controllers/networks/index.js +10 -3
  37. package/addon/controllers/orders/index.js +30 -23
  38. package/addon/controllers/products/index/category/edit.js +5 -3
  39. package/addon/controllers/products/index/category/new.js +17 -11
  40. package/addon/controllers/products/index/category.js +8 -7
  41. package/addon/controllers/products/index/index.js +9 -2
  42. package/addon/controllers/products/index.js +9 -8
  43. package/addon/controllers/settings/gateways.js +7 -6
  44. package/addon/controllers/settings/index.js +1 -0
  45. package/addon/controllers/settings/locations.js +18 -11
  46. package/addon/controllers/settings/notifications.js +8 -7
  47. package/addon/services/storefront.js +13 -7
  48. package/addon/templates/application.hbs +8 -8
  49. package/addon/templates/customers/index/edit.hbs +0 -1
  50. package/addon/templates/customers/index.hbs +23 -4
  51. package/addon/templates/home.hbs +1 -1
  52. package/addon/templates/networks/index/network/customers.hbs +0 -1
  53. package/addon/templates/networks/index/network/index.hbs +200 -62
  54. package/addon/templates/networks/index/network/orders.hbs +0 -1
  55. package/addon/templates/networks/index/network/stores.hbs +18 -3
  56. package/addon/templates/networks/index/network.hbs +5 -5
  57. package/addon/templates/networks/index.hbs +12 -7
  58. package/addon/templates/orders/index/edit.hbs +0 -1
  59. package/addon/templates/orders/index/new.hbs +0 -1
  60. package/addon/templates/orders/index/view.hbs +0 -1
  61. package/addon/templates/orders/index.hbs +25 -6
  62. package/addon/templates/products/index/category/new.hbs +74 -22
  63. package/addon/templates/products/index.hbs +27 -6
  64. package/addon/templates/settings/api.hbs +3 -3
  65. package/addon/templates/settings/gateways.hbs +10 -10
  66. package/addon/templates/settings/index.hbs +146 -51
  67. package/addon/templates/settings/locations.hbs +13 -6
  68. package/addon/templates/settings/notifications.hbs +5 -7
  69. package/addon/templates/settings.hbs +6 -6
  70. package/composer.json +3 -3
  71. package/extension.json +1 -1
  72. package/package.json +5 -3
  73. package/translations/en-us.yaml +574 -1
@@ -1,34 +1,72 @@
1
1
  <div class="space-y-4 px-6 py-4">
2
- <ContentPanel @title="General Network Settings" @open={{true}} @pad={{true}}>
2
+ <ContentPanel @title={{t "storefront.networks.index.network.index.general-network-settings-title"}} @open={{true}} @pad={{true}}>
3
3
  <div class="space-y-4">
4
4
  <div>
5
5
  <h1 class="text-lg leading-6 font-bold text-gray-900 dark:text-gray-100">
6
- General Network Settings
6
+ {{t "storefront.networks.index.network.index.general-network-settings-title"}}
7
7
  </h1>
8
8
  <p class="mt-1 text-sm text-gray-500">
9
- Provide the general settings for your network or marketplace.
9
+ {{t "storefront.networks.index.network.index.general-network-settings-subtitle"}}
10
10
  </p>
11
11
  </div>
12
12
 
13
- <InputGroup @name="Name" @value={{@model.name}} @placeholder="Storefront Name" @helpText="The name of your network or marketplace." />
14
- <InputGroup @name="Description" @value={{@model.description}} @placeholder="Storefront Description" @helpText="Give your store a brief description to let users know what your network is about." />
15
- <InputGroup @name="Currency">
13
+ <InputGroup
14
+ @name={{t "storefront.networks.index.network.index.general-network-settings-form.name"}}
15
+ @value={{@model.name}}
16
+ @placeholder={{t "storefront.networks.index.network.index.general-network-settings-form.name-placeholder"}}
17
+ @helpText={{t "storefront.networks.index.network.index.general-network-settings-form.name-help-text"}}
18
+ />
19
+ <InputGroup
20
+ @name={{t "storefront.networks.index.network.index.general-network-settings-form.description"}}
21
+ @value={{@model.description}}
22
+ @placeholder={{t "storefront.networks.index.network.index.general-network-settings-form.description-placeholder"}}
23
+ @helpText={{t "storefront.networks.index.network.index.general-network-settings-form.description-help-text"}}
24
+ />
25
+ <InputGroup @name={{t "storefront.networks.index.network.index.general-network-settings-form.currency"}}>
16
26
  <CurrencySelect @value={{@model.currency}} @onSelect={{fn (mut @model.currency)}} @triggerClass="w-full form-select" />
17
27
  </InputGroup>
18
28
 
19
- <ContentPanel @title="Contact & Social" @open={{false}} @pad={{true}}>
20
- <InputGroup @name="Phone">
29
+ <ContentPanel @title={{t "storefront.networks.index.network.index.general-network-settings-form.contact-social-panel.panel-title"}} @open={{false}} @pad={{true}}>
30
+ <InputGroup @name={{t "storefront.networks.index.network.index.general-network-settings-form.contact-social-panel.phone"}}>
21
31
  <PhoneInput @value={{@model.phone}} @onInput={{fn (mut @model.phone)}} class="form-input w-full" />
22
32
  </InputGroup>
23
- <InputGroup @name="Email" @value={{@model.email}} @placeholder="Email" @helpText="Your business email." />
24
- <InputGroup @name="Website" @value={{@model.website}} @placeholder="Website" @helpText="Your business website URL." />
25
- <InputGroup @name="Facebook" @value={{@model.facebook}} @placeholder="Facebook ID" @helpText="Your business Facebook page ID." />
26
- <InputGroup @name="Instagram" @value={{@model.instagram}} @placeholder="Instagram Username" @helpText="Your business Instagram username." />
27
- <InputGroup @name="Twitter" @value={{@model.twitter}} @placeholder="Twitter Username" @helpText="Your business Twitter username." />
33
+ <InputGroup
34
+ @name={{t "storefront.networks.index.network.index.general-network-settings-form.contact-social-panel.email"}}
35
+ @value={{@model.email}}
36
+ @placeholder={{t "storefront.networks.index.network.index.general-network-settings-form.contact-social-panel.email"}}
37
+ @helpText={{t "storefront.networks.index.network.index.general-network-settings-form.contact-social-panel.email-help-text"}}
38
+ />
39
+ <InputGroup
40
+ @name={{t "storefront.networks.index.network.index.general-network-settings-form.contact-social-panel.website"}}
41
+ @value={{@model.website}}
42
+ @placeholder={{t "storefront.networks.index.network.index.general-network-settings-form.contact-social-panel.website"}}
43
+ @helpText={{t "storefront.networks.index.network.index.general-network-settings-form.contact-social-panel.website-help-text"}}
44
+ />
45
+ <InputGroup
46
+ @name={{t "storefront.networks.index.network.index.general-network-settings-form.contact-social-panel.facebook"}}
47
+ @value={{@model.facebook}}
48
+ @placeholder={{t "storefront.networks.index.network.index.general-network-settings-form.contact-social-panel.facebook"}}
49
+ @helpText={{t "storefront.networks.index.network.index.general-network-settings-form.contact-social-panel.facebook-help-text"}}
50
+ />
51
+ <InputGroup
52
+ @name={{t "storefront.networks.index.network.index.general-network-settings-form.contact-social-panel.instagram"}}
53
+ @value={{@model.instagram}}
54
+ @placeholder={{t "storefront.networks.index.network.index.general-network-settings-form.contact-social-panel.instagram"}}
55
+ @helpText={{t "storefront.networks.index.network.index.general-network-settings-form.contact-social-panel.instagram-help-text"}}
56
+ />
57
+ <InputGroup
58
+ @name={{t "storefront.networks.index.network.index.general-network-settings-form.contact-social-panel.twitter"}}
59
+ @value={{@model.twitter}}
60
+ @placeholder={{t "storefront.networks.index.network.index.general-network-settings-form.contact-social-panel.twitter"}}
61
+ @helpText={{t "storefront.networks.index.network.index.general-network-settings-form.contact-social-panel.twitter-help-text"}}
62
+ />
28
63
  </ContentPanel>
29
64
 
30
- <ContentPanel @title="Logo & Backdrop" @open={{false}} @pad={{true}}>
31
- <InputGroup @name="Logo" @helpText="Logo for your store.">
65
+ <ContentPanel @title={{t "storefront.networks.index.network.index.general-network-settings-form.logo-backdrop-panel.panel-title"}} @open={{false}} @pad={{true}}>
66
+ <InputGroup
67
+ @name={{t "storefront.networks.index.network.index.general-network-settings-form.logo-backdrop-panel.logo-label"}}
68
+ @helpText={{t "storefront.networks.index.network.index.general-network-settings-form.logo-backdrop-panel.logo-help-text"}}
69
+ >
32
70
  <div class="flex flex-row items-center">
33
71
  <img src={{@model.logo_url}} alt={{concat @model.name " logo"}} class="h-20 w-64 border dark:border-gray-900 rounded-md mr-4" />
34
72
  <FileUpload @name="logo" @accept="image/*" @onFileAdded={{fn this.uploadFile "storefront_logo"}} as |queue|>
@@ -36,12 +74,12 @@
36
74
  {{#if queue.files.length}}
37
75
  <Spinner class="mr-1" />
38
76
  <span>
39
- Uploading...
77
+ {{t "storefront.common.uploading"}}
40
78
  </span>
41
79
  {{else}}
42
80
  <FaIcon @icon="image" class="mr-1" />
43
81
  <span>
44
- Upload new logo
82
+ {{t "storefront.networks.index.network.index.general-network-settings-form.logo-backdrop-panel.upload-logo-button-text"}}
45
83
  </span>
46
84
  {{/if}}
47
85
  </a>
@@ -49,7 +87,10 @@
49
87
  </div>
50
88
  </InputGroup>
51
89
 
52
- <InputGroup @name="Backdrop" @helpText="Optional banner or background image for your store.">
90
+ <InputGroup
91
+ @name={{t "storefront.networks.index.network.index.general-network-settings-form.logo-backdrop-panel.backdrop-label"}}
92
+ @helpText={{t "storefront.networks.index.network.index.general-network-settings-form.logo-backdrop-panel.backdrop-help-text"}}
93
+ >
53
94
  <div class="flex flex-row items-center">
54
95
  <img src={{@model.backdrop_url}} alt={{concat @model.name " backdrop"}} class="h-20 w-64 border dark:border-gray-900 rounded-md mr-4" />
55
96
  <FileUpload @name="backdrop" @accept="image/*" @onFileAdded={{fn this.uploadFile "storefront_backdrop"}} as |queue|>
@@ -57,12 +98,12 @@
57
98
  {{#if queue.files.length}}
58
99
  <Spinner class="mr-1" />
59
100
  <span>
60
- Uploading...
101
+ {{t "storefront.common.uploading"}}
61
102
  </span>
62
103
  {{else}}
63
104
  <FaIcon @icon="image" class="mr-1" />
64
105
  <span>
65
- Upload new backdrop
106
+ {{t "storefront.networks.index.network.index.general-network-settings-form.logo-backdrop-panel.upload-backdrop-button-text"}}
66
107
  </span>
67
108
  {{/if}}
68
109
  </a>
@@ -71,11 +112,25 @@
71
112
  </InputGroup>
72
113
  </ContentPanel>
73
114
 
74
- <ContentPanel @title="Alerts" @open={{false}} @pad={{true}} @panelBodyClass="bg-gray-800">
115
+ <ContentPanel
116
+ @title={{t "storefront.networks.index.network.index.general-network-settings-form.alert-panel.panel-title"}}
117
+ @open={{false}}
118
+ @pad={{true}}
119
+ @panelBodyClass="bg-gray-800"
120
+ >
75
121
  <div>
76
- <p class="dark:text-gray-100 mb-4">Configure who should be alerted for certain events.</p>
77
- <InputGroup @name="New order alert" @wrapperClass="mb-0">
78
- <ModelSelectMultiple @modelName="user" @selectedModel={{@model.alertable.for_new_order}} @placeholder="Select users to alert for new order" @triggerClass="form-select form-input multiple" @infiniteScroll={{false}} @renderInPlace={{true}} @onChange={{fn this.makeAlertable "for_new_order"}} as |model|>
122
+ <p class="dark:text-gray-100 mb-4">{{t "storefront.networks.index.network.index.general-network-settings-form.alert-panel.panel-description"}}</p>
123
+ <InputGroup @name={{t "storefront.networks.index.network.index.general-network-settings-form.alert-panel.new-order-alert-label"}} @wrapperClass="mb-0">
124
+ <ModelSelectMultiple
125
+ @modelName="user"
126
+ @selectedModel={{@model.alertable.for_new_order}}
127
+ @placeholder={{t "storefront.networks.index.network.index.general-network-settings-form.alert-panel.new-order-alert-placeholder"}}
128
+ @triggerClass="form-select form-input multiple"
129
+ @infiniteScroll={{false}}
130
+ @renderInPlace={{true}}
131
+ @onChange={{fn this.makeAlertable "for_new_order"}}
132
+ as |model|
133
+ >
79
134
  {{model.name}}
80
135
  </ModelSelectMultiple>
81
136
  </InputGroup>
@@ -85,119 +140,192 @@
85
140
  <div class="store-boolean-settings">
86
141
  <div class="input-group">
87
142
  <Toggle @isToggled={{@model.online}} @onToggle={{fn (mut @model.online)}}>
88
- <FaIcon @icon="plug" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">Online</span>
143
+ <FaIcon @icon="plug" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t
144
+ "storefront.networks.index.network.index.general-network-settings-form.config-switches.online"
145
+ }}</span>
89
146
  </Toggle>
90
147
  </div>
91
148
  <div class="input-group">
92
149
  <Toggle @isToggled={{@model.options.tax_enabled}} @onToggle={{fn (mut @model.options.tax_enabled)}}>
93
- <FaIcon @icon="percent" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">Enable tax</span>
150
+ <FaIcon @icon="percent" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t
151
+ "storefront.networks.index.network.index.general-network-settings-form.config-switches.enable-tax"
152
+ }}</span>
94
153
  </Toggle>
95
154
  {{#if @model.options.tax_enabled}}
96
- <InputGroup @wrapperClass="mb-0 mt-2" @type="number" @name="Tax Percentage" @value={{@model.options.tax_percentage}} @placeholder="Tax Percentage" @helpText="The sales tax percentage to apply to orders." />
155
+ <InputGroup
156
+ @wrapperClass="mb-0 mt-2"
157
+ @type="number"
158
+ @name={{t "storefront.networks.index.network.index.general-network-settings-form.config-switches.tax-percentage-input-label"}}
159
+ @value={{@model.options.tax_percentage}}
160
+ @placeholder={{t "storefront.networks.index.network.index.placeholder-tax"}}
161
+ @helpText={{t "storefront.networks.index.network.index.general-network-settings-form.config-switches.tax-percentage-input-help-text"}}
162
+ />
97
163
  {{/if}}
98
164
  </div>
99
165
  <div class="input-group">
100
166
  <Toggle @isToggled={{@model.options.auto_accept_orders}} @onToggle={{fn (mut @model.options.auto_accept_orders)}}>
101
- <FaIcon @icon="robot" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">Auto accept incoming orders</span>
167
+ <FaIcon @icon="robot" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t
168
+ "storefront.networks.index.network.index.general-network-settings-form.config-switches.auto-accept-incoming-orders"
169
+ }}</span>
102
170
  </Toggle>
103
171
  </div>
104
172
  <div class="input-group">
105
173
  <Toggle @isToggled={{@model.options.auto_dispatch}} @onToggle={{fn (mut @model.options.auto_dispatch)}}>
106
- <FaIcon @icon="paper-plane" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">Auto dispatch orders</span>
174
+ <FaIcon @icon="paper-plane" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t
175
+ "storefront.networks.index.network.index.general-network-settings-form.config-switches.auto-dispatch-orders"
176
+ }}</span>
107
177
  </Toggle>
108
178
  </div>
109
179
  <div class="input-group">
110
180
  <Toggle @isToggled={{@model.options.require_pod}} @onToggle={{fn (mut @model.options.require_pod)}}>
111
- <FaIcon @icon="signature" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">Require proof of delivery</span>
181
+ <FaIcon @icon="signature" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t
182
+ "storefront.networks.index.network.index.general-network-settings-form.config-switches.require-proof-of-delivery"
183
+ }}</span>
112
184
  </Toggle>
113
185
  {{#if @model.options.require_pod}}
114
- <InputGroup @wrapperClass="mb-0 mt-2" @name="Proof of Delivery Method">
115
- <Select @options={{this.podMethods}} @optionValue="value" @optionLabel="name" @value={{@model.pod_method}} @onSelect={{fn (mut @model.pod_method)}} class="w-full" />
186
+ <InputGroup @wrapperClass="mb-0 mt-2" @name={{t "storefront.networks.index.network.index.general-network-settings-form.config-switches.proof-of-delivery-method"}}>
187
+ <Select
188
+ @options={{this.podMethods}}
189
+ @optionValue="value"
190
+ @optionLabel="name"
191
+ @value={{@model.pod_method}}
192
+ @onSelect={{fn (mut @model.pod_method)}}
193
+ class="w-full"
194
+ />
116
195
  </InputGroup>
117
196
  {{/if}}
118
197
  </div>
119
198
  <div class="input-group">
120
199
  <Toggle @isToggled={{@model.options.cod_enabled}} @onToggle={{fn (mut @model.options.cod_enabled)}}>
121
- <FaIcon @icon="money-bill-wave" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">Enable cash on delivery</span>
200
+ <FaIcon @icon="money-bill-wave" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t
201
+ "storefront.networks.index.network.index.general-network-settings-form.config-switches.enable-cash-on-delivery"
202
+ }}</span>
122
203
  </Toggle>
123
204
  </div>
124
205
  <div class="input-group">
125
206
  <Toggle @isToggled={{@model.options.pickup_enabled}} @onToggle={{fn (mut @model.options.pickup_enabled)}}>
126
- <FaIcon @icon="person-booth" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">Enable order pickup</span>
207
+ <FaIcon @icon="person-booth" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t
208
+ "storefront.networks.index.network.index.general-network-settings-form.config-switches.enable-order-pickup"
209
+ }}</span>
127
210
  </Toggle>
128
211
  </div>
129
212
  <div class="input-group">
130
213
  <Toggle @isToggled={{@model.options.tips_enabled}} @onToggle={{fn (mut @model.options.tips_enabled)}}>
131
- <FaIcon @icon="cash-register" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">Enable tips</span>
214
+ <FaIcon @icon="cash-register" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t
215
+ "storefront.networks.index.network.index.general-network-settings-form.config-switches.enable-tips"
216
+ }}</span>
132
217
  </Toggle>
133
218
  </div>
134
219
  <div class="input-group">
135
220
  <Toggle @isToggled={{@model.options.delivery_tips_enabled}} @onToggle={{fn (mut @model.options.delivery_tips_enabled)}}>
136
- <FaIcon @icon="face-smile" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">Enable delivery tips</span>
221
+ <FaIcon @icon="face-smile" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t
222
+ "storefront.networks.index.network.index.general-network-settings-form.config-switches.enable-delivery-tips"
223
+ }}</span>
137
224
  </Toggle>
138
225
  </div>
139
226
  <div class="input-group">
140
227
  <Toggle @isToggled={{@model.options.multi_cart_enabled}} @onToggle={{fn (mut @model.options.multi_cart_enabled)}}>
141
- <FaIcon @icon="gifts" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">Enable multi-cart checkout</span>
228
+ <FaIcon @icon="gifts" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t
229
+ "storefront.networks.index.network.index.general-network-settings-form.config-switches.enable-multi-cart-checkout"
230
+ }}</span>
142
231
  </Toggle>
143
232
  </div>
144
233
  <div class="input-group">
145
234
  <Toggle @isToggled={{@model.options.reviews_enabled}} @onToggle={{fn (mut @model.options.reviews_enabled)}}>
146
- <FaIcon @icon="star" @prefix="fas" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">Enable user reviews</span>
235
+ <FaIcon @icon="star" @prefix="fas" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t
236
+ "storefront.networks.index.network.index.general-network-settings-form.config-switches.enable-user-reviews"
237
+ }}</span>
147
238
  </Toggle>
148
239
  </div>
149
240
  </div>
150
241
 
151
242
  <div class="flex justify-end">
152
- <Button @type="primary" @text="Save Changes" @icon="save" @size="lg" @isLoading={{this.isLoading}} @onClick={{this.saveSettings}} />
243
+ <Button
244
+ @type="primary"
245
+ @text={{t "storefront.networks.index.network.index.general-network-settings-form.save-changes-button-text"}}
246
+ @icon="save"
247
+ @size="lg"
248
+ @isLoading={{this.isLoading}}
249
+ @onClick={{this.saveSettings}}
250
+ />
153
251
  </div>
154
252
  </div>
155
253
  </ContentPanel>
156
254
 
157
- <ContentPanel @title="API" @open={{false}} @pad={{true}}>
255
+ <ContentPanel @title={{t "storefront.networks.index.network.index.api-panel.panel-title"}} @open={{false}} @pad={{true}}>
158
256
  <div class="space-y-6">
159
257
  <div>
160
258
  <h1 class="text-lg leading-6 font-bold text-gray-900 dark:text-gray-100">
161
- API Settings
259
+ {{t "storefront.networks.index.network.index.api-panel.panel-header"}}
162
260
  </h1>
163
261
  <p class="mt-1 text-sm text-gray-500">
164
- Access key for Storefront API & Integrations.
262
+ {{t "storefront.networks.index.network.index.api-panel.panel-description"}}
165
263
  </p>
166
264
  </div>
167
265
 
168
- <InputGroup @name="Network Key" @helpText="This is your network key, use this to enable apps and integrations for your network.">
266
+ <InputGroup
267
+ @name={{t "storefront.networks.index.network.index.api-panel.network-key-label"}}
268
+ @helpText={{t "storefront.networks.index.network.index.api-panel.network-key-help-text"}}
269
+ >
169
270
  <ClickToReveal @value={{@model.key}} @clickToCopy={{true}} class="form-input disabled" />
170
271
  </InputGroup>
171
272
  </div>
172
273
  </ContentPanel>
173
274
 
174
- <ContentPanel @title="Payment Gateways" @open={{false}} @pad={{true}}>
275
+ <ContentPanel @title={{t "storefront.networks.index.network.index.payment-gateways-panel.panel-title"}} @open={{false}} @pad={{true}}>
175
276
  <div class="space-y-6">
176
277
  <div class="flex justify-between">
177
278
  <div>
178
279
  <h1 class="text-lg leading-6 font-bold text-gray-900 dark:text-gray-100">
179
- Gateway Settings
280
+ {{t "storefront.networks.index.network.index.payment-gateways-panel.panel-title"}}
180
281
  </h1>
181
282
  <p class="mt-1 text-sm text-gray-500">
182
- Add or manage your payment gateway settings here.
283
+ {{t "storefront.networks.index.network.index.payment-gateways-panel.panel-description"}}
183
284
  </p>
184
285
  </div>
185
286
  <div>
186
- <Button @icon="plus" @iconPrefix="fas" @type="primary" @text="Create new gateway" @onClick={{this.createGateway}} />
287
+ <Button
288
+ @icon="plus"
289
+ @iconPrefix="fas"
290
+ @type="primary"
291
+ @text={{t "storefront.networks.index.network.index.payment-gateways-panel.new-gateway-button-text"}}
292
+ @onClick={{this.createGateway}}
293
+ />
187
294
  </div>
188
295
  </div>
189
296
 
190
297
  {{#each this.gateways as |gateway|}}
191
298
  <ContentPanel @title={{gateway.name}} @open={{true}} @pad={{true}}>
192
- <InputGroup @name="Gateway name" @value={{gateway.name}} @helpText="Give your payment gateway a name, this will only be relevent internally" />
193
- <InputGroup @name="Gateway code" @value={{gateway.code}} @disabled={{true}} @helpText="Identifier code used to identify gateway to the SDK" />
194
- <InputGroup @name="Callback URL" @value={{gateway.callback_url}} @helpText="Callback URL if applicable" />
195
- <InputGroup @name="Return URL" @value={{gateway.return_url}} @helpText="Return URL if applicable" />
299
+ <InputGroup
300
+ @name={{t "storefront.networks.index.network.index.payment-gateways-panel.gateway-form.name"}}
301
+ @value={{gateway.name}}
302
+ @helpText={{t "storefront.networks.index.network.index.payment-gateways-panel.gateway-form.name-help-text"}}
303
+ />
304
+ <InputGroup
305
+ @name={{t "storefront.networks.index.network.index.payment-gateways-panel.gateway-form.code"}}
306
+ @value={{gateway.code}}
307
+ @disabled={{true}}
308
+ @helpText={{t "storefront.networks.index.network.index.payment-gateways-panel.gateway-form.code-help-text"}}
309
+ />
310
+ <InputGroup
311
+ @name={{t "storefront.networks.index.network.index.payment-gateways-panel.gateway-form.callback-url"}}
312
+ @value={{gateway.callback_url}}
313
+ @helpText={{t "storefront.networks.index.network.index.payment-gateways-panel.gateway-form.callback-url-help-text"}}
314
+ />
315
+ <InputGroup
316
+ @name={{t "storefront.networks.index.network.index.payment-gateways-panel.gateway-form.return-url"}}
317
+ @value={{gateway.return_url}}
318
+ @helpText={{t "storefront.networks.index.network.index.payment-gateways-panel.gateway-form.return-url-help-text"}}
319
+ />
196
320
  <div class="input-group">
197
- <Checkbox @value={{gateway.sandbox}} @label="This is a sandbox gateway" @onToggle={{fn (mut gateway.sandbox)}} />
321
+ <Checkbox
322
+ @value={{gateway.sandbox}}
323
+ @label={{t "storefront.networks.index.network.index.payment-gateways-panel.gateway-form.sandbox-toggle-label"}}
324
+ @onToggle={{fn (mut gateway.sandbox)}}
325
+ />
198
326
  </div>
199
327
  <div>
200
- <h4 class="mb-2 font-semibold text-sm dark:text-white">Config</h4>
328
+ <h4 class="mb-2 font-semibold text-sm dark:text-white">{{t "storefront.networks.index.network.index.payment-gateways-panel.gateway-form.config-header-label"}}</h4>
201
329
  {{#each-in gateway.config as |key value|}}
202
330
  {{#if (is-bool-value value)}}
203
331
  <div class="input-group">
@@ -211,28 +339,38 @@
211
339
  {{/each-in}}
212
340
  </div>
213
341
  <div>
214
- <Button @size="sm" @type="danger" @icon="trash" @text="Delete payment gateway" @onClick={{fn this.deleteGateway gateway}} />
342
+ <Button
343
+ @size="sm"
344
+ @type="danger"
345
+ @icon="trash"
346
+ @text={{t "storefront.networks.index.network.index.payment-gateways-panel.gateway-form.delete-gateway-button-text"}}
347
+ @onClick={{fn this.deleteGateway gateway}}
348
+ />
215
349
  </div>
216
350
  </ContentPanel>
217
351
  {{/each}}
218
352
  </div>
219
353
  </ContentPanel>
220
354
 
221
- <ContentPanel @title="Notification Channels" @open={{false}} @pad={{true}}>
355
+ <ContentPanel @title={{t "storefront.networks.index.network.index.notification-channels-panel.panel-title"}} @open={{false}} @pad={{true}}>
222
356
  <div class="space-y-6">
223
357
  <div class="flex justify-between">
224
358
  <div class="w-3/4">
225
359
  <h1 class="text-lg leading-6 font-bold text-gray-900 dark:text-gray-100">
226
- Notification Settings
360
+ {{t "storefront.networks.index.network.index.notification-channels-panel.panel-header"}}
227
361
  </h1>
228
362
  <p class="mt-1 text-sm text-gray-500">
229
- Configure notification channels for your storefront, each notification channel additionally can
230
- have
231
- it's own rules and options.
363
+ {{t "storefront.networks.index.network.index.notification-channels-panel.panel-description"}}
232
364
  </p>
233
365
  </div>
234
366
  <div>
235
- <Button @icon="plus" @iconPrefix="fas" @type="primary" @text="New channel" @onClick={{this.createChannel}} />
367
+ <Button
368
+ @icon="plus"
369
+ @iconPrefix="fas"
370
+ @type="primary"
371
+ @text={{t "storefront.networks.index.network.index.notification-channels-panel.new-channel-button-text"}}
372
+ @onClick={{this.createChannel}}
373
+ />
236
374
  </div>
237
375
  </div>
238
376
 
@@ -243,8 +381,8 @@
243
381
  <span class="dark:text-gray-50">{{notificationChannel.name}}</span>
244
382
  </div>
245
383
  <div class="flex items-center">
246
- <Button @size="xs" @type="default" @text="Edit" @wrapperClass="mr-2" @onClick={{fn this.editChannel notificationChannel}} />
247
- <Button @size="xs" @type="danger" @text="Delete" @onClick={{fn this.deleteChannel notificationChannel}} />
384
+ <Button @size="xs" @type="default" @text={{t "storefront.common.edit"}} @wrapperClass="mr-2" @onClick={{fn this.editChannel notificationChannel}} />
385
+ <Button @size="xs" @type="danger" @text={{t "storefront.common.delete"}} @onClick={{fn this.deleteChannel notificationChannel}} />
248
386
  </div>
249
387
  </div>
250
388
  {{/each}}
@@ -1,2 +1 @@
1
-
2
1
  {{outlet}}
@@ -1,6 +1,21 @@
1
- <Layout::Section::Header @title="Stores" @searchQuery={{this.storeQuery}} @onSearch={{perform this.search}}>
2
- <Button @type="primary" @icon="plus" @text="Add Stores" @textClass="truncate" @size="sm" @onClick={{this.addStores}} @wrapperClass="mr-2" />
3
- <Button @type="primary" @icon="envelope-open-text" @textClass="truncate" @size="sm" @text="Invite Stores" @onClick={{this.invite}} />
1
+ <Layout::Section::Header @title={{t "storefront.networks.index.network.stores.store"}} @searchQuery={{this.storeQuery}} @onSearch={{perform this.search}}>
2
+ <Button
3
+ @type="primary"
4
+ @icon="plus"
5
+ @text={{t "storefront.networks.index.network.stores.add-stores-button-text"}}
6
+ @textClass="truncate"
7
+ @size="sm"
8
+ @onClick={{this.addStores}}
9
+ @wrapperClass="mr-2"
10
+ />
11
+ <Button
12
+ @type="primary"
13
+ @icon="envelope-open-text"
14
+ @textClass="truncate"
15
+ @size="sm"
16
+ @text={{t "storefront.networks.index.network.stores.invite-stores-button-text"}}
17
+ @onClick={{this.invite}}
18
+ />
4
19
  </Layout::Section::Header>
5
20
 
6
21
  <Layout::Section::Body>
@@ -1,5 +1,5 @@
1
1
  <Overlay @position="right" @isResizable={{true}} @noBackdrop={{true}} @width="570px" @minResizeWidth={{570}} @fullHeight={{true}}>
2
- <Overlay::Header @title="Manage Network" @onPressCancel={{this.transitionBack}} />
2
+ <Overlay::Header @title={{t "storefront.networks.index.network.manage-network"}} @onPressCancel={{this.transitionBack}} />
3
3
  <Overlay::Body class="p-0i" @increaseInnerBodyHeightBy="0" @wrapperClass="space-y-4 pt-4">
4
4
  <div class="flex flex-col">
5
5
  <div class="px-4 flex items-center section-header-title mb-4">
@@ -13,19 +13,19 @@
13
13
  <nav>
14
14
  <LinkTo @route="networks.index.network.index" class="ui-tab">
15
15
  <FaIcon @icon="cogs" class="mr-2" />
16
- <span>Settings</span>
16
+ <span>{{t "storefront.networks.index.network.settings"}}</span>
17
17
  </LinkTo>
18
18
  <LinkTo @route="networks.index.network.stores" class="ui-tab">
19
19
  <FaIcon @icon="store" class="mr-2" />
20
- <span>Stores</span>
20
+ <span>{{t "storefront.networks.index.network.stores.store"}}</span>
21
21
  </LinkTo>
22
22
  <LinkTo @route="networks.index.network.orders" class="ui-tab">
23
23
  <FaIcon @icon="file-invoice-dollar" class="mr-2" />
24
- <span>Orders</span>
24
+ <span>{{t "storefront.networks.index.network.orders"}}</span>
25
25
  </LinkTo>
26
26
  <LinkTo @route="networks.index.network.customers" class="ui-tab">
27
27
  <FaIcon @icon="users" class="mr-2" />
28
- <span>Customers</span>
28
+ <span>{{t "storefront.networks.index.network.customers"}}</span>
29
29
  </LinkTo>
30
30
  </nav>
31
31
  </div>
@@ -1,5 +1,5 @@
1
- <Layout::Section::Header @title="Networks" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
2
- <Button @type="primary" @icon="plus" @iconPrefix="fas" @text="New" class="mr-2" @onClick={{this.createNetwork}} />
1
+ <Layout::Section::Header @title={{t "storefront.common.network"}} @searchQuery={{this.query}} @onSearch={{perform this.search}}>
2
+ <Button @type="primary" @icon="plus" @iconPrefix="fas" @text={{t "storefront.common.new"}} class="mr-2" @onClick={{this.createNetwork}} />
3
3
  </Layout::Section::Header>
4
4
 
5
5
  <Layout::Section::Body>
@@ -21,7 +21,7 @@
21
21
  <div role="menu" class="next-dd-menu" aria-orientation="vertical" aria-labelledby="user-menu">
22
22
  <div class="px-1">
23
23
  <div class="next-dd-title">
24
- Network Options
24
+ {{t "storefront.networks.index.network-option"}}
25
25
  </div>
26
26
  </div>
27
27
  <div class="next-dd-menu-seperator"></div>
@@ -30,19 +30,24 @@
30
30
  <div class="w-7">
31
31
  <FaIcon @icon="network-wired" class="mr-2" />
32
32
  </div>
33
- <span>Manage Network</span>
33
+ <span>{{t "storefront.networks.index.manage-network"}}</span>
34
34
  </a>
35
35
  <a href="javascript:;" class="next-dd-item" role="menuitem" {{on "click" (dropdown-fn dd this.sendInvites network)}}>
36
36
  <div class="w-7">
37
37
  <FaIcon @icon="envelope-open-text" class="mr-2" />
38
38
  </div>
39
- <span>Send Invites</span>
39
+ <span>{{t "storefront.networks.index.send-invite"}}</span>
40
40
  </a>
41
- <a href="javascript:;" class="next-dd-item text-red-500 hover:bg-opacity-75" role="menuitem" {{on "click" (dropdown-fn dd this.deleteNetwork network)}}>
41
+ <a
42
+ href="javascript:;"
43
+ class="next-dd-item text-red-500 hover:bg-opacity-75"
44
+ role="menuitem"
45
+ {{on "click" (dropdown-fn dd this.deleteNetwork network)}}
46
+ >
42
47
  <div class="w-7">
43
48
  <FaIcon @icon="trash" class="mr-2 text-red-500" />
44
49
  </div>
45
- <span class="text-red-500">Delete Network</span>
50
+ <span class="text-red-500">{{t "storefront.networks.index.delete-network"}}</span>
46
51
  </a>
47
52
  </div>
48
53
  </div>
@@ -1,2 +1 @@
1
-
2
1
  {{outlet}}
@@ -1,2 +1 @@
1
-
2
1
  {{outlet}}
@@ -1,2 +1 @@
1
-
2
1
  {{outlet}}
@@ -1,22 +1,41 @@
1
- <Layout::Section::Header @title="Orders" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
2
- <FiltersPicker @columns={{this.columns}} @onApply={{fn this.filters.apply this}} @onClear={{fn this.filters.reset this}} @onFilterClear={{this.filters.clear}} @onChange={{this.filters.set}} @buttonWrapperClass="mr-2" />
1
+ <Layout::Section::Header @title={{t "storefront.common.orders"}} @searchQuery={{this.query}} @onSearch={{perform this.search}}>
2
+ <FiltersPicker
3
+ @columns={{this.columns}}
4
+ @onApply={{fn this.filters.apply this}}
5
+ @onClear={{fn this.filters.reset this}}
6
+ @onFilterClear={{this.filters.clear}}
7
+ @onChange={{this.filters.set}}
8
+ @buttonWrapperClass="mr-2"
9
+ />
3
10
  <VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
4
11
  {{#if (safe-has this.table "selectedRows")}}
5
- <DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
12
+ <DropdownButton @icon="layer-group" @text={{t "storefront.common.bulk-action"}} @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
6
13
  <div class="next-dd-menu mt-2 mx-0">
7
14
  <div class="px-1">
8
15
  <a href="#" class="text-red-500 next-dd-item" {{on "click" (dropdown-fn dd this.bulkDeleteOrders)}}>
9
- Delete Orders
16
+ {{t "storefront.orders.index.delete-order"}}
10
17
  </a>
11
18
  </div>
12
19
  </div>
13
20
  </DropdownButton>
14
21
  {{/if}}
15
- <Button @icon="long-arrow-up" @iconClass="rotate-icon-45" @text="Export" />
22
+ <Button @icon="long-arrow-up" @iconClass="rotate-icon-45" @text={{t "storefront.common.export"}} />
16
23
  </Layout::Section::Header>
17
24
 
18
25
  <Layout::Section::Body>
19
- <Table @rows={{@model}} @columns={{this.columns}} @selectable={{true}} @canSelectAll={{true}} @onSetup={{fn (mut this.table)}} @pagination={{true}} @paginationMeta={{@model.meta}} @page={{this.page}} @onPageChange={{fn (mut this.page)}} @tfootVerticalOffset="53" @tfootVerticalOffsetElements=".next-view-section-subheader" />
26
+ <Table
27
+ @rows={{@model}}
28
+ @columns={{this.columns}}
29
+ @selectable={{true}}
30
+ @canSelectAll={{true}}
31
+ @onSetup={{fn (mut this.table)}}
32
+ @pagination={{true}}
33
+ @paginationMeta={{@model.meta}}
34
+ @page={{this.page}}
35
+ @onPageChange={{fn (mut this.page)}}
36
+ @tfootVerticalOffset="53"
37
+ @tfootVerticalOffsetElements=".next-view-section-subheader"
38
+ />
20
39
  </Layout::Section::Body>
21
40
 
22
41
  {{outlet}}