@fleetbase/fleetops-engine 0.4.16 → 0.4.17
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/.php-cs-fixer.php +2 -0
- package/addon/components/activity-event-selector.hbs +35 -0
- package/addon/components/activity-event-selector.js +85 -0
- package/addon/components/activity-form-panel.hbs +23 -0
- package/addon/components/activity-form-panel.js +90 -0
- package/addon/components/activity-logic-builder.hbs +80 -0
- package/addon/components/activity-logic-builder.js +260 -0
- package/addon/components/contact-form-panel.hbs +1 -1
- package/addon/components/contact-panel.hbs +1 -1
- package/addon/components/custom-entity-form-panel.hbs +43 -0
- package/addon/components/custom-entity-form-panel.js +129 -0
- package/addon/components/custom-field-form-panel/options-input.hbs +12 -0
- package/addon/components/custom-field-form-panel/options-input.js +139 -0
- package/addon/components/custom-field-form-panel.hbs +77 -0
- package/addon/components/custom-field-form-panel.js +144 -0
- package/addon/components/custom-field.hbs +63 -41
- package/addon/components/custom-field.js +123 -25
- package/addon/components/driver-form-panel.hbs +1 -1
- package/addon/components/driver-panel.hbs +1 -1
- package/addon/components/edit-order-route-panel.hbs +1 -1
- package/addon/components/fleet-form-panel.hbs +1 -1
- package/addon/components/fleet-panel.hbs +1 -1
- package/addon/components/fuel-report-form-panel.hbs +1 -1
- package/addon/components/fuel-report-panel.hbs +1 -1
- package/addon/components/issue-form-panel.hbs +1 -1
- package/addon/components/issue-panel.hbs +1 -1
- package/addon/components/joint-graph.hbs +1 -0
- package/addon/components/joint-graph.js +103 -0
- package/addon/components/layout/fleet-ops-sidebar.hbs +3 -3
- package/addon/components/layout/fleet-ops-sidebar.js +1 -0
- package/addon/components/live-map.js +71 -28
- package/addon/components/modals/new-custom-field-group.hbs +5 -0
- package/addon/components/modals/new-order-config.hbs +3 -3
- package/addon/components/modals/order-new-activity.hbs +1 -1
- package/addon/components/order-config-manager/activity-flow.hbs +11 -0
- package/addon/components/order-config-manager/activity-flow.js +964 -0
- package/addon/components/order-config-manager/custom-fields.hbs +50 -0
- package/addon/components/order-config-manager/custom-fields.js +276 -0
- package/addon/components/order-config-manager/details.hbs +23 -0
- package/addon/components/order-config-manager/details.js +97 -0
- package/addon/components/order-config-manager/entities.hbs +54 -0
- package/addon/components/order-config-manager/entities.js +227 -0
- package/addon/components/order-config-manager-overlay.hbs +26 -0
- package/addon/components/order-config-manager-overlay.js +60 -0
- package/addon/components/order-config-manager.hbs +15 -0
- package/addon/components/order-config-manager.js +285 -0
- package/addon/components/order-flow.hbs +1 -0
- package/addon/components/order-flow.js +3 -0
- package/addon/components/place-form-panel.hbs +1 -1
- package/addon/components/place-panel.hbs +1 -1
- package/addon/components/vehicle-form-panel.hbs +1 -1
- package/addon/components/vehicle-panel.hbs +1 -1
- package/addon/components/vendor-form-panel.hbs +1 -1
- package/addon/components/vendor-panel.hbs +1 -1
- package/addon/controllers/application.js +5 -1
- package/addon/controllers/operations/order-config.js +42 -0
- package/addon/controllers/operations/orders/index/new.js +125 -21
- package/addon/controllers/operations/orders/index/view.js +87 -4
- package/addon/controllers/operations/orders/index.js +2 -2
- package/addon/engine.js +10 -1
- package/addon/initializers/load-jointjs.js +16 -0
- package/addon/routes/application.js +1 -1
- package/addon/routes/operations/order-config.js +28 -0
- package/addon/routes/operations/orders/index/new.js +2 -3
- package/addon/routes/operations/orders/index/view.js +1 -1
- package/addon/routes.js +1 -0
- package/addon/services/context-panel.js +65 -3
- package/addon/styles/fleetops-engine.css +268 -0
- package/addon/templates/application.hbs +1 -1
- package/addon/templates/operations/order-config.hbs +55 -0
- package/addon/templates/operations/orders/index/new.hbs +98 -339
- package/addon/templates/operations/orders/index/view.hbs +36 -96
- package/addon/templates/operations/orders/index.hbs +0 -1
- package/addon/utils/apply-context-component-arguments.js +4 -2
- package/addon/utils/create-custom-entity.js +22 -0
- package/addon/utils/create-flow-activity.js +31 -0
- package/addon/utils/get-custom-field-type-map.js +34 -0
- package/app/components/activity-event-selector.js +1 -0
- package/app/components/activity-form-panel.js +1 -0
- package/app/components/activity-logic-builder.js +1 -0
- package/app/components/custom-entity-form-panel.js +1 -0
- package/app/components/custom-field-form-panel/options-input.js +1 -0
- package/app/components/custom-field-form-panel.js +1 -0
- package/app/components/joint-graph.js +1 -0
- package/app/components/modals/new-custom-field-group.js +1 -0
- package/app/components/order-config-manager/activity-flow.js +1 -0
- package/app/components/order-config-manager/custom-fields.js +1 -0
- package/app/components/order-config-manager/details.js +1 -0
- package/app/components/order-config-manager/entities.js +1 -0
- package/app/components/order-config-manager-overlay.js +1 -0
- package/app/components/order-config-manager.js +1 -0
- package/app/components/order-flow.js +1 -0
- package/app/controllers/operations/order-config.js +1 -0
- package/app/routes/operations/order-config.js +1 -0
- package/app/templates/operations/order-config.js +1 -0
- package/app/utils/create-custom-entity.js +1 -0
- package/app/utils/create-flow-activity.js +1 -0
- package/app/utils/get-custom-field-type-map.js +1 -0
- package/composer.json +4 -3
- package/config/environment.js +1 -0
- package/extension.json +1 -1
- package/index.js +20 -0
- package/package.json +7 -5
- package/server/migrations/2023_04_27_053456_create_contacts_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_drivers_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_entities_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_fleet_drivers_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_fleets_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_fuel_reports_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_integrated_vendors_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_issues_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_orders_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_payloads_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_places_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_positions_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_proofs_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_purchase_rates_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_routes_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_service_areas_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_service_quote_items_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_service_quotes_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_service_rate_fees_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_service_rate_parcel_fees_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_service_rates_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_tracking_numbers_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_tracking_statuses_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_vehicles_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_vendors_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_waypoints_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_zones_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_companies_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_contacts_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_drivers_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_entities_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_fleet_drivers_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_fleets_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_fuel_reports_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_integrated_vendors_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_issues_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_orders_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_payloads_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_places_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_positions_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_proofs_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_purchase_rates_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_routes_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_areas_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_quote_items_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_quotes_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_rate_fees_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_rate_parcel_fees_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_rates_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_tracking_numbers_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_tracking_statuses_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_vehicles_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_vendors_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_waypoints_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_zones_table.php +1 -2
- package/server/migrations/2023_09_14_074512_update_vehicles_table.php +1 -2
- package/server/migrations/2023_09_14_074619_create_vehicle_devices_table.php +35 -36
- package/server/migrations/2023_09_26_071205_add_online_column_to_vehicles_table.php +1 -2
- package/server/migrations/2023_09_26_083957_create_fleet_vehicles_table.php +1 -2
- package/server/migrations/2023_09_27_023757_add_column_to_fleets_table.php +1 -2
- package/server/migrations/2023_10_05_074811_update_vehicle.php +1 -2
- package/server/migrations/2023_10_25_093014_create_vehicle_device_events_table.php +1 -2
- package/server/migrations/2023_11_03_072503_refactor_issues_table_columns.php +1 -2
- package/server/migrations/2023_11_06_040645_refactor_fuel_reports_table.php +1 -2
- package/server/migrations/2023_11_09_041807_add_status_column_to_fuel_reports_table.php +1 -2
- package/server/migrations/2023_11_15_062814_add_comments_column_and_resolved_at_column_to_vehicle_device_events_table.php +1 -2
- package/server/migrations/2023_11_17_053001_add_category_uuid_to_entities_table.php +1 -2
- package/server/migrations/2023_11_28_074244_add_supplier_uuid_column_to_entities_table.php +1 -2
- package/server/migrations/2023_12_14_100209_add_meta_column_on_driver_table copy.php +1 -2
- package/server/migrations/2024_02_18_100209_add_avatar_url_columns_table.php +3 -4
- package/server/migrations/2024_02_27_093648_create_order_configs_table.php +43 -0
- package/server/migrations/2024_03_07_075508_add_order_config_uuid_column_to_orders_table.php +28 -0
- package/server/seeders/OrderConfigSeeder.php +151 -0
- package/server/src/Casts/OrderConfigEntities.php +53 -0
- package/server/src/Console/Commands/FixLegacyOrderConfigs.php +66 -0
- package/server/src/Events/DriverLocationChanged.php +1 -1
- package/server/src/Events/DriverSimulatedLocationChanged.php +1 -1
- package/server/src/Flow/Activity.php +232 -6
- package/server/src/Flow/Condition.php +84 -0
- package/server/src/Flow/Event.php +88 -0
- package/server/src/Flow/Flow.php +50 -0
- package/server/src/Flow/FlowResource.php +143 -0
- package/server/src/Flow/Logic.php +57 -1
- package/server/src/Http/Controllers/Api/v1/DriverController.php +2 -2
- package/server/src/Http/Controllers/Api/v1/IssueController.php +132 -0
- package/server/src/Http/Controllers/Api/v1/OrderController.php +130 -57
- package/server/src/Http/Controllers/Api/v1/OrganizationController.php +27 -0
- package/server/src/Http/Controllers/Api/v1/PlaceController.php +2 -3
- package/server/src/Http/Controllers/Controller.php +9 -0
- package/server/src/Http/Controllers/FleetOpsController.php +7 -0
- package/server/src/Http/Controllers/Internal/v1/OrderConfigController.php +5 -259
- package/server/src/Http/Controllers/Internal/v1/OrderController.php +46 -26
- package/server/src/Http/Controllers/Internal/v1/SettingController.php +20 -0
- package/server/src/Http/Filter/OrderConfigFilter.php +13 -0
- package/server/src/Http/Requests/CreateIssueRequest.php +19 -0
- package/server/src/Http/Requests/UpdateIssueRequest.php +7 -0
- package/server/src/Http/Resources/v1/Order.php +3 -0
- package/server/src/Listeners/HandleOrderCanceled.php +8 -4
- package/server/src/Listeners/HandleOrderDispatched.php +14 -12
- package/server/src/Models/Order.php +527 -31
- package/server/src/Models/OrderConfig.php +419 -0
- package/server/src/Models/Payload.php +6 -7
- package/server/src/Notifications/OrderAssigned.php +1 -1
- package/server/src/Notifications/OrderCanceled.php +1 -1
- package/server/src/Notifications/OrderDispatchFailed.php +1 -1
- package/server/src/Notifications/OrderDispatched.php +1 -1
- package/server/src/Notifications/OrderPing.php +1 -1
- package/server/src/Providers/FleetOpsServiceProvider.php +3 -1
- package/server/src/Providers/NotificationServiceProvider.php +2 -1
- package/server/src/Support/Utils.php +17 -0
- package/server/src/Traits/HasTrackingNumber.php +9 -9
- package/server/src/routes.php +19 -11
- package/translations/en-us.yaml +137 -0
- package/server/src/Flow/Config.php +0 -7
- package/server/src/Support/Flow.php +0 -653
|
@@ -202,6 +202,25 @@
|
|
|
202
202
|
</div>
|
|
203
203
|
</ContentPanel>
|
|
204
204
|
|
|
205
|
+
{{#if @model.order_config}}
|
|
206
|
+
{{#each this.customFieldGroups as |group|}}
|
|
207
|
+
<ContentPanel @title={{group.name}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
|
|
208
|
+
<div class="grid grid-cols-{{or group.meta.grid_size 1}} gap-2">
|
|
209
|
+
{{#each group.customFields as |customField|}}
|
|
210
|
+
<div class="field-info-container space-y-2">
|
|
211
|
+
<div class="field-name">{{customField.label}}</div>
|
|
212
|
+
{{#if (and (eq customField.type "file-upload") customField.value.asFile)}}
|
|
213
|
+
<File @file={{customField.value.asFile}} @onDelete={{fn this.removeCustomFieldFile customField.value}} class="custom-field-file" />
|
|
214
|
+
{{else}}
|
|
215
|
+
<div class="field-value">{{n-a customField.value.value}}</div>
|
|
216
|
+
{{/if}}
|
|
217
|
+
</div>
|
|
218
|
+
{{/each}}
|
|
219
|
+
</div>
|
|
220
|
+
</ContentPanel>
|
|
221
|
+
{{/each}}
|
|
222
|
+
{{/if}}
|
|
223
|
+
|
|
205
224
|
{{#if @model.purchase_rate}}
|
|
206
225
|
<ContentPanel @title={{t "fleet-ops.operations.orders.index.view.purchase-rate-panel-title"}} @open={{true}} @pad={{false}} @panelBodyClass="bg-white dark:bg-gray-800">
|
|
207
226
|
<div class="order-view-purchase-rate-table-wrapper next-table-wrapper h-auto table-fluid rounded-b-md">
|
|
@@ -239,33 +258,24 @@
|
|
|
239
258
|
</ContentPanel>
|
|
240
259
|
{{/if}}
|
|
241
260
|
|
|
242
|
-
<ContentPanel @title={{t "fleet-ops.operations.orders.index.view.notes-title"}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
|
|
243
|
-
|
|
261
|
+
<ContentPanel @title={{t "fleet-ops.operations.orders.index.view.notes-title"}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800" @actionButtons={{this.notesPanelButtons}}>
|
|
262
|
+
{{#if this.isEditingOrderNotes}}
|
|
263
|
+
<Textarea @value={{@model.notes}} class="form-input w-full" placeholder={{t "fleet-ops.operations.orders.index.view.notes-placeholder"}} rows={{4}} />
|
|
264
|
+
<div class="flex items-center space-x-2">
|
|
265
|
+
<Button @type="primary" @icon="save" @text={{t "fleet-ops.operations.orders.index.view.save-order-note"}} @onClick={{perform this.saveOrderNotes}} @isLoading={{not this.saveOrderNotes.isIdle}} />
|
|
266
|
+
<Button @type="default" @icon="times" @text={{t "fleet-ops.common.cancel"}} @onClick={{this.saveOrderNotes}} />
|
|
267
|
+
</div>
|
|
268
|
+
{{else}}
|
|
269
|
+
<p class="text-gray-700 dark:text-gray-300 leading-5 text-sm">{{n-a @model.notes}}</p>
|
|
270
|
+
{{/if}}
|
|
244
271
|
</ContentPanel>
|
|
245
|
-
|
|
272
|
+
|
|
246
273
|
{{#if @model.isIntegratedVendorOrder}}
|
|
247
274
|
<ContentPanel @title={{concat @model.facilitator.name (t "fleet-ops.operations.orders.index.view.order-details-title")}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
|
|
248
275
|
<IntegratedOrderDetails @integratedVendor={{@model.facilitator}} @details={{@model.meta.integrated_vendor_order}} />
|
|
249
276
|
</ContentPanel>
|
|
250
277
|
{{/if}}
|
|
251
278
|
|
|
252
|
-
{{#if @model.order_config}}
|
|
253
|
-
{{#each @model.groupedMetaFields as |group|}}
|
|
254
|
-
<ContentPanel @title={{if group.value (humanize group.value) (t "fleet-ops.operations.orders.index.view.additional-details-title")}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
|
|
255
|
-
<div class="grid grid-cols-1 lg:grid-cols-2 gap-4 lg:gap-2">
|
|
256
|
-
{{#each group.items as |metaField|}}
|
|
257
|
-
<div class="field-info-container space-y-2">
|
|
258
|
-
<div class="field-name">{{metaField.label}}</div>
|
|
259
|
-
<div class="field-value">
|
|
260
|
-
<CustomFieldValue @metaField={{metaField}} @value={{get @model.meta metaField.key}} />
|
|
261
|
-
</div>
|
|
262
|
-
</div>
|
|
263
|
-
{{/each}}
|
|
264
|
-
</div>
|
|
265
|
-
</ContentPanel>
|
|
266
|
-
{{/each}}
|
|
267
|
-
{{/if}}
|
|
268
|
-
|
|
269
279
|
{{#if @model.tracking_number}}
|
|
270
280
|
<ContentPanel @title={{t "fleet-ops.operations.orders.index.view.tracking"}} @prefixTitleRight={{@model.tracking}} @isLoading={{not this.loadOrderRelations.isIdle}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
|
|
271
281
|
<div class="mb-4 flex justify-end">
|
|
@@ -305,78 +315,10 @@
|
|
|
305
315
|
{{/if}}
|
|
306
316
|
</ContentPanel>
|
|
307
317
|
|
|
308
|
-
{{#if
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
<div class="flex flex-1">
|
|
313
|
-
<div class="mr-2">
|
|
314
|
-
<div class="flex items-center justify-center w-6 h-5 border border-gray-200 dark:border-blue-400 rounded-md">
|
|
315
|
-
<span class="text-blue-400 text-xs">{{entity.meta.quantity}}x</span>
|
|
316
|
-
</div>
|
|
317
|
-
</div>
|
|
318
|
-
<div class="flex-1 flex">
|
|
319
|
-
<div class="mr-4">
|
|
320
|
-
<img src={{entity.photo_url}} class="w-12 h-12 rounded-md shadow-sm" alt={{entity.name}} />
|
|
321
|
-
</div>
|
|
322
|
-
<div>
|
|
323
|
-
<h4 class="font-semibold dark:text-gray-100 mb-1 text-sm">{{entity.name}}</h4>
|
|
324
|
-
<div class="flex flex-wrap truncate w-44">
|
|
325
|
-
<p class="dark:text-gray-50 text-xs truncate">{{entity.description}}</p>
|
|
326
|
-
</div>
|
|
327
|
-
<div>
|
|
328
|
-
{{#each entity.meta.variants as |variant|}}
|
|
329
|
-
<div>
|
|
330
|
-
<span class="text-xs dark:text-gray-50">{{variant.name}}</span>
|
|
331
|
-
</div>
|
|
332
|
-
{{/each}}
|
|
333
|
-
</div>
|
|
334
|
-
<div>
|
|
335
|
-
{{#each entity.meta.addons as |addon|}}
|
|
336
|
-
<div>
|
|
337
|
-
<span class="text-xs dark:text-gray-50">+ {{addon.name}}</span>
|
|
338
|
-
</div>
|
|
339
|
-
{{/each}}
|
|
340
|
-
</div>
|
|
341
|
-
</div>
|
|
342
|
-
</div>
|
|
343
|
-
<div>
|
|
344
|
-
<span class="dark:text-gray-50 text-sm">{{format-currency entity.meta.subtotal entity.currency}}</span>
|
|
345
|
-
</div>
|
|
346
|
-
</div>
|
|
347
|
-
{{/each}}
|
|
348
|
-
</div>
|
|
349
|
-
<div class="p-2 space-y-2 border-t border-b dark:border-gray-800">
|
|
350
|
-
<div class="flex items-center justify-between">
|
|
351
|
-
<span class="dark:text-gray-50 text-sm">{{t "fleet-ops.operations.orders.index.view.subtotal"}}</span>
|
|
352
|
-
<span class="dark:text-gray-50 text-sm">{{format-currency @model.meta.subtotal @model.meta.currency}}</span>
|
|
353
|
-
</div>
|
|
354
|
-
{{#unless @model.meta.is_pickup}}
|
|
355
|
-
<div class="flex items-center justify-between">
|
|
356
|
-
<span class="dark:text-gray-50 text-sm">{{t "fleet-ops.operations.orders.index.view.delivery-fee"}}</span>
|
|
357
|
-
<span class="dark:text-gray-50 text-sm">{{format-currency @model.meta.delivery_fee @model.meta.currency}}</span>
|
|
358
|
-
</div>
|
|
359
|
-
{{/unless}}
|
|
360
|
-
{{#if @model.meta.tip}}
|
|
361
|
-
<div class="flex items-center justify-between">
|
|
362
|
-
<span class="dark:text-gray-50 text-sm">{{t "fleet-ops.operations.orders.index.view.tip"}}</span>
|
|
363
|
-
<span class="dark:text-gray-50 text-sm">{{get-tip-amount @model.meta.tip @model.meta.subtotal @model.meta.currency}}</span>
|
|
364
|
-
</div>
|
|
365
|
-
{{/if}}
|
|
366
|
-
{{#if @model.meta.delivery_tip}}
|
|
367
|
-
<div class="flex items-center justify-between">
|
|
368
|
-
<span class="dark:text-gray-50 text-sm">{{t "fleet-ops.operations.orders.index.view.delivery-tip"}}</span>
|
|
369
|
-
<span class="dark:text-gray-50 text-sm">{{get-tip-amount @model.meta.delivery_tip @model.meta.subtotal @model.meta.currency}}</span>
|
|
370
|
-
</div>
|
|
371
|
-
{{/if}}
|
|
372
|
-
</div>
|
|
373
|
-
<div class="p-2">
|
|
374
|
-
<div class="flex items-center justify-between">
|
|
375
|
-
<span class="dark:text-gray-50 font-bold text-sm">{{t "fleet-ops.operations.orders.index.view.total"}}</span>
|
|
376
|
-
<span class="dark:text-gray-50 font-bold text-sm">{{format-currency @model.meta.total @model.meta.currency}}</span>
|
|
377
|
-
</div>
|
|
378
|
-
</div>
|
|
379
|
-
</ContentPanel>
|
|
318
|
+
{{#if this.renderableComponents}}
|
|
319
|
+
{{#each this.renderableComponents as |renderableComponent|}}
|
|
320
|
+
{{component renderableComponent order=this.order}}
|
|
321
|
+
{{/each}}
|
|
380
322
|
{{/if}}
|
|
381
323
|
|
|
382
324
|
<ContentPanel @title={{t "fleet-ops.operations.orders.index.view.payload"}} @open={{gt @model.payload.entities.length 0}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
|
|
@@ -473,13 +415,11 @@
|
|
|
473
415
|
</div>
|
|
474
416
|
{{/if}}
|
|
475
417
|
</ContentPanel>
|
|
476
|
-
|
|
418
|
+
|
|
477
419
|
<ContentPanel @title={{t "fleet-ops.operations.orders.index.view.documents-panel-title"}} @open={{true}} @pad={{true}} @panelBodyClass="bg-white dark:bg-gray-800">
|
|
478
420
|
<div class="space-y-4">
|
|
479
421
|
{{#if this.isUploading}}
|
|
480
|
-
<div
|
|
481
|
-
class="dropzone w-full rounded-lg px-4 py-8 bg-gray-50 dark:bg-gray-900 bg-opacity-25 text-gray-900 dark:text-white text-center flex flex-col items-center justify-center border-2 border-dashed border-gray-200 dark:border-indigo-500"
|
|
482
|
-
>
|
|
422
|
+
<div class="dropzone w-full rounded-lg px-4 py-8 bg-gray-50 dark:bg-gray-900 bg-opacity-25 text-gray-900 dark:text-white text-center flex flex-col items-center justify-center border-2 border-dashed border-gray-200 dark:border-indigo-500">
|
|
483
423
|
<div class="flex items-center justify-center py-5">
|
|
484
424
|
<Spinner class="text-sm dar:text-gray-100" @loadingMessage={{t "fleet-ops.common.uploading"}} />
|
|
485
425
|
</div>
|
|
@@ -21,7 +21,6 @@
|
|
|
21
21
|
|
|
22
22
|
{{#if this.isTableLayout}}
|
|
23
23
|
<Layout::Section::Header @title={{t "fleet-ops.common.orders"}} @onSearch={{perform this.search}}>
|
|
24
|
-
<Button @icon="cogs" @text={{t "fleet-ops.common.config"}} class="mr-2" @onClick={{fn (transition-to "operations.orders.index.config")}} />
|
|
25
24
|
<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" />
|
|
26
25
|
<VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
|
|
27
26
|
{{#if (safe-has this.table "selectedRows")}}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
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';
|
|
2
4
|
|
|
3
5
|
/**
|
|
4
6
|
* Applies context and dynamic arguments to a given component.
|
|
@@ -9,8 +11,8 @@ export default function applyContextComponentArguments(component) {
|
|
|
9
11
|
const { context, dynamicArgs = {} } = component.args;
|
|
10
12
|
|
|
11
13
|
// Apply context model if available
|
|
12
|
-
if (context) {
|
|
13
|
-
const contextModelName = getModelName(context);
|
|
14
|
+
if (context && isModel(context)) {
|
|
15
|
+
const contextModelName = camelize(getModelName(context));
|
|
14
16
|
if (contextModelName) {
|
|
15
17
|
component[contextModelName] = context;
|
|
16
18
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import ObjectProxy from '@ember/object/proxy';
|
|
2
|
+
import config from '../config/environment';
|
|
3
|
+
import generateUUID from '@fleetbase/ember-core/utils/generate-uuid';
|
|
4
|
+
import { get } from '@ember/object';
|
|
5
|
+
|
|
6
|
+
export default function createCustomEntity(name = '', type = '', description = '', props = {}) {
|
|
7
|
+
return ObjectProxy.create({
|
|
8
|
+
content: {
|
|
9
|
+
id: generateUUID(),
|
|
10
|
+
name,
|
|
11
|
+
description,
|
|
12
|
+
type,
|
|
13
|
+
dimensions_unit: 'cm',
|
|
14
|
+
weight_unit: 'kg',
|
|
15
|
+
photo_url: typeof props.photo_url === 'string' ? props.photo_url : get(config, 'defaultValues.entityImage'),
|
|
16
|
+
...props,
|
|
17
|
+
_internalModel: {
|
|
18
|
+
modelName: 'custom-entity',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import ObjectProxy from '@ember/object/proxy';
|
|
2
|
+
import generateUUID from '@fleetbase/ember-core/utils/generate-uuid';
|
|
3
|
+
import { underscore } from '@ember/string';
|
|
4
|
+
|
|
5
|
+
export default function createFlowActivity(name = '', status = '', details = '', sequence = 0, color = '#1f2937', props = {}) {
|
|
6
|
+
return ObjectProxy.create({
|
|
7
|
+
content: {
|
|
8
|
+
code: underscore(name),
|
|
9
|
+
key: underscore(name),
|
|
10
|
+
status,
|
|
11
|
+
details,
|
|
12
|
+
sequence,
|
|
13
|
+
color,
|
|
14
|
+
activities: [],
|
|
15
|
+
events: [],
|
|
16
|
+
logic: [],
|
|
17
|
+
actions: [],
|
|
18
|
+
entities: [],
|
|
19
|
+
complete: false,
|
|
20
|
+
require_pod: false,
|
|
21
|
+
pod_method: 'scan',
|
|
22
|
+
options: {},
|
|
23
|
+
node: null,
|
|
24
|
+
internalId: generateUUID(),
|
|
25
|
+
_internalModel: {
|
|
26
|
+
modelName: 'activity',
|
|
27
|
+
},
|
|
28
|
+
...props,
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export default function getCustomFieldTypeMap() {
|
|
2
|
+
return {
|
|
3
|
+
input: {
|
|
4
|
+
component: 'input',
|
|
5
|
+
},
|
|
6
|
+
phoneInput: {
|
|
7
|
+
component: 'phone-input',
|
|
8
|
+
},
|
|
9
|
+
moneyInput: {
|
|
10
|
+
component: 'money-input',
|
|
11
|
+
},
|
|
12
|
+
dateTimeInput: {
|
|
13
|
+
component: 'date-time-input',
|
|
14
|
+
},
|
|
15
|
+
radioButton: {
|
|
16
|
+
component: 'radio-button-select',
|
|
17
|
+
hasOptions: true,
|
|
18
|
+
},
|
|
19
|
+
select: {
|
|
20
|
+
component: 'select',
|
|
21
|
+
hasOptions: true,
|
|
22
|
+
},
|
|
23
|
+
// modelSelect: {
|
|
24
|
+
// allowedModels: ['driver', 'contact', 'vendor', 'place', 'issue', 'fuel-report'],
|
|
25
|
+
// component: 'model-select',
|
|
26
|
+
// },
|
|
27
|
+
fileUpload: {
|
|
28
|
+
component: 'file-upload',
|
|
29
|
+
},
|
|
30
|
+
// dropzone: {
|
|
31
|
+
// component: 'file-dropzone',
|
|
32
|
+
// },
|
|
33
|
+
};
|
|
34
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/components/activity-event-selector';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/components/activity-form-panel';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/components/activity-logic-builder';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/components/custom-entity-form-panel';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/components/custom-field-form-panel/options-input';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/components/custom-field-form-panel';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/components/joint-graph';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/components/modals/new-custom-field-group';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/components/order-config-manager/activity-flow';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/components/order-config-manager/custom-fields';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/components/order-config-manager/details';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/components/order-config-manager/entities';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/components/order-config-manager-overlay';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/components/order-config-manager';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/components/order-flow';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/controllers/operations/order-config';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/routes/operations/order-config';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/templates/operations/order-config';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/utils/create-custom-entity';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/utils/create-flow-activity';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/utils/get-custom-field-type-map';
|
package/composer.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fleetbase/fleetops-api",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.17",
|
|
4
4
|
"description": "Fleet & Transport Management Extension for Fleetbase",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"fleetbase-extension",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
],
|
|
23
23
|
"require": {
|
|
24
24
|
"php": "^8.0",
|
|
25
|
-
"fleetbase/core-api": "^1.4.
|
|
25
|
+
"fleetbase/core-api": "^1.4.11",
|
|
26
26
|
"barryvdh/laravel-dompdf": "^2.0",
|
|
27
27
|
"brick/geo": "0.7.2",
|
|
28
28
|
"cknow/laravel-money": "^7.1",
|
|
@@ -44,7 +44,8 @@
|
|
|
44
44
|
},
|
|
45
45
|
"autoload": {
|
|
46
46
|
"psr-4": {
|
|
47
|
-
"Fleetbase\\FleetOps\\": "server/src/"
|
|
47
|
+
"Fleetbase\\FleetOps\\": "server/src/",
|
|
48
|
+
"Fleetbase\\FleetOps\\Seeders\\": "seeders/"
|
|
48
49
|
}
|
|
49
50
|
},
|
|
50
51
|
"autoload-dev": {
|
package/config/environment.js
CHANGED
|
@@ -14,6 +14,7 @@ module.exports = function (environment) {
|
|
|
14
14
|
contactImage: getenv('DEFAULT_CONTACT_IMAGE', 'https://s3.ap-southeast-1.amazonaws.com/flb-assets/static/no-avatar.png'),
|
|
15
15
|
vendorImage: getenv('DEFAULT_VENDOR_IMAGE', 'https://s3.ap-southeast-1.amazonaws.com/flb-assets/static/no-avatar.png'),
|
|
16
16
|
vehicleImage: getenv('DEFAULT_VEHICLE_IMAGE', 'https://s3.ap-southeast-1.amazonaws.com/flb-assets/static/vehicle-placeholder.png'),
|
|
17
|
+
entityImage: getenv('DEFAULT_ENTITY_IMAGE', 'https://flb-assets.s3-ap-southeast-1.amazonaws.com/static/parcels/medium.png'),
|
|
17
18
|
vehicleAvatar: getenv('DEFAUL_VEHICLE_AVATAR', 'https://flb-assets.s3-ap-southeast-1.amazonaws.com/static/vehicle-icons/mini_bus.svg'),
|
|
18
19
|
driverAvatar: getenv('DEFAUL_DRIVER_AVATAR', 'https://flb-assets.s3-ap-southeast-1.amazonaws.com/static/driver-icons/moto-driver.png'),
|
|
19
20
|
placeAvatar: getenv('DEFAUL_PLACE_AVATAR', 'https://flb-assets.s3-ap-southeast-1.amazonaws.com/static/place-icons/basic-building.png'),
|
package/extension.json
CHANGED
package/index.js
CHANGED
|
@@ -65,6 +65,26 @@ module.exports = buildEngine({
|
|
|
65
65
|
);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
// jointjs
|
|
69
|
+
const jointJsPath = path.join(this.pathBase('@joint/core'), 'dist');
|
|
70
|
+
trees.push(
|
|
71
|
+
new Funnel(jointJsPath, {
|
|
72
|
+
destDir: '/',
|
|
73
|
+
include: ['joint.min.js'],
|
|
74
|
+
exclude: [],
|
|
75
|
+
})
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
// jointjs directed graph
|
|
79
|
+
const jointJsDirectedGraphPath = path.join(this.pathBase('@joint/layout-directed-graph'), 'dist');
|
|
80
|
+
trees.push(
|
|
81
|
+
new Funnel(jointJsDirectedGraphPath, {
|
|
82
|
+
destDir: '/',
|
|
83
|
+
include: ['DirectedGraph.min.js'],
|
|
84
|
+
exclude: [],
|
|
85
|
+
})
|
|
86
|
+
);
|
|
87
|
+
|
|
68
88
|
trees.push(
|
|
69
89
|
new Funnel(leafletImagesPath, {
|
|
70
90
|
srcDir: '/',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fleetbase/fleetops-engine",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.17",
|
|
4
4
|
"description": "Fleet & Transport Management Extension for Fleetbase",
|
|
5
5
|
"fleetbase": {
|
|
6
6
|
"route": "fleet-ops"
|
|
@@ -42,25 +42,27 @@
|
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@babel/core": "^7.23.2",
|
|
45
|
-
"@fleetbase/ember-core": "^0.2.
|
|
45
|
+
"@fleetbase/ember-core": "^0.2.5",
|
|
46
46
|
"@fleetbase/ember-ui": "^0.2.11",
|
|
47
|
-
"@fleetbase/fleetops-data": "^0.1.
|
|
47
|
+
"@fleetbase/fleetops-data": "^0.1.12",
|
|
48
48
|
"@fleetbase/leaflet-routing-machine": "^3.2.16",
|
|
49
49
|
"@fortawesome/ember-fontawesome": "^0.4.1",
|
|
50
50
|
"@fortawesome/fontawesome-svg-core": "^6.4.0",
|
|
51
51
|
"@fortawesome/free-solid-svg-icons": "^6.4.0",
|
|
52
|
+
"@joint/core": "^4.0.1",
|
|
53
|
+
"@joint/layout-directed-graph": "^4.0.1",
|
|
52
54
|
"@terraformer/spatial": "^2.1.2",
|
|
53
55
|
"@zestia/ember-dragula": "^12.0.0",
|
|
54
56
|
"broccoli-funnel": "^3.0.8",
|
|
55
57
|
"broccoli-merge-trees": "^4.2.0",
|
|
56
58
|
"ember-cli-babel": "^8.2.0",
|
|
57
59
|
"ember-cli-htmlbars": "^6.3.0",
|
|
60
|
+
"ember-drag-sort": "^3.0.1",
|
|
58
61
|
"ember-intl": "6.3.2",
|
|
59
62
|
"ember-leaflet": "^5.1.1",
|
|
60
63
|
"ember-radio-button": "^3.0.0-beta.1",
|
|
61
64
|
"ember-tag-input": "^3.1.0",
|
|
62
65
|
"ember-wormhole": "^0.6.0",
|
|
63
|
-
"ember-drag-sort": "^3.0.1",
|
|
64
66
|
"leaflet": "^1.9.4",
|
|
65
67
|
"leaflet-contextmenu": "^1.4.0",
|
|
66
68
|
"leaflet-draw": "^1.0.4",
|
|
@@ -68,12 +70,12 @@
|
|
|
68
70
|
"leaflet-rotatedmarker": "^0.2.0"
|
|
69
71
|
},
|
|
70
72
|
"devDependencies": {
|
|
71
|
-
"@fleetbase/intl-lint": "^0.0.1",
|
|
72
73
|
"@babel/eslint-parser": "^7.22.15",
|
|
73
74
|
"@babel/plugin-proposal-decorators": "^7.23.2",
|
|
74
75
|
"@ember/optional-features": "^2.0.0",
|
|
75
76
|
"@ember/test-helpers": "^3.2.0",
|
|
76
77
|
"@embroider/test-setup": "^3.0.2",
|
|
78
|
+
"@fleetbase/intl-lint": "^0.0.1",
|
|
77
79
|
"@glimmer/component": "^1.1.2",
|
|
78
80
|
"@glimmer/tracking": "^1.1.2",
|
|
79
81
|
"broccoli-asset-rev": "^3.0.0",
|