@fleetbase/fleetops-engine 0.4.18 → 0.4.20

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 (84) hide show
  1. package/addon/components/activity-event-selector.js +1 -1
  2. package/addon/components/activity-form-panel.hbs +19 -0
  3. package/addon/components/activity-form-panel.js +20 -2
  4. package/addon/components/activity-logic-builder.js +1 -1
  5. package/addon/components/admin/navigator-app.hbs +77 -1
  6. package/addon/components/admin/navigator-app.js +65 -12
  7. package/addon/components/contact-form-panel.js +2 -2
  8. package/addon/components/contact-panel.js +2 -2
  9. package/addon/components/custom-field-form-panel.js +2 -2
  10. package/addon/components/driver-form-panel.js +2 -2
  11. package/addon/components/driver-panel.js +2 -2
  12. package/addon/components/edit-order-route-panel.js +2 -2
  13. package/addon/components/fleet-form-panel.js +2 -2
  14. package/addon/components/fleet-panel/driver-listing.js +1 -1
  15. package/addon/components/fleet-panel/vehicle-listing.js +1 -1
  16. package/addon/components/fleet-panel.js +2 -2
  17. package/addon/components/fuel-report-form-panel.js +2 -2
  18. package/addon/components/fuel-report-panel.js +2 -2
  19. package/addon/components/issue-form-panel.js +2 -2
  20. package/addon/components/issue-panel.js +2 -2
  21. package/addon/components/live-map-drawer.js +2 -2
  22. package/addon/components/live-map.js +14 -7
  23. package/addon/components/order-config-manager/activity-flow.js +1 -1
  24. package/addon/components/order-config-manager/custom-fields.js +1 -1
  25. package/addon/components/order-config-manager/entities.js +1 -1
  26. package/addon/components/order-config-manager-overlay.js +1 -1
  27. package/addon/components/order-config-manager.js +2 -2
  28. package/addon/components/place-form-panel.js +2 -2
  29. package/addon/components/place-panel.js +2 -2
  30. package/addon/components/vehicle-form-panel.js +2 -2
  31. package/addon/components/vehicle-panel.js +2 -2
  32. package/addon/components/vendor-form-panel/create-form.js +1 -1
  33. package/addon/components/vendor-form-panel.js +2 -2
  34. package/addon/components/vendor-panel.js +2 -2
  35. package/addon/controllers/operations/orders/index/new.js +5 -0
  36. package/addon/controllers/operations/service-rates/index/new.js +23 -2
  37. package/addon/routes/operations/service-rates/index/edit.js +14 -5
  38. package/addon/routes/operations/service-rates/index/new.js +2 -6
  39. package/addon/services/location.js +54 -44
  40. package/addon/templates/operations/service-rates/index/new.hbs +10 -1
  41. package/composer.json +2 -2
  42. package/extension.json +1 -1
  43. package/package.json +3 -3
  44. package/server/config/fleetops.php +127 -4
  45. package/server/migrations/2024_03_13_061249_add_order_config_uuid_column_to_service_rates_table.php +28 -0
  46. package/server/src/Console/Commands/FixLegacyOrderConfigs.php +17 -11
  47. package/server/src/Http/Controllers/Api/v1/DriverController.php +0 -1
  48. package/server/src/Http/Controllers/Api/v1/OrderController.php +49 -2
  49. package/server/src/Http/Controllers/Api/v1/ServiceQuoteController.php +10 -5
  50. package/server/src/Http/Controllers/Internal/v1/ServiceRateController.php +3 -0
  51. package/server/src/Http/Controllers/Internal/v1/SettingController.php +20 -0
  52. package/server/src/Http/Filter/ContactFilter.php +5 -0
  53. package/server/src/Http/Filter/DriverFilter.php +5 -0
  54. package/server/src/Http/Filter/EntityFilter.php +18 -0
  55. package/server/src/Http/Filter/FleetFilter.php +5 -0
  56. package/server/src/Http/Filter/FuelReportFilter.php +5 -0
  57. package/server/src/Http/Filter/IssueFilter.php +5 -0
  58. package/server/src/Http/Filter/OrderConfigFilter.php +5 -0
  59. package/server/src/Http/Filter/OrderFilter.php +5 -0
  60. package/server/src/Http/Filter/PayloadFilter.php +18 -0
  61. package/server/src/Http/Filter/PlaceFilter.php +5 -0
  62. package/server/src/Http/Filter/PurchaseRateFilter.php +18 -0
  63. package/server/src/Http/Filter/ServiceAreaFilter.php +5 -0
  64. package/server/src/Http/Filter/ServiceQuoteFilter.php +5 -0
  65. package/server/src/Http/Filter/ServiceRateFilter.php +5 -0
  66. package/server/src/Http/Filter/TrackingNumberFilter.php +18 -0
  67. package/server/src/Http/Filter/TrackingStatusFilter.php +5 -0
  68. package/server/src/Http/Filter/VehicleFilter.php +5 -0
  69. package/server/src/Http/Filter/VendorFilter.php +5 -0
  70. package/server/src/Http/Filter/ZoneFilter.php +5 -0
  71. package/server/src/Http/Requests/CreateOrderRequest.php +32 -13
  72. package/server/src/Http/Requests/Internal/CreateOrderRequest.php +41 -10
  73. package/server/src/Http/Resources/v1/Order.php +1 -0
  74. package/server/src/Http/Resources/v1/ServiceRate.php +34 -31
  75. package/server/src/Models/Driver.php +1 -1
  76. package/server/src/Models/ServiceRate.php +9 -0
  77. package/server/src/Providers/FleetOpsServiceProvider.php +3 -3
  78. package/server/src/Support/Utils.php +40 -14
  79. package/server/src/routes.php +3 -0
  80. package/translations/en-us.yaml +9 -1
  81. package/addon/utils/apply-context-component-arguments.js +0 -33
  82. package/addon/utils/context-component-callback.js +0 -16
  83. package/app/utils/apply-context-component-arguments.js +0 -1
  84. package/app/utils/context-component-callback.js +0 -1
@@ -633,13 +633,26 @@ class Utils extends FleetbaseUtils
633
633
  ]
634
634
  );
635
635
  } else {
636
- $point = static::getPointFromMixed($origin);
637
- $origin = static::createObject(
638
- [
639
- 'latitude' => $point->getLat(),
640
- 'longitude' => $point->getLng(),
641
- ]
642
- );
636
+ try {
637
+ $point = static::getPointFromMixed($origin);
638
+ $origin = static::createObject(
639
+ [
640
+ 'latitude' => $point->getLat(),
641
+ 'longitude' => $point->getLng(),
642
+ ]
643
+ );
644
+ } catch (\Throwable $e) {
645
+ if (app()->bound('sentry')) {
646
+ app('sentry')->captureException($e);
647
+ }
648
+ // create dummy $origin
649
+ $origin = static::createObject(
650
+ [
651
+ 'latitude' => 0,
652
+ 'longitude' => 0,
653
+ ]
654
+ );
655
+ }
643
656
  }
644
657
 
645
658
  if ($destination instanceof \Fleetbase\FleetOps\Models\Place) {
@@ -650,13 +663,26 @@ class Utils extends FleetbaseUtils
650
663
  ]
651
664
  );
652
665
  } else {
653
- $point = static::getPointFromMixed($destination);
654
- $destination = static::createObject(
655
- [
656
- 'latitude' => $point->getLat(),
657
- 'longitude' => $point->getLng(),
658
- ]
659
- );
666
+ try {
667
+ $point = static::getPointFromMixed($destination);
668
+ $destination = static::createObject(
669
+ [
670
+ 'latitude' => $point->getLat(),
671
+ 'longitude' => $point->getLng(),
672
+ ]
673
+ );
674
+ } catch (\Throwable $e) {
675
+ if (app()->bound('sentry')) {
676
+ app('sentry')->captureException($e);
677
+ }
678
+ // create dummy $destination
679
+ $destination = static::createObject(
680
+ [
681
+ 'latitude' => 0,
682
+ 'longitude' => 0,
683
+ ]
684
+ );
685
+ }
660
686
  }
661
687
 
662
688
  $cacheKey = $origin->latitude . ':' . $origin->longitude . ':' . $destination->latitude . ':' . $destination->longitude;
@@ -84,6 +84,7 @@ Route::prefix(config('fleetops.api.routing.prefix', null))->namespace('Fleetbase
84
84
  $router->post('{id}/capture-photo/{subjectId?}', 'OrderController@capturePhoto');
85
85
  $router->put('{id}', 'OrderController@update');
86
86
  $router->delete('{id}', 'OrderController@delete');
87
+ $router->get('{id}/editable-entity-fields', 'OrderController@getEditableEntityFields');
87
88
  });
88
89
  // entities routes
89
90
  $router->group(['prefix' => 'entities'], function () use ($router) {
@@ -435,6 +436,8 @@ Route::prefix(config('fleetops.api.routing.prefix', null))->namespace('Fleetbase
435
436
  function ($router) {
436
437
  $router->get('visibility', 'SettingController@getVisibilitySettings');
437
438
  $router->post('visibility', 'SettingController@saveVisibilitySettings');
439
+ $router->get('entity-editing-settings', 'SettingController@getEntityEditingSettings');
440
+ $router->post('entity-editing-settings', 'SettingController@saveEntityEditingSettings');
438
441
  }
439
442
  );
440
443
  $router->group(
@@ -139,6 +139,11 @@ fleet-ops:
139
139
  code: Code
140
140
  status: Status
141
141
  details: Details
142
+ proof-of-delivery: Proof of Delivery
143
+ require-pod: Requires Proof of Delivery
144
+ require-pod-help-text: This activity requires a proof to be created before it can be applied to the order.
145
+ select-pod-method: Proof of Delivery Method
146
+ pod-method-placeholder: Select Proof of Delivery Method
142
147
  completes-order: Completes Order
143
148
  complete: Complete
144
149
  key-help: "Enter a key used for programmatic decision-making. This key can represent one or several activities with the same identifier. Note: This key is not required to be unique."
@@ -231,6 +236,9 @@ fleet-ops:
231
236
  title: Navigator App
232
237
  name: Instance Linking URL
233
238
  message: Use this URL to link the official Navigator app to this {companyName} instance. Opening this URL on a mobile device will open the Navigator app and update it's configuration and branding.
239
+ settings: Entity Settings
240
+ select-input: Allow driver to update entity details
241
+
234
242
  visibility-controls:
235
243
  title: Visibility Controls
236
244
  message: Visibility controls allow you to disable sections of Fleet-Ops. Toggle the checkbox to enable or disable sections to hide in Fleet-ops.
@@ -1406,7 +1414,7 @@ fleet-ops:
1406
1414
  service-name: Service Name
1407
1415
  service-name-help-text: Display name for this service.
1408
1416
  service-order-label: Service Order Type
1409
- service-order-help-text: Restrict this service rate to an explicit `order type`.
1417
+ service-order-help-text: Select an order configuration to which this service rate will be exclusively applied. This ensures that only orders created with the selected order configuration can utilize this specific service rate.
1410
1418
  service-order-placeholder: Select order type to restrict service to
1411
1419
  base-fee-label: Base Fee
1412
1420
  base-fee-help-text: Set a base fee which represents the minimum cost for this serice.
@@ -1,33 +0,0 @@
1
- import getModelName from '@fleetbase/ember-core/utils/get-model-name';
2
- import isModel from '@fleetbase/ember-core/utils/is-model';
3
- import { camelize } from '@ember/string';
4
-
5
- /**
6
- * Applies context and dynamic arguments to a given component.
7
- *
8
- * @param {Component} component - The component to which context and arguments will be applied.
9
- */
10
- export default function applyContextComponentArguments(component) {
11
- const { context, dynamicArgs = {} } = component.args;
12
-
13
- // Apply context model if available
14
- if (context && isModel(context)) {
15
- const contextModelName = camelize(getModelName(context));
16
- if (contextModelName) {
17
- component[contextModelName] = context;
18
- }
19
- }
20
-
21
- // Execute any apply callback present in dynamic arguments
22
- const { applyCallback } = dynamicArgs;
23
- if (typeof applyCallback === 'function') {
24
- applyCallback(component);
25
- }
26
-
27
- // Apply other dynamic arguments to the component
28
- for (const [key, value] of Object.entries(dynamicArgs)) {
29
- if (key !== 'applyCallback') {
30
- component[key] = value;
31
- }
32
- }
33
- }
@@ -1,16 +0,0 @@
1
- export default function contextComponentCallback(component, name, ...params) {
2
- let callbackInvoked = false;
3
-
4
- if (typeof component.args[name] === 'function') {
5
- component.args[name](...params);
6
- callbackInvoked = true;
7
- }
8
-
9
- // now do for context options
10
- if (typeof component.args.options === 'object' && typeof component.args.options[name] === 'function') {
11
- component.args.options[name](...params);
12
- callbackInvoked = true;
13
- }
14
-
15
- return callbackInvoked;
16
- }
@@ -1 +0,0 @@
1
- export { default } from '@fleetbase/fleetops-engine/utils/apply-context-component-arguments';
@@ -1 +0,0 @@
1
- export { default } from '@fleetbase/fleetops-engine/utils/context-component-callback';