@fleetbase/fleetops-engine 0.3.4 → 0.3.5
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/fleet-listing-panel.hbs +2 -2
- package/addon/components/layout/fleet-ops-sidebar/fleet-listing.hbs +1 -0
- package/addon/components/layout/fleet-ops-sidebar/fleet-listing.js +3 -0
- package/addon/components/layout/fleet-ops-sidebar.hbs +4 -4
- package/addon/components/layout/fleet-ops-sidebar.js +2 -0
- package/addon/controllers/management/contacts/index.js +7 -0
- package/addon/controllers/management/drivers/index.js +7 -0
- package/addon/controllers/management/fleets/index.js +7 -0
- package/addon/controllers/management/fuel-reports/index.js +7 -0
- package/addon/controllers/management/issues/index.js +7 -0
- package/addon/controllers/management/places/index.js +6 -0
- package/addon/controllers/management/vehicles/index.js +13 -20
- package/addon/controllers/management/vendors/index.js +7 -0
- package/addon/controllers/operations/service-rates/index.js +7 -0
- package/addon/routes/management/vehicles/index.js +2 -2
- package/addon/templates/management/contacts/index.hbs +1 -0
- package/addon/templates/management/drivers/index.hbs +2 -1
- package/addon/templates/management/fleets/index.hbs +23 -3
- package/addon/templates/management/fuel-reports/index.hbs +1 -0
- package/addon/templates/management/issues/index.hbs +22 -2
- package/addon/templates/management/places/index.hbs +9 -1
- package/addon/templates/management/vehicles/index.hbs +22 -2
- package/addon/templates/management/vendors/index.hbs +22 -2
- package/addon/templates/operations/service-rates/index.hbs +11 -3
- package/app/components/layout/fleet-ops-sidebar/fleet-listing.js +1 -0
- package/composer.json +1 -1
- package/extension.json +1 -1
- package/package.json +3 -3
- package/server/migrations/2023_04_27_053456_create_contacts_table.php +2 -2
- package/server/migrations/2023_04_27_053456_create_drivers_table.php +5 -5
- package/server/migrations/2023_04_27_053456_create_entities_table.php +5 -5
- package/server/migrations/2023_04_27_053456_create_fleet_drivers_table.php +2 -2
- package/server/migrations/2023_04_27_053456_create_fleets_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_fuel_reports_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_issues_table.php +4 -4
- package/server/migrations/2023_04_27_053456_create_orders_table.php +8 -8
- package/server/migrations/2023_04_27_053456_create_payloads_table.php +5 -5
- package/server/migrations/2023_04_27_053456_create_places_table.php +1 -1
- package/server/migrations/2023_04_27_053456_create_purchase_rates_table.php +4 -4
- package/server/migrations/2023_04_27_053456_create_service_areas_table.php +2 -2
- package/server/migrations/2023_04_27_053456_create_service_quote_items_table.php +1 -1
- package/server/migrations/2023_04_27_053456_create_service_quotes_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_service_rate_fees_table.php +1 -1
- package/server/migrations/2023_04_27_053456_create_service_rate_parcel_fees_table.php +1 -1
- package/server/migrations/2023_04_27_053456_create_service_rates_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_tracking_numbers_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_tracking_statuses_table.php +2 -2
- package/server/migrations/2023_04_27_053456_create_vehicles_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_vendors_table.php +5 -5
- package/server/migrations/2023_04_27_053456_create_waypoints_table.php +4 -4
- package/server/migrations/2023_04_27_053456_create_zones_table.php +2 -2
- package/server/migrations/2023_11_17_053001_add_category_uuid_to_entities_table.php +33 -0
- package/server/src/Http/Controllers/Api/v1/EntityController.php +2 -0
- package/server/src/Http/Controllers/Internal/v1/DriverController.php +0 -1
- package/server/src/Http/Resources/v1/Fleet.php +19 -17
- package/server/src/Models/Driver.php +16 -0
- package/server/src/Models/Entity.php +18 -23
- package/server/src/Models/Vehicle.php +4 -2
- package/server/src/Models/VehicleDeviceEvent.php +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
<Layout::Sidebar::Panel @open={{or @open true}} @title={{this.fleet.name}} @wrapperClass="next-fleet-summary-fleet fleet-depth-{{@depth}}">
|
|
1
|
+
<Layout::Sidebar::Panel @open={{or @open true}} @title={{this.fleet.name}} @titleStatusRightText={{concat this.fleet.vehicles_online_count "/" this.fleet.vehicles_count}} @titleStatusRight="info" @hideRightTitleStatusDot={{true}} @titleStatusRightContainerClass="-mr-2" @wrapperClass="next-fleet-summary-fleet fleet-depth-{{@depth}}">
|
|
2
2
|
{{#each this.fleet.subfleets as |subFleet|}}
|
|
3
3
|
<FleetListingPanel @fleet={{subFleet}} @onVehicleClicked={{this.onVehicleClicked}} @depth={{add @depth 1}} />
|
|
4
4
|
{{/each}}
|
|
5
5
|
{{#each this.fleet.vehicles as |vehicle|}}
|
|
6
|
-
<Layout::Sidebar::Item @icon="circle" @iconSize="2xs" @iconClass={{if vehicle.online "text-green-500" "text-yellow-200"}} @onClick={{fn this.onVehicleClicked vehicle}}>{{vehicle.displayName}}</Layout::Sidebar::Item>
|
|
6
|
+
<Layout::Sidebar::Item @icon="circle" @iconSize="2xs" @iconClass={{if vehicle.online "text-green-500" "text-yellow-200"}} @onClick={{fn this.onVehicleClicked vehicle}} @rightSideComponent={{@itemRightSideComponent}} @rightSideComponentContext={{@itemRightSideComponentContext}} @rightSideStatus={{@itemRightSideStatus}} @rightSideStatusText={{@itemRightSideStatusText}} @hideRightSideStatusDot={{@itemHideRightSideStatusDot}} @rightSideStatusClass={{@itemRightSideStatusClass}} @disableRightSideStatusHumanize={{@itemDisableRightSideStatusHumanize}} @dropdownButton={{@itemDropdownButton}} @dropdownButtonActions={{@itemDropdownButtonActions}} @dropdownButtonIcon={{@itemDropdownButtonIcon}} @dropdownButtonIconPrefix={{@itemDropdownButtonIconPrefix}} @dropdownButtonText={{@itemDropdownButtonText}} @dropdownButtonCalculatePosition={{@itemDropdownButtonCalculatePosition}} @dropdownButtonRenderInPlace={{@itemDropdownButtonRenderInPlace}} @dropdownButtonMenuLabel={{@itemDropdownButtonMenuLabel}} @dropdownButtonWrapperClass={{@itemDropdownButtonWrapperClass}} @dropdownButtonTriggerClass={{@itemDropdownButtonTriggerClass}} @registerDropdownButtonAPI={{@itemRegisterDropdownButtonAPI}}>{{vehicle.displayName}}</Layout::Sidebar::Item>
|
|
7
7
|
{{/each}}
|
|
8
8
|
</Layout::Sidebar::Panel>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<FleetListingPanel ...attributes />
|
|
@@ -5,20 +5,20 @@
|
|
|
5
5
|
{{#if menuItem.renderComponentInPlace}}
|
|
6
6
|
{{component menuItem.component}}
|
|
7
7
|
{{else}}
|
|
8
|
-
<Layout::Sidebar::Item @onClick={{fn this.universe.transitionMenuItem (concat this.routePrefix "virtual") menuItem}} @
|
|
8
|
+
<Layout::Sidebar::Item @onClick={{fn this.universe.transitionMenuItem (concat this.routePrefix "virtual") menuItem}} @menuItem={{menuItem}} @icon={{menuItem.icon}} @rightSideComponent={{menuItem.rightSideComponent}} @rightSideComponentContext={{menuItem.rightSideComponentContext}} @rightSideStatus={{menuItem.rightSideStatus}} @rightSideStatusText={{menuItem.rightSideStatusText}} @hideRightSideStatusDot={{menuItem.hideRightSideStatusDot}} @rightSideStatusClass={{menuItem.rightSideStatusClass}} @disableRightSideStatusHumanize={{menuItem.disableRightSideStatusHumanize}} @dropdownButton={{menuItem.dropdownButton}} @dropdownButtonActions={{menuItem.dropdownButtonActions}} @dropdownButtonIcon={{menuItem.dropdownButtonIcon}} @dropdownButtonIconPrefix={{menuItem.dropdownButtonIconPrefix}} @dropdownButtonText={{menuItem.dropdownButtonText}} @dropdownButtonCalculatePosition={{menuItem.dropdownButtonCalculatePosition}} @dropdownButtonRenderInPlace={{menuItem.dropdownButtonRenderInPlace}} @dropdownButtonMenuLabel={{menuItem.dropdownButtonMenuLabel}} @dropdownButtonWrapperClass={{menuItem.dropdownButtonWrapperClass}} @dropdownButtonTriggerClass={{menuItem.dropdownButtonTriggerClass}} @registerDropdownButtonAPI={{menuItem.registerDropdownButtonAPI}}>{{menuItem.title}}</Layout::Sidebar::Item>
|
|
9
9
|
{{/if}}
|
|
10
10
|
{{/each}}
|
|
11
11
|
{{#each this.menuPanels as |menuPanel|}}
|
|
12
12
|
<Layout::Sidebar::Panel @open={{menuPanel.open}} @title={{menuPanel.title}}>
|
|
13
|
-
{{#each menuPanel.items as |
|
|
14
|
-
<Layout::Sidebar::Item @route={{concat this.routePrefix
|
|
13
|
+
{{#each menuPanel.items as |menuItem|}}
|
|
14
|
+
<Layout::Sidebar::Item @route={{concat this.routePrefix menuItem.route}} @icon={{menuItem.icon}} @rightSideComponent={{menuItem.rightSideComponent}} @rightSideComponentContext={{menuItem.rightSideComponentContext}} @rightSideStatus={{menuItem.rightSideStatus}} @rightSideStatusText={{menuItem.rightSideStatusText}} @hideRightSideStatusDot={{menuItem.hideRightSideStatusDot}} @rightSideStatusClass={{menuItem.rightSideStatusClass}} @disableRightSideStatusHumanize={{menuItem.disableRightSideStatusHumanize}} @dropdownButton={{menuItem.dropdownButton}} @dropdownButtonActions={{menuItem.dropdownButtonActions}} @dropdownButtonIcon={{menuItem.dropdownButtonIcon}} @dropdownButtonIconPrefix={{menuItem.dropdownButtonIconPrefix}} @dropdownButtonText={{menuItem.dropdownButtonText}} @dropdownButtonCalculatePosition={{menuItem.dropdownButtonCalculatePosition}} @dropdownButtonRenderInPlace={{menuItem.dropdownButtonRenderInPlace}} @dropdownButtonMenuLabel={{menuItem.dropdownButtonMenuLabel}} @dropdownButtonWrapperClass={{menuItem.dropdownButtonWrapperClass}} @dropdownButtonTriggerClass={{menuItem.dropdownButtonTriggerClass}} @registerDropdownButtonAPI={{menuItem.registerDropdownButtonAPI}}>{{menuItem.title}}</Layout::Sidebar::Item>
|
|
15
15
|
{{/each}}
|
|
16
16
|
</Layout::Sidebar::Panel>
|
|
17
17
|
{{/each}}
|
|
18
18
|
{{#each this.universeMenuPanels as |menuPanel|}}
|
|
19
19
|
<Layout::Sidebar::Panel @open={{menuPanel.open}} @title={{menuPanel.title}}>
|
|
20
20
|
{{#each menuPanel.items as |menuItem|}}
|
|
21
|
-
<Layout::Sidebar::Item @onClick={{fn this.universe.transitionMenuItem (concat this.routePrefix "virtual") menuItem}} @
|
|
21
|
+
<Layout::Sidebar::Item @onClick={{fn this.universe.transitionMenuItem (concat this.routePrefix "virtual") menuItem}} @menuItem={{menuItem}} @icon={{menuItem.icon}} @rightSideComponent={{menuItem.rightSideComponent}} @rightSideComponentContext={{menuItem.rightSideComponentContext}} @rightSideStatus={{menuItem.rightSideStatus}} @rightSideStatusText={{menuItem.rightSideStatusText}} @hideRightSideStatusDot={{menuItem.hideRightSideStatusDot}} @rightSideStatusClass={{menuItem.rightSideStatusClass}} @disableRightSideStatusHumanize={{menuItem.disableRightSideStatusHumanize}} @dropdownButton={{menuItem.dropdownButton}} @dropdownButtonActions={{menuItem.dropdownButtonActions}} @dropdownButtonIcon={{menuItem.dropdownButtonIcon}} @dropdownButtonIconPrefix={{menuItem.dropdownButtonIconPrefix}} @dropdownButtonText={{menuItem.dropdownButtonText}} @dropdownButtonCalculatePosition={{menuItem.dropdownButtonCalculatePosition}} @dropdownButtonRenderInPlace={{menuItem.dropdownButtonRenderInPlace}} @dropdownButtonMenuLabel={{menuItem.dropdownButtonMenuLabel}} @dropdownButtonWrapperClass={{menuItem.dropdownButtonWrapperClass}} @dropdownButtonTriggerClass={{menuItem.dropdownButtonTriggerClass}} @registerDropdownButtonAPI={{menuItem.registerDropdownButtonAPI}}>{{menuItem.title}}</Layout::Sidebar::Item>
|
|
22
22
|
{{/each}}
|
|
23
23
|
</Layout::Sidebar::Panel>
|
|
24
24
|
{{/each}}
|
|
@@ -11,6 +11,8 @@ import { isArray } from '@ember/array';
|
|
|
11
11
|
*/
|
|
12
12
|
export default class LayoutFleetOpsSidebarComponent extends Component {
|
|
13
13
|
@service universe;
|
|
14
|
+
@service contextPanel;
|
|
15
|
+
@service store;
|
|
14
16
|
@tracked routePrefix = 'console.fleet-ops.';
|
|
15
17
|
@tracked menuPanels = [];
|
|
16
18
|
@tracked universeMenuItems = [];
|
|
@@ -297,6 +297,13 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
297
297
|
this.query = value;
|
|
298
298
|
}
|
|
299
299
|
|
|
300
|
+
/**
|
|
301
|
+
* Reload layout view.
|
|
302
|
+
*/
|
|
303
|
+
@action reload() {
|
|
304
|
+
return this.hostRouter.refresh();
|
|
305
|
+
}
|
|
306
|
+
|
|
300
307
|
/**
|
|
301
308
|
* Toggles dialog to export `contact`
|
|
302
309
|
*
|
|
@@ -464,6 +464,13 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
464
464
|
this.layout = layout;
|
|
465
465
|
}
|
|
466
466
|
|
|
467
|
+
/**
|
|
468
|
+
* Reload layout view.
|
|
469
|
+
*/
|
|
470
|
+
@action reload() {
|
|
471
|
+
return this.hostRouter.refresh();
|
|
472
|
+
}
|
|
473
|
+
|
|
467
474
|
/**
|
|
468
475
|
* Bulk deletes selected `driver` via confirm prompt
|
|
469
476
|
*
|
|
@@ -385,6 +385,13 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
385
385
|
});
|
|
386
386
|
}
|
|
387
387
|
|
|
388
|
+
/**
|
|
389
|
+
* Reload layout view.
|
|
390
|
+
*/
|
|
391
|
+
@action reload() {
|
|
392
|
+
return this.hostRouter.refresh();
|
|
393
|
+
}
|
|
394
|
+
|
|
388
395
|
/**
|
|
389
396
|
* Toggles dialog to export `fleet`
|
|
390
397
|
*
|
|
@@ -357,6 +357,13 @@ export default class ManagementFuelReportsIndexController extends Controller {
|
|
|
357
357
|
this.transitionToRoute('management.fuel-reports.index.details', fuelReport);
|
|
358
358
|
}
|
|
359
359
|
|
|
360
|
+
/**
|
|
361
|
+
* Reload layout view.
|
|
362
|
+
*/
|
|
363
|
+
@action reload() {
|
|
364
|
+
return this.hostRouter.refresh();
|
|
365
|
+
}
|
|
366
|
+
|
|
360
367
|
/**
|
|
361
368
|
* Create a new fuel report
|
|
362
369
|
*
|
|
@@ -394,6 +394,13 @@ export default class ManagementIssuesIndexController extends Controller {
|
|
|
394
394
|
this.crud.export('issue');
|
|
395
395
|
}
|
|
396
396
|
|
|
397
|
+
/**
|
|
398
|
+
* Reload layout view.
|
|
399
|
+
*/
|
|
400
|
+
@action reload() {
|
|
401
|
+
return this.hostRouter.refresh();
|
|
402
|
+
}
|
|
403
|
+
|
|
397
404
|
/**
|
|
398
405
|
* View the selected issue
|
|
399
406
|
*
|
|
@@ -349,6 +349,12 @@ export default class ManagementPlacesIndexController extends Controller {
|
|
|
349
349
|
return this.transitionToRoute('management.places.index.details', place);
|
|
350
350
|
}
|
|
351
351
|
|
|
352
|
+
/**
|
|
353
|
+
* Reload layout view.
|
|
354
|
+
*/
|
|
355
|
+
@action reload() {
|
|
356
|
+
return this.hostRouter.refresh();
|
|
357
|
+
}
|
|
352
358
|
/**
|
|
353
359
|
* Create a new place
|
|
354
360
|
*
|
|
@@ -83,8 +83,8 @@ export default class ManagementVehiclesIndexController extends ManagementControl
|
|
|
83
83
|
'name',
|
|
84
84
|
'plate_number',
|
|
85
85
|
'year',
|
|
86
|
-
'
|
|
87
|
-
'
|
|
86
|
+
'vehicle_make',
|
|
87
|
+
'vehicle_model',
|
|
88
88
|
'display_name',
|
|
89
89
|
];
|
|
90
90
|
|
|
@@ -145,18 +145,18 @@ export default class ManagementVehiclesIndexController extends ManagementControl
|
|
|
145
145
|
@tracked plate_number;
|
|
146
146
|
|
|
147
147
|
/**
|
|
148
|
-
* The filterable param `
|
|
148
|
+
* The filterable param `vehicle_make`.
|
|
149
149
|
*
|
|
150
150
|
* @var {String}
|
|
151
151
|
*/
|
|
152
|
-
@tracked
|
|
152
|
+
@tracked vehicle_make;
|
|
153
153
|
|
|
154
154
|
/**
|
|
155
|
-
* The filterable param `
|
|
155
|
+
* The filterable param `vehicle_model`.
|
|
156
156
|
*
|
|
157
157
|
* @var {String}
|
|
158
158
|
*/
|
|
159
|
-
@tracked
|
|
159
|
+
@tracked vehicle_model;
|
|
160
160
|
|
|
161
161
|
/**
|
|
162
162
|
* The filterable param `year`.
|
|
@@ -165,20 +165,6 @@ export default class ManagementVehiclesIndexController extends ManagementControl
|
|
|
165
165
|
*/
|
|
166
166
|
@tracked year;
|
|
167
167
|
|
|
168
|
-
/**
|
|
169
|
-
* The filterable param `make`.
|
|
170
|
-
*
|
|
171
|
-
* @var {String}
|
|
172
|
-
*/
|
|
173
|
-
@tracked make;
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* The filterable param `model`.
|
|
177
|
-
*
|
|
178
|
-
* @var {String}
|
|
179
|
-
*/
|
|
180
|
-
@tracked model;
|
|
181
|
-
|
|
182
168
|
/**
|
|
183
169
|
* The filterable param `country`.
|
|
184
170
|
*
|
|
@@ -420,6 +406,13 @@ export default class ManagementVehiclesIndexController extends ManagementControl
|
|
|
420
406
|
},
|
|
421
407
|
];
|
|
422
408
|
|
|
409
|
+
/**
|
|
410
|
+
* Reload layout view.
|
|
411
|
+
*/
|
|
412
|
+
@action reload() {
|
|
413
|
+
return this.hostRouter.refresh();
|
|
414
|
+
}
|
|
415
|
+
|
|
423
416
|
/**
|
|
424
417
|
* Bulk deletes selected `vehicle` via confirm prompt
|
|
425
418
|
*
|
|
@@ -377,6 +377,13 @@ export default class ManagementVendorsIndexController extends Controller {
|
|
|
377
377
|
return this.transitionToRoute('management.vendors.index.details', vendor);
|
|
378
378
|
}
|
|
379
379
|
|
|
380
|
+
/**
|
|
381
|
+
* Reload layout view.
|
|
382
|
+
*/
|
|
383
|
+
@action reload() {
|
|
384
|
+
return this.hostRouter.refresh();
|
|
385
|
+
}
|
|
386
|
+
|
|
380
387
|
/**
|
|
381
388
|
* Create a new `vendor` in modal
|
|
382
389
|
*
|
|
@@ -228,6 +228,13 @@ export default class OperationsServiceRatesIndexController extends Controller {
|
|
|
228
228
|
this.query = value;
|
|
229
229
|
}
|
|
230
230
|
|
|
231
|
+
/**
|
|
232
|
+
* Reload layout view.
|
|
233
|
+
*/
|
|
234
|
+
@action reload() {
|
|
235
|
+
return this.hostRouter.refresh();
|
|
236
|
+
}
|
|
237
|
+
|
|
231
238
|
/**
|
|
232
239
|
* Toggles dialog to export `service-rate`
|
|
233
240
|
*
|
|
@@ -14,10 +14,10 @@ export default class ManagementVehiclesIndexRoute extends Route {
|
|
|
14
14
|
public_id: { refreshModel: true },
|
|
15
15
|
vin: { refreshModel: true },
|
|
16
16
|
plate_number: { refreshModel: true },
|
|
17
|
-
|
|
17
|
+
vehicle_make: { refreshModel: true },
|
|
18
|
+
vehicle_model: { refreshModel: true },
|
|
18
19
|
year: { refreshModel: true },
|
|
19
20
|
country: { refreshModel: true },
|
|
20
|
-
make: { refreshModel: true },
|
|
21
21
|
fleet: { refreshModel: true },
|
|
22
22
|
vendor: { refreshModel: true },
|
|
23
23
|
driver: { refreshModel: true },
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<Layout::Section::Header @title="Contacts" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
|
|
2
|
+
<Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
|
|
2
3
|
<FiltersPicker
|
|
3
4
|
@columns={{this.columns}}
|
|
4
5
|
@onApply={{fn this.filters.apply this}}
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
@searchQuery={{this.query}}
|
|
5
5
|
@onSearch={{perform this.search}}
|
|
6
6
|
>
|
|
7
|
-
<Button @icon="
|
|
7
|
+
<Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
|
|
8
|
+
<Button @icon="grip-horizontal" @prefix="fas" @onClick={{this.reload}} @disabled={{this.isGridLayout}} class="mr-2" />
|
|
8
9
|
<Button @icon="table" @prefix="fas" @onClick={{fn this.changeLayout "table"}} @disabled={{this.isTableLayout}} class="mr-2" />
|
|
9
10
|
<FiltersPicker
|
|
10
11
|
@columns={{this.columns}}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
<Layout::Section::Header @title="Fleets" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
|
|
2
|
-
<
|
|
2
|
+
<Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
|
|
3
|
+
<FiltersPicker
|
|
4
|
+
@columns={{this.columns}}
|
|
5
|
+
@onApply={{fn this.filters.apply this}}
|
|
6
|
+
@onClear={{fn this.filters.reset this}}
|
|
7
|
+
@onFilterClear={{this.filters.clear}}
|
|
8
|
+
@onChange={{this.filters.set}}
|
|
9
|
+
@buttonWrapperClass="mr-2"
|
|
10
|
+
/>
|
|
3
11
|
<VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
|
|
4
|
-
|
|
12
|
+
{{#if (safe-has this.table "selectedRows")}}
|
|
5
13
|
<DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
|
|
6
14
|
<div class="next-dd-menu mt-2 mx-0">
|
|
7
15
|
<div class="px-1">
|
|
@@ -17,6 +25,18 @@
|
|
|
17
25
|
</Layout::Section::Header>
|
|
18
26
|
|
|
19
27
|
<Layout::Section::Body>
|
|
20
|
-
<Table
|
|
28
|
+
<Table
|
|
29
|
+
@rows={{@model}}
|
|
30
|
+
@columns={{this.columns}}
|
|
31
|
+
@selectable={{true}}
|
|
32
|
+
@canSelectAll={{true}}
|
|
33
|
+
@onSetup={{fn (mut this.table)}}
|
|
34
|
+
@pagination={{true}}
|
|
35
|
+
@paginationMeta={{@model.meta}}
|
|
36
|
+
@page={{this.page}}
|
|
37
|
+
@onPageChange={{fn (mut this.page)}}
|
|
38
|
+
@tfootVerticalOffset="53"
|
|
39
|
+
@tfootVerticalOffsetElements=".next-view-section-subheader"
|
|
40
|
+
/>
|
|
21
41
|
</Layout::Section::Body>
|
|
22
42
|
{{outlet}}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<Layout::Section::Header @title="Fuel Reports" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
|
|
2
|
+
<Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
|
|
2
3
|
<FiltersPicker
|
|
3
4
|
@columns={{this.columns}}
|
|
4
5
|
@onApply={{fn this.filters.apply this}}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
<Layout::Section::Header @title="Issues" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
|
|
2
|
-
<
|
|
2
|
+
<Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
|
|
3
|
+
<FiltersPicker
|
|
4
|
+
@columns={{this.columns}}
|
|
5
|
+
@onApply={{fn this.filters.apply this}}
|
|
6
|
+
@onClear={{fn this.filters.reset this}}
|
|
7
|
+
@onFilterClear={{this.filters.clear}}
|
|
8
|
+
@onChange={{this.filters.set}}
|
|
9
|
+
@buttonWrapperClass="mr-2"
|
|
10
|
+
/>
|
|
3
11
|
<VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
|
|
4
12
|
{{#if (safe-has this.table "selectedRows")}}
|
|
5
13
|
<DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
|
|
@@ -17,7 +25,19 @@
|
|
|
17
25
|
</Layout::Section::Header>
|
|
18
26
|
|
|
19
27
|
<Layout::Section::Body>
|
|
20
|
-
<Table
|
|
28
|
+
<Table
|
|
29
|
+
@rows={{@model}}
|
|
30
|
+
@columns={{this.columns}}
|
|
31
|
+
@selectable={{true}}
|
|
32
|
+
@canSelectAll={{true}}
|
|
33
|
+
@onSetup={{fn (mut this.table)}}
|
|
34
|
+
@pagination={{true}}
|
|
35
|
+
@paginationMeta={{@model.meta}}
|
|
36
|
+
@page={{this.page}}
|
|
37
|
+
@onPageChange={{fn (mut this.page)}}
|
|
38
|
+
@tfootVerticalOffset="53"
|
|
39
|
+
@tfootVerticalOffsetElements=".next-view-section-subheader"
|
|
40
|
+
/>
|
|
21
41
|
</Layout::Section::Body>
|
|
22
42
|
|
|
23
43
|
{{outlet}}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
<Layout::Section::Header @title="Places" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
|
|
2
|
-
<
|
|
2
|
+
<Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
|
|
3
|
+
<FiltersPicker
|
|
4
|
+
@columns={{this.columns}}
|
|
5
|
+
@onApply={{fn this.filters.apply this}}
|
|
6
|
+
@onClear={{fn this.filters.reset this}}
|
|
7
|
+
@onFilterClear={{this.filters.clear}}
|
|
8
|
+
@onChange={{this.filters.set}}
|
|
9
|
+
@buttonWrapperClass="mr-2"
|
|
10
|
+
/>
|
|
3
11
|
<VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
|
|
4
12
|
{{#if (safe-has this.table "selectedRows")}}
|
|
5
13
|
<DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
<Layout::Section::Header @title="Vehicles" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
|
|
2
|
-
<
|
|
2
|
+
<Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
|
|
3
|
+
<FiltersPicker
|
|
4
|
+
@columns={{this.columns}}
|
|
5
|
+
@onApply={{fn this.filters.apply this}}
|
|
6
|
+
@onClear={{fn this.filters.reset this}}
|
|
7
|
+
@onFilterClear={{this.filters.clear}}
|
|
8
|
+
@onChange={{this.filters.set}}
|
|
9
|
+
@buttonWrapperClass="mr-2"
|
|
10
|
+
/>
|
|
3
11
|
<VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
|
|
4
12
|
{{#if (safe-has this.table "selectedRows")}}
|
|
5
13
|
<DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
|
|
@@ -17,6 +25,18 @@
|
|
|
17
25
|
</Layout::Section::Header>
|
|
18
26
|
|
|
19
27
|
<Layout::Section::Body>
|
|
20
|
-
<Table
|
|
28
|
+
<Table
|
|
29
|
+
@rows={{@model}}
|
|
30
|
+
@columns={{this.columns}}
|
|
31
|
+
@selectable={{true}}
|
|
32
|
+
@canSelectAll={{true}}
|
|
33
|
+
@onSetup={{fn (mut this.table)}}
|
|
34
|
+
@pagination={{true}}
|
|
35
|
+
@paginationMeta={{@model.meta}}
|
|
36
|
+
@page={{this.page}}
|
|
37
|
+
@onPageChange={{fn (mut this.page)}}
|
|
38
|
+
@tfootVerticalOffset="53"
|
|
39
|
+
@tfootVerticalOffsetElements=".next-view-section-subheader"
|
|
40
|
+
/>
|
|
21
41
|
</Layout::Section::Body>
|
|
22
42
|
{{outlet}}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
<Layout::Section::Header @title="Vendors" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
|
|
2
|
-
<
|
|
2
|
+
<Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
|
|
3
|
+
<FiltersPicker
|
|
4
|
+
@columns={{this.columns}}
|
|
5
|
+
@onApply={{fn this.filters.apply this}}
|
|
6
|
+
@onClear={{fn this.filters.reset this}}
|
|
7
|
+
@onFilterClear={{this.filters.clear}}
|
|
8
|
+
@onChange={{this.filters.set}}
|
|
9
|
+
@buttonWrapperClass="mr-2"
|
|
10
|
+
/>
|
|
3
11
|
<VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
|
|
4
12
|
{{#if (safe-has this.table "selectedRows")}}
|
|
5
13
|
<DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
|
|
@@ -17,6 +25,18 @@
|
|
|
17
25
|
</Layout::Section::Header>
|
|
18
26
|
|
|
19
27
|
<Layout::Section::Body>
|
|
20
|
-
<Table
|
|
28
|
+
<Table
|
|
29
|
+
@rows={{this.rows}}
|
|
30
|
+
@columns={{this.columns}}
|
|
31
|
+
@selectable={{true}}
|
|
32
|
+
@canSelectAll={{true}}
|
|
33
|
+
@onSetup={{fn (mut this.table)}}
|
|
34
|
+
@pagination={{true}}
|
|
35
|
+
@paginationMeta={{@model.meta}}
|
|
36
|
+
@page={{this.page}}
|
|
37
|
+
@onPageChange={{fn (mut this.page)}}
|
|
38
|
+
@tfootVerticalOffset="53"
|
|
39
|
+
@tfootVerticalOffsetElements=".next-view-section-subheader"
|
|
40
|
+
/>
|
|
21
41
|
</Layout::Section::Body>
|
|
22
42
|
{{outlet}}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
<Layout::Section::Header @title="Service Rates" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
|
|
2
|
-
<
|
|
2
|
+
<Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
|
|
3
|
+
<FiltersPicker
|
|
4
|
+
@columns={{this.columns}}
|
|
5
|
+
@onApply={{fn this.filters.apply this}}
|
|
6
|
+
@onClear={{fn this.filters.reset this}}
|
|
7
|
+
@onFilterClear={{this.filters.clear}}
|
|
8
|
+
@onChange={{this.filters.set}}
|
|
9
|
+
@buttonWrapperClass="mr-2"
|
|
10
|
+
/>
|
|
3
11
|
<VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
|
|
4
|
-
|
|
12
|
+
{{#if (safe-has this.table "selectedRows")}}
|
|
5
13
|
<DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
|
|
6
14
|
<div class="next-dd-menu mt-2 mx-0">
|
|
7
15
|
<div class="px-1">
|
|
@@ -12,7 +20,7 @@
|
|
|
12
20
|
</div>
|
|
13
21
|
</DropdownButton>
|
|
14
22
|
{{/if}}
|
|
15
|
-
<Button @icon="plus" @iconPrefix="fas" @type="primary" @text="New" class="mr-2" @onClick={{transition-to
|
|
23
|
+
<Button @icon="plus" @iconPrefix="fas" @type="primary" @text="New" class="mr-2" @onClick={{transition-to "operations.service-rates.index.new"}} />
|
|
16
24
|
<Button @icon="long-arrow-up" @iconClass="rotate-icon-45" @text="Export" />
|
|
17
25
|
</Layout::Section::Header>
|
|
18
26
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/components/layout/fleet-ops-sidebar/fleet-listing';
|
package/composer.json
CHANGED
package/extension.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fleetbase/fleetops-engine",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"description": "Fleet & Transport Management Extension for Fleetbase",
|
|
5
5
|
"fleetbase": {
|
|
6
6
|
"route": "fleet-ops",
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@fleetbase/ember-core": "^0.1.8",
|
|
43
|
-
"@fleetbase/ember-ui": "^0.2.
|
|
44
|
-
"@fleetbase/fleetops-data": "^0.1.
|
|
43
|
+
"@fleetbase/ember-ui": "^0.2.6",
|
|
44
|
+
"@fleetbase/fleetops-data": "^0.1.5",
|
|
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",
|
|
@@ -19,9 +19,9 @@ return new class extends Migration
|
|
|
19
19
|
$table->string('uuid', 191)->nullable()->index();
|
|
20
20
|
$table->string('public_id', 191)->nullable()->unique();
|
|
21
21
|
$table->string('internal_id')->nullable();
|
|
22
|
-
$table->
|
|
22
|
+
$table->uuid('company_uuid')->nullable()->index('contacts_company_uuid_foreign');
|
|
23
23
|
$table->char('user_uuid', 36)->nullable()->index();
|
|
24
|
-
$table->
|
|
24
|
+
$table->uuid('photo_uuid')->nullable()->index('contacts_photo_uuid_foreign');
|
|
25
25
|
$table->string('name')->nullable();
|
|
26
26
|
$table->string('title')->nullable();
|
|
27
27
|
$table->string('email', 191)->nullable()->index();
|
|
@@ -19,12 +19,12 @@ return new class extends Migration
|
|
|
19
19
|
$table->string('uuid', 191)->nullable()->index();
|
|
20
20
|
$table->string('public_id', 191)->nullable()->unique();
|
|
21
21
|
$table->string('internal_id')->nullable();
|
|
22
|
-
$table->
|
|
23
|
-
$table->
|
|
24
|
-
$table->
|
|
22
|
+
$table->uuid('company_uuid')->nullable()->index('drivers_company_uuid_foreign');
|
|
23
|
+
$table->uuid('vehicle_uuid')->nullable()->index('drivers_vehicle_uuid_foreign');
|
|
24
|
+
$table->uuid('vendor_uuid')->nullable()->index('drivers_vendor_uuid_foreign');
|
|
25
25
|
$table->string('vendor_type')->nullable();
|
|
26
|
-
$table->
|
|
27
|
-
$table->
|
|
26
|
+
$table->uuid('current_job_uuid')->nullable()->index('drivers_current_job_uuid_foreign');
|
|
27
|
+
$table->uuid('user_uuid')->nullable()->index();
|
|
28
28
|
$table->string('auth_token')->nullable();
|
|
29
29
|
$table->string('drivers_license_number')->nullable();
|
|
30
30
|
$table->string('signup_token_used')->nullable();
|
|
@@ -18,13 +18,13 @@ return new class extends Migration
|
|
|
18
18
|
$table->string('_key')->nullable();
|
|
19
19
|
$table->string('uuid', 191)->nullable()->index();
|
|
20
20
|
$table->string('public_id', 191)->nullable()->index();
|
|
21
|
-
$table->
|
|
22
|
-
$table->
|
|
23
|
-
$table->
|
|
24
|
-
$table->
|
|
21
|
+
$table->uuid('payload_uuid')->nullable()->index('entities_payload_uuid_foreign');
|
|
22
|
+
$table->uuid('company_uuid')->nullable()->index();
|
|
23
|
+
$table->uuid('driver_assigned_uuid')->nullable()->index('entities_driver_assigned_uuid_foreign');
|
|
24
|
+
$table->uuid('destination_uuid')->nullable()->index();
|
|
25
25
|
$table->string('customer_uuid')->nullable();
|
|
26
26
|
$table->string('customer_type')->nullable();
|
|
27
|
-
$table->
|
|
27
|
+
$table->uuid('tracking_number_uuid')->nullable()->index('entities_tracking_number_uuid_foreign');
|
|
28
28
|
$table->mediumText('photo_uuid')->nullable();
|
|
29
29
|
$table->string('_import_id', 191)->nullable()->index();
|
|
30
30
|
$table->string('internal_id', 191)->nullable()->index();
|
|
@@ -17,8 +17,8 @@ return new class extends Migration
|
|
|
17
17
|
$table->increments('id');
|
|
18
18
|
$table->string('_key')->nullable();
|
|
19
19
|
$table->string('uuid', 191)->nullable()->index();
|
|
20
|
-
$table->
|
|
21
|
-
$table->
|
|
20
|
+
$table->uuid('fleet_uuid')->nullable()->index();
|
|
21
|
+
$table->uuid('driver_uuid')->nullable()->index();
|
|
22
22
|
$table->softDeletes();
|
|
23
23
|
$table->timestamp('created_at')->nullable()->index();
|
|
24
24
|
$table->timestamp('updated_at')->nullable();
|
|
@@ -18,9 +18,9 @@ return new class extends Migration
|
|
|
18
18
|
$table->string('_key')->nullable();
|
|
19
19
|
$table->string('uuid', 191)->nullable()->index();
|
|
20
20
|
$table->string('public_id', 191)->nullable()->unique();
|
|
21
|
-
$table->
|
|
22
|
-
$table->
|
|
23
|
-
$table->
|
|
21
|
+
$table->uuid('company_uuid')->nullable()->index();
|
|
22
|
+
$table->uuid('service_area_uuid')->nullable()->index('fleets_service_area_uuid_foreign');
|
|
23
|
+
$table->uuid('zone_uuid')->nullable()->index('fleets_zone_uuid_foreign');
|
|
24
24
|
$table->string('image_uuid')->nullable();
|
|
25
25
|
$table->string('name')->nullable();
|
|
26
26
|
$table->string('color')->nullable();
|
|
@@ -18,9 +18,9 @@ return new class extends Migration
|
|
|
18
18
|
$table->string('_key')->nullable();
|
|
19
19
|
$table->string('uuid', 191)->nullable()->index();
|
|
20
20
|
$table->string('public_id', 191)->nullable()->unique();
|
|
21
|
-
$table->
|
|
22
|
-
$table->
|
|
23
|
-
$table->
|
|
21
|
+
$table->uuid('company_uuid')->nullable()->index();
|
|
22
|
+
$table->uuid('driver_uuid')->nullable()->index('fuel_reports_driver_uuid_foreign');
|
|
23
|
+
$table->uuid('vehicle_uuid')->nullable()->index('fuel_reports_vehicle_uuid_foreign');
|
|
24
24
|
$table->string('odometer')->nullable();
|
|
25
25
|
$table->point('location');
|
|
26
26
|
$table->string('latitude')->nullable();
|