@fleetbase/fleetops-engine 0.3.4 → 0.3.5

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 (59) hide show
  1. package/addon/components/fleet-listing-panel.hbs +2 -2
  2. package/addon/components/layout/fleet-ops-sidebar/fleet-listing.hbs +1 -0
  3. package/addon/components/layout/fleet-ops-sidebar/fleet-listing.js +3 -0
  4. package/addon/components/layout/fleet-ops-sidebar.hbs +4 -4
  5. package/addon/components/layout/fleet-ops-sidebar.js +2 -0
  6. package/addon/controllers/management/contacts/index.js +7 -0
  7. package/addon/controllers/management/drivers/index.js +7 -0
  8. package/addon/controllers/management/fleets/index.js +7 -0
  9. package/addon/controllers/management/fuel-reports/index.js +7 -0
  10. package/addon/controllers/management/issues/index.js +7 -0
  11. package/addon/controllers/management/places/index.js +6 -0
  12. package/addon/controllers/management/vehicles/index.js +13 -20
  13. package/addon/controllers/management/vendors/index.js +7 -0
  14. package/addon/controllers/operations/service-rates/index.js +7 -0
  15. package/addon/routes/management/vehicles/index.js +2 -2
  16. package/addon/templates/management/contacts/index.hbs +1 -0
  17. package/addon/templates/management/drivers/index.hbs +2 -1
  18. package/addon/templates/management/fleets/index.hbs +23 -3
  19. package/addon/templates/management/fuel-reports/index.hbs +1 -0
  20. package/addon/templates/management/issues/index.hbs +22 -2
  21. package/addon/templates/management/places/index.hbs +9 -1
  22. package/addon/templates/management/vehicles/index.hbs +22 -2
  23. package/addon/templates/management/vendors/index.hbs +22 -2
  24. package/addon/templates/operations/service-rates/index.hbs +11 -3
  25. package/app/components/layout/fleet-ops-sidebar/fleet-listing.js +1 -0
  26. package/composer.json +1 -1
  27. package/extension.json +1 -1
  28. package/package.json +3 -3
  29. package/server/migrations/2023_04_27_053456_create_contacts_table.php +2 -2
  30. package/server/migrations/2023_04_27_053456_create_drivers_table.php +5 -5
  31. package/server/migrations/2023_04_27_053456_create_entities_table.php +5 -5
  32. package/server/migrations/2023_04_27_053456_create_fleet_drivers_table.php +2 -2
  33. package/server/migrations/2023_04_27_053456_create_fleets_table.php +3 -3
  34. package/server/migrations/2023_04_27_053456_create_fuel_reports_table.php +3 -3
  35. package/server/migrations/2023_04_27_053456_create_issues_table.php +4 -4
  36. package/server/migrations/2023_04_27_053456_create_orders_table.php +8 -8
  37. package/server/migrations/2023_04_27_053456_create_payloads_table.php +5 -5
  38. package/server/migrations/2023_04_27_053456_create_places_table.php +1 -1
  39. package/server/migrations/2023_04_27_053456_create_purchase_rates_table.php +4 -4
  40. package/server/migrations/2023_04_27_053456_create_service_areas_table.php +2 -2
  41. package/server/migrations/2023_04_27_053456_create_service_quote_items_table.php +1 -1
  42. package/server/migrations/2023_04_27_053456_create_service_quotes_table.php +3 -3
  43. package/server/migrations/2023_04_27_053456_create_service_rate_fees_table.php +1 -1
  44. package/server/migrations/2023_04_27_053456_create_service_rate_parcel_fees_table.php +1 -1
  45. package/server/migrations/2023_04_27_053456_create_service_rates_table.php +3 -3
  46. package/server/migrations/2023_04_27_053456_create_tracking_numbers_table.php +3 -3
  47. package/server/migrations/2023_04_27_053456_create_tracking_statuses_table.php +2 -2
  48. package/server/migrations/2023_04_27_053456_create_vehicles_table.php +3 -3
  49. package/server/migrations/2023_04_27_053456_create_vendors_table.php +5 -5
  50. package/server/migrations/2023_04_27_053456_create_waypoints_table.php +4 -4
  51. package/server/migrations/2023_04_27_053456_create_zones_table.php +2 -2
  52. package/server/migrations/2023_11_17_053001_add_category_uuid_to_entities_table.php +33 -0
  53. package/server/src/Http/Controllers/Api/v1/EntityController.php +2 -0
  54. package/server/src/Http/Controllers/Internal/v1/DriverController.php +0 -1
  55. package/server/src/Http/Resources/v1/Fleet.php +19 -17
  56. package/server/src/Models/Driver.php +16 -0
  57. package/server/src/Models/Entity.php +18 -23
  58. package/server/src/Models/Vehicle.php +4 -2
  59. package/server/src/Models/VehicleDeviceEvent.php +1 -1
