@fleetbase/storefront-engine 0.2.6 → 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.
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 +10 -9
  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 +65 -12
  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 +134 -132
  73. package/translations/en-us.yaml +574 -1
@@ -14,6 +14,13 @@ export default class ProductsIndexIndexController extends BaseController {
14
14
  */
15
15
  @service filters;
16
16
 
17
+ /**
18
+ * Inject the `intl` service
19
+ *
20
+ * @var {Service}
21
+ */
22
+ @service intl;
23
+
17
24
  /**
18
25
  * Inject the `currentUser` service
19
26
  *
@@ -121,8 +128,8 @@ export default class ProductsIndexIndexController extends BaseController {
121
128
 
122
129
  @action deleteProduct(product) {
123
130
  this.modalsManager.confirm({
124
- title: 'Are you sure you wish to delete this product?',
125
- body: 'Warning! Once this product is deleted it will no longer be accessible.',
131
+ title: this.intl.t('storefront.products.index.delete-product'),
132
+ body: this.intl.t('storefront.products.index.body-warning'),
126
133
  confirm: (modal) => {
127
134
  modal.startLoading();
128
135
 
@@ -13,6 +13,7 @@ export default class ProductsIndexController extends BaseController {
13
13
  @service fetch;
14
14
  @service hostRouter;
15
15
  @service storefront;
16
+ @service intl;
16
17
 
17
18
  /**
18
19
  * the current storefront store session.
@@ -34,9 +35,9 @@ export default class ProductsIndexController extends BaseController {
34
35
 
35
36
  @action manageAddons() {
36
37
  this.modalsManager.show('modals/manage-addons', {
37
- title: 'Manage Addons',
38
+ title: this.intl.t('storefront.products.index.aside-scroller.title'),
38
39
  modalClass: 'modal-lg',
39
- acceptButtonText: 'Done',
40
+ acceptButtonText: this.intl.t('storefront.products.index.done'),
40
41
  store: this.activeStore,
41
42
  });
42
43
  }
@@ -60,7 +61,7 @@ export default class ProductsIndexController extends BaseController {
60
61
  });
61
62
 
62
63
  this.modalsManager.show('modals/create-product-category', {
63
- title: 'Create a new product category',
64
+ title: this.intl.t('storefront.products.index.create-new-product-category'),
64
65
  acceptButtonIcon: 'check',
65
66
  acceptButtonIconPrefix: 'fas',
66
67
  declineButtonIcon: 'times',
@@ -88,7 +89,7 @@ export default class ProductsIndexController extends BaseController {
88
89
  modal.startLoading();
89
90
 
90
91
  return category.save().then(() => {
91
- this.notifications.success('New product category created.');
92
+ this.notifications.success(this.intl.t('storefront.products.index.product-category-created-success'));
92
93
  return this.hostRouter.refresh();
93
94
  });
94
95
  },
@@ -107,8 +108,8 @@ export default class ProductsIndexController extends BaseController {
107
108
  };
108
109
 
109
110
  this.modalsManager.show('modals/import-products', {
110
- title: 'Import products via spreadsheets',
111
- acceptButtonText: 'Start Upload',
111
+ title: this.intl.t('storefront.products.index.import-products-via-spreadsheets'),
112
+ acceptButtonText: this.intl.t('storefront.products.index.start-upload'),
112
113
  acceptButtonScheme: 'magic',
113
114
  acceptButtonIcon: 'upload',
114
115
  acceptButtonDisabled: true,
@@ -160,7 +161,7 @@ export default class ProductsIndexController extends BaseController {
160
161
  };
161
162
 
162
163
  if (!uploadQueue.length) {
163
- return this.notifications.warning('No files in queue to upload!');
164
+ return this.notifications.warning(this.intl.t('storefront.products.index.warning-no-file-upload'));
164
165
  }
165
166
 
166
167
  modal.startLoading();
@@ -184,7 +185,7 @@ export default class ProductsIndexController extends BaseController {
184
185
 
185
186
  modal.done().then(() => {
186
187
  if (results?.length) {
187
- this.notifications.success(`Successfully imported ${results.length} products...`);
188
+ this.notifications.success(this.intl.t('storefront.products.index.import-products-success-message', { resultsLength: results.length }));
188
189
  return this.hostRouter.refresh();
189
190
  }
190
191
  });
@@ -7,6 +7,7 @@ import getGatewaySchemas from '../../utils/get-gateway-schemas';
7
7
 
8
8
  export default class SettingsGatewaysController extends Controller {
9
9
  @service notifications;
10
+ @service intl;
10
11
  @service modalsManager;
11
12
  @service store;
12
13
  @service crud;
@@ -20,8 +21,8 @@ export default class SettingsGatewaysController extends Controller {
20
21
  });
21
22
 
22
23
  this.editGateway(gateway, {
23
- title: `Create a new payment gateway`,
24
- acceptButtonText: 'Save Gateway',
24
+ title: this.intl.t('storefront.settings.gateways.create-new-payment-gateway'),
25
+ acceptButtonText: this.intl.t('storefront.settings.gateways.save-gateway'),
25
26
  decline: (modal) => {
26
27
  gateway.destroyRecord();
27
28
  modal.done();
@@ -42,8 +43,8 @@ export default class SettingsGatewaysController extends Controller {
42
43
  const schemaOptions = Object.keys(schemas);
43
44
 
44
45
  this.modalsManager.show('modals/create-gateway', {
45
- title: `Edit payment gateway`,
46
- acceptButtonText: 'Save Changes',
46
+ title: this.intl.t('storefront.settings.gateways.edit-payment-gateway'),
47
+ acceptButtonText: this.intl.t('storefront.settings.gateways.save-changes'),
47
48
  schema: null,
48
49
  schemas,
49
50
  schemaOptions,
@@ -95,8 +96,8 @@ export default class SettingsGatewaysController extends Controller {
95
96
 
96
97
  @action deleteGateway(gateway) {
97
98
  this.modalsManager.confirm({
98
- title: 'Are you sure you wish to remove this gateway?',
99
- body: 'All applications and websites utilizing this gateway in configuration could be disrupted if gateway is not replaced beforehand',
99
+ title: this.intl.t('storefront.settings.gateways.title-remove'),
100
+ body: this.intl.t('storefront.settings.gateways.application-website-utilizing-gateway'),
100
101
  confirm: (modal) => {
101
102
  modal.startLoading();
102
103
 
@@ -10,6 +10,7 @@ export default class SettingsIndexController extends Controller {
10
10
  @service notifications;
11
11
  @service fetch;
12
12
  @service storefront;
13
+ @service intl;
13
14
 
14
15
  @alias('storefront.activeStore') activeStore;
15
16
  @tracked podMethods = getPodMethods();
@@ -12,6 +12,13 @@ export default class SettingsLocationsController extends Controller {
12
12
  */
13
13
  @service notifications;
14
14
 
15
+ /**
16
+ * Inject the `intl` service
17
+ *
18
+ * @var {Service}
19
+ */
20
+ @service intl;
21
+
15
22
  /**
16
23
  * Inject the `modals-manager` service
17
24
  *
@@ -64,8 +71,8 @@ export default class SettingsLocationsController extends Controller {
64
71
  });
65
72
 
66
73
  return this.editStoreLocation(storeLocation, {
67
- title: 'New store location',
68
- acceptButtonText: 'Add new Location',
74
+ title: this.intl.t('storefront.settings.locations.new-store-location'),
75
+ acceptButtonText: this.intl.t('storefront.settings.locations.add-new-location'),
69
76
  acceptButtonIcon: 'save',
70
77
  });
71
78
  }
@@ -82,8 +89,8 @@ export default class SettingsLocationsController extends Controller {
82
89
  }
83
90
 
84
91
  this.modalsManager.show('modals/store-location-form', {
85
- title: 'Edit store location',
86
- acceptButtonText: 'Save Changes',
92
+ title: this.intl.t('storefront.settings.locations.edit-store-location'),
93
+ acceptButtonText: this.intl.t('storefront.settings.locations.save-changes'),
87
94
  acceptButtonIcon: 'save',
88
95
  place,
89
96
  autocomplete: (selected) => {
@@ -134,8 +141,8 @@ export default class SettingsLocationsController extends Controller {
134
141
 
135
142
  @action removeStoreLocation(storeLocation) {
136
143
  this.modalsManager.confirm({
137
- title: 'Are you sure you wish to remove this store location?',
138
- body: 'All products that are solely assosciated with this location will no longer be accessible.',
144
+ title: this.intl.t('storefront.settings.locations.remove-this-store-location'),
145
+ body: this.intl.t('storefront.settings.locations.solely-accosciated-location'),
139
146
  confirm: (modal) => {
140
147
  modal.startLoading();
141
148
 
@@ -156,8 +163,8 @@ export default class SettingsLocationsController extends Controller {
156
163
  });
157
164
 
158
165
  this.modalsManager.show('modals/add-store-hours', {
159
- title: `Add new store hours for ${day}`,
160
- acceptButtonText: 'Add hours',
166
+ title: this.intl.t('storefront.settings.locations.new-store-hour', { Day: day }),
167
+ acceptButtonText: this.intl.t('storefront.settings.locations.add-hours'),
161
168
  acceptButtonIcon: 'save',
162
169
  storeHours,
163
170
  confirm: (modal) => {
@@ -165,7 +172,7 @@ export default class SettingsLocationsController extends Controller {
165
172
 
166
173
  return storeHours.save().then((storeHours) => {
167
174
  storeLocation.hours.pushObject(storeHours);
168
- this.notifications.success(`New store hours added for ${day}`);
175
+ this.notifications.success(this.intl.t('storefront.settings.locations.store-hour-added', { Day: day }));
169
176
  });
170
177
  },
171
178
  });
@@ -173,8 +180,8 @@ export default class SettingsLocationsController extends Controller {
173
180
 
174
181
  @action removeHours(storeHours) {
175
182
  this.modalsManager.confirm({
176
- title: 'Are you sure you wish to remove these hours?',
177
- body: 'By removing these operation hours, your store may become inactive according to the updated schedule for this location..',
183
+ title: this.intl.t('storefront.settings.locations.remove-these-hour'),
184
+ body: this.intl.t('storefront.settings.locations.update-schedule-location'),
178
185
  confirm: (modal) => {
179
186
  modal.startLoading();
180
187
 
@@ -10,6 +10,7 @@ export default class SettingsNotificationsController extends Controller {
10
10
  @service notifications;
11
11
  @service modalsManager;
12
12
  @service store;
13
+ @service intl;
13
14
  @service crud;
14
15
  @service storefront;
15
16
  @alias('storefront.activeStore') activeStore;
@@ -22,8 +23,8 @@ export default class SettingsNotificationsController extends Controller {
22
23
  });
23
24
 
24
25
  this.editChannel(channel, {
25
- title: `Create a new notification channel`,
26
- acceptButtonText: 'Create Notification Channel',
26
+ title: this.intl.t('storefront.settings.notification.create-new-notification-channel'),
27
+ acceptButtonText: this.intl.t('storefront.settings.notification.create-notification-channel'),
27
28
  decline: (modal) => {
28
29
  channel.destroyRecord();
29
30
  modal.done();
@@ -39,8 +40,8 @@ export default class SettingsNotificationsController extends Controller {
39
40
  ];
40
41
 
41
42
  this.modalsManager.show('modals/create-notification-channel', {
42
- title: `Edit notification channel`,
43
- acceptButtonText: 'Save Changes',
43
+ title: this.intl.t('storefront.settings.notification.edit-notification-channel'),
44
+ acceptButtonText: this.intl.t('storefront.settings.notification.save-changes'),
44
45
  schema: channel.id ? channel.config : null,
45
46
  schemas,
46
47
  schemaOptions,
@@ -71,7 +72,7 @@ export default class SettingsNotificationsController extends Controller {
71
72
  return channel
72
73
  .save()
73
74
  .then((channel) => {
74
- this.notifications.success(`New notification channel added`);
75
+ this.notifications.success(this.intl.t('storefront.settings.notification.new-notification-channel-added'));
75
76
  this.channels.pushObject(channel);
76
77
  })
77
78
  .catch((error) => {
@@ -86,8 +87,8 @@ export default class SettingsNotificationsController extends Controller {
86
87
 
87
88
  @action deleteChannel(channel) {
88
89
  this.modalsManager.confirm({
89
- title: 'Are you sure you wish to remove this notification channel?',
90
- body: 'All applications and websites utilizing this channel in configuration could be disrupted if channel is not replaced beforehand',
90
+ title: this.intl.t('storefront.settings.notification.remove-this-notification-channel'),
91
+ body: this.intl.t('storefront.settings.notification.application-websites-utillizing-channel'),
91
92
  confirm: (modal) => {
92
93
  modal.startLoading();
93
94
 
@@ -13,6 +13,12 @@ export default class StorefrontService extends Service.extend(Evented) {
13
13
  */
14
14
  @service store;
15
15
 
16
+ /**
17
+ * Ember service for intl.
18
+ * @type {Service}
19
+ */
20
+ @service intl;
21
+
16
22
  /**
17
23
  * Ember service for fetch operations.
18
24
  * @type {Service}
@@ -121,11 +127,11 @@ export default class StorefrontService extends Service.extend(Evented) {
121
127
  this.trigger('order.incoming', order, store);
122
128
 
123
129
  this.modalsManager.show('modals/incoming-order', {
124
- title: 'You have a new incoming order!',
125
- acceptButtonText: 'Accept Order',
130
+ title: this.intl.t('storefront.service.storefront.new-incoming-order'),
131
+ acceptButtonText: this.intl.t('storefront.service.storefront.accept-order'),
126
132
  acceptButtonIcon: 'check',
127
133
  acceptButtonIconPrefix: 'fas',
128
- declineButtonText: 'Decline Order',
134
+ declineButtonText: this.intl.t('storefront.service.storefront.decline-order'),
129
135
  declineButtonScheme: 'danger',
130
136
  closeButton: false,
131
137
  backdropClose: false,
@@ -192,7 +198,7 @@ export default class StorefrontService extends Service.extend(Evented) {
192
198
  }
193
199
 
194
200
  this.modalsManager.show('modals/create-first-store', {
195
- title: 'Create your first Storefront',
201
+ title: this.intl.t('storefront.service.storefront.create-first-storefront'),
196
202
  acceptButtonIcon: 'check',
197
203
  acceptButtonIconPrefix: 'fas',
198
204
  closeButton: false,
@@ -209,7 +215,7 @@ export default class StorefrontService extends Service.extend(Evented) {
209
215
  store
210
216
  .save()
211
217
  .then((store) => {
212
- this.notifications.success('Your new storefront has been created!');
218
+ this.notifications.success(this.intl.t('storefront.service.storefront.storefront-has-been-create-success'));
213
219
  this.setActiveStorefront(store);
214
220
  return done();
215
221
  })
@@ -238,7 +244,7 @@ export default class StorefrontService extends Service.extend(Evented) {
238
244
  }
239
245
 
240
246
  this.modalsManager.show('modals/create-store', {
241
- title: 'Create a new Storefront',
247
+ title: this.intl.t('storefront.service.storefront.create-new-storefront'),
242
248
  acceptButtonIcon: 'check',
243
249
  acceptButtonIconPrefix: 'fas',
244
250
  declineButtonIcon: 'times',
@@ -250,7 +256,7 @@ export default class StorefrontService extends Service.extend(Evented) {
250
256
  store
251
257
  .save()
252
258
  .then((store) => {
253
- this.notifications.success('Your new storefront has been created!');
259
+ this.notifications.success(this.intl.t('storefront.service.storefront.storefront-create-success'));
254
260
  // this.currentUser.setOption('activeStorefront', store.id);
255
261
  this.setActiveStorefront(store);
256
262
 
@@ -1,14 +1,14 @@
1
1
  <EmberWormhole @to="sidebar-menu-items">
2
2
  <StoreSelector @stores={{@model}} @activeStore={{this.activeStore}} @wrapperClass="mb-2" @onCreateStore={{this.createNewStorefront}} @onSwitchStore={{this.switchActiveStore}} />
3
- <Layout::Sidebar::Panel @open={{true}} @title="Storefront">
4
- <Layout::Sidebar::Item @route="console.storefront.home" @icon="home">Dashboard</Layout::Sidebar::Item>
5
- <Layout::Sidebar::Item @route="console.storefront.products" @icon="box" disabled={{not this.activeStore.id}}>Products</Layout::Sidebar::Item>
6
- <Layout::Sidebar::Item @route="console.storefront.customers" @icon="users" disabled={{not this.activeStore.id}}>Customers</Layout::Sidebar::Item>
7
- <Layout::Sidebar::Item @route="console.storefront.orders" @icon="file-invoice-dollar" disabled={{not this.activeStore.id}}>Orders</Layout::Sidebar::Item>
8
- <Layout::Sidebar::Item @route="console.storefront.networks" @icon="network-wired" disabled={{not this.activeStore.id}}>Networks</Layout::Sidebar::Item>
9
- <Layout::Sidebar::Item @route="console.storefront.settings" @icon="cogs" disabled={{not this.activeStore.id}}>Settings</Layout::Sidebar::Item>
3
+ <Layout::Sidebar::Panel @open={{true}} @title={{t "storefront.sidebar.storefront"}}>
4
+ <Layout::Sidebar::Item @route="console.storefront.home" @icon="home">{{t "storefront.sidebar.dashboard"}}</Layout::Sidebar::Item>
5
+ <Layout::Sidebar::Item @route="console.storefront.products" @icon="box" disabled={{not this.activeStore.id}}>{{t "storefront.sidebar.products"}}</Layout::Sidebar::Item>
6
+ <Layout::Sidebar::Item @route="console.storefront.customers" @icon="users" disabled={{not this.activeStore.id}}>{{t "storefront.sidebar.customers"}}</Layout::Sidebar::Item>
7
+ <Layout::Sidebar::Item @route="console.storefront.orders" @icon="file-invoice-dollar" disabled={{not this.activeStore.id}}>{{t "storefront.sidebar.orders"}}</Layout::Sidebar::Item>
8
+ <Layout::Sidebar::Item @route="console.storefront.networks" @icon="network-wired" disabled={{not this.activeStore.id}}>{{t "storefront.sidebar.networks"}}</Layout::Sidebar::Item>
9
+ <Layout::Sidebar::Item @route="console.storefront.settings" @icon="cogs" disabled={{not this.activeStore.id}}>{{t "storefront.sidebar.settings"}}</Layout::Sidebar::Item>
10
10
  </Layout::Sidebar::Panel>
11
- <Layout::Sidebar::Item @url="https://github.com/fleetbase/storefront-app" @target="_github" @icon="rocket">Launch App</Layout::Sidebar::Item>
11
+ <Layout::Sidebar::Item @url="https://github.com/fleetbase/storefront-app" @target="_github" @icon="rocket">{{t "storefront.sidebar.launch-app"}}</Layout::Sidebar::Item>
12
12
  </EmberWormhole>
13
13
 
14
14
  <Layout::Section::Container>
@@ -1,2 +1 @@
1
-
2
1
  {{outlet}}
@@ -1,11 +1,30 @@
1
- <Layout::Section::Header @title="Customers" @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.customer"}} @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
- <Button @icon="long-arrow-up" @iconClass="rotate-icon-45" @text="Export" />
11
+ <Button @icon="long-arrow-up" @iconClass="rotate-icon-45" @text={{t "storefront.common.export"}} />
5
12
  </Layout::Section::Header>
6
13
 
7
14
  <Layout::Section::Body>
8
- <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" />
15
+ <Table
16
+ @rows={{@model}}
17
+ @columns={{this.columns}}
18
+ @selectable={{true}}
19
+ @canSelectAll={{true}}
20
+ @onSetup={{fn (mut this.table)}}
21
+ @pagination={{true}}
22
+ @paginationMeta={{@model.meta}}
23
+ @page={{this.page}}
24
+ @onPageChange={{fn (mut this.page)}}
25
+ @tfootVerticalOffset="53"
26
+ @tfootVerticalOffsetElements=".next-view-section-subheader"
27
+ />
9
28
  </Layout::Section::Body>
10
29
 
11
30
  {{outlet}}
@@ -1,4 +1,4 @@
1
- <Layout::Section::Header @title="Storefront Dashboard" @hideActions={{true}} />
1
+ <Layout::Section::Header @title={{t "storefront.home.title"}} @hideActions={{true}} />
2
2
 
3
3
  <Layout::Section::Body class="space-y-4" @padded={{true}}>
4
4
  <Widget::StorefrontMetrics />