@fleetbase/fleetops-engine 0.3.2 → 0.3.3

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 (42) hide show
  1. package/addon/components/admin/visibility-controls.js +1 -0
  2. package/addon/components/layout/fleet-ops-sidebar.js +2 -1
  3. package/addon/components/live-map-drawer/driver-listing.hbs +6 -0
  4. package/addon/components/live-map-drawer/driver-listing.js +240 -0
  5. package/addon/components/live-map-drawer/place-listing.hbs +6 -0
  6. package/addon/components/live-map-drawer/place-listing.js +204 -0
  7. package/addon/components/live-map-drawer/vehicle-listing.hbs +6 -0
  8. package/addon/components/live-map-drawer/vehicle-listing.js +216 -0
  9. package/addon/components/live-map-drawer.hbs +17 -0
  10. package/addon/components/live-map-drawer.js +104 -0
  11. package/addon/components/live-map.hbs +5 -1
  12. package/addon/components/live-map.js +107 -15
  13. package/addon/components/map-container/toolbar.hbs +6 -0
  14. package/addon/components/modals/order-event.hbs +1 -1
  15. package/addon/components/order/schedule-card.hbs +4 -4
  16. package/addon/components/order/schedule-card.js +13 -6
  17. package/addon/components/place-panel/details.hbs +2 -2
  18. package/addon/controllers/operations/orders/index.js +29 -15
  19. package/addon/controllers/operations/scheduler/index.js +45 -30
  20. package/addon/routes/operations/scheduler/index.js +25 -0
  21. package/addon/styles/fleetops-engine.css +28 -0
  22. package/addon/templates/operations/orders/index.hbs +2 -2
  23. package/addon/templates/operations/scheduler/index.hbs +33 -9
  24. package/addon/utils/create-full-calendar-event-from-order.js +8 -0
  25. package/app/components/live-map-drawer/driver-listing.js +1 -0
  26. package/app/components/live-map-drawer/place-listing.js +1 -0
  27. package/app/components/live-map-drawer/vehicle-listing.js +1 -0
  28. package/app/components/live-map-drawer.js +1 -0
  29. package/app/utils/create-full-calendar-event-from-order.js +1 -0
  30. package/composer.json +1 -1
  31. package/extension.json +1 -1
  32. package/package.json +4 -4
  33. package/server/src/Models/FuelReport.php +1 -1
  34. package/server/src/Models/Order.php +22 -0
  35. package/server/src/Models/VehicleDevice.php +1 -1
  36. package/server/src/Models/VehicleDeviceEvent.php +1 -1
  37. package/server/src/Observers/FleetObserver.php +19 -0
  38. package/server/src/Providers/FleetOpsServiceProvider.php +1 -0
  39. package/addon/components/full-calendar/draggable.js +0 -1
  40. package/addon/components/full-calendar.js +0 -1
  41. package/app/components/full-calendar/draggable.js +0 -1
  42. package/app/components/full-calendar.js +0 -1
@@ -1,10 +1,18 @@
1
1
  <Layout::Section::Header @title="Scheduler" />
2
2
 
3
- {{!-- <div>
4
- <div class="p-6">
5
- <div class="grid grid-cols-3 gap-4">
6
- <div class="space-y-4">
7
- <ContentPanel @title="Unscheduled Orders" @titleStatuRight={{this.unscheduledOrders.length}} @titleStatuRightClass="info-status-badge" @hideStatusDot={{true}} @open={{this.unscheduledOrders.length}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
3
+ <Layout::Section::Body class="overflow-y-scroll h-screen">
4
+ <div class="h-screen">
5
+ <div class="grid grid-cols-1 lg:grid-cols-3">
6
+ <div class="scheduler-left-sidebar">
7
+ <ContentPanel
8
+ @title="Unscheduled Orders"
9
+ @titleStatuRight={{this.unscheduledOrders.length}}
10
+ @titleStatuRightClass="info-status-badge"
11
+ @hideStatusDot={{true}}
12
+ @open={{true}}
13
+ @pad={{true}}
14
+ @panelBodyClass="bg-white dark:bg-gray-900"
15
+ >
8
16
  <div class="space-y-4">
9
17
  {{#each this.unscheduledOrders as |order|}}
10
18
  <FullCalendar::Draggable @eventData={{json-hash id=order.id title=order.eventTitle allDay=true}}>
@@ -13,7 +21,15 @@
13
21
  {{/each}}
14
22
  </div>
15
23
  </ContentPanel>
16
- <ContentPanel @title="Scheduled Orders" @titleStatuRight={{this.scheduledOrders.length}} @titleStatusRightClass="info-status-badge" @hideStatusDot={{true}} @open={{this.scheduledOrders.length}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
24
+ <ContentPanel
25
+ @title="Scheduled Orders"
26
+ @titleStatuRight={{this.scheduledOrders.length}}
27
+ @titleStatusRightClass="info-status-badge"
28
+ @hideStatusDot={{true}}
29
+ @open={{true}}
30
+ @pad={{true}}
31
+ @panelBodyClass="bg-white dark:bg-gray-900"
32
+ >
17
33
  <div class="space-y-4">
18
34
  {{#each this.scheduledOrders as |order|}}
19
35
  <Order::ScheduleCard @order={{order}} @titleClass="cursor-pointer" @onTitleClick={{fn this.viewEvent order}} />
@@ -22,9 +38,17 @@
22
38
  </ContentPanel>
23
39
  </div>
24
40
 
25
- <div class="col-span-2">
26
- <FullCalendar @events={{this.events}} @onDrop={{this.scheduleEventFromDrop}} @onEventReceive={{this.receivedEvent}} @onEventDrop={{this.rescheduleEventFromDrag}} @onEventClick={{this.viewOrderAsEvent}} />
41
+ <div class="col-span-2 p-4">
42
+ <FullCalendar
43
+ @events={{this.events}}
44
+ @editable={{true}}
45
+ @onDrop={{this.scheduleEventFromDrop}}
46
+ @onEventReceive={{this.receivedEvent}}
47
+ @onEventDrop={{this.rescheduleEventFromDrag}}
48
+ @onEventClick={{this.viewOrderAsEvent}}
49
+ @onInit={{this.setCalendarApi}}
50
+ />
27
51
  </div>
28
52
  </div>
29
53
  </div>
30
- </div> --}}
54
+ </Layout::Section::Body>
@@ -0,0 +1,8 @@
1
+ export default function createFullCalendarEventFromOrder(order) {
2
+ return {
3
+ id: order.id,
4
+ title: `${order.scheduledAtTime} - ${order.public_id}`,
5
+ start: order.scheduled_at,
6
+ allDay: true,
7
+ };
8
+ }
@@ -0,0 +1 @@
1
+ export { default } from '@fleetbase/fleetops-engine/components/live-map-drawer/driver-listing';
@@ -0,0 +1 @@
1
+ export { default } from '@fleetbase/fleetops-engine/components/live-map-drawer/place-listing';
@@ -0,0 +1 @@
1
+ export { default } from '@fleetbase/fleetops-engine/components/live-map-drawer/vehicle-listing';
@@ -0,0 +1 @@
1
+ export { default } from '@fleetbase/fleetops-engine/components/live-map-drawer';
@@ -0,0 +1 @@
1
+ export { default } from '@fleetbase/fleetops-engine/utils/create-full-calendar-event-from-order';
package/composer.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fleetbase/fleetops-api",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
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.2",
3
+ "version": "0.3.3",
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.2",
3
+ "version": "0.3.3",
4
4
  "description": "Fleet & Transport Management Extension for Fleetbase",
5
5
  "fleetbase": {
6
6
  "route": "fleet-ops",
@@ -39,9 +39,9 @@
39
39
  "publish:github": "npm config set '@fleetbase:registry' https://npm.pkg.github.com/ && npm publish"
40
40
  },
41
41
  "dependencies": {
42
- "@fleetbase/ember-core": "^0.1.6",
43
- "@fleetbase/ember-ui": "^0.2.3",
44
- "@fleetbase/fleetops-data": "^0.1.2",
42
+ "@fleetbase/ember-core": "^0.1.7",
43
+ "@fleetbase/ember-ui": "^0.2.4",
44
+ "@fleetbase/fleetops-data": "^0.1.3",
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",
@@ -99,7 +99,7 @@ class FuelReport extends Model
99
99
  *
100
100
  * @var array
101
101
  */
102
- protected $filterParams = ['type', 'reporter'];
102
+ protected $filterParams = ['type', 'status', 'reporter'];
103
103
 
104
104
  /**
105
105
  * Set the parcel fee as only numbers.
@@ -947,6 +947,28 @@ class Order extends Model
947
947
  $this->customer_type = Utils::getModelClassName($model);
948
948
  }
949
949
 
950
+ public function setCustomerTypeAttribute($type)
951
+ {
952
+ if (is_string($type)) {
953
+ if ($type === 'customer' || $type === 'vendor' || !Str::startsWith($type, 'fleet-ops')) {
954
+ $type = 'fleet-ops:' . $type;
955
+ }
956
+
957
+ $this->attributes['customer_type'] = Utils::getMutationType($type);
958
+ }
959
+ }
960
+
961
+ public function setFacilitatorTypeAttribute($type)
962
+ {
963
+ if (is_string($type)) {
964
+ if ($type === 'customer' || $type === 'vendor' || !Str::startsWith($type, 'fleet-ops')) {
965
+ $type = 'fleet-ops:' . $type;
966
+ }
967
+
968
+ $this->attributes['facilitator_type'] = Utils::getMutationType($type);
969
+ }
970
+ }
971
+
950
972
  public function setDriverLocationAsPickup($force = false)
951
973
  {
952
974
  if ($force === true) {
@@ -82,7 +82,7 @@ class VehicleDevice extends Model
82
82
  */
83
83
  public function vehicle()
84
84
  {
85
- return $this->belongsTo(Vehicle::class);
85
+ return $this->belongsTo(Vehicle::class)->without(['events']);
86
86
  }
87
87
 
88
88
  /**
@@ -89,6 +89,6 @@ class VehicleDeviceEvent extends Model
89
89
  */
90
90
  public function device()
91
91
  {
92
- return $this->belongsTo(VehicleDevice::class);
92
+ return $this->belongsTo(VehicleDevice::class, 'vehicle_device_uuid');
93
93
  }
94
94
  }
@@ -0,0 +1,19 @@
1
+ <?php
2
+
3
+ namespace Fleetbase\FleetOps\Observers;
4
+
5
+ use Fleetbase\FleetOps\Models\Fleet;
6
+
7
+ class FleetObserver
8
+ {
9
+ /**
10
+ * Handle the Driver "deleted" event.
11
+ *
12
+ * @return void
13
+ */
14
+ public function deleted(Fleet $fleet)
15
+ {
16
+ // If the fleet being deleted is set as parent fleet, remove it as the parent fleet
17
+ $subFleets = Fleet::where(['parent_fleet_uuid' => $fleet->uuid])->update(['parent_fleet_uuid' => null]);
18
+ }
19
+ }
@@ -31,6 +31,7 @@ class FleetOpsServiceProvider extends CoreServiceProvider
31
31
  \Fleetbase\FleetOps\Models\TrackingNumber::class => \Fleetbase\FleetOps\Observers\TrackingNumberObserver::class,
32
32
  \Fleetbase\FleetOps\Models\Driver::class => \Fleetbase\FleetOps\Observers\DriverObserver::class,
33
33
  \Fleetbase\FleetOps\Models\Vehicle::class => \Fleetbase\FleetOps\Observers\VehicleObserver::class,
34
+ \Fleetbase\FleetOps\Models\Fleet::class => \Fleetbase\FleetOps\Observers\FleetObserver::class,
34
35
  \Fleetbase\Models\User::class => \Fleetbase\FleetOps\Observers\UserObserver::class,
35
36
  ];
36
37
 
@@ -1 +0,0 @@
1
- export { default } from '@fleetbase/console/components/full-calendar/draggable';
@@ -1 +0,0 @@
1
- export { default } from '@fleetbase/console/components/full-calendar';
@@ -1 +0,0 @@
1
- export { default } from '@fleetbase/fleetops-engine/components/full-calendar/draggable';
@@ -1 +0,0 @@
1
- export { default } from '@fleetbase/fleetops-engine/components/full-calendar';