@@ -1,8 +1,8 @@
1
- <Layout::Sidebar::Panel @open={{or @open true}} @title={{this.fleet.name}} @wrapperClass="next-fleet-summary-fleet fleet-depth-{{@depth}}">
1
+ <Layout::Sidebar::Panel @open={{or @open true}} @title={{this.fleet.name}} @titleStatusRightText={{concat this.fleet.vehicles_online_count "/" this.fleet.vehicles_count}} @titleStatusRight="info" @hideRightTitleStatusDot={{true}} @titleStatusRightContainerClass="-mr-2" @wrapperClass="next-fleet-summary-fleet fleet-depth-{{@depth}}">
2
2
  {{#each this.fleet.subfleets as |subFleet|}}
3
3
  <FleetListingPanel @fleet={{subFleet}} @onVehicleClicked={{this.onVehicleClicked}} @depth={{add @depth 1}} />
4
4
  {{/each}}
5
5
  {{#each this.fleet.vehicles as |vehicle|}}
6
- <Layout::Sidebar::Item @icon="circle" @iconSize="2xs" @iconClass={{if vehicle.online "text-green-500" "text-yellow-200"}} @onClick={{fn this.onVehicleClicked vehicle}}>{{vehicle.displayName}}</Layout::Sidebar::Item>
6
+ <Layout::Sidebar::Item @icon="circle" @iconSize="2xs" @iconClass={{if vehicle.online "text-green-500" "text-yellow-200"}} @onClick={{fn this.onVehicleClicked vehicle}} @rightSideComponent={{@itemRightSideComponent}} @rightSideComponentContext={{@itemRightSideComponentContext}} @rightSideStatus={{@itemRightSideStatus}} @rightSideStatusText={{@itemRightSideStatusText}} @hideRightSideStatusDot={{@itemHideRightSideStatusDot}} @rightSideStatusClass={{@itemRightSideStatusClass}} @disableRightSideStatusHumanize={{@itemDisableRightSideStatusHumanize}} @dropdownButton={{@itemDropdownButton}} @dropdownButtonActions={{@itemDropdownButtonActions}} @dropdownButtonIcon={{@itemDropdownButtonIcon}} @dropdownButtonIconPrefix={{@itemDropdownButtonIconPrefix}} @dropdownButtonText={{@itemDropdownButtonText}} @dropdownButtonCalculatePosition={{@itemDropdownButtonCalculatePosition}} @dropdownButtonRenderInPlace={{@itemDropdownButtonRenderInPlace}} @dropdownButtonMenuLabel={{@itemDropdownButtonMenuLabel}} @dropdownButtonWrapperClass={{@itemDropdownButtonWrapperClass}} @dropdownButtonTriggerClass={{@itemDropdownButtonTriggerClass}} @registerDropdownButtonAPI={{@itemRegisterDropdownButtonAPI}}>{{vehicle.displayName}}</Layout::Sidebar::Item>
7
7
  {{/each}}
8
8
  </Layout::Sidebar::Panel>
@@ -0,0 +1 @@
1
+ <FleetListingPanel ...attributes />
@@ -0,0 +1,3 @@
1
+ import Component from '@glimmer/component';
2
+
3
+ export default class LayoutFleetOpsSidebarFleetListingComponent extends Component {}
@@ -5,20 +5,20 @@
5
5
  {{#if menuItem.renderComponentInPlace}}
6
6
  {{component menuItem.component}}
7
7
  {{else}}
8
- <Layout::Sidebar::Item @onClick={{fn this.universe.transitionMenuItem (concat this.routePrefix "virtual") menuItem}} @item={{menuItem}} @icon={{menuItem.icon}}>{{menuItem.title}}</Layout::Sidebar::Item>
8
+ <Layout::Sidebar::Item @onClick={{fn this.universe.transitionMenuItem (concat this.routePrefix "virtual") menuItem}} @menuItem={{menuItem}} @icon={{menuItem.icon}} @rightSideComponent={{menuItem.rightSideComponent}} @rightSideComponentContext={{menuItem.rightSideComponentContext}} @rightSideStatus={{menuItem.rightSideStatus}} @rightSideStatusText={{menuItem.rightSideStatusText}} @hideRightSideStatusDot={{menuItem.hideRightSideStatusDot}} @rightSideStatusClass={{menuItem.rightSideStatusClass}} @disableRightSideStatusHumanize={{menuItem.disableRightSideStatusHumanize}} @dropdownButton={{menuItem.dropdownButton}} @dropdownButtonActions={{menuItem.dropdownButtonActions}} @dropdownButtonIcon={{menuItem.dropdownButtonIcon}} @dropdownButtonIconPrefix={{menuItem.dropdownButtonIconPrefix}} @dropdownButtonText={{menuItem.dropdownButtonText}} @dropdownButtonCalculatePosition={{menuItem.dropdownButtonCalculatePosition}} @dropdownButtonRenderInPlace={{menuItem.dropdownButtonRenderInPlace}} @dropdownButtonMenuLabel={{menuItem.dropdownButtonMenuLabel}} @dropdownButtonWrapperClass={{menuItem.dropdownButtonWrapperClass}} @dropdownButtonTriggerClass={{menuItem.dropdownButtonTriggerClass}} @registerDropdownButtonAPI={{menuItem.registerDropdownButtonAPI}}>{{menuItem.title}}</Layout::Sidebar::Item>
9
9
  {{/if}}
10
10
  {{/each}}
11
11
  {{#each this.menuPanels as |menuPanel|}}
12
12
  <Layout::Sidebar::Panel @open={{menuPanel.open}} @title={{menuPanel.title}}>
13
- {{#each menuPanel.items as |item|}}
14
- <Layout::Sidebar::Item @route={{concat this.routePrefix item.route}} @icon={{item.icon}}>{{item.title}}</Layout::Sidebar::Item>
13
+ {{#each menuPanel.items as |menuItem|}}
14
+ <Layout::Sidebar::Item @route={{concat this.routePrefix menuItem.route}} @icon={{menuItem.icon}} @rightSideComponent={{menuItem.rightSideComponent}} @rightSideComponentContext={{menuItem.rightSideComponentContext}} @rightSideStatus={{menuItem.rightSideStatus}} @rightSideStatusText={{menuItem.rightSideStatusText}} @hideRightSideStatusDot={{menuItem.hideRightSideStatusDot}} @rightSideStatusClass={{menuItem.rightSideStatusClass}} @disableRightSideStatusHumanize={{menuItem.disableRightSideStatusHumanize}} @dropdownButton={{menuItem.dropdownButton}} @dropdownButtonActions={{menuItem.dropdownButtonActions}} @dropdownButtonIcon={{menuItem.dropdownButtonIcon}} @dropdownButtonIconPrefix={{menuItem.dropdownButtonIconPrefix}} @dropdownButtonText={{menuItem.dropdownButtonText}} @dropdownButtonCalculatePosition={{menuItem.dropdownButtonCalculatePosition}} @dropdownButtonRenderInPlace={{menuItem.dropdownButtonRenderInPlace}} @dropdownButtonMenuLabel={{menuItem.dropdownButtonMenuLabel}} @dropdownButtonWrapperClass={{menuItem.dropdownButtonWrapperClass}} @dropdownButtonTriggerClass={{menuItem.dropdownButtonTriggerClass}} @registerDropdownButtonAPI={{menuItem.registerDropdownButtonAPI}}>{{menuItem.title}}</Layout::Sidebar::Item>
15
15
  {{/each}}
16
16
  </Layout::Sidebar::Panel>
17
17
  {{/each}}
18
18
  {{#each this.universeMenuPanels as |menuPanel|}}
19
19
  <Layout::Sidebar::Panel @open={{menuPanel.open}} @title={{menuPanel.title}}>
20
20
  {{#each menuPanel.items as |menuItem|}}
21
- <Layout::Sidebar::Item @onClick={{fn this.universe.transitionMenuItem (concat this.routePrefix "virtual") menuItem}} @item={{menuItem}} @icon={{menuItem.icon}}>{{menuItem.title}}</Layout::Sidebar::Item>
21
+ <Layout::Sidebar::Item @onClick={{fn this.universe.transitionMenuItem (concat this.routePrefix "virtual") menuItem}} @menuItem={{menuItem}} @icon={{menuItem.icon}} @rightSideComponent={{menuItem.rightSideComponent}} @rightSideComponentContext={{menuItem.rightSideComponentContext}} @rightSideStatus={{menuItem.rightSideStatus}} @rightSideStatusText={{menuItem.rightSideStatusText}} @hideRightSideStatusDot={{menuItem.hideRightSideStatusDot}} @rightSideStatusClass={{menuItem.rightSideStatusClass}} @disableRightSideStatusHumanize={{menuItem.disableRightSideStatusHumanize}} @dropdownButton={{menuItem.dropdownButton}} @dropdownButtonActions={{menuItem.dropdownButtonActions}} @dropdownButtonIcon={{menuItem.dropdownButtonIcon}} @dropdownButtonIconPrefix={{menuItem.dropdownButtonIconPrefix}} @dropdownButtonText={{menuItem.dropdownButtonText}} @dropdownButtonCalculatePosition={{menuItem.dropdownButtonCalculatePosition}} @dropdownButtonRenderInPlace={{menuItem.dropdownButtonRenderInPlace}} @dropdownButtonMenuLabel={{menuItem.dropdownButtonMenuLabel}} @dropdownButtonWrapperClass={{menuItem.dropdownButtonWrapperClass}} @dropdownButtonTriggerClass={{menuItem.dropdownButtonTriggerClass}} @registerDropdownButtonAPI={{menuItem.registerDropdownButtonAPI}}>{{menuItem.title}}</Layout::Sidebar::Item>
22
22
  {{/each}}
23
23
  </Layout::Sidebar::Panel>
24
24
  {{/each}}
@@ -11,6 +11,8 @@ import { isArray } from '@ember/array';
11
11
  */
12
12
  export default class LayoutFleetOpsSidebarComponent extends Component {
13
13
  @service universe;
14
+ @service contextPanel;
15
+ @service store;
14
16
  @tracked routePrefix = 'console.fleet-ops.';
15
17
  @tracked menuPanels = [];
16
18
  @tracked universeMenuItems = [];
@@ -297,6 +297,13 @@ export default class ManagementContactsIndexController extends Controller {
297
297
  this.query = value;
298
298
  }
299
299
 
300
+ /**
301
+ * Reload layout view.
302
+ */
303
+ @action reload() {
304
+ return this.hostRouter.refresh();
305
+ }
306
+
300
307
  /**
301
308
  * Toggles dialog to export `contact`
302
309
  *
@@ -464,6 +464,13 @@ export default class ManagementDriversIndexController extends Controller {
464
464
  this.layout = layout;
465
465
  }
466
466
 
467
+ /**
468
+ * Reload layout view.
469
+ */
470
+ @action reload() {
471
+ return this.hostRouter.refresh();
472
+ }
473
+
467
474
  /**
468
475
  * Bulk deletes selected `driver` via confirm prompt
469
476
  *
@@ -385,6 +385,13 @@ export default class ManagementFleetsIndexController extends Controller {
385
385
  });
386
386
  }
387
387
 
388
+ /**
389
+ * Reload layout view.
390
+ */
391
+ @action reload() {
392
+ return this.hostRouter.refresh();
393
+ }
394
+
388
395
  /**
389
396
  * Toggles dialog to export `fleet`
390
397
  *
@@ -357,6 +357,13 @@ export default class ManagementFuelReportsIndexController extends Controller {
357
357
  this.transitionToRoute('management.fuel-reports.index.details', fuelReport);
358
358
  }
359
359
 
360
+ /**
361
+ * Reload layout view.
362
+ */
363
+ @action reload() {
364
+ return this.hostRouter.refresh();
365
+ }
366
+
360
367
  /**
361
368
  * Create a new fuel report
362
369
  *
@@ -394,6 +394,13 @@ export default class ManagementIssuesIndexController extends Controller {
394
394
  this.crud.export('issue');
395
395
  }
396
396
 
397
+ /**
398
+ * Reload layout view.
399
+ */
400
+ @action reload() {
401
+ return this.hostRouter.refresh();
402
+ }
403
+
397
404
  /**
398
405
  * View the selected issue
399
406
  *
@@ -349,6 +349,12 @@ export default class ManagementPlacesIndexController extends Controller {
349
349
  return this.transitionToRoute('management.places.index.details', place);
350
350
  }
351
351
 
352
+ /**
353
+ * Reload layout view.
354
+ */
355
+ @action reload() {
356
+ return this.hostRouter.refresh();
357
+ }
352
358
  /**
353
359
  * Create a new place
354
360
  *
@@ -83,8 +83,8 @@ export default class ManagementVehiclesIndexController extends ManagementControl
83
83
  'name',
84
84
  'plate_number',
85
85
  'year',
86
- 'make',
87
- 'model',
86
+ 'vehicle_make',
87
+ 'vehicle_model',
88
88
  'display_name',
89
89
  ];
90
90
 
@@ -145,18 +145,18 @@ export default class ManagementVehiclesIndexController extends ManagementControl
145
145
  @tracked plate_number;
146
146
 
147
147
  /**
148
- * The filterable param `make`.
148
+ * The filterable param `vehicle_make`.
149
149
  *
150
150
  * @var {String}
151
151
  */
152
- @tracked make;
152
+ @tracked vehicle_make;
153
153
 
154
154
  /**
155
- * The filterable param `model`.
155
+ * The filterable param `vehicle_model`.
156
156
  *
157
157
  * @var {String}
158
158
  */
159
- @tracked model;
159
+ @tracked vehicle_model;
160
160
 
161
161
  /**
162
162
  * The filterable param `year`.
@@ -165,20 +165,6 @@ export default class ManagementVehiclesIndexController extends ManagementControl
165
165
  */
166
166
  @tracked year;
167
167
 
168
- /**
169
- * The filterable param `make`.
170
- *
171
- * @var {String}
172
- */
173
- @tracked make;
174
-
175
- /**
176
- * The filterable param `model`.
177
- *
178
- * @var {String}
179
- */
180
- @tracked model;
181
-
182
168
  /**
183
169
  * The filterable param `country`.
184
170
  *
@@ -420,6 +406,13 @@ export default class ManagementVehiclesIndexController extends ManagementControl
420
406
  },
421
407
  ];
422
408
 
409
+ /**
410
+ * Reload layout view.
411
+ */
412
+ @action reload() {
413
+ return this.hostRouter.refresh();
414
+ }
415
+
423
416
  /**
424
417
  * Bulk deletes selected `vehicle` via confirm prompt
425
418
  *
@@ -377,6 +377,13 @@ export default class ManagementVendorsIndexController extends Controller {
377
377
  return this.transitionToRoute('management.vendors.index.details', vendor);
378
378
  }
379
379
 
380
+ /**
381
+ * Reload layout view.
382
+ */
383
+ @action reload() {
384
+ return this.hostRouter.refresh();
385
+ }
386
+
380
387
  /**
381
388
  * Create a new `vendor` in modal
382
389
  *
@@ -228,6 +228,13 @@ export default class OperationsServiceRatesIndexController extends Controller {
228
228
  this.query = value;
229
229
  }
230
230
 
231
+ /**
232
+ * Reload layout view.
233
+ */
234
+ @action reload() {
235
+ return this.hostRouter.refresh();
236
+ }
237
+
231
238
  /**
232
239
  * Toggles dialog to export `service-rate`
233
240
  *
@@ -14,10 +14,10 @@ export default class ManagementVehiclesIndexRoute extends Route {
14
14
  public_id: { refreshModel: true },
15
15
  vin: { refreshModel: true },
16
16
  plate_number: { refreshModel: true },
17
- model: { refreshModel: true },
17
+ vehicle_make: { refreshModel: true },
18
+ vehicle_model: { refreshModel: true },
18
19
  year: { refreshModel: true },
19
20
  country: { refreshModel: true },
20
- make: { refreshModel: true },
21
21
  fleet: { refreshModel: true },
22
22
  vendor: { refreshModel: true },
23
23
  driver: { refreshModel: true },
@@ -1,4 +1,5 @@
1
1
  <Layout::Section::Header @title="Contacts" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
2
+ <Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
2
3
  <FiltersPicker
3
4
  @columns={{this.columns}}
4
5
  @onApply={{fn this.filters.apply this}}
@@ -4,7 +4,8 @@
4
4
  @searchQuery={{this.query}}
5
5
  @onSearch={{perform this.search}}
6
6
  >
7
- <Button @icon="grip-horizontal" @prefix="fas" @onClick={{fn this.changeLayout "grid"}} @disabled={{this.isGridLayout}} class="mr-2" />
7
+ <Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
8
+ <Button @icon="grip-horizontal" @prefix="fas" @onClick={{this.reload}} @disabled={{this.isGridLayout}} class="mr-2" />
8
9
  <Button @icon="table" @prefix="fas" @onClick={{fn this.changeLayout "table"}} @disabled={{this.isTableLayout}} class="mr-2" />
9
10
  <FiltersPicker
10
11
  @columns={{this.columns}}
@@ -1,7 +1,15 @@
1
1
  <Layout::Section::Header @title="Fleets" @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" />
2
+ <Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
3
+ <FiltersPicker
4
+ @columns={{this.columns}}
5
+ @onApply={{fn this.filters.apply this}}
6
+ @onClear={{fn this.filters.reset this}}
7
+ @onFilterClear={{this.filters.clear}}
8
+ @onChange={{this.filters.set}}
9
+ @buttonWrapperClass="mr-2"
10
+ />
3
11
  <VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
4
- {{#if (safe-has this.table "selectedRows")}}
12
+ {{#if (safe-has this.table "selectedRows")}}
5
13
  <DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
6
14
  <div class="next-dd-menu mt-2 mx-0">
7
15
  <div class="px-1">
@@ -17,6 +25,18 @@
17
25
  </Layout::Section::Header>
18
26
 
19
27
  <Layout::Section::Body>
20
- <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" />
28
+ <Table
29
+ @rows={{@model}}
30
+ @columns={{this.columns}}
31
+ @selectable={{true}}
32
+ @canSelectAll={{true}}
33
+ @onSetup={{fn (mut this.table)}}
34
+ @pagination={{true}}
35
+ @paginationMeta={{@model.meta}}
36
+ @page={{this.page}}
37
+ @onPageChange={{fn (mut this.page)}}
38
+ @tfootVerticalOffset="53"
39
+ @tfootVerticalOffsetElements=".next-view-section-subheader"
40
+ />
21
41
  </Layout::Section::Body>
22
42
  {{outlet}}
@@ -1,4 +1,5 @@
1
1
  <Layout::Section::Header @title="Fuel Reports" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
2
+ <Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
2
3
  <FiltersPicker
3
4
  @columns={{this.columns}}
4
5
  @onApply={{fn this.filters.apply this}}
@@ -1,5 +1,13 @@
1
1
  <Layout::Section::Header @title="Issues" @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" />
2
+ <Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
3
+ <FiltersPicker
4
+ @columns={{this.columns}}
5
+ @onApply={{fn this.filters.apply this}}
6
+ @onClear={{fn this.filters.reset this}}
7
+ @onFilterClear={{this.filters.clear}}
8
+ @onChange={{this.filters.set}}
9
+ @buttonWrapperClass="mr-2"
10
+ />
3
11
  <VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
4
12
  {{#if (safe-has this.table "selectedRows")}}
5
13
  <DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
@@ -17,7 +25,19 @@
17
25
  </Layout::Section::Header>
18
26
 
19
27
  <Layout::Section::Body>
20
- <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" />
28
+ <Table
29
+ @rows={{@model}}
30
+ @columns={{this.columns}}
31
+ @selectable={{true}}
32
+ @canSelectAll={{true}}
33
+ @onSetup={{fn (mut this.table)}}
34
+ @pagination={{true}}
35
+ @paginationMeta={{@model.meta}}
36
+ @page={{this.page}}
37
+ @onPageChange={{fn (mut this.page)}}
38
+ @tfootVerticalOffset="53"
39
+ @tfootVerticalOffsetElements=".next-view-section-subheader"
40
+ />
21
41
  </Layout::Section::Body>
22
42
 
23
43
  {{outlet}}
@@ -1,5 +1,13 @@
1
1
  <Layout::Section::Header @title="Places" @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" />
2
+ <Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
3
+ <FiltersPicker
4
+ @columns={{this.columns}}
5
+ @onApply={{fn this.filters.apply this}}
6
+ @onClear={{fn this.filters.reset this}}
7
+ @onFilterClear={{this.filters.clear}}
8
+ @onChange={{this.filters.set}}
9
+ @buttonWrapperClass="mr-2"
10
+ />
3
11
  <VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
4
12
  {{#if (safe-has this.table "selectedRows")}}
5
13
  <DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
@@ -1,5 +1,13 @@
1
1
  <Layout::Section::Header @title="Vehicles" @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" />
2
+ <Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
3
+ <FiltersPicker
4
+ @columns={{this.columns}}
5
+ @onApply={{fn this.filters.apply this}}
6
+ @onClear={{fn this.filters.reset this}}
7
+ @onFilterClear={{this.filters.clear}}
8
+ @onChange={{this.filters.set}}
9
+ @buttonWrapperClass="mr-2"
10
+ />
3
11
  <VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
4
12
  {{#if (safe-has this.table "selectedRows")}}
5
13
  <DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
@@ -17,6 +25,18 @@
17
25
  </Layout::Section::Header>
18
26
 
19
27
  <Layout::Section::Body>
20
- <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" />
28
+ <Table
29
+ @rows={{@model}}
30
+ @columns={{this.columns}}
31
+ @selectable={{true}}
32
+ @canSelectAll={{true}}
33
+ @onSetup={{fn (mut this.table)}}
34
+ @pagination={{true}}
35
+ @paginationMeta={{@model.meta}}
36
+ @page={{this.page}}
37
+ @onPageChange={{fn (mut this.page)}}
38
+ @tfootVerticalOffset="53"
39
+ @tfootVerticalOffsetElements=".next-view-section-subheader"
40
+ />
21
41
  </Layout::Section::Body>
22
42
  {{outlet}}
@@ -1,5 +1,13 @@
1
1
  <Layout::Section::Header @title="Vendors" @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" />
2
+ <Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
3
+ <FiltersPicker
4
+ @columns={{this.columns}}
5
+ @onApply={{fn this.filters.apply this}}
6
+ @onClear={{fn this.filters.reset this}}
7
+ @onFilterClear={{this.filters.clear}}
8
+ @onChange={{this.filters.set}}
9
+ @buttonWrapperClass="mr-2"
10
+ />
3
11
  <VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
4
12
  {{#if (safe-has this.table "selectedRows")}}
5
13
  <DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
@@ -17,6 +25,18 @@
17
25
  </Layout::Section::Header>
18
26
 
19
27
  <Layout::Section::Body>
20
- <Table @rows={{this.rows}} @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" />
28
+ <Table
29
+ @rows={{this.rows}}
30
+ @columns={{this.columns}}
31
+ @selectable={{true}}
32
+ @canSelectAll={{true}}
33
+ @onSetup={{fn (mut this.table)}}
34
+ @pagination={{true}}
35
+ @paginationMeta={{@model.meta}}
36
+ @page={{this.page}}
37
+ @onPageChange={{fn (mut this.page)}}
38
+ @tfootVerticalOffset="53"
39
+ @tfootVerticalOffsetElements=".next-view-section-subheader"
40
+ />
21
41
  </Layout::Section::Body>
22
42
  {{outlet}}
@@ -1,7 +1,15 @@
1
1
  <Layout::Section::Header @title="Service Rates" @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" />
2
+ <Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
3
+ <FiltersPicker
4
+ @columns={{this.columns}}
5
+ @onApply={{fn this.filters.apply this}}
6
+ @onClear={{fn this.filters.reset this}}
7
+ @onFilterClear={{this.filters.clear}}
8
+ @onChange={{this.filters.set}}
9
+ @buttonWrapperClass="mr-2"
10
+ />
3
11
  <VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
4
- {{#if (safe-has this.table "selectedRows")}}
12
+ {{#if (safe-has this.table "selectedRows")}}
5
13
  <DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
6
14
  <div class="next-dd-menu mt-2 mx-0">
7
15
  <div class="px-1">
@@ -12,7 +20,7 @@
12
20
  </div>
13
21
  </DropdownButton>
14
22
  {{/if}}
15
- <Button @icon="plus" @iconPrefix="fas" @type="primary" @text="New" class="mr-2" @onClick={{transition-to 'operations.service-rates.index.new'}} />
23
+ <Button @icon="plus" @iconPrefix="fas" @type="primary" @text="New" class="mr-2" @onClick={{transition-to "operations.service-rates.index.new"}} />
16
24
  <Button @icon="long-arrow-up" @iconClass="rotate-icon-45" @text="Export" />
17
25
  </Layout::Section::Header>
18
26
 
@@ -0,0 +1 @@
1
+ export { default } from '@fleetbase/fleetops-engine/components/layout/fleet-ops-sidebar/fleet-listing';
package/composer.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fleetbase/fleetops-api",
3
- "version": "0.3.4",
3
+ "version": "0.3.5",
4
4
  "description": "Fleet & Transport Management Extension for Fleetbase",
5
5
  "keywords": [
6
6
  "fleetbase-extension",
package/extension.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "Fleet-Ops",
3
- "version": "0.3.4",
3
+ "version": "0.3.5",
4
4
  "description": "Fleet & Transport Management Extension for Fleetbase",
5
5
  "repository": "https://github.com/fleetbase/fleetops",
6
6
  "license": "MIT",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fleetbase/fleetops-engine",
3
- "version": "0.3.4",
3
+ "version": "0.3.5",
4
4
  "description": "Fleet & Transport Management Extension for Fleetbase",
5
5
  "fleetbase": {
6
6
  "route": "fleet-ops",
@@ -40,8 +40,8 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "@fleetbase/ember-core": "^0.1.8",
43
- "@fleetbase/ember-ui": "^0.2.5",
44
- "@fleetbase/fleetops-data": "^0.1.4",
43
+ "@fleetbase/ember-ui": "^0.2.6",
44
+ "@fleetbase/fleetops-data": "^0.1.5",
45
45
  "@fleetbase/leaflet-routing-machine": "^3.2.16",
46
46
  "@fortawesome/ember-fontawesome": "^0.4.1",
47
47
  "@fortawesome/fontawesome-svg-core": "^6.4.0",
@@ -19,9 +19,9 @@ return new class extends Migration
19
19
  $table->string('uuid', 191)->nullable()->index();
20
20
  $table->string('public_id', 191)->nullable()->unique();
21
21
  $table->string('internal_id')->nullable();
22
- $table->string('company_uuid', 191)->nullable()->index('contacts_company_uuid_foreign');
22
+ $table->uuid('company_uuid')->nullable()->index('contacts_company_uuid_foreign');
23
23
  $table->char('user_uuid', 36)->nullable()->index();
24
- $table->string('photo_uuid', 191)->nullable()->index('contacts_photo_uuid_foreign');
24
+ $table->uuid('photo_uuid')->nullable()->index('contacts_photo_uuid_foreign');
25
25
  $table->string('name')->nullable();
26
26
  $table->string('title')->nullable();
27
27
  $table->string('email', 191)->nullable()->index();
@@ -19,12 +19,12 @@ return new class extends Migration
19
19
  $table->string('uuid', 191)->nullable()->index();
20
20
  $table->string('public_id', 191)->nullable()->unique();
21
21
  $table->string('internal_id')->nullable();
22
- $table->string('company_uuid', 191)->nullable()->index('drivers_company_uuid_foreign');
23
- $table->string('vehicle_uuid', 191)->nullable()->index('drivers_vehicle_uuid_foreign');
24
- $table->string('vendor_uuid', 191)->nullable()->index('drivers_vendor_uuid_foreign');
22
+ $table->uuid('company_uuid')->nullable()->index('drivers_company_uuid_foreign');
23
+ $table->uuid('vehicle_uuid')->nullable()->index('drivers_vehicle_uuid_foreign');
24
+ $table->uuid('vendor_uuid')->nullable()->index('drivers_vendor_uuid_foreign');
25
25
  $table->string('vendor_type')->nullable();
26
- $table->string('current_job_uuid', 191)->nullable()->index('drivers_current_job_uuid_foreign');
27
- $table->string('user_uuid', 191)->nullable()->index();
26
+ $table->uuid('current_job_uuid')->nullable()->index('drivers_current_job_uuid_foreign');
27
+ $table->uuid('user_uuid')->nullable()->index();
28
28
  $table->string('auth_token')->nullable();
29
29
  $table->string('drivers_license_number')->nullable();
30
30
  $table->string('signup_token_used')->nullable();
@@ -18,13 +18,13 @@ return new class extends Migration
18
18
  $table->string('_key')->nullable();
19
19
  $table->string('uuid', 191)->nullable()->index();
20
20
  $table->string('public_id', 191)->nullable()->index();
21
- $table->string('payload_uuid', 191)->nullable()->index('entities_payload_uuid_foreign');
22
- $table->string('company_uuid', 191)->nullable()->index();
23
- $table->string('driver_assigned_uuid', 191)->nullable()->index('entities_driver_assigned_uuid_foreign');
24
- $table->string('destination_uuid', 191)->nullable()->index();
21
+ $table->uuid('payload_uuid')->nullable()->index('entities_payload_uuid_foreign');
22
+ $table->uuid('company_uuid')->nullable()->index();
23
+ $table->uuid('driver_assigned_uuid')->nullable()->index('entities_driver_assigned_uuid_foreign');
24
+ $table->uuid('destination_uuid')->nullable()->index();
25
25
  $table->string('customer_uuid')->nullable();
26
26
  $table->string('customer_type')->nullable();
27
- $table->string('tracking_number_uuid', 191)->nullable()->index('entities_tracking_number_uuid_foreign');
27
+ $table->uuid('tracking_number_uuid')->nullable()->index('entities_tracking_number_uuid_foreign');
28
28
  $table->mediumText('photo_uuid')->nullable();
29
29
  $table->string('_import_id', 191)->nullable()->index();
30
30
  $table->string('internal_id', 191)->nullable()->index();
@@ -17,8 +17,8 @@ return new class extends Migration
17
17
  $table->increments('id');
18
18
  $table->string('_key')->nullable();
19
19
  $table->string('uuid', 191)->nullable()->index();
20
- $table->string('fleet_uuid', 191)->nullable()->index();
21
- $table->string('driver_uuid', 191)->nullable()->index();
20
+ $table->uuid('fleet_uuid')->nullable()->index();
21
+ $table->uuid('driver_uuid')->nullable()->index();
22
22
  $table->softDeletes();
23
23
  $table->timestamp('created_at')->nullable()->index();
24
24
  $table->timestamp('updated_at')->nullable();
@@ -18,9 +18,9 @@ return new class extends Migration
18
18
  $table->string('_key')->nullable();
19
19
  $table->string('uuid', 191)->nullable()->index();
20
20
  $table->string('public_id', 191)->nullable()->unique();
21
- $table->string('company_uuid', 191)->nullable()->index();
22
- $table->string('service_area_uuid', 191)->nullable()->index('fleets_service_area_uuid_foreign');
23
- $table->string('zone_uuid', 191)->nullable()->index('fleets_zone_uuid_foreign');
21
+ $table->uuid('company_uuid')->nullable()->index();
22
+ $table->uuid('service_area_uuid')->nullable()->index('fleets_service_area_uuid_foreign');
23
+ $table->uuid('zone_uuid')->nullable()->index('fleets_zone_uuid_foreign');
24
24
  $table->string('image_uuid')->nullable();
25
25
  $table->string('name')->nullable();
26
26
  $table->string('color')->nullable();
@@ -18,9 +18,9 @@ return new class extends Migration
18
18
  $table->string('_key')->nullable();
19
19
  $table->string('uuid', 191)->nullable()->index();
20
20
  $table->string('public_id', 191)->nullable()->unique();
21
- $table->string('company_uuid', 191)->nullable()->index();
22
- $table->string('driver_uuid', 191)->nullable()->index('fuel_reports_driver_uuid_foreign');
23
- $table->string('vehicle_uuid', 191)->nullable()->index('fuel_reports_vehicle_uuid_foreign');
21
+ $table->uuid('company_uuid')->nullable()->index();
22
+ $table->uuid('driver_uuid')->nullable()->index('fuel_reports_driver_uuid_foreign');
23
+ $table->uuid('vehicle_uuid')->nullable()->index('fuel_reports_vehicle_uuid_foreign');
24
24
  $table->string('odometer')->nullable();
25
25
  $table->point('location');
26
26
  $table->string('latitude')->nullable();