Skip to content

Commit d9503fd

Browse files
authored
Merge pull request #160 from fleetbase/dev-v0.6.12
v0.6.12 ~ added ability to resolve payload values from shortcut when resolving …
2 parents 7c8e382 + ec29553 commit d9503fd

15 files changed

Lines changed: 148 additions & 76 deletions

File tree

addon/components/leaflet-tracking-marker.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
import MarkerLayer from 'ember-leaflet/components/marker-layer';
22
import { isArray } from '@ember/array';
33

4+
const __draggingHotfix = (layer) => {
5+
if (!layer.dragging) {
6+
layer.dragging = {
7+
enabled: () => false,
8+
enable: () => (layer.options.draggable = true),
9+
disable: () => (layer.options.draggable = false),
10+
};
11+
}
12+
};
13+
414
const arrayFromLatLng = (latlng) => {
515
if (isArray(latlng)) {
616
return latlng;
@@ -52,6 +62,7 @@ L.TrackingMarker = L.Marker.extend({
5262
this._slideKeepAtCenter = false;
5363
this._slideDraggingWasAllowed = false;
5464
this._slideFrame = 0;
65+
__draggingHotfix(this);
5566
},
5667

5768
slideTo: function (latlng, options = {}) {
@@ -69,6 +80,7 @@ L.TrackingMarker = L.Marker.extend({
6980
this._nextPosition = arrayFromLatLng(latlng);
7081
this._slideKeepAtCenter = !!options.keepAtCenter;
7182
this._slideDraggingWasAllowed = this._slideDraggingWasAllowed !== undefined ? this._slideDraggingWasAllowed : this._map.dragging.enabled();
83+
__draggingHotfix(this);
7284

7385
if (this._slideKeepAtCenter) {
7486
this._map.dragging.disable();
@@ -245,6 +257,13 @@ export default class LeafletTrackingMarkerComponent extends MarkerLayer {
245257
*/
246258
rotationAngle = 0;
247259

260+
/**
261+
* Default value for the draggable prop.
262+
*
263+
* @memberof LeafletTrackingMarkerComponent
264+
*/
265+
draggable = false;
266+
248267
getOption(key, defaultValue = null) {
249268
const value = this.options[key] ?? this[key];
250269
if (value === undefined) {

addon/components/live-map.hbs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
@icon={{icon iconUrl=driver.vehicle_avatar iconSize=(array 24 24)}}
3939
@onAdd={{fn this.triggerAction "onDriverAdded" driver}}
4040
@onClick={{fn this.triggerAction "onDriverClicked" driver}}
41+
@draggable={{false}}
4142
as |marker|
4243
>
4344
<marker.popup @maxWidth="500" @minWidth="225">
@@ -77,6 +78,7 @@
7778
@icon={{icon iconUrl=driver.vehicle_avatar iconSize=(array 24 24)}}
7879
@onAdd={{fn this.triggerAction "onDriverAdded" driver}}
7980
@onClick={{fn this.triggerAction "onDriverClicked" driver}}
81+
@draggable={{false}}
8082
as |marker|
8183
>
8284
<marker.popup @maxWidth="500" @minWidth="225">
@@ -114,6 +116,7 @@
114116
@icon={{icon iconUrl=vehicle.avatar_url iconSize=(array 24 24)}}
115117
@onAdd={{fn this.triggerAction "onVehicleAdded" vehicle}}
116118
@onClick={{fn this.triggerAction "onVehicleClicked" vehicle}}
119+
@draggable={{false}}
117120
as |marker|
118121
>
119122
<marker.popup @permanent={{false}} @sticky={{true}}>
@@ -150,6 +153,7 @@
150153
@icon={{icon iconUrl=vehicle.avatar_url iconSize=(array 24 24)}}
151154
@onAdd={{fn this.triggerAction "onVehicleAdded" vehicle}}
152155
@onClick={{fn this.triggerAction "onVehicleClicked" vehicle}}
156+
@draggable={{false}}
153157
as |marker|
154158
>
155159
<marker.popup @permanent={{false}} @sticky={{true}}>
@@ -189,6 +193,7 @@
189193
@alt={{place.address}}
190194
@onAdd={{fn this.triggerAction "onPlaceAdded" place}}
191195
@onClick={{fn this.triggerAction "onPlaceClicked" place}}
196+
@draggable={{false}}
192197
as |marker|
193198
>
194199
<marker.popup>

addon/controllers/operations/orders/index/new.js

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -677,7 +677,7 @@ export default class OperationsOrdersIndexNewController extends BaseController {
677677

678678
@action resetInterface() {
679679
if (this.leafletMap && this.leafletMap.liveMap) {
680-
this.leafletMap.liveMap.show(['drivers', 'vehicles', 'routes']);
680+
this.leafletMap.liveMap.showAll();
681681
}
682682
}
683683

@@ -709,31 +709,35 @@ export default class OperationsOrdersIndexNewController extends BaseController {
709709
}
710710

711711
@action removeRoutingControlPreview() {
712-
const leafletMap = this.leafletMap;
713-
const previewRouteControl = this.previewRouteControl;
712+
return new Promise((resolve) => {
713+
const leafletMap = this.leafletMap;
714+
const previewRouteControl = this.previewRouteControl;
714715

715-
let removed = false;
716+
let removed = false;
716717

717-
if (leafletMap && previewRouteControl instanceof RoutingControl) {
718-
try {
719-
previewRouteControl.remove();
720-
removed = true;
721-
} catch (e) {
722-
// silent
723-
}
724-
725-
if (!removed) {
718+
if (leafletMap && previewRouteControl instanceof RoutingControl) {
726719
try {
727-
leafletMap.removeControl(previewRouteControl);
720+
previewRouteControl.remove();
721+
removed = true;
728722
} catch (e) {
729723
// silent
730724
}
725+
726+
if (!removed) {
727+
try {
728+
leafletMap.removeControl(previewRouteControl);
729+
} catch (e) {
730+
// silent
731+
}
732+
}
731733
}
732-
}
733734

734-
if (!removed) {
735-
this.forceRemoveRoutePreview();
736-
}
735+
if (!removed) {
736+
this.forceRemoveRoutePreview();
737+
}
738+
739+
resolve(true);
740+
});
737741
}
738742

739743
@action forceRemoveRoutePreview() {
@@ -1060,7 +1064,7 @@ export default class OperationsOrdersIndexNewController extends BaseController {
10601064
}
10611065
}
10621066

1063-
@action resetForm() {
1067+
@action async resetForm() {
10641068
const order = this.store.createRecord('order', { meta: [] });
10651069
const payload = this.store.createRecord('payload');
10661070
const driversQuery = {};
@@ -1080,8 +1084,6 @@ export default class OperationsOrdersIndexNewController extends BaseController {
10801084
const customFields = [];
10811085
const customFieldValues = {};
10821086

1083-
this.removeRoutingControlPreview();
1084-
this.removeOptimizedRoute();
10851087
this.setProperties({
10861088
order,
10871089
payload,
@@ -1102,6 +1104,9 @@ export default class OperationsOrdersIndexNewController extends BaseController {
11021104
customFields,
11031105
customFieldValues,
11041106
});
1107+
1108+
await this.removeRoutingControlPreview();
1109+
this.removeOptimizedRoute();
11051110
this.resetInterface();
11061111
}
11071112

addon/controllers/operations/orders/index/view.js

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -243,39 +243,41 @@ export default class OperationsOrdersIndexViewController extends BaseController
243243
this.customFieldGroups = customFieldGroups;
244244
}
245245

246-
@action resetView() {
247-
this.removeRoutingControlPreview();
246+
@action async resetView() {
247+
await this.removeRoutingControlPreview();
248248
this.resetInterface();
249249
}
250250

251251
@action resetInterface() {
252-
const liveMap = this.leafletMap ? this.leafletMap.liveMap : null;
253-
if (liveMap) {
254-
liveMap.reload();
255-
liveMap.showAll();
252+
if (this.leafletMap && this.leafletMap.liveMap) {
253+
this.leafletMap.liveMap.showAll();
254+
this.leafletMap.liveMap.reload();
256255
}
257256
}
258257

259258
@action removeRoutingControlPreview() {
260-
const { leafletMap, routeControl } = this;
259+
return new Promise((resolve) => {
260+
const { leafletMap, routeControl } = this;
261261

262-
if (routeControl instanceof RoutingControl) {
263-
try {
264-
routeControl.remove();
265-
} catch (e) {
266-
// silent
262+
if (routeControl instanceof RoutingControl) {
263+
try {
264+
routeControl.remove();
265+
} catch (e) {
266+
// silent
267+
}
267268
}
268-
}
269269

270-
if (leafletMap instanceof L.Map) {
271-
try {
272-
leafletMap.removeControl(routeControl);
273-
} catch (e) {
274-
// silent
270+
if (leafletMap instanceof L.Map) {
271+
try {
272+
leafletMap.removeControl(routeControl);
273+
} catch (e) {
274+
// silent
275+
}
275276
}
276-
}
277277

278-
this.forceRemoveRoutePreview();
278+
this.forceRemoveRoutePreview();
279+
resolve(true);
280+
});
279281
}
280282

281283
@action forceRemoveRoutePreview() {

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "fleetbase/fleetops-api",
3-
"version": "0.6.11",
3+
"version": "0.6.12",
44
"description": "Fleet & Transport Management Extension for Fleetbase",
55
"keywords": [
66
"fleetbase-extension",

extension.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "Fleet-Ops",
3-
"version": "0.6.11",
3+
"version": "0.6.12",
44
"description": "Fleet & Transport Management Extension for Fleetbase",
55
"repository": "https://github.com/fleetbase/fleetops",
66
"license": "AGPL-3.0-or-later",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@fleetbase/fleetops-engine",
3-
"version": "0.6.11",
3+
"version": "0.6.12",
44
"description": "Fleet & Transport Management Extension for Fleetbase",
55
"fleetbase": {
66
"route": "fleet-ops"

server/src/Console/Commands/DebugOrderTracker.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ class DebugOrderTracker extends Command
2929
*/
3030
public function handle()
3131
{
32-
$order = Order::where('public_id', 'order_n227274')->first();
33-
if ($order) {
34-
$tracker = new OrderTracker($order);
35-
dd($tracker->getOrderProgressPercentage());
36-
}
32+
// $order = Order::where('public_id', 'order_n227274')->first();
33+
// if ($order) {
34+
// $tracker = new OrderTracker($order);
35+
// dd($tracker->getOrderProgressPercentage());
36+
// }
3737

3838
return Command::SUCCESS;
3939
}

server/src/Http/Controllers/Api/v1/ServiceAreaController.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,9 @@ public function create(CreateServiceAreaRequest $request)
6666
try {
6767
$serviceArea = ServiceArea::create($input);
6868
} catch (\Throwable $e) {
69-
dd($e->getMessage());
69+
logger()->error('Unable to create service area.', ['error' => $e->getMessage()]);
70+
71+
return response()->apiError('Failed to create service area.');
7072
}
7173

7274
// response the driver resource

server/src/Http/Controllers/Internal/v1/OrderController.php

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -167,25 +167,28 @@ function (&$request, Order &$order, &$requestInput) {
167167
);
168168
}
169169

170-
// notify driver if assigned
171-
$order->notifyDriverAssigned();
170+
// Run background processes on queue
171+
dispatch(function () use ($order, $serviceQuote): void {
172+
// notify driver if assigned
173+
$order->notifyDriverAssigned();
172174

173-
// set driving distance and time
174-
$order->setPreliminaryDistanceAndTime();
175+
// set driving distance and time
176+
$order->setPreliminaryDistanceAndTime();
175177

176-
// if service quote attached purchase
177-
$order->purchaseServiceQuote($serviceQuote);
178+
// if service quote attached purchase
179+
$order->purchaseServiceQuote($serviceQuote);
178180

179-
// dispatch if flagged true
180-
$order->firstDispatchWithActivity();
181+
// dispatch if flagged true
182+
$order->firstDispatchWithActivity();
181183

182-
// load tracking number
183-
$order->load(['trackingNumber']);
184+
// Trigger order created event
185+
event(new OrderReady($order));
186+
})->afterCommit();
184187
}
185188
);
186189

187-
// Trigger order created event
188-
event(new OrderReady($record));
190+
// Reload payload and tracking number
191+
$record->load(['payload', 'trackingNumber']);
189192

190193
return ['order' => new $this->resource($record)];
191194
} catch (\Exception $e) {

0 commit comments

Comments
 (0)