@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
@@ -3,49 +3,88 @@
3
3
  <div class="space-y-4 h-screen">
4
4
  <div>
5
5
  <h1 class="text-lg leading-6 font-bold text-gray-900 dark:text-gray-100">
6
- General Settings
6
+ {{t "storefront.settings.index.general-settings-header"}}
7
7
  </h1>
8
8
  <p class="mt-1 text-sm text-gray-500">
9
- Provide the general settings for your storefront.
9
+ {{t "storefront.settings.index.general-settings-message"}}
10
10
  </p>
11
11
  </div>
12
12
 
13
- <InputGroup @id="storefront_name_input" @name="Name" @value={{@model.name}} @placeholder="Storefront Name" @helpText="The name of your store." />
14
- <InputGroup @name="Description" @value={{@model.description}} @placeholder="Storefront Description" @helpText="Give your store a brief description to let users know what you sell." />
15
- <InputGroup @name="Tags">
16
- <TagInput class="form-input" @placeholder="Add tags" @allowSpacesInTags={{true}} @tags={{@model.tags}} @addTag={{this.addTag}} @removeTagAtIndex={{this.removeTag}} as |tag|>
13
+ <InputGroup
14
+ @id="storefront_name_input"
15
+ @name={{t "storefront.common.name"}}
16
+ @value={{@model.name}}
17
+ @placeholder={{t "storefront.settings.index.name-placeholder"}}
18
+ @helpText={{t "storefront.settings.index.name-help-text"}}
19
+ />
20
+ <InputGroup
21
+ @name={{t "storefront.common.description"}}
22
+ @value={{@model.description}}
23
+ @placeholder={{t "storefront.settings.index.description-placeholder"}}
24
+ @helpText={{t "storefront.settings.index.description-help-text"}}
25
+ />
26
+ <InputGroup @name={{t "storefront.common.tag"}}>
27
+ <TagInput
28
+ class="form-input"
29
+ @placeholder={{t "storefront.settings.index.tags-placeholder"}}
30
+ @allowSpacesInTags={{true}}
31
+ @tags={{@model.tags}}
32
+ @addTag={{this.addTag}}
33
+ @removeTagAtIndex={{this.removeTag}}
34
+ as |tag|
35
+ >
17
36
  {{tag}}
18
37
  </TagInput>
19
38
  </InputGroup>
20
- <InputGroup @name="Currency">
39
+ <InputGroup @name={{t "storefront.common.currency"}}>
21
40
  <CurrencySelect @value={{@model.currency}} @onSelect={{fn (mut @model.currency)}} @triggerClass="w-full form-select" />
22
41
  </InputGroup>
23
42
 
24
- <ContentPanel @title="Contact & Social" @open={{false}} @pad={{true}}>
25
- <InputGroup @name="Phone">
43
+ <ContentPanel @title={{t "storefront.settings.index.contact-social"}} @open={{false}} @pad={{true}}>
44
+ <InputGroup @name={{t "storefront.common.phone"}}>
26
45
  <PhoneInput @value={{@model.phone}} @onInput={{fn (mut @model.phone)}} class="form-input w-full" />
27
46
  </InputGroup>
28
- <InputGroup @name="Website" @value={{@model.website}} @placeholder="Website" @helpText="Your business website URL." />
29
- <InputGroup @name="Facebook" @value={{@model.facebook}} @placeholder="Facebook ID" @helpText="Your business Facebook page ID." />
30
- <InputGroup @name="Instagram" @value={{@model.instagram}} @placeholder="Instagram Username" @helpText="Your business Instagram username." />
31
- <InputGroup @name="Twitter" @value={{@model.twitter}} @placeholder="Twitter Username" @helpText="Your business Twitter username." />
47
+ <InputGroup
48
+ @name={{t "storefront.common.website"}}
49
+ @value={{@model.website}}
50
+ @placeholder={{t "storefront.common.website"}}
51
+ @helpText={{t "storefront.settings.index.website-help-text"}}
52
+ />
53
+ <InputGroup
54
+ @name={{t "storefront.common.facebook"}}
55
+ @value={{@model.facebook}}
56
+ @placeholder={{t "storefront.settings.index.facebook-placeholder"}}
57
+ @helpText={{t "storefront.settings.index.facebook-help-text"}}
58
+ />
59
+ <InputGroup
60
+ @name={{t "storefront.common.instagram"}}
61
+ @value={{@model.instagram}}
62
+ @placeholder={{t "storefront.settings.index.instagram-placeholder"}}
63
+ @helpText={{t "storefront.settings.index.instagram-help-text"}}
64
+ />
65
+ <InputGroup
66
+ @name={{t "storefront.common.twitter"}}
67
+ @value={{@model.twitter}}
68
+ @placeholder={{t "storefront.settings.index.twitter-placeholder"}}
69
+ @helpText={{t "storefront.settings.index.twitter-help-text"}}
70
+ />
32
71
  </ContentPanel>
33
72
 
34
- <ContentPanel @title="Logo & Backdrop" @open={{false}} @pad={{true}}>
35
- <InputGroup @name="Logo" @helpText="Logo for your store.">
73
+ <ContentPanel @title={{t "storefront.settings.index.logo-backdrop"}} @open={{false}} @pad={{true}}>
74
+ <InputGroup @name={{t "storefront.common.logo"}} @helpText={{t "storefront.settings.index.logo-help-text"}}>
36
75
  <div class="flex flex-row items-center">
37
76
  <img src={{@model.logo_url}} alt={{concat @model.name " logo"}} class="h-20 w-64 border dark:border-gray-900 rounded-md mr-4" />
38
- <FileUpload @name="logo" @accept="image/*" @onFileAdded={{fn this.uploadFile "storefront_logo"}} as |queue|>
77
+ <FileUpload @name={{t "storefront.common.logo"}} @accept="image/*" @onFileAdded={{fn this.uploadFile "storefront_logo"}} as |queue|>
39
78
  <a tabindex={{0}} class="flex items-center px-0 mt-2 text-xs no-underline truncate btn btn-sm btn-default">
40
79
  {{#if queue.files.length}}
41
80
  <Spinner class="mr-1" />
42
81
  <span>
43
- Uploading...
82
+ {{t "storefront.common.uploading"}}
44
83
  </span>
45
84
  {{else}}
46
85
  <FaIcon @icon="image" class="mr-1" />
47
86
  <span>
48
- Upload new logo
87
+ {{t "storefront.settings.index.upload-new-logo"}}
49
88
  </span>
50
89
  {{/if}}
51
90
  </a>
@@ -53,20 +92,20 @@
53
92
  </div>
54
93
  </InputGroup>
55
94
 
56
- <InputGroup @name="Backdrop" @helpText="Optional banner or background image for your store.">
95
+ <InputGroup @name={{t "storefront.common.backdrop"}} @helpText={{t "storefront.settings.index.backdrop-help-text"}}>
57
96
  <div class="flex flex-row items-center">
58
97
  <img src={{@model.backdrop_url}} alt={{concat @model.name " backdrop"}} class="h-20 w-64 border dark:border-gray-900 rounded-md mr-4" />
59
- <FileUpload @name="backdrop" @accept="image/*" @onFileAdded={{fn this.uploadFile "storefront_backdrop"}} as |queue|>
98
+ <FileUpload @name={{t "storefront.common.backdrop"}} @accept="image/*" @onFileAdded={{fn this.uploadFile "storefront_backdrop"}} as |queue|>
60
99
  <a tabindex={{0}} class="flex items-center px-0 mt-2 text-xs no-underline truncate btn btn-sm btn-default">
61
100
  {{#if queue.files.length}}
62
101
  <Spinner class="mr-1" />
63
102
  <span>
64
- Uploading...
103
+ {{t "storefront.common.uploading"}}
65
104
  </span>
66
105
  {{else}}
67
106
  <FaIcon @icon="image" class="mr-1" />
68
107
  <span>
69
- Upload new backdrop
108
+ {{t "storefront.settings.index.upload-new-backdrop"}}
70
109
  </span>
71
110
  {{/if}}
72
111
  </a>
@@ -75,39 +114,54 @@
75
114
  </InputGroup>
76
115
  </ContentPanel>
77
116
 
78
- <ContentPanel @title="Images & Videos" @open={{false}} @pad={{false}} @panelBodyWrapperClass="px-0 py-4" @panelBodyClass="bg-white dark:bg-gray-800">
117
+ <ContentPanel @title={{t "storefront.settings.index.images-videos"}} @open={{false}} @pad={{false}} @panelBodyWrapperClass="px-0 py-4" @panelBodyClass="bg-white dark:bg-gray-800">
79
118
  <div class="p-6">
80
119
  {{#if this.isUploading}}
81
- <div class="min-h-56 dropzone w-full rounded px-4 py-8 min-h bg-black bg-opacity-25 text-gray-900 dark:text-white text-center flex flex-col items-center justify-center border-2 border-dashed border-gray-200 dark:border-indigo-500">
120
+ <div
121
+ class="min-h-56 dropzone w-full rounded px-4 py-8 min-h bg-black bg-opacity-25 text-gray-900 dark:text-white text-center flex flex-col items-center justify-center border-2 border-dashed border-gray-200 dark:border-indigo-500"
122
+ >
82
123
  <div class="flex items-center justify-center py-5">
83
124
  <PageLoader class="text-sm dar:text-gray-100" @loadingMessage="Uploading..." />
84
125
  </div>
85
126
  </div>
86
127
  {{else}}
87
- <FileDropzone @name="files" @multiple={{true}} @onFileAdded={{this.queueFile}} @accept={{join "," this.acceptedFileTypes}} class="dropzone file-dropzone" as |dropzone queue|>
128
+ <FileDropzone
129
+ @name={{t "storefront.common.file"}}
130
+ @multiple={{true}}
131
+ @onFileAdded={{this.queueFile}}
132
+ @accept={{join "," this.acceptedFileTypes}}
133
+ class="dropzone file-dropzone"
134
+ as |dropzone queue|
135
+ >
88
136
  {{#if dropzone.active}}
89
137
  {{#if dropzone.valid}}
90
- Drop to upload
138
+ {{t "storefront.settings.index.drop-to-upload"}}
91
139
  {{else}}
92
- Invalid
140
+ {{t "storefront.common.invalid"}}
93
141
  {{/if}}
94
142
  {{else if queue.files.length}}
95
143
  <div class="my-2">
96
144
  <FaIcon @icon="photo-video" class="text-indigo-500 mr-2" />
97
145
  {{pluralize queue.files.length "file"}}
98
- ready for upload.
146
+ {{t "storefront.settings.index.ready-to-upload"}}
99
147
  </div>
100
148
  <div class="my-2">({{queue.progress}}%)</div>
101
149
  {{else}}
102
150
  <h4 class="font-semibold mb-8">
103
151
  <FaIcon @icon="photo-video" @size="2x" class="text-indigo-500 mr-2" />
104
- Upload Images & Videos
152
+ {{t "storefront.settings.index.upload-image-video"}}
105
153
  </h4>
106
154
  <div>
107
155
  {{#if dropzone.supported}}
108
- <p class="text-base font-semibold my-5">Drag and drop image and video files onto this dropzone</p>
156
+ <p class="text-base font-semibold my-5">{{t "storefront.settings.index.drag-and-drop-image"}}</p>
109
157
  {{/if}}
110
- <FileUpload @name="files" @for="files" @accept={{join "," this.acceptedFileTypes}} @multiple={{true}} @onFileAdded={{this.queueFile}}>
158
+ <FileUpload
159
+ @name={{t "storefront.common.file"}}
160
+ @for="files"
161
+ @accept={{join "," this.acceptedFileTypes}}
162
+ @multiple={{true}}
163
+ @onFileAdded={{this.queueFile}}
164
+ >
111
165
  <a tabindex={{0}} class="btn btn-magic cursor-pointer ml-1">or select files to upload.</a>
112
166
  </FileUpload>
113
167
  </div>
@@ -116,7 +170,7 @@
116
170
  {{#if this.uploadQueue}}
117
171
  <div class="mx-4 my-6">
118
172
  <div class="flex items-center justify-between mb-4">
119
- <span class="leading-6 dark:text-gray-100">Upload Queue</span>
173
+ <span class="leading-6 dark:text-gray-100">{{t "storefront.settings.index.upload-queue"}}</span>
120
174
  </div>
121
175
  <div class="space-y-2 mb-5">
122
176
  {{#each this.uploadQueue as |file|}}
@@ -142,11 +196,20 @@
142
196
  </div>
143
197
  </ContentPanel>
144
198
 
145
- <ContentPanel @title="Alerts" @open={{false}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
199
+ <ContentPanel @title={{t "storefront.common.alerts"}} @open={{false}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
146
200
  <div>
147
- <p class="dark:text-gray-100 mb-4">Configure who should be alerted for certain events.</p>
148
- <InputGroup @name="New order alert" @wrapperClass="mb-0">
149
- <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|>
201
+ <p class="dark:text-gray-100 mb-4">{{t "storefront.settings.index.alerted-for-certain-event"}}</p>
202
+ <InputGroup @name={{t "storefront.settings.index.new-order-alert"}} @wrapperClass="mb-0">
203
+ <ModelSelectMultiple
204
+ @modelName="user"
205
+ @selectedModel={{@model.alertable.for_new_order}}
206
+ @placeholder={{t "storefront.settings.index.alert-placeholder"}}
207
+ @triggerClass="form-select form-input multiple"
208
+ @infiniteScroll={{false}}
209
+ @renderInPlace={{true}}
210
+ @onChange={{fn this.makeAlertable "for_new_order"}}
211
+ as |model|
212
+ >
150
213
  {{model.name}}
151
214
  </ModelSelectMultiple>
152
215
  </InputGroup>
@@ -156,55 +219,79 @@
156
219
  <div class="store-boolean-settings">
157
220
  <div class="input-group">
158
221
  <Toggle @isToggled={{@model.online}} @onToggle={{fn (mut @model.online)}}>
159
- <FaIcon @icon="plug" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">Online</span>
222
+ <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>
160
223
  </Toggle>
161
224
  </div>
162
225
  <div class="input-group">
163
226
  <Toggle @isToggled={{@model.options.tax_enabled}} @onToggle={{fn (mut @model.options.tax_enabled)}}>
164
- <FaIcon @icon="percent" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">Enable tax</span>
227
+ <FaIcon @icon="percent" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t "storefront.settings.index.enable-tax"}}</span>
165
228
  </Toggle>
166
229
  {{#if @model.options.tax_enabled}}
167
- <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." />
230
+ <InputGroup
231
+ @wrapperClass="mb-0 mt-2"
232
+ @type="number"
233
+ @name={{t "storefront.settings.index.tax-percentage"}}
234
+ @value={{@model.options.tax_percentage}}
235
+ @placeholder={{t "storefront.settings.index.tax-percentage"}}
236
+ @helpText={{t "storefront.settings.index.tax-percentage-help-text"}}
237
+ />
168
238
  {{/if}}
169
239
  </div>
170
240
  <div class="input-group">
171
241
  <Toggle @isToggled={{@model.options.auto_accept_orders}} @onToggle={{fn (mut @model.options.auto_accept_orders)}}>
172
- <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>
242
+ <FaIcon @icon="robot" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t "storefront.settings.index.auto-accept-incoming-order"}}</span>
173
243
  </Toggle>
174
244
  </div>
175
245
  <div class="input-group">
176
246
  <Toggle @isToggled={{@model.options.auto_dispatch}} @onToggle={{fn (mut @model.options.auto_dispatch)}}>
177
- <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>
247
+ <FaIcon @icon="paper-plane" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t
248
+ "storefront.settings.index.auto-dispatch-order"
249
+ }}</span>
178
250
  </Toggle>
179
251
  </div>
180
252
  <div class="input-group">
181
253
  <Toggle @isToggled={{@model.options.require_pod}} @onToggle={{fn (mut @model.options.require_pod)}}>
182
- <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>
254
+ <FaIcon @icon="signature" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t "storefront.settings.index.require-proof-of-delivery"}}</span>
183
255
  </Toggle>
184
256
  {{#if @model.options.require_pod}}
185
- <InputGroup @wrapperClass="mb-0 mt-2" @name="Proof of Delivery Method">
186
- <Select @options={{this.podMethods}} @optionValue="value" @optionLabel="name" @value={{@model.pod_method}} @onSelect={{fn (mut @model.pod_method)}} class="w-full" />
257
+ <InputGroup @wrapperClass="mb-0 mt-2" @name={{t "storefront.settings.index.proof-of-delivery-method"}}>
258
+ <Select
259
+ @options={{this.podMethods}}
260
+ @optionValue="value"
261
+ @optionLabel="name"
262
+ @value={{@model.pod_method}}
263
+ @onSelect={{fn (mut @model.pod_method)}}
264
+ class="w-full"
265
+ />
187
266
  </InputGroup>
188
267
  {{/if}}
189
268
  </div>
190
269
  <div class="input-group">
191
270
  <Toggle @isToggled={{@model.options.cod_enabled}} @onToggle={{fn (mut @model.options.cod_enabled)}}>
192
- <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>
271
+ <FaIcon @icon="money-bill-wave" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t
272
+ "storefront.settings.index.enable-cash-on-delivery"
273
+ }}</span>
193
274
  </Toggle>
194
275
  </div>
195
276
  <div class="input-group">
196
277
  <Toggle @isToggled={{@model.options.pickup_enabled}} @onToggle={{fn (mut @model.options.pickup_enabled)}}>
197
- <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>
278
+ <FaIcon @icon="person-booth" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t
279
+ "storefront.settings.index.enable-order-pickup"
280
+ }}</span>
198
281
  </Toggle>
199
282
  </div>
200
283
  <div class="input-group">
201
284
  <Toggle @isToggled={{@model.options.tips_enabled}} @onToggle={{fn (mut @model.options.tips_enabled)}}>
202
- <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>
285
+ <FaIcon @icon="cash-register" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t
286
+ "storefront.settings.index.enable-tip"
287
+ }}</span>
203
288
  </Toggle>
204
289
  </div>
205
290
  <div class="input-group">
206
291
  <Toggle @isToggled={{@model.options.delivery_tips_enabled}} @onToggle={{fn (mut @model.options.delivery_tips_enabled)}}>
207
- <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>
292
+ <FaIcon @icon="face-smile" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">{{t
293
+ "storefront.settings.index.enable-integrated-vendors"
294
+ }}</span>
208
295
  </Toggle>
209
296
  </div>
210
297
  {{!-- <div class="input-group">
@@ -212,8 +299,8 @@
212
299
  <FaIcon @icon="truck" class="text-gray-600 dark:text-gray-400 mx-2" /><span class="dark:text-gray-100 text-sm">Enable integrated vendors</span>
213
300
  </Toggle>
214
301
  {{#if @model.options.integrated_vendors_enabled}}
215
- <InputGroup @name="Select integrated vendors to use" @wrapperClass="mt-2 mb-0">
216
- <ModelSelectMultiple @modelName="integrated-vendor" @selectedModel={{@model.options.integrated_vendors}} @placeholder="Select integrated vendors to use" @triggerClass="form-select form-input multiple" @infiniteScroll={{false}} @renderInPlace={{true}} @onChange={{fn (mut @model.options.integrated_vendors)}} as |model|>
302
+ <InputGroup @name={{t "storefront.settings.index.name-select"}} @wrapperClass="mt-2 mb-0">
303
+ <ModelSelectMultiple @modelName="integrated-vendor" @selectedModel={{@model.options.integrated_vendors}} @placeholder={{t "storefront.settings.index.placeholder-select"}} @triggerClass="form-select form-input multiple" @infiniteScroll={{false}} @renderInPlace={{true}} @onChange={{fn (mut @model.options.integrated_vendors)}} as |model|>
217
304
  {{model.name}}
218
305
  </ModelSelectMultiple>
219
306
  </InputGroup>
@@ -222,7 +309,15 @@
222
309
  </div>
223
310
 
224
311
  <div class="flex justify-end pb-12">
225
- <Button @buttonType="submit" @type="primary" @text="Save Changes" @icon="save" @size="lg" @isLoading={{this.isLoading}} @onClick={{this.saveSettings}} />
312
+ <Button
313
+ @buttonType="submit"
314
+ @type="primary"
315
+ @text={{t "storefront.settings.index.save-changes"}}
316
+ @icon="save"
317
+ @size="lg"
318
+ @isLoading={{this.isLoading}}
319
+ @onClick={{this.saveSettings}}
320
+ />
226
321
  </div>
227
322
  </div>
228
323
  </form>
@@ -4,14 +4,21 @@
4
4
  <div class="flex flex-col md:flex-row justify-between">
5
5
  <div>
6
6
  <h1 class="text-lg leading-6 font-bold text-gray-900 dark:text-gray-100">
7
- Location Settings
7
+ {{t "storefront.settings.locations.location-setting"}}
8
8
  </h1>
9
9
  <p class="mt-1 text-sm text-gray-500">
10
- Manage your stores operating locations and hours.
10
+ {{t "storefront.settings.locations.manage-store"}}
11
11
  </p>
12
12
  </div>
13
13
  <div>
14
- <Button @wrapperClass="flex-shrink-0" @icon="plus" @iconPrefix="fas" @type="primary" @text="Create new location" @onClick={{this.createNewLocation}} />
14
+ <Button
15
+ @wrapperClass="flex-shrink-0"
16
+ @icon="plus"
17
+ @iconPrefix="fas"
18
+ @type="primary"
19
+ @text={{t "storefront.settings.locations.text-location"}}
20
+ @onClick={{this.createNewLocation}}
21
+ />
15
22
  </div>
16
23
  </div>
17
24
 
@@ -19,11 +26,11 @@
19
26
  <ContentPanel @title={{storeLocation.name}} @open={{true}} @pad={{true}}>
20
27
  <div class="flex items-center justify-between mb-4">
21
28
  <div>
22
- <h4 class="dark:text-gray-100 text-base font-semibold">Manage store hours</h4>
29
+ <h4 class="dark:text-gray-100 text-base font-semibold">{{t "storefront.settings.locations.store-hour"}}</h4>
23
30
  </div>
24
31
  <div class="flex items-center">
25
- <Button @icon="edit" @text="Edit" @onClick={{fn this.editStoreLocation storeLocation}} @wrapperClass="mr-2" />
26
- <Button @icon="trash" @type="danger" @text="Delete" @onClick={{fn this.removeStoreLocation storeLocation}} />
32
+ <Button @icon="edit" @text={{t "storefront.common.edit"}} @onClick={{fn this.editStoreLocation storeLocation}} @wrapperClass="mr-2" />
33
+ <Button @icon="trash" @type="danger" @text={{t "storefront.common.delete"}} @onClick={{fn this.removeStoreLocation storeLocation}} />
27
34
  </div>
28
35
  </div>
29
36
  <div class="mb-6 uppercase dark:text-gray-100">
@@ -4,16 +4,14 @@
4
4
  <div class="flex justify-between">
5
5
  <div class="w-3/4">
6
6
  <h1 class="text-lg leading-6 font-bold text-gray-900 dark:text-gray-100">
7
- Notification Settings
7
+ {{t "storefront.settings.notification.notification-settings"}}
8
8
  </h1>
9
9
  <p class="mt-1 text-sm text-gray-500">
10
- Configure notification channels for your storefront, each notification channel additionally can
11
- have
12
- it's own rules and options.
10
+ {{t "storefront.settings.notification.notification-storefront"}}
13
11
  </p>
14
12
  </div>
15
13
  <div>
16
- <Button @icon="plus" @iconPrefix="fas" @type="primary" @text="New channel" @onClick={{this.createChannel}} />
14
+ <Button @icon="plus" @iconPrefix="fas" @type="primary" @text={{t "storefront.settings.notification.new-channel"}} @onClick={{this.createChannel}} />
17
15
  </div>
18
16
  </div>
19
17
 
@@ -24,8 +22,8 @@
24
22
  <span class="dark:text-gray-50">{{notificationChannel.name}}</span>
25
23
  </div>
26
24
  <div class="flex items-center">
27
- <Button @size="xs" @type="default" @text="Edit" @wrapperClass="mr-2" @onClick={{fn this.editChannel notificationChannel}} />
28
- <Button @size="xs" @type="danger" @text="Delete" @onClick={{fn this.deleteChannel notificationChannel}} />
25
+ <Button @size="xs" @type="default" @text={{t "storefront.common.edit"}} @wrapperClass="mr-2" @onClick={{fn this.editChannel notificationChannel}} />
26
+ <Button @size="xs" @type="danger" @text={{t "storefront.common.delete"}} @onClick={{fn this.deleteChannel notificationChannel}} />
29
27
  </div>
30
28
  </div>
31
29
  {{/each}}
@@ -1,25 +1,25 @@
1
- <Layout::Section::Header @title="Settings" class="align-items-unset" @actionsWrapperClass="align-items-end-i">
1
+ <Layout::Section::Header @title={{t "storefront.common.settings"}} class="align-items-unset" @actionsWrapperClass="align-items-end-i">
2
2
  <div class="ui-tabs w-full border-b-0i">
3
3
  <nav>
4
4
  <LinkTo @route="settings.index" class="ui-tab">
5
5
  <FaIcon @icon="cog" @prefix="fas" class="mr-1" />
6
- <span>General</span>
6
+ <span>{{t "storefront.common.general"}}</span>
7
7
  </LinkTo>
8
8
  <LinkTo @route="settings.locations" class="ui-tab">
9
9
  <FaIcon @icon="map-marker-alt" class="mr-1" />
10
- <span>Locations</span>
10
+ <span>{{t "storefront.common.location"}}</span>
11
11
  </LinkTo>
12
12
  <LinkTo @route="settings.gateways" class="ui-tab">
13
13
  <FaIcon @icon="cash-register" class="mr-1" />
14
- <span>Gateways</span>
14
+ <span>{{t "storefront.common.gateways"}}</span>
15
15
  </LinkTo>
16
16
  <LinkTo @route="settings.api" class="ui-tab">
17
17
  <FaIcon @icon="code" class="mr-1" />
18
- <span>API</span>
18
+ <span>{{t "storefront.common.api"}}</span>
19
19
  </LinkTo>
20
20
  <LinkTo @route="settings.notifications" class="ui-tab">
21
21
  <FaIcon @icon="bells" class="mr-1" />
22
- <span>Notifications</span>
22
+ <span>{{t "storefront.common.notification"}}</span>
23
23
  </LinkTo>
24
24
  </nav>
25
25
  </div>
package/composer.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fleetbase/storefront-api",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "description": "Headless Commerce & Marketplace Extension for Fleetbase",
5
5
  "keywords": [
6
6
  "fleetbase-extension",
@@ -22,8 +22,8 @@
22
22
  ],
23
23
  "require": {
24
24
  "php": "^7.4|^8.0",
25
- "fleetbase/core-api": "^1.3.10",
26
- "fleetbase/fleetops-api": "^0.4.0",
25
+ "fleetbase/core-api": "^1.3.13",
26
+ "fleetbase/fleetops-api": "^0.4.4",
27
27
  "geocoder-php/google-maps-places-provider": "^1.4",
28
28
  "laravel-notification-channels/apn": "^3.8",
29
29
  "laravel-notification-channels/fcm": "^2.7",
package/extension.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "Storefront",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "description": "Headless Commerce & Marketplace Extension for Fleetbase",
5
5
  "repository": "https://github.com/fleetbase/storefront",
6
6
  "license": "MIT",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fleetbase/storefront-engine",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "description": "Headless Commerce & Marketplace Extension for Fleetbase",
5
5
  "fleetbase": {
6
6
  "route": "storefront",
@@ -34,6 +34,7 @@
34
34
  "lint:hbs:fix": "ember-template-lint . --fix",
35
35
  "lint:js": "eslint . --cache",
36
36
  "lint:js:fix": "eslint . --fix",
37
+ "lint:intl": "fleetbase-intl-lint",
37
38
  "start": "ember serve",
38
39
  "test": "concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"",
39
40
  "test:ember": "ember test",
@@ -43,8 +44,8 @@
43
44
  },
44
45
  "dependencies": {
45
46
  "@fleetbase/ember-core": "^0.2.0",
46
- "@fleetbase/ember-ui": "^0.2.9",
47
- "@fleetbase/fleetops-data": "^0.1.7",
47
+ "@fleetbase/ember-ui": "^0.2.10",
48
+ "@fleetbase/fleetops-data": "^0.1.8",
48
49
  "@babel/core": "^7.23.2",
49
50
  "@fortawesome/ember-fontawesome": "^0.4.1",
50
51
  "@fortawesome/fontawesome-svg-core": "^6.4.0",
@@ -56,6 +57,7 @@
56
57
  "ember-wormhole": "^0.6.0"
57
58
  },
58
59
  "devDependencies": {
60
+ "@fleetbase/intl-lint": "^0.0.1",
59
61
  "@babel/eslint-parser": "^7.22.15",
60
62
  "@babel/plugin-proposal-decorators": "^7.23.2",
61
63
  "@ember/optional-features": "^2.0.0",