@fleetbase/fleetops-engine 0.4.0 → 0.4.1
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.
- package/addon/components/admin/navigator-app.hbs +3 -3
- package/addon/components/admin/visibility-controls.hbs +4 -4
- package/addon/components/cell/driver-name.hbs +1 -1
- package/addon/components/contact-form-panel.hbs +15 -15
- package/addon/components/contact-form-panel.js +5 -1
- package/addon/components/contact-panel/details.hbs +7 -7
- package/addon/components/contact-panel.hbs +2 -2
- package/addon/components/display-place.hbs +2 -2
- package/addon/components/driver-card.hbs +1 -1
- package/addon/components/driver-form-panel.hbs +36 -29
- package/addon/components/driver-form-panel.js +5 -1
- package/addon/components/driver-panel/details.hbs +10 -10
- package/addon/components/driver-panel.hbs +5 -5
- package/addon/components/fleet-driver-listing.hbs +5 -5
- package/addon/components/fleet-form-panel.hbs +16 -16
- package/addon/components/fleet-form-panel.js +5 -1
- package/addon/components/fleet-panel/details.hbs +7 -7
- package/addon/components/fleet-panel/driver-listing.hbs +5 -5
- package/addon/components/fleet-panel/driver-listing.js +6 -0
- package/addon/components/fleet-panel/vehicle-listing.hbs +5 -5
- package/addon/components/fleet-panel/vehicle-listing.js +6 -0
- package/addon/components/fleet-vehicle-listing.hbs +5 -5
- package/addon/components/fuel-report-form-panel.hbs +16 -16
- package/addon/components/fuel-report-form-panel.js +5 -1
- package/addon/components/fuel-report-panel/details.hbs +11 -11
- package/addon/components/fuel-report-panel.hbs +3 -3
- package/addon/components/global-search.hbs +1 -1
- package/addon/components/horizontal-route.hbs +1 -1
- package/addon/components/integrated-order-details.hbs +13 -13
- package/addon/components/issue-form-panel.hbs +25 -25
- package/addon/components/issue-form-panel.js +6 -1
- package/addon/components/issue-panel/details.hbs +11 -11
- package/addon/components/issue-panel.hbs +3 -3
- package/addon/components/layout/fleet-ops-sidebar.hbs +2 -2
- package/addon/components/layout/fleet-ops-sidebar.js +28 -12
- package/addon/components/live-map-drawer/driver-listing.hbs +1 -1
- package/addon/components/live-map-drawer/driver-listing.js +16 -10
- package/addon/components/live-map-drawer/place-listing.hbs +1 -1
- package/addon/components/live-map-drawer/place-listing.js +12 -7
- package/addon/components/live-map-drawer/vehicle-listing.hbs +1 -1
- package/addon/components/live-map-drawer/vehicle-listing.js +15 -9
- package/addon/components/live-map.hbs +10 -92
- package/addon/components/live-map.js +29 -24
- package/addon/components/map-container/toolbar/visibility-control-panel.hbs +9 -9
- package/addon/components/map-container/toolbar/zones-panel.hbs +10 -10
- package/addon/components/map-container/toolbar.hbs +6 -6
- package/addon/components/modals/assign-driver.hbs +2 -2
- package/addon/components/modals/clone-config-form.hbs +2 -2
- package/addon/components/modals/contact-details.hbs +6 -6
- package/addon/components/modals/contact-form.hbs +11 -11
- package/addon/components/modals/driver-assign-order.hbs +2 -2
- package/addon/components/modals/driver-assign-vehicle.hbs +2 -2
- package/addon/components/modals/driver-assign-vendor.hbs +2 -2
- package/addon/components/modals/driver-details.hbs +14 -14
- package/addon/components/modals/driver-form.hbs +18 -18
- package/addon/components/modals/edit-meta-form.hbs +2 -2
- package/addon/components/modals/entity-form.hbs +16 -16
- package/addon/components/modals/entity-meta-field-prompt.hbs +1 -1
- package/addon/components/modals/fleet-details.hbs +6 -6
- package/addon/components/modals/fleet-form.hbs +8 -8
- package/addon/components/modals/fuel-report-details.hbs +9 -9
- package/addon/components/modals/fuel-report-form.hbs +8 -8
- package/addon/components/modals/group-details.hbs +4 -4
- package/addon/components/modals/group-form.hbs +6 -6
- package/addon/components/modals/install-prompt.hbs +2 -3
- package/addon/components/modals/issue-details.hbs +8 -8
- package/addon/components/modals/issue-from.hbs +21 -21
- package/addon/components/modals/map-field-form.hbs +2 -2
- package/addon/components/modals/map-field-group-form.hbs +1 -1
- package/addon/components/modals/map-layer-form.hbs +10 -10
- package/addon/components/modals/meta-field-form.hbs +2 -2
- package/addon/components/modals/meta-field-group-form.hbs +1 -1
- package/addon/components/modals/new-order-config.hbs +4 -4
- package/addon/components/modals/order-assign-driver.hbs +2 -2
- package/addon/components/modals/order-config-new-status.hbs +1 -1
- package/addon/components/modals/order-event.hbs +2 -2
- package/addon/components/modals/order-form.hbs +8 -8
- package/addon/components/modals/order-import.hbs +8 -8
- package/addon/components/modals/order-label.hbs +1 -1
- package/addon/components/modals/order-new-activity.hbs +10 -10
- package/addon/components/modals/order-route-form.hbs +17 -17
- package/addon/components/modals/place-assign-vendor.hbs +2 -2
- package/addon/components/modals/place-details.hbs +13 -13
- package/addon/components/modals/place-form.hbs +15 -15
- package/addon/components/modals/policy-form.hbs +5 -5
- package/addon/components/modals/role-form.hbs +3 -3
- package/addon/components/modals/select-payment-method.hbs +1 -1
- package/addon/components/modals/service-area-form.hbs +8 -8
- package/addon/components/modals/set-password.hbs +3 -3
- package/addon/components/modals/uninstall-prompt.hbs +2 -3
- package/addon/components/modals/user-form.hbs +9 -9
- package/addon/components/modals/vehicle-details.hbs +41 -41
- package/addon/components/modals/vehicle-form.hbs +73 -73
- package/addon/components/modals/vendor-details.hbs +10 -10
- package/addon/components/modals/vendor-form.hbs +36 -36
- package/addon/components/modals/view-service-area.hbs +1 -1
- package/addon/components/modals/zone-form.hbs +6 -6
- package/addon/components/order/header.hbs +11 -11
- package/addon/components/order/place-card.hbs +2 -2
- package/addon/components/order/schedule-card.hbs +6 -6
- package/addon/components/order/schedule-card.js +11 -7
- package/addon/components/order-config/activity-flow-editor.hbs +14 -14
- package/addon/components/order-config/activity-flow-editor.js +11 -11
- package/addon/components/order-config/details-editor.hbs +9 -9
- package/addon/components/order-config/entities-editor.hbs +13 -13
- package/addon/components/order-config/entities-editor.js +2 -2
- package/addon/components/order-config/fields-editor.hbs +14 -14
- package/addon/components/order-config/fields-editor.js +13 -12
- package/addon/components/order-config.hbs +9 -9
- package/addon/components/order-config.js +12 -11
- package/addon/components/order-list-overlay.hbs +14 -14
- package/addon/components/place-form-panel.hbs +18 -18
- package/addon/components/place-form-panel.js +6 -1
- package/addon/components/place-panel/details.hbs +10 -10
- package/addon/components/place-panel.hbs +2 -2
- package/addon/components/route-list.hbs +2 -2
- package/addon/components/settings-window.hbs +5 -5
- package/addon/components/settings-window.js +2 -1
- package/addon/components/vehicle-form-panel.hbs +27 -27
- package/addon/components/vehicle-form-panel.js +7 -2
- package/addon/components/vehicle-panel/details.hbs +7 -7
- package/addon/components/vehicle-panel.hbs +4 -4
- package/addon/components/vendor-form-panel/create-form.hbs +34 -33
- package/addon/components/vendor-form-panel/create-form.js +6 -2
- package/addon/components/vendor-form-panel/edit-form.hbs +27 -27
- package/addon/components/vendor-form-panel/edit-form.js +1 -0
- package/addon/components/vendor-form-panel.hbs +6 -6
- package/addon/components/vendor-form-panel.js +6 -1
- package/addon/components/vendor-panel/details.hbs +10 -10
- package/addon/components/vendor-panel.hbs +3 -3
- package/addon/components/widget/fleet-ops-quickstart.hbs +2 -2
- package/addon/components/widget/fleet-ops-quickstart.js +1 -0
- package/addon/components/widget/key-metrics.hbs +12 -12
- package/addon/components/widget/live-order-map.hbs +4 -4
- package/addon/components/widget/recent-orders.hbs +4 -4
- package/addon/components/widget/transactions.hbs +4 -4
- package/addon/controllers/management/contacts/index/edit.js +10 -3
- package/addon/controllers/management/contacts/index/new.js +7 -0
- package/addon/controllers/management/contacts/index.js +23 -16
- package/addon/controllers/management/drivers/index/edit.js +10 -3
- package/addon/controllers/management/drivers/index/new.js +7 -0
- package/addon/controllers/management/drivers/index.js +33 -19
- package/addon/controllers/management/fleets/index/edit.js +10 -3
- package/addon/controllers/management/fleets/index/new.js +7 -0
- package/addon/controllers/management/fleets/index.js +24 -17
- package/addon/controllers/management/fuel-reports/index/edit.js +10 -3
- package/addon/controllers/management/fuel-reports/index/new.js +7 -0
- package/addon/controllers/management/fuel-reports/index.js +20 -13
- package/addon/controllers/management/issues/index/edit.js +10 -3
- package/addon/controllers/management/issues/index/new.js +8 -0
- package/addon/controllers/management/issues/index.js +22 -15
- package/addon/controllers/management/places/index/edit.js +10 -3
- package/addon/controllers/management/places/index/new.js +7 -0
- package/addon/controllers/management/places/index.js +27 -20
- package/addon/controllers/management/vehicles/index/edit.js +10 -3
- package/addon/controllers/management/vehicles/index/new.js +7 -0
- package/addon/controllers/management/vehicles/index.js +22 -15
- package/addon/controllers/management/vendors/index/edit.js +10 -3
- package/addon/controllers/management/vendors/index/new.js +7 -0
- package/addon/controllers/management/vendors/index.js +23 -16
- package/addon/controllers/operations/orders/index/new.js +110 -25
- package/addon/controllers/operations/orders/index/view.js +40 -16
- package/addon/controllers/operations/orders/index.js +34 -27
- package/addon/controllers/operations/scheduler/index.js +3 -2
- package/addon/controllers/operations/service-rates/index/edit.js +9 -1
- package/addon/controllers/operations/service-rates/index/new.js +9 -1
- package/addon/controllers/operations/service-rates/index.js +16 -9
- package/addon/routes/management/places/index.js +1 -1
- package/addon/routes/operations/orders/index/view.js +2 -14
- package/addon/services/driver-actions.js +9 -8
- package/addon/services/vehicle-actions.js +2 -1
- package/addon/templates/management/contacts/index.hbs +6 -6
- package/addon/templates/management/drivers/index.hbs +6 -6
- package/addon/templates/management/fleets/index.hbs +6 -6
- package/addon/templates/management/fuel-reports/index.hbs +7 -7
- package/addon/templates/management/index.hbs +17 -17
- package/addon/templates/management/issues/index.hbs +6 -6
- package/addon/templates/management/places/index.hbs +6 -6
- package/addon/templates/management/vehicles/index.hbs +6 -6
- package/addon/templates/management/vendors/index.hbs +6 -6
- package/addon/templates/operations/orders/index/config/types.hbs +3 -3
- package/addon/templates/operations/orders/index/config.hbs +3 -4
- package/addon/templates/operations/orders/index/new.hbs +72 -72
- package/addon/templates/operations/orders/index/view.hbs +147 -53
- package/addon/templates/operations/orders/index.hbs +13 -13
- package/addon/templates/operations/scheduler/index.hbs +3 -3
- package/addon/templates/operations/service-rates/index/new.hbs +79 -81
- package/addon/templates/operations/service-rates/index.hbs +6 -6
- package/composer.json +2 -2
- package/extension.json +1 -1
- package/package.json +3 -1
- package/server/resources/views/labels/default.php +40 -18
- package/server/resources/views/labels/waypoint-label.php +126 -0
- package/server/src/Http/Controllers/Api/v1/OrderController.php +1 -1
- package/server/src/Http/Resources/v1/Entity.php +2 -2
- package/server/src/Http/Resources/v1/Payload.php +11 -30
- package/server/src/Http/Resources/v1/Place.php +3 -3
- package/server/src/Http/Resources/v1/Waypoint.php +101 -0
- package/server/src/Models/Payload.php +39 -0
- package/server/src/Models/Place.php +5 -2
- package/server/src/Models/Waypoint.php +15 -3
- package/translations/en-us.yaml +1341 -3
|
@@ -22,6 +22,13 @@ export default class ManagementVendorsIndexController extends BaseController {
|
|
|
22
22
|
*/
|
|
23
23
|
@service modalsManager;
|
|
24
24
|
|
|
25
|
+
/**
|
|
26
|
+
* Inject the `intl` service
|
|
27
|
+
*
|
|
28
|
+
* @var {Service}
|
|
29
|
+
*/
|
|
30
|
+
@service intl;
|
|
31
|
+
|
|
25
32
|
/**
|
|
26
33
|
* Inject the `crud` service
|
|
27
34
|
*
|
|
@@ -162,7 +169,7 @@ export default class ManagementVendorsIndexController extends BaseController {
|
|
|
162
169
|
*/
|
|
163
170
|
@tracked columns = [
|
|
164
171
|
{
|
|
165
|
-
label: '
|
|
172
|
+
label: this.intl.t('fleet-ops.common.name'),
|
|
166
173
|
valuePath: 'name',
|
|
167
174
|
width: '180px',
|
|
168
175
|
cellComponent: 'table/cell/media-name',
|
|
@@ -174,7 +181,7 @@ export default class ManagementVendorsIndexController extends BaseController {
|
|
|
174
181
|
filterComponent: 'filter/string',
|
|
175
182
|
},
|
|
176
183
|
{
|
|
177
|
-
label: '
|
|
184
|
+
label: this.intl.t('fleet-ops.common.id'),
|
|
178
185
|
valuePath: 'public_id',
|
|
179
186
|
cellComponent: 'click-to-copy',
|
|
180
187
|
width: '110px',
|
|
@@ -184,7 +191,7 @@ export default class ManagementVendorsIndexController extends BaseController {
|
|
|
184
191
|
filterComponent: 'filter/string',
|
|
185
192
|
},
|
|
186
193
|
{
|
|
187
|
-
label: '
|
|
194
|
+
label: this.intl.t('fleet-ops.common.internal-id'),
|
|
188
195
|
valuePath: 'internal_id',
|
|
189
196
|
cellComponent: 'click-to-copy',
|
|
190
197
|
width: '100px',
|
|
@@ -194,7 +201,7 @@ export default class ManagementVendorsIndexController extends BaseController {
|
|
|
194
201
|
filterComponent: 'filter/string',
|
|
195
202
|
},
|
|
196
203
|
{
|
|
197
|
-
label: '
|
|
204
|
+
label: this.intl.t('fleet-ops.common.email'),
|
|
198
205
|
valuePath: 'email',
|
|
199
206
|
cellComponent: 'click-to-copy',
|
|
200
207
|
width: '80px',
|
|
@@ -205,7 +212,7 @@ export default class ManagementVendorsIndexController extends BaseController {
|
|
|
205
212
|
filterComponent: 'filter/string',
|
|
206
213
|
},
|
|
207
214
|
{
|
|
208
|
-
label: '
|
|
215
|
+
label: this.intl.t('fleet-ops.common.website-url'),
|
|
209
216
|
valuePath: 'website_url',
|
|
210
217
|
cellComponent: 'click-to-copy',
|
|
211
218
|
width: '80px',
|
|
@@ -216,7 +223,7 @@ export default class ManagementVendorsIndexController extends BaseController {
|
|
|
216
223
|
filterComponent: 'filter/string',
|
|
217
224
|
},
|
|
218
225
|
{
|
|
219
|
-
label: '
|
|
226
|
+
label: this.intl.t('fleet-ops.common.phone'),
|
|
220
227
|
valuePath: 'phone',
|
|
221
228
|
cellComponent: 'click-to-copy',
|
|
222
229
|
width: '80px',
|
|
@@ -227,7 +234,7 @@ export default class ManagementVendorsIndexController extends BaseController {
|
|
|
227
234
|
filterComponent: 'filter/string',
|
|
228
235
|
},
|
|
229
236
|
{
|
|
230
|
-
label: '
|
|
237
|
+
label: this.intl.t('fleet-ops.common.address'),
|
|
231
238
|
valuePath: 'address',
|
|
232
239
|
cellComponent: 'table/cell/anchor',
|
|
233
240
|
action: this.viewVendorPlace,
|
|
@@ -239,7 +246,7 @@ export default class ManagementVendorsIndexController extends BaseController {
|
|
|
239
246
|
filterComponent: 'filter/string',
|
|
240
247
|
},
|
|
241
248
|
{
|
|
242
|
-
label: '
|
|
249
|
+
label: this.intl.t('fleet-ops.common.type'),
|
|
243
250
|
valuePath: 'type',
|
|
244
251
|
cellComponent: 'table/cell/anchor',
|
|
245
252
|
action: this.viewVendorPlace,
|
|
@@ -251,7 +258,7 @@ export default class ManagementVendorsIndexController extends BaseController {
|
|
|
251
258
|
filterComponent: 'filter/string',
|
|
252
259
|
},
|
|
253
260
|
{
|
|
254
|
-
label: '
|
|
261
|
+
label: this.intl.t('fleet-ops.common.country'),
|
|
255
262
|
valuePath: 'country',
|
|
256
263
|
cellComponent: 'table/cell/base',
|
|
257
264
|
cellClassNames: 'uppercase',
|
|
@@ -263,7 +270,7 @@ export default class ManagementVendorsIndexController extends BaseController {
|
|
|
263
270
|
filterParam: 'country',
|
|
264
271
|
},
|
|
265
272
|
{
|
|
266
|
-
label: '
|
|
273
|
+
label: this.intl.t('fleet-ops.common.created-at'),
|
|
267
274
|
valuePath: 'createdAt',
|
|
268
275
|
sortParam: 'created_at',
|
|
269
276
|
width: '150px',
|
|
@@ -273,7 +280,7 @@ export default class ManagementVendorsIndexController extends BaseController {
|
|
|
273
280
|
filterComponent: 'filter/date',
|
|
274
281
|
},
|
|
275
282
|
{
|
|
276
|
-
label: '
|
|
283
|
+
label: this.intl.t('fleet-ops.common.updated-at'),
|
|
277
284
|
valuePath: 'updatedAt',
|
|
278
285
|
sortParam: 'updated_at',
|
|
279
286
|
width: '130px',
|
|
@@ -284,7 +291,7 @@ export default class ManagementVendorsIndexController extends BaseController {
|
|
|
284
291
|
filterComponent: 'filter/date',
|
|
285
292
|
},
|
|
286
293
|
{
|
|
287
|
-
label: '
|
|
294
|
+
label: this.intl.t('fleet-ops.common.status'),
|
|
288
295
|
valuePath: 'status',
|
|
289
296
|
cellComponent: 'table/cell/status',
|
|
290
297
|
width: '130px',
|
|
@@ -306,18 +313,18 @@ export default class ManagementVendorsIndexController extends BaseController {
|
|
|
306
313
|
width: '7%',
|
|
307
314
|
actions: [
|
|
308
315
|
{
|
|
309
|
-
label: '
|
|
316
|
+
label: this.intl.t('fleet-ops.management.vendors.index.view-vendor'),
|
|
310
317
|
fn: this.viewVendor,
|
|
311
318
|
},
|
|
312
319
|
{
|
|
313
|
-
label: '
|
|
320
|
+
label: this.intl.t('fleet-ops.management.vendors.index.edit-vendor'),
|
|
314
321
|
fn: this.editVendor,
|
|
315
322
|
},
|
|
316
323
|
{
|
|
317
324
|
separator: true,
|
|
318
325
|
},
|
|
319
326
|
{
|
|
320
|
-
label: '
|
|
327
|
+
label: this.intl.t('fleet-ops.management.vendors.index.delete-vendor'),
|
|
321
328
|
fn: this.deleteVendor,
|
|
322
329
|
},
|
|
323
330
|
],
|
|
@@ -425,7 +432,7 @@ export default class ManagementVendorsIndexController extends BaseController {
|
|
|
425
432
|
|
|
426
433
|
this.crud.bulkDelete(selected, {
|
|
427
434
|
modelNamePath: `name`,
|
|
428
|
-
acceptButtonText: '
|
|
435
|
+
acceptButtonText: this.intl.t('fleet-ops.management.vendors.index.delete-button'),
|
|
429
436
|
onSuccess: () => {
|
|
430
437
|
return this.hostRouter.refresh();
|
|
431
438
|
},
|
|
@@ -14,6 +14,7 @@ import isNotEmpty from '@fleetbase/ember-core/utils/is-not-empty';
|
|
|
14
14
|
import getRoutingHost from '@fleetbase/ember-core/utils/get-routing-host';
|
|
15
15
|
import groupBy from '@fleetbase/ember-core/utils/macros/group-by';
|
|
16
16
|
import getWithDefault from '@fleetbase/ember-core/utils/get-with-default';
|
|
17
|
+
import isModel from '@fleetbase/ember-core/utils/is-model';
|
|
17
18
|
|
|
18
19
|
L.Bounds.prototype.intersects = function (bounds) {
|
|
19
20
|
var min = this.min,
|
|
@@ -71,6 +72,13 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
71
72
|
*/
|
|
72
73
|
@service fileQueue;
|
|
73
74
|
|
|
75
|
+
/**
|
|
76
|
+
* Inject the `intl` service
|
|
77
|
+
*
|
|
78
|
+
* @var {Service}
|
|
79
|
+
*/
|
|
80
|
+
@service intl;
|
|
81
|
+
|
|
74
82
|
/**
|
|
75
83
|
* Inject the `fetch` service
|
|
76
84
|
*
|
|
@@ -116,6 +124,7 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
116
124
|
@tracked meta = [];
|
|
117
125
|
@tracked entities = [];
|
|
118
126
|
@tracked waypoints = [];
|
|
127
|
+
@tracked payloadCoordinates = [];
|
|
119
128
|
@tracked types = [];
|
|
120
129
|
@tracked serviceRates = [];
|
|
121
130
|
@tracked selectedServiceRate;
|
|
@@ -184,8 +193,7 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
184
193
|
return isOrderTypeSet && isPickupSet && isDropoffSet;
|
|
185
194
|
}
|
|
186
195
|
|
|
187
|
-
|
|
188
|
-
get payloadCoordinates() {
|
|
196
|
+
updatePayloadCoordinates() {
|
|
189
197
|
let waypoints = [];
|
|
190
198
|
let coordinates = [];
|
|
191
199
|
|
|
@@ -200,9 +208,30 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
200
208
|
}
|
|
201
209
|
});
|
|
202
210
|
|
|
203
|
-
|
|
211
|
+
this.payloadCoordinates = coordinates;
|
|
204
212
|
}
|
|
205
213
|
|
|
214
|
+
// @computed('payload.{dropoff,pickup,waypoints}', 'waypoints.[]')
|
|
215
|
+
// get payloadCoordinates() {
|
|
216
|
+
// let waypoints = [];
|
|
217
|
+
// let coordinates = [];
|
|
218
|
+
|
|
219
|
+
// console.log('[this.waypoints]', this.waypoints);
|
|
220
|
+
|
|
221
|
+
// waypoints.pushObjects([this.payload.pickup, ...this.waypoints.map((waypoint) => waypoint.place), this.payload.dropoff]);
|
|
222
|
+
// waypoints.forEach((place) => {
|
|
223
|
+
// if (place && place.get('longitude') && place.get('latitude')) {
|
|
224
|
+
// if (place.hasInvalidCoordinates) {
|
|
225
|
+
// return;
|
|
226
|
+
// }
|
|
227
|
+
|
|
228
|
+
// coordinates.pushObject([place.get('longitude'), place.get('latitude')]);
|
|
229
|
+
// }
|
|
230
|
+
// });
|
|
231
|
+
|
|
232
|
+
// return coordinates;
|
|
233
|
+
// }
|
|
234
|
+
|
|
206
235
|
@computed('payloadCoordinates.length', 'waypoints.[]') get isServicable() {
|
|
207
236
|
return this.payloadCoordinates.length >= 2;
|
|
208
237
|
}
|
|
@@ -297,7 +326,7 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
297
326
|
|
|
298
327
|
// transition to order view
|
|
299
328
|
return this.hostRouter.transitionTo(`${engineMountPoint}operations.orders.index.view`, order).then(() => {
|
|
300
|
-
this.notifications.success(
|
|
329
|
+
this.notifications.success(this.intl.t('fleet-ops.operations.orders.index.new.success-message', { orderId: order.public_id }));
|
|
301
330
|
this.loader.removeLoader();
|
|
302
331
|
this.resetForm();
|
|
303
332
|
later(
|
|
@@ -382,7 +411,7 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
382
411
|
};
|
|
383
412
|
|
|
384
413
|
if (!uploadQueue.length) {
|
|
385
|
-
return this.notifications.warning('
|
|
414
|
+
return this.notifications.warning(this.intl.t('fleet-ops.operations.orders.index.new.warning-message'));
|
|
386
415
|
}
|
|
387
416
|
|
|
388
417
|
modal.startLoading();
|
|
@@ -423,7 +452,7 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
423
452
|
});
|
|
424
453
|
}
|
|
425
454
|
|
|
426
|
-
this.notifications.success('
|
|
455
|
+
this.notifications.success(this.intl.t('fleet-ops.operations.orders.index.new.import-success'));
|
|
427
456
|
this.isCsvImportedOrder = true;
|
|
428
457
|
this.previewDraftOrderRoute(this.payload, this.waypoints, this.isMultipleDropoffOrder);
|
|
429
458
|
modal.done();
|
|
@@ -499,8 +528,8 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
499
528
|
|
|
500
529
|
let payload = this.payload.serialize();
|
|
501
530
|
let route = this.getRoute();
|
|
502
|
-
let distance = get(route, '
|
|
503
|
-
let time = get(route, '
|
|
531
|
+
let distance = get(route, 'details.summary.totalDistance');
|
|
532
|
+
let time = get(route, 'details.summary.totalTime');
|
|
504
533
|
let service_type = this.order.type;
|
|
505
534
|
let scheduled_at = this.order.scheduled_at;
|
|
506
535
|
let facilitator = this.order.facilitator?.get('public_id');
|
|
@@ -532,7 +561,7 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
532
561
|
|
|
533
562
|
this.fetch
|
|
534
563
|
.post('service-quotes/preliminary', {
|
|
535
|
-
payload,
|
|
564
|
+
payload: this._getSerializedPayload(payload),
|
|
536
565
|
distance,
|
|
537
566
|
time,
|
|
538
567
|
service,
|
|
@@ -542,6 +571,7 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
542
571
|
is_route_optimized,
|
|
543
572
|
})
|
|
544
573
|
.then((serviceQuotes) => {
|
|
574
|
+
console.log('[serviceQuotes]', serviceQuotes);
|
|
545
575
|
set(this, 'serviceQuotes', isArray(serviceQuotes) ? serviceQuotes : []);
|
|
546
576
|
|
|
547
577
|
if (this.serviceQuotes.length && this.isUsingIntegratedVendor) {
|
|
@@ -549,13 +579,38 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
549
579
|
}
|
|
550
580
|
})
|
|
551
581
|
.catch(() => {
|
|
552
|
-
this.notifications.warning(
|
|
582
|
+
this.notifications.warning(this.intl.t('fleet-ops.operations.orders.index.new.service-warning'));
|
|
553
583
|
})
|
|
554
584
|
.finally(() => {
|
|
555
585
|
this.isFetchingQuotes = false;
|
|
556
586
|
});
|
|
557
587
|
}
|
|
558
588
|
|
|
589
|
+
_getSerializedPayload(payload) {
|
|
590
|
+
const serialized = {
|
|
591
|
+
pickup: payload.pickup,
|
|
592
|
+
dropoff: payload.dropoff,
|
|
593
|
+
};
|
|
594
|
+
|
|
595
|
+
if (isModel(payload.pickup)) {
|
|
596
|
+
serialized.pickup = payload.pickup.toJSON();
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
if (isModel(payload.dropoff)) {
|
|
600
|
+
serialized.dropoff = payload.dropoff.toJSON();
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
if (isArray(payload.entities)) {
|
|
604
|
+
serialized.entities = payload.entities.toArray();
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
if (isArray(payload.waypoints)) {
|
|
608
|
+
serialized.waypoints = payload.waypoints.toArray();
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
return serialized;
|
|
612
|
+
}
|
|
613
|
+
|
|
559
614
|
@action scheduleOrder(dateInstance) {
|
|
560
615
|
this.order.scheduled_at = dateInstance;
|
|
561
616
|
}
|
|
@@ -818,7 +873,7 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
818
873
|
});
|
|
819
874
|
}
|
|
820
875
|
} else {
|
|
821
|
-
this.notifications.warning('
|
|
876
|
+
this.notifications.warning(this.intl.t('fleet-ops.operations.orders.index.new.no-route-warning'));
|
|
822
877
|
}
|
|
823
878
|
}
|
|
824
879
|
|
|
@@ -846,7 +901,7 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
846
901
|
const routingHost = getRoutingHost(this.payload, this.waypoints);
|
|
847
902
|
|
|
848
903
|
const response = await this.fetch.routing(coordinates, { source: 'any', destination: 'any', annotations: true }, { host: routingHost }).catch(() => {
|
|
849
|
-
this.notifications.error('
|
|
904
|
+
this.notifications.error(this.intl.t('fleet-ops.operations.orders.index.new.route-error'));
|
|
850
905
|
this.isOptimizingRoute = false;
|
|
851
906
|
});
|
|
852
907
|
|
|
@@ -902,7 +957,7 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
902
957
|
maxZoom: 13,
|
|
903
958
|
});
|
|
904
959
|
} else {
|
|
905
|
-
this.notifications.error('
|
|
960
|
+
this.notifications.error(this.intl.t('fleet-ops.operations.orders.index.new.route-error'));
|
|
906
961
|
this.isOptimizingRoute = false;
|
|
907
962
|
}
|
|
908
963
|
}
|
|
@@ -936,9 +991,33 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
936
991
|
@action toggleMultiDropOrder(isMultipleDropoffOrder) {
|
|
937
992
|
this.isMultipleDropoffOrder = isMultipleDropoffOrder;
|
|
938
993
|
|
|
994
|
+
const { pickup, dropoff } = this.payload;
|
|
995
|
+
|
|
939
996
|
if (isMultipleDropoffOrder) {
|
|
940
|
-
|
|
997
|
+
if (pickup) {
|
|
998
|
+
this.addWaypoint({ place: pickup });
|
|
999
|
+
|
|
1000
|
+
if (dropoff) {
|
|
1001
|
+
this.addWaypoint({ place: dropoff });
|
|
1002
|
+
}
|
|
1003
|
+
|
|
1004
|
+
// clear pickup and dropoff
|
|
1005
|
+
this.payload.setProperties({ pickup: null, dropoff: null });
|
|
1006
|
+
} else {
|
|
1007
|
+
this.addWaypoint();
|
|
1008
|
+
}
|
|
941
1009
|
} else {
|
|
1010
|
+
const pickup = get(this.waypoints, '0.place');
|
|
1011
|
+
const dropoff = get(this.waypoints, '1.place');
|
|
1012
|
+
|
|
1013
|
+
if (pickup) {
|
|
1014
|
+
this.setPayloadPlace('pickup', pickup);
|
|
1015
|
+
}
|
|
1016
|
+
|
|
1017
|
+
if (dropoff) {
|
|
1018
|
+
this.setPayloadPlace('dropoff', dropoff);
|
|
1019
|
+
}
|
|
1020
|
+
|
|
942
1021
|
this.clearWaypoints();
|
|
943
1022
|
}
|
|
944
1023
|
}
|
|
@@ -1028,7 +1107,7 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
1028
1107
|
let label, value;
|
|
1029
1108
|
|
|
1030
1109
|
this.modalsManager.show('modals/meta-field-form', {
|
|
1031
|
-
title: '
|
|
1110
|
+
title: this.intl.t('fleet-ops.operations.orders.index.new.custom-field-title'),
|
|
1032
1111
|
acceptButtonIcon: 'check',
|
|
1033
1112
|
acceptButtonIconPrefix: 'fas',
|
|
1034
1113
|
acceptButtonText: 'Done',
|
|
@@ -1041,11 +1120,11 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
1041
1120
|
const value = modal.getOption('value');
|
|
1042
1121
|
|
|
1043
1122
|
if (!label) {
|
|
1044
|
-
return this.notifications.warning('
|
|
1123
|
+
return this.notifications.warning(this.intl.t('fleet-ops.operations.orders.index.new.label-warning'));
|
|
1045
1124
|
}
|
|
1046
1125
|
|
|
1047
1126
|
if (!value) {
|
|
1048
|
-
return this.notifications.warning('
|
|
1127
|
+
return this.notifications.warning(this.intl.t('fleet-ops.operations.orders.index.new.value-warning'));
|
|
1049
1128
|
}
|
|
1050
1129
|
|
|
1051
1130
|
modal.startLoading();
|
|
@@ -1066,7 +1145,7 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
1066
1145
|
const { label, value } = metaField;
|
|
1067
1146
|
|
|
1068
1147
|
this.modalsManager.show('modals/meta-field-form', {
|
|
1069
|
-
title: '
|
|
1148
|
+
title: this.intl.t('fleet-ops.operations.orders.index.new.edit-field-title'),
|
|
1070
1149
|
acceptButtonIcon: 'save',
|
|
1071
1150
|
acceptButtonText: 'Save Changes',
|
|
1072
1151
|
label,
|
|
@@ -1076,11 +1155,11 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
1076
1155
|
const value = modal.getOption('value');
|
|
1077
1156
|
|
|
1078
1157
|
if (!label) {
|
|
1079
|
-
return this.notifications.warning('
|
|
1158
|
+
return this.notifications.warning(this.intl.t('fleet-ops.operations.orders.index.new.label-warning'));
|
|
1080
1159
|
}
|
|
1081
1160
|
|
|
1082
1161
|
if (!value) {
|
|
1083
|
-
return this.notifications.warning('
|
|
1162
|
+
return this.notifications.warning(this.intl.t('fleet-ops.operations.orders.index.new.value-warning'));
|
|
1084
1163
|
}
|
|
1085
1164
|
|
|
1086
1165
|
modal.startLoading();
|
|
@@ -1106,7 +1185,7 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
1106
1185
|
}
|
|
1107
1186
|
|
|
1108
1187
|
this.modalsManager.show('modals/edit-meta-form', {
|
|
1109
|
-
title: '
|
|
1188
|
+
title: this.intl.t('fleet-ops.operations.orders.index.new.edit-metadata'),
|
|
1110
1189
|
hideDeclineButton: true,
|
|
1111
1190
|
acceptButtonIcon: 'check',
|
|
1112
1191
|
acceptButtonIconPrefix: 'fas',
|
|
@@ -1146,6 +1225,8 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
1146
1225
|
if (this.isUsingIntegratedVendor) {
|
|
1147
1226
|
this.getQuotes();
|
|
1148
1227
|
}
|
|
1228
|
+
|
|
1229
|
+
this.updatePayloadCoordinates();
|
|
1149
1230
|
}
|
|
1150
1231
|
|
|
1151
1232
|
@action sortWaypoints({ sourceList, sourceIndex, targetList, targetIndex }) {
|
|
@@ -1163,10 +1244,10 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
1163
1244
|
}
|
|
1164
1245
|
}
|
|
1165
1246
|
|
|
1166
|
-
@action addWaypoint() {
|
|
1167
|
-
const waypoint = this.store.createRecord('waypoint');
|
|
1168
|
-
|
|
1247
|
+
@action addWaypoint(properties = {}) {
|
|
1248
|
+
const waypoint = this.store.createRecord('waypoint', properties);
|
|
1169
1249
|
this.waypoints.pushObject(waypoint);
|
|
1250
|
+
this.updatePayloadCoordinates();
|
|
1170
1251
|
}
|
|
1171
1252
|
|
|
1172
1253
|
@action setWaypointPlace(index, place) {
|
|
@@ -1183,6 +1264,8 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
1183
1264
|
if (this.isUsingIntegratedVendor) {
|
|
1184
1265
|
this.getQuotes();
|
|
1185
1266
|
}
|
|
1267
|
+
|
|
1268
|
+
this.updatePayloadCoordinates();
|
|
1186
1269
|
}
|
|
1187
1270
|
|
|
1188
1271
|
@action removeWaypoint(waypoint) {
|
|
@@ -1197,6 +1280,8 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
1197
1280
|
} else {
|
|
1198
1281
|
this.previewDraftOrderRoute(this.payload, this.waypoints, this.isMultipleDropoffOrder);
|
|
1199
1282
|
}
|
|
1283
|
+
|
|
1284
|
+
this.updatePayloadCoordinates();
|
|
1200
1285
|
}
|
|
1201
1286
|
|
|
1202
1287
|
@action clearWaypoints() {
|
|
@@ -1235,7 +1320,7 @@ export default class OperationsOrdersIndexNewController extends BaseController {
|
|
|
1235
1320
|
|
|
1236
1321
|
@action editEntity(entity) {
|
|
1237
1322
|
this.modalsManager.show('modals/entity-form', {
|
|
1238
|
-
title: '
|
|
1323
|
+
title: this.intl.t('fleet-ops.operations.orders.index.new.edit-item'),
|
|
1239
1324
|
acceptButtonText: 'Save Changes',
|
|
1240
1325
|
entity,
|
|
1241
1326
|
uploadNewPhoto: (file) => {
|
|
@@ -6,6 +6,7 @@ import { action, computed } from '@ember/object';
|
|
|
6
6
|
import { isArray } from '@ember/array';
|
|
7
7
|
import { later } from '@ember/runloop';
|
|
8
8
|
import { not, notEmpty, alias } from '@ember/object/computed';
|
|
9
|
+
import { task } from 'ember-concurrency-decorators';
|
|
9
10
|
import { OSRMv1, Control as RoutingControl } from '@fleetbase/leaflet-routing-machine';
|
|
10
11
|
import groupBy from '@fleetbase/ember-core/utils/macros/group-by';
|
|
11
12
|
import findClosestWaypoint from '@fleetbase/ember-core/utils/find-closest-waypoint';
|
|
@@ -41,7 +42,14 @@ export default class OperationsOrdersIndexViewController extends BaseController
|
|
|
41
42
|
@controller('management.drivers.index') driversController;
|
|
42
43
|
|
|
43
44
|
/**
|
|
44
|
-
* Inject the `
|
|
45
|
+
* Inject the `store` service
|
|
46
|
+
*
|
|
47
|
+
* @var {Service}
|
|
48
|
+
*/
|
|
49
|
+
@service store;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Inject the `modalsManager` service
|
|
45
53
|
*
|
|
46
54
|
* @var {Service}
|
|
47
55
|
*/
|
|
@@ -54,6 +62,13 @@ export default class OperationsOrdersIndexViewController extends BaseController
|
|
|
54
62
|
*/
|
|
55
63
|
@service notifications;
|
|
56
64
|
|
|
65
|
+
/**
|
|
66
|
+
* Inject the `intl` service
|
|
67
|
+
*
|
|
68
|
+
* @var {Service}
|
|
69
|
+
*/
|
|
70
|
+
@service intl;
|
|
71
|
+
|
|
57
72
|
/**
|
|
58
73
|
* Inject the `currentUser` service
|
|
59
74
|
*
|
|
@@ -142,7 +157,7 @@ export default class OperationsOrdersIndexViewController extends BaseController
|
|
|
142
157
|
|
|
143
158
|
// create groups
|
|
144
159
|
this.model.payload.waypoints.forEach((waypoint) => {
|
|
145
|
-
const destinationId = waypoint.id
|
|
160
|
+
const destinationId = waypoint.id;
|
|
146
161
|
|
|
147
162
|
if (destinationId) {
|
|
148
163
|
const entities = this.model.payload.entities.filter((entity) => entity.destination_uuid === destinationId);
|
|
@@ -164,6 +179,15 @@ export default class OperationsOrdersIndexViewController extends BaseController
|
|
|
164
179
|
return groups;
|
|
165
180
|
}
|
|
166
181
|
|
|
182
|
+
@task *loadOrderRelations(order) {
|
|
183
|
+
yield order.loadPayload();
|
|
184
|
+
yield order.loadDriver();
|
|
185
|
+
yield order.loadTrackingNumber();
|
|
186
|
+
yield order.loadCustomer();
|
|
187
|
+
yield order.loadTrackingActivity();
|
|
188
|
+
yield order.loadOrderConfig();
|
|
189
|
+
}
|
|
190
|
+
|
|
167
191
|
@action resetView() {
|
|
168
192
|
this.removeRoutingControlPreview();
|
|
169
193
|
this.resetInterface();
|
|
@@ -356,7 +380,7 @@ export default class OperationsOrdersIndexViewController extends BaseController
|
|
|
356
380
|
options = options === null ? {} : options;
|
|
357
381
|
|
|
358
382
|
this.modalsManager.show('modals/order-form', {
|
|
359
|
-
title: '
|
|
383
|
+
title: this.intl.t('fleet-ops.operations.orders.index.view.edit-order-title'),
|
|
360
384
|
acceptButtonText: 'Save Changes',
|
|
361
385
|
acceptButtonIcon: 'save',
|
|
362
386
|
setOrderFacilitator: (model) => {
|
|
@@ -389,7 +413,7 @@ export default class OperationsOrdersIndexViewController extends BaseController
|
|
|
389
413
|
confirm: (modal) => {
|
|
390
414
|
modal.startLoading();
|
|
391
415
|
return order.save().then(() => {
|
|
392
|
-
this.notifications.success(options.successNotification ||
|
|
416
|
+
this.notifications.success(options.successNotification || this.intl.t('fleet-ops.operations.orders.index.view.update-success', { orderId: order.public_id }));
|
|
393
417
|
});
|
|
394
418
|
},
|
|
395
419
|
decline: () => {
|
|
@@ -408,7 +432,7 @@ export default class OperationsOrdersIndexViewController extends BaseController
|
|
|
408
432
|
*/
|
|
409
433
|
@action viewOrderMeta(order) {
|
|
410
434
|
this.modalsManager.show('modals/order-meta', {
|
|
411
|
-
title: '
|
|
435
|
+
title: this.intl.t('fleet-ops.operations.orders.index.view.order-metadata'),
|
|
412
436
|
acceptButtonText: 'Done',
|
|
413
437
|
acceptButtonIcon: 'check',
|
|
414
438
|
acceptButtonIconPrefix: 'fas',
|
|
@@ -419,8 +443,8 @@ export default class OperationsOrdersIndexViewController extends BaseController
|
|
|
419
443
|
|
|
420
444
|
@action unassignDriver(order, options = {}) {
|
|
421
445
|
this.modalsManager.confirm({
|
|
422
|
-
title:
|
|
423
|
-
body:
|
|
446
|
+
title: this.intl.t('fleet-ops.operations.orders.index.view.edit-order-title', { driverName: order.driver_assigned.name }),
|
|
447
|
+
body: this.intl.t('fleet-ops.operations.orders.index.view.unassign-body'),
|
|
424
448
|
order,
|
|
425
449
|
confirm: (modal) => {
|
|
426
450
|
modal.startLoading();
|
|
@@ -433,7 +457,7 @@ export default class OperationsOrdersIndexViewController extends BaseController
|
|
|
433
457
|
return order
|
|
434
458
|
.save()
|
|
435
459
|
.then(() => {
|
|
436
|
-
this.notifications.success(
|
|
460
|
+
this.notifications.success(this.intl.t('fleet-ops.operations.orders.index.view.unassign-success'));
|
|
437
461
|
})
|
|
438
462
|
.catch((error) => {
|
|
439
463
|
this.notifications.serverError(error);
|
|
@@ -456,7 +480,7 @@ export default class OperationsOrdersIndexViewController extends BaseController
|
|
|
456
480
|
await this.modalsManager.done();
|
|
457
481
|
|
|
458
482
|
this.modalsManager.show('modals/order-route-form', {
|
|
459
|
-
title: '
|
|
483
|
+
title: this.intl.t('fleet-ops.operations.orders.index.view.edit-route-title'),
|
|
460
484
|
acceptButtonText: 'Save Changes',
|
|
461
485
|
acceptButtonIcon: 'save',
|
|
462
486
|
order,
|
|
@@ -521,7 +545,7 @@ export default class OperationsOrdersIndexViewController extends BaseController
|
|
|
521
545
|
const routingHost = getRoutingHost(order.payload, order.payload.waypoints);
|
|
522
546
|
|
|
523
547
|
const response = await this.fetch.routing(coordinates, { source: 'any', destination: 'any', annotations: true }, { host: routingHost }).catch(() => {
|
|
524
|
-
this.notifications.error('
|
|
548
|
+
this.notifications.error(this.intl.t('fleet-ops.operations.orders.index.view.route-error'));
|
|
525
549
|
this.modalsManager.setOption('isOptimizingRoute', false);
|
|
526
550
|
});
|
|
527
551
|
|
|
@@ -542,7 +566,7 @@ export default class OperationsOrdersIndexViewController extends BaseController
|
|
|
542
566
|
order.payload.waypoints = sortedWaypoints;
|
|
543
567
|
}
|
|
544
568
|
} else {
|
|
545
|
-
this.notifications.error('
|
|
569
|
+
this.notifications.error(this.intl.t('fleet-ops.operations.orders.index.view.route-error'));
|
|
546
570
|
}
|
|
547
571
|
|
|
548
572
|
this.modalsManager.setOption('isOptimizingRoute', false);
|
|
@@ -551,7 +575,7 @@ export default class OperationsOrdersIndexViewController extends BaseController
|
|
|
551
575
|
modal.startLoading();
|
|
552
576
|
|
|
553
577
|
return order.payload.save().then(() => {
|
|
554
|
-
this.notifications.success(options.successNotification ??
|
|
578
|
+
this.notifications.success(options.successNotification ?? this.intl.t('fleet-ops.operations.orders.index.view.route-update-success', { orderId: order.public_id }));
|
|
555
579
|
});
|
|
556
580
|
},
|
|
557
581
|
decline: () => {
|
|
@@ -627,7 +651,7 @@ export default class OperationsOrdersIndexViewController extends BaseController
|
|
|
627
651
|
await this.modalsManager.done();
|
|
628
652
|
|
|
629
653
|
this.modalsManager.show(`modals/order-new-activity`, {
|
|
630
|
-
title: '
|
|
654
|
+
title: this.intl.t('fleet-ops.operations.orders.index.view.add-activity-title'),
|
|
631
655
|
acceptButton: false,
|
|
632
656
|
selected: null,
|
|
633
657
|
custom: {
|
|
@@ -647,7 +671,7 @@ export default class OperationsOrdersIndexViewController extends BaseController
|
|
|
647
671
|
if (!custom.status || !custom.details || !custom.code) {
|
|
648
672
|
modal.stopLoading();
|
|
649
673
|
|
|
650
|
-
return this.notifications.warning('
|
|
674
|
+
return this.notifications.warning(this.intl.t('fleet-ops.operations.orders.index.view.invalid-warning'));
|
|
651
675
|
}
|
|
652
676
|
|
|
653
677
|
activity = custom;
|
|
@@ -690,13 +714,13 @@ export default class OperationsOrdersIndexViewController extends BaseController
|
|
|
690
714
|
}
|
|
691
715
|
|
|
692
716
|
this.modalsManager.show(`modals/order-assign-driver`, {
|
|
693
|
-
title: order.driver_uuid ? '
|
|
717
|
+
title: order.driver_uuid ? this.intl.t('fleet-ops.operations.orders.index.view.change-order') : this.intl.t('fleet-ops.operations.orders.index.view.assign-order'),
|
|
694
718
|
acceptButtonText: 'Save Changes',
|
|
695
719
|
order,
|
|
696
720
|
confirm: (modal) => {
|
|
697
721
|
modal.startLoading();
|
|
698
722
|
return order.save().then(() => {
|
|
699
|
-
this.notifications.success(
|
|
723
|
+
this.notifications.success(this.intl.t('fleet-ops.operations.orders.index.view.assign-success', { orderId: order.public_id }));
|
|
700
724
|
});
|
|
701
725
|
},
|
|
702
726
|
});
|