@fleetbase/fleetops-engine 0.6.25 → 0.6.27
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/DRIVER_SCHEDULING.md +186 -0
- package/addon/components/driver/schedule.hbs +100 -0
- package/addon/components/driver/schedule.js +267 -0
- package/addon/components/order/kanban-card.hbs +2 -2
- package/addon/components/vehicle/details.hbs +594 -4
- package/addon/components/vehicle/form.hbs +467 -41
- package/addon/controllers/analytics/reports/index.js +3 -2
- package/addon/controllers/connectivity/devices/index.js +3 -3
- package/addon/controllers/connectivity/events/index.js +3 -2
- package/addon/controllers/connectivity/sensors/index.js +3 -5
- package/addon/controllers/connectivity/telematics/index.js +3 -1
- package/addon/controllers/maintenance/equipment/index.js +4 -4
- package/addon/controllers/maintenance/parts/index.js +4 -4
- package/addon/controllers/maintenance/work-orders/index.js +4 -4
- package/addon/controllers/management/contacts/customers.js +12 -10
- package/addon/controllers/management/contacts/index.js +3 -10
- package/addon/controllers/management/drivers/index/details.js +26 -13
- package/addon/controllers/management/drivers/index.js +4 -16
- package/addon/controllers/management/fleets/index.js +3 -13
- package/addon/controllers/management/fuel-reports/index.js +3 -10
- package/addon/controllers/management/issues/index.js +3 -12
- package/addon/controllers/management/places/index.js +4 -12
- package/addon/controllers/management/vehicles/index.js +3 -13
- package/addon/controllers/management/vendors/index.js +3 -13
- package/addon/controllers/operations/orders/index.js +5 -22
- package/addon/controllers/operations/scheduler/index.js +195 -6
- package/addon/controllers/operations/service-rates/index.js +34 -34
- package/addon/controllers/settings/payments/index.js +0 -6
- package/addon/routes.js +1 -0
- package/addon/services/driver-scheduling.js +171 -0
- package/addon/services/leaflet-layer-visibility-manager.js +4 -1
- package/addon/services/service-rate-actions.js +5 -1
- package/addon/templates/management/drivers/index/details/positions.hbs +1 -2
- package/addon/templates/management/drivers/index/details/schedule.hbs +1 -2
- package/addon/templates/operations/scheduler/index.hbs +48 -10
- package/addon/utils/fleet-ops-options.js +86 -0
- package/app/services/driver-scheduling.js +1 -0
- package/composer.json +1 -1
- package/extension.json +1 -1
- package/package.json +3 -3
- package/server/migrations/2025_11_17_033648_add_additional_columns_to_vehicles_table.php +142 -0
- package/server/src/Constraints/HOSConstraint.php +244 -0
- package/server/src/Http/Controllers/Api/v1/OrderController.php +1 -1
- package/server/src/Http/Controllers/Internal/v1/OrderController.php +8 -3
- package/server/src/Http/Resources/v1/Vehicle.php +197 -19
- package/server/src/Http/Resources/v1/VehicleWithoutDriver.php +211 -28
- package/server/src/Models/Driver.php +12 -8
- package/server/src/Models/Place.php +2 -2
- package/server/src/Models/Vehicle.php +101 -15
|
@@ -57,9 +57,9 @@ export default class ConnectivitySensorsIndexController extends Controller {
|
|
|
57
57
|
/** columns */
|
|
58
58
|
@tracked columns = [
|
|
59
59
|
{
|
|
60
|
+
sticky: true,
|
|
60
61
|
label: this.intl.t('column.name'),
|
|
61
62
|
valuePath: 'displayName',
|
|
62
|
-
width: '180px',
|
|
63
63
|
cellComponent: 'table/cell/anchor',
|
|
64
64
|
cellClassNames: 'uppercase',
|
|
65
65
|
action: this.sensorActions.transition.view,
|
|
@@ -121,7 +121,6 @@ export default class ConnectivitySensorsIndexController extends Controller {
|
|
|
121
121
|
label: this.intl.t('column.status'),
|
|
122
122
|
valuePath: 'status',
|
|
123
123
|
cellComponent: 'table/cell/status',
|
|
124
|
-
width: '10%',
|
|
125
124
|
resizable: true,
|
|
126
125
|
sortable: true,
|
|
127
126
|
filterable: true,
|
|
@@ -132,7 +131,6 @@ export default class ConnectivitySensorsIndexController extends Controller {
|
|
|
132
131
|
label: this.intl.t('column.created-at'),
|
|
133
132
|
valuePath: 'createdAt',
|
|
134
133
|
sortParam: 'created_at',
|
|
135
|
-
width: '10%',
|
|
136
134
|
resizable: true,
|
|
137
135
|
sortable: true,
|
|
138
136
|
filterable: true,
|
|
@@ -142,7 +140,6 @@ export default class ConnectivitySensorsIndexController extends Controller {
|
|
|
142
140
|
label: this.intl.t('column.updated-at'),
|
|
143
141
|
valuePath: 'updatedAt',
|
|
144
142
|
sortParam: 'updated_at',
|
|
145
|
-
width: '10%',
|
|
146
143
|
resizable: true,
|
|
147
144
|
sortable: true,
|
|
148
145
|
hidden: true,
|
|
@@ -159,7 +156,8 @@ export default class ConnectivitySensorsIndexController extends Controller {
|
|
|
159
156
|
ddMenuLabel: this.intl.t('common.resource-actions', { resource: this.intl.t('resource.sensor') }),
|
|
160
157
|
cellClassNames: 'overflow-visible',
|
|
161
158
|
wrapperClass: 'flex items-center justify-end mx-2',
|
|
162
|
-
|
|
159
|
+
sticky: 'right',
|
|
160
|
+
width: 60,
|
|
163
161
|
actions: [
|
|
164
162
|
{
|
|
165
163
|
label: this.intl.t('common.view-resource', { resource: this.intl.t('resource.sensor') }),
|
|
@@ -57,6 +57,7 @@ export default class ConnectivityTelematicsIndexController extends Controller {
|
|
|
57
57
|
/** columns */
|
|
58
58
|
@tracked columns = [
|
|
59
59
|
{
|
|
60
|
+
sticky: true,
|
|
60
61
|
label: 'Provider',
|
|
61
62
|
valuePath: 'provider',
|
|
62
63
|
cellComponent: 'table/cell/anchor',
|
|
@@ -108,7 +109,8 @@ export default class ConnectivityTelematicsIndexController extends Controller {
|
|
|
108
109
|
ddMenuLabel: this.intl.t('common.resource-actions', { resource: this.intl.t('resource.telematic') }),
|
|
109
110
|
cellClassNames: 'overflow-visible',
|
|
110
111
|
wrapperClass: 'flex items-center justify-end mx-2',
|
|
111
|
-
|
|
112
|
+
sticky: 'right',
|
|
113
|
+
width: 60,
|
|
112
114
|
actions: [
|
|
113
115
|
{
|
|
114
116
|
label: this.intl.t('common.view-resource', { resource: this.intl.t('resource.telematic') }),
|
|
@@ -56,7 +56,7 @@ export default class MaintenanceEquipmentIndexController extends Controller {
|
|
|
56
56
|
{
|
|
57
57
|
label: this.intl.t('column.name'),
|
|
58
58
|
valuePath: 'name',
|
|
59
|
-
|
|
59
|
+
|
|
60
60
|
cellComponent: 'table/cell/anchor',
|
|
61
61
|
cellClassNames: 'uppercase',
|
|
62
62
|
action: this.equipmentActions.transition.view,
|
|
@@ -72,7 +72,7 @@ export default class MaintenanceEquipmentIndexController extends Controller {
|
|
|
72
72
|
label: this.intl.t('column.created-at'),
|
|
73
73
|
valuePath: 'createdAt',
|
|
74
74
|
sortParam: 'created_at',
|
|
75
|
-
|
|
75
|
+
|
|
76
76
|
resizable: true,
|
|
77
77
|
sortable: true,
|
|
78
78
|
filterable: true,
|
|
@@ -82,7 +82,7 @@ export default class MaintenanceEquipmentIndexController extends Controller {
|
|
|
82
82
|
label: this.intl.t('column.updated-at'),
|
|
83
83
|
valuePath: 'updatedAt',
|
|
84
84
|
sortParam: 'updated_at',
|
|
85
|
-
|
|
85
|
+
|
|
86
86
|
resizable: true,
|
|
87
87
|
sortable: true,
|
|
88
88
|
hidden: true,
|
|
@@ -99,7 +99,7 @@ export default class MaintenanceEquipmentIndexController extends Controller {
|
|
|
99
99
|
ddMenuLabel: this.intl.t('common.resource-actions', { resource: this.intl.t('resource.equipment') }),
|
|
100
100
|
cellClassNames: 'overflow-visible',
|
|
101
101
|
wrapperClass: 'flex items-center justify-end mx-2',
|
|
102
|
-
|
|
102
|
+
|
|
103
103
|
actions: [
|
|
104
104
|
{
|
|
105
105
|
label: this.intl.t('column.view-details'),
|
|
@@ -56,7 +56,7 @@ export default class MaintenancePartsIndexController extends Controller {
|
|
|
56
56
|
{
|
|
57
57
|
label: this.intl.t('column.name'),
|
|
58
58
|
valuePath: 'name',
|
|
59
|
-
|
|
59
|
+
|
|
60
60
|
cellComponent: 'table/cell/anchor',
|
|
61
61
|
cellClassNames: 'uppercase',
|
|
62
62
|
action: this.partActions.transition.view,
|
|
@@ -72,7 +72,7 @@ export default class MaintenancePartsIndexController extends Controller {
|
|
|
72
72
|
label: this.intl.t('column.created-at'),
|
|
73
73
|
valuePath: 'createdAt',
|
|
74
74
|
sortParam: 'created_at',
|
|
75
|
-
|
|
75
|
+
|
|
76
76
|
resizable: true,
|
|
77
77
|
sortable: true,
|
|
78
78
|
filterable: true,
|
|
@@ -82,7 +82,7 @@ export default class MaintenancePartsIndexController extends Controller {
|
|
|
82
82
|
label: this.intl.t('column.updated-at'),
|
|
83
83
|
valuePath: 'updatedAt',
|
|
84
84
|
sortParam: 'updated_at',
|
|
85
|
-
|
|
85
|
+
|
|
86
86
|
resizable: true,
|
|
87
87
|
sortable: true,
|
|
88
88
|
hidden: true,
|
|
@@ -99,7 +99,7 @@ export default class MaintenancePartsIndexController extends Controller {
|
|
|
99
99
|
ddMenuLabel: this.intl.t('common.resource-actions', { resource: this.intl.t('resource.part') }),
|
|
100
100
|
cellClassNames: 'overflow-visible',
|
|
101
101
|
wrapperClass: 'flex items-center justify-end mx-2',
|
|
102
|
-
|
|
102
|
+
|
|
103
103
|
actions: [
|
|
104
104
|
{
|
|
105
105
|
label: this.intl.t('column.view-details'),
|
|
@@ -56,7 +56,7 @@ export default class MaintenanceWorkOrdersIndexController extends Controller {
|
|
|
56
56
|
{
|
|
57
57
|
label: this.intl.t('column.name'),
|
|
58
58
|
valuePath: 'name',
|
|
59
|
-
|
|
59
|
+
|
|
60
60
|
cellComponent: 'table/cell/anchor',
|
|
61
61
|
cellClassNames: 'uppercase',
|
|
62
62
|
action: this.workOrderActions.transition.view,
|
|
@@ -72,7 +72,7 @@ export default class MaintenanceWorkOrdersIndexController extends Controller {
|
|
|
72
72
|
label: this.intl.t('column.created-at'),
|
|
73
73
|
valuePath: 'createdAt',
|
|
74
74
|
sortParam: 'created_at',
|
|
75
|
-
|
|
75
|
+
|
|
76
76
|
resizable: true,
|
|
77
77
|
sortable: true,
|
|
78
78
|
filterable: true,
|
|
@@ -82,7 +82,7 @@ export default class MaintenanceWorkOrdersIndexController extends Controller {
|
|
|
82
82
|
label: this.intl.t('column.updated-at'),
|
|
83
83
|
valuePath: 'updatedAt',
|
|
84
84
|
sortParam: 'updated_at',
|
|
85
|
-
|
|
85
|
+
|
|
86
86
|
resizable: true,
|
|
87
87
|
sortable: true,
|
|
88
88
|
hidden: true,
|
|
@@ -99,7 +99,7 @@ export default class MaintenanceWorkOrdersIndexController extends Controller {
|
|
|
99
99
|
ddMenuLabel: this.intl.t('common.resource-actions', { resource: this.intl.t('resource.Work Order') }),
|
|
100
100
|
cellClassNames: 'overflow-visible',
|
|
101
101
|
wrapperClass: 'flex items-center justify-end mx-2',
|
|
102
|
-
|
|
102
|
+
|
|
103
103
|
actions: [
|
|
104
104
|
{
|
|
105
105
|
label: this.intl.t('column.view-details'),
|
|
@@ -8,9 +8,10 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
8
8
|
get columns() {
|
|
9
9
|
return [
|
|
10
10
|
{
|
|
11
|
+
sticky: true,
|
|
11
12
|
label: this.intl.t('column.name'),
|
|
12
13
|
valuePath: 'name',
|
|
13
|
-
|
|
14
|
+
|
|
14
15
|
cellComponent: 'table/cell/media-name',
|
|
15
16
|
action: this.contactActions.transition.view,
|
|
16
17
|
permission: 'fleet-ops view contact',
|
|
@@ -23,7 +24,7 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
23
24
|
label: this.intl.t('column.id'),
|
|
24
25
|
valuePath: 'public_id',
|
|
25
26
|
cellComponent: 'click-to-copy',
|
|
26
|
-
|
|
27
|
+
|
|
27
28
|
resizable: true,
|
|
28
29
|
sortable: true,
|
|
29
30
|
filterable: true,
|
|
@@ -33,7 +34,7 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
33
34
|
label: this.intl.t('column.internal-id'),
|
|
34
35
|
valuePath: 'internal_id',
|
|
35
36
|
cellComponent: 'click-to-copy',
|
|
36
|
-
|
|
37
|
+
|
|
37
38
|
resizable: true,
|
|
38
39
|
sortable: true,
|
|
39
40
|
filterable: true,
|
|
@@ -43,7 +44,7 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
43
44
|
label: this.intl.t('column.title'),
|
|
44
45
|
valuePath: 'title',
|
|
45
46
|
cellComponent: 'click-to-copy',
|
|
46
|
-
|
|
47
|
+
|
|
47
48
|
resizable: true,
|
|
48
49
|
sortable: true,
|
|
49
50
|
filterable: true,
|
|
@@ -54,7 +55,7 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
54
55
|
label: this.intl.t('column.email'),
|
|
55
56
|
valuePath: 'email',
|
|
56
57
|
cellComponent: 'click-to-copy',
|
|
57
|
-
|
|
58
|
+
|
|
58
59
|
resizable: true,
|
|
59
60
|
sortable: true,
|
|
60
61
|
filterable: true,
|
|
@@ -64,7 +65,7 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
64
65
|
label: this.intl.t('column.phone'),
|
|
65
66
|
valuePath: 'phone',
|
|
66
67
|
cellComponent: 'click-to-copy',
|
|
67
|
-
|
|
68
|
+
|
|
68
69
|
resizable: true,
|
|
69
70
|
sortable: true,
|
|
70
71
|
filterable: true,
|
|
@@ -75,7 +76,7 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
75
76
|
valuePath: 'address',
|
|
76
77
|
cellComponent: 'table/cell/anchor',
|
|
77
78
|
action: this.contactActions.viewPlace,
|
|
78
|
-
|
|
79
|
+
|
|
79
80
|
resizable: true,
|
|
80
81
|
sortable: true,
|
|
81
82
|
filterable: true,
|
|
@@ -86,7 +87,7 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
86
87
|
label: this.intl.t('column.created'),
|
|
87
88
|
valuePath: 'createdAt',
|
|
88
89
|
sortParam: 'created_at',
|
|
89
|
-
|
|
90
|
+
|
|
90
91
|
resizable: true,
|
|
91
92
|
sortable: true,
|
|
92
93
|
filterable: true,
|
|
@@ -96,7 +97,7 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
96
97
|
label: this.intl.t('column.updated'),
|
|
97
98
|
valuePath: 'updatedAt',
|
|
98
99
|
sortParam: 'updated_at',
|
|
99
|
-
|
|
100
|
+
|
|
100
101
|
resizable: true,
|
|
101
102
|
sortable: true,
|
|
102
103
|
hidden: true,
|
|
@@ -112,7 +113,8 @@ export default class ManagementContactsCustomersController extends ManagementCon
|
|
|
112
113
|
ddMenuLabel: this.intl.t('common.resource-actions', { resource: this.intl.t('resource.customer') }),
|
|
113
114
|
cellClassNames: 'overflow-visible',
|
|
114
115
|
wrapperClass: 'flex items-center justify-end mx-2',
|
|
115
|
-
|
|
116
|
+
sticky: 'right',
|
|
117
|
+
width: 60,
|
|
116
118
|
actions: [
|
|
117
119
|
{
|
|
118
120
|
label: this.intl.t('common.view-resource', { resource: this.intl.t('resource.customer') }),
|
|
@@ -67,9 +67,9 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
67
67
|
get columns() {
|
|
68
68
|
return [
|
|
69
69
|
{
|
|
70
|
+
sticky: true,
|
|
70
71
|
label: this.intl.t('column.name'),
|
|
71
72
|
valuePath: 'name',
|
|
72
|
-
width: '140px',
|
|
73
73
|
cellComponent: 'table/cell/media-name',
|
|
74
74
|
action: this.contactActions.transition.view,
|
|
75
75
|
permission: 'fleet-ops view contact',
|
|
@@ -82,7 +82,6 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
82
82
|
label: this.intl.t('column.id'),
|
|
83
83
|
valuePath: 'public_id',
|
|
84
84
|
cellComponent: 'click-to-copy',
|
|
85
|
-
width: '120px',
|
|
86
85
|
resizable: true,
|
|
87
86
|
sortable: true,
|
|
88
87
|
filterable: true,
|
|
@@ -92,7 +91,6 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
92
91
|
label: this.intl.t('column.internal-id'),
|
|
93
92
|
valuePath: 'internal_id',
|
|
94
93
|
cellComponent: 'click-to-copy',
|
|
95
|
-
width: '100px',
|
|
96
94
|
resizable: true,
|
|
97
95
|
sortable: true,
|
|
98
96
|
filterable: true,
|
|
@@ -102,7 +100,6 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
102
100
|
label: this.intl.t('column.title'),
|
|
103
101
|
valuePath: 'title',
|
|
104
102
|
cellComponent: 'click-to-copy',
|
|
105
|
-
width: '80px',
|
|
106
103
|
resizable: true,
|
|
107
104
|
sortable: true,
|
|
108
105
|
filterable: true,
|
|
@@ -113,7 +110,6 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
113
110
|
label: this.intl.t('column.email'),
|
|
114
111
|
valuePath: 'email',
|
|
115
112
|
cellComponent: 'click-to-copy',
|
|
116
|
-
width: '150px',
|
|
117
113
|
resizable: true,
|
|
118
114
|
sortable: true,
|
|
119
115
|
filterable: true,
|
|
@@ -123,7 +119,6 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
123
119
|
label: this.intl.t('column.phone'),
|
|
124
120
|
valuePath: 'phone',
|
|
125
121
|
cellComponent: 'click-to-copy',
|
|
126
|
-
width: '130px',
|
|
127
122
|
resizable: true,
|
|
128
123
|
sortable: true,
|
|
129
124
|
filterable: true,
|
|
@@ -134,7 +129,6 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
134
129
|
valuePath: 'address',
|
|
135
130
|
cellComponent: 'table/cell/anchor',
|
|
136
131
|
action: this.contactActions.viewPlace,
|
|
137
|
-
width: '170px',
|
|
138
132
|
resizable: true,
|
|
139
133
|
sortable: true,
|
|
140
134
|
filterable: true,
|
|
@@ -145,7 +139,6 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
145
139
|
label: this.intl.t('column.created'),
|
|
146
140
|
valuePath: 'createdAt',
|
|
147
141
|
sortParam: 'created_at',
|
|
148
|
-
width: '160px',
|
|
149
142
|
resizable: true,
|
|
150
143
|
sortable: true,
|
|
151
144
|
filterable: true,
|
|
@@ -155,7 +148,6 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
155
148
|
label: this.intl.t('column.updated'),
|
|
156
149
|
valuePath: 'updatedAt',
|
|
157
150
|
sortParam: 'updated_at',
|
|
158
|
-
width: '130px',
|
|
159
151
|
resizable: true,
|
|
160
152
|
sortable: true,
|
|
161
153
|
hidden: true,
|
|
@@ -171,7 +163,8 @@ export default class ManagementContactsIndexController extends Controller {
|
|
|
171
163
|
ddMenuLabel: this.intl.t('common.resource-actions', { resource: this.intl.t('resource.contact') }),
|
|
172
164
|
cellClassNames: 'overflow-visible',
|
|
173
165
|
wrapperClass: 'flex items-center justify-end mx-2',
|
|
174
|
-
|
|
166
|
+
sticky: 'right',
|
|
167
|
+
width: 60,
|
|
175
168
|
actions: [
|
|
176
169
|
{
|
|
177
170
|
label: this.intl.t('common.view-resource', { resource: this.intl.t('resource.contact') }),
|
|
@@ -1,19 +1,32 @@
|
|
|
1
1
|
import Controller from '@ember/controller';
|
|
2
|
-
import { tracked } from '@glimmer/tracking';
|
|
3
2
|
import { inject as service } from '@ember/service';
|
|
4
3
|
|
|
5
4
|
export default class ManagementDriverIndexDetailsController extends Controller {
|
|
6
5
|
@service hostRouter;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
6
|
+
|
|
7
|
+
get tabs() {
|
|
8
|
+
return [
|
|
9
|
+
{
|
|
10
|
+
route: 'management.drivers.index.details.index',
|
|
11
|
+
label: 'Overview',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
route: 'management.drivers.index.details.positions',
|
|
15
|
+
label: 'Positions',
|
|
16
|
+
},
|
|
17
|
+
// {
|
|
18
|
+
// route: 'management.drivers.index.details.schedule',
|
|
19
|
+
// label: 'Schedule',
|
|
20
|
+
// },
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
get actionButtons() {
|
|
25
|
+
return [
|
|
26
|
+
{
|
|
27
|
+
icon: 'pencil',
|
|
28
|
+
fn: () => this.hostRouter.transitionTo('console.fleet-ops.management.drivers.index.edit', this.model),
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
}
|
|
19
32
|
}
|
|
@@ -94,9 +94,9 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
94
94
|
get columns() {
|
|
95
95
|
return [
|
|
96
96
|
{
|
|
97
|
+
sticky: true,
|
|
97
98
|
label: this.intl.t('column.name'),
|
|
98
99
|
valuePath: 'name',
|
|
99
|
-
width: '200px',
|
|
100
100
|
cellComponent: 'table/cell/driver-name',
|
|
101
101
|
permission: 'fleet-ops view driver',
|
|
102
102
|
action: this.driverActions.transition.view,
|
|
@@ -108,7 +108,6 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
108
108
|
{
|
|
109
109
|
label: this.intl.t('column.id'),
|
|
110
110
|
valuePath: 'public_id',
|
|
111
|
-
width: '130px',
|
|
112
111
|
cellComponent: 'click-to-copy',
|
|
113
112
|
resizable: true,
|
|
114
113
|
sortable: true,
|
|
@@ -120,7 +119,6 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
120
119
|
label: this.intl.t('column.internal-id'),
|
|
121
120
|
valuePath: 'internal_id',
|
|
122
121
|
cellComponent: 'click-to-copy',
|
|
123
|
-
width: '130px',
|
|
124
122
|
resizable: true,
|
|
125
123
|
sortable: true,
|
|
126
124
|
filterable: true,
|
|
@@ -140,7 +138,6 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
140
138
|
},
|
|
141
139
|
valuePath: 'vendor.name',
|
|
142
140
|
modelNamePath: 'name',
|
|
143
|
-
width: '180px',
|
|
144
141
|
resizable: true,
|
|
145
142
|
filterable: true,
|
|
146
143
|
filterComponent: 'filter/model',
|
|
@@ -163,7 +160,6 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
163
160
|
valuePath: 'vehicle.display_name',
|
|
164
161
|
modelNamePath: 'display_name',
|
|
165
162
|
resizable: true,
|
|
166
|
-
width: '180px',
|
|
167
163
|
filterable: true,
|
|
168
164
|
filterComponent: 'filter/model',
|
|
169
165
|
filterComponentPlaceholder: 'Select vehicle to filter by',
|
|
@@ -174,11 +170,8 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
174
170
|
label: this.intl.t('column.fleet'),
|
|
175
171
|
cellComponent: 'table/cell/link-list',
|
|
176
172
|
cellComponentLabelPath: 'name',
|
|
177
|
-
action:
|
|
178
|
-
this.fleetActions.panel.view(fleet);
|
|
179
|
-
},
|
|
173
|
+
action: this.fleetActions.panel.view,
|
|
180
174
|
valuePath: 'fleets',
|
|
181
|
-
width: '180px',
|
|
182
175
|
resizable: true,
|
|
183
176
|
hidden: true,
|
|
184
177
|
filterable: true,
|
|
@@ -191,7 +184,6 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
191
184
|
label: this.intl.t('column.license'),
|
|
192
185
|
valuePath: 'drivers_license_number',
|
|
193
186
|
cellComponent: 'table/cell/base',
|
|
194
|
-
width: '150px',
|
|
195
187
|
resizable: true,
|
|
196
188
|
sortable: true,
|
|
197
189
|
filterable: true,
|
|
@@ -201,7 +193,6 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
201
193
|
label: this.intl.t('column.phone'),
|
|
202
194
|
valuePath: 'phone',
|
|
203
195
|
cellComponent: 'table/cell/base',
|
|
204
|
-
width: '150px',
|
|
205
196
|
resizable: true,
|
|
206
197
|
sortable: true,
|
|
207
198
|
filterable: true,
|
|
@@ -213,7 +204,6 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
213
204
|
valuePath: 'country',
|
|
214
205
|
cellComponent: 'table/cell/country',
|
|
215
206
|
cellClassNames: 'uppercase',
|
|
216
|
-
width: '120px',
|
|
217
207
|
resizable: true,
|
|
218
208
|
hidden: true,
|
|
219
209
|
sortable: true,
|
|
@@ -230,7 +220,6 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
230
220
|
label: this.intl.t('column.status'),
|
|
231
221
|
valuePath: 'status',
|
|
232
222
|
cellComponent: 'table/cell/status',
|
|
233
|
-
width: '10%',
|
|
234
223
|
resizable: true,
|
|
235
224
|
sortable: true,
|
|
236
225
|
filterable: true,
|
|
@@ -242,7 +231,6 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
242
231
|
valuePath: 'createdAt',
|
|
243
232
|
sortParam: 'created_at',
|
|
244
233
|
filterParam: 'created_at',
|
|
245
|
-
width: '130px',
|
|
246
234
|
resizable: true,
|
|
247
235
|
sortable: true,
|
|
248
236
|
filterable: true,
|
|
@@ -253,7 +241,6 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
253
241
|
valuePath: 'updatedAt',
|
|
254
242
|
sortParam: 'updated_at',
|
|
255
243
|
filterParam: 'updated_at',
|
|
256
|
-
width: '130px',
|
|
257
244
|
resizable: true,
|
|
258
245
|
sortable: true,
|
|
259
246
|
hidden: true,
|
|
@@ -269,7 +256,8 @@ export default class ManagementDriversIndexController extends Controller {
|
|
|
269
256
|
ddMenuLabel: this.intl.t('common.resource-actions', { resource: this.intl.t('resource.driver') }),
|
|
270
257
|
cellClassNames: 'overflow-visible',
|
|
271
258
|
wrapperClass: 'flex items-center justify-end mx-2',
|
|
272
|
-
|
|
259
|
+
sticky: 'right',
|
|
260
|
+
width: 60,
|
|
273
261
|
actions: [
|
|
274
262
|
{
|
|
275
263
|
label: this.intl.t('common.view-resource', { resource: this.intl.t('resource.driver') }),
|
|
@@ -73,9 +73,9 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
73
73
|
get columns() {
|
|
74
74
|
return [
|
|
75
75
|
{
|
|
76
|
+
sticky: true,
|
|
76
77
|
label: this.intl.t('column.name'),
|
|
77
78
|
valuePath: 'name',
|
|
78
|
-
width: '150px',
|
|
79
79
|
cellComponent: 'table/cell/anchor',
|
|
80
80
|
permission: 'fleet-ops view fleet',
|
|
81
81
|
action: this.fleetActions.transition.view,
|
|
@@ -95,7 +95,6 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
95
95
|
permission: 'fleet-ops view service-area',
|
|
96
96
|
valuePath: 'service_area.name',
|
|
97
97
|
resizable: true,
|
|
98
|
-
width: '130px',
|
|
99
98
|
filterable: true,
|
|
100
99
|
filterComponent: 'filter/model',
|
|
101
100
|
filterComponentPlaceholder: 'Select service area',
|
|
@@ -112,7 +111,6 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
112
111
|
},
|
|
113
112
|
valuePath: 'parent_fleet.name',
|
|
114
113
|
resizable: true,
|
|
115
|
-
width: '130px',
|
|
116
114
|
filterable: true,
|
|
117
115
|
filterComponent: 'filter/model',
|
|
118
116
|
filterComponentPlaceholder: 'Select fleet',
|
|
@@ -129,7 +127,6 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
129
127
|
},
|
|
130
128
|
valuePath: 'vendor.name',
|
|
131
129
|
resizable: true,
|
|
132
|
-
width: '130px',
|
|
133
130
|
hidden: true,
|
|
134
131
|
filterable: true,
|
|
135
132
|
filterComponent: 'filter/model',
|
|
@@ -147,7 +144,6 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
147
144
|
},
|
|
148
145
|
valuePath: 'zone.name',
|
|
149
146
|
resizable: true,
|
|
150
|
-
width: '130px',
|
|
151
147
|
filterable: true,
|
|
152
148
|
filterComponent: 'filter/model',
|
|
153
149
|
filterComponentPlaceholder: 'Select zone',
|
|
@@ -157,7 +153,6 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
157
153
|
{
|
|
158
154
|
label: this.intl.t('column.id'),
|
|
159
155
|
valuePath: 'public_id',
|
|
160
|
-
width: '120px',
|
|
161
156
|
cellComponent: 'click-to-copy',
|
|
162
157
|
action: this.fleetActions.transition.view,
|
|
163
158
|
hidden: true,
|
|
@@ -169,7 +164,6 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
169
164
|
{
|
|
170
165
|
label: this.intl.t('column.manpower'),
|
|
171
166
|
valuePath: 'drivers_count',
|
|
172
|
-
width: '100px',
|
|
173
167
|
resizable: true,
|
|
174
168
|
sortable: true,
|
|
175
169
|
filterable: false,
|
|
@@ -178,7 +172,6 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
178
172
|
label: this.intl.t('column.active-manpower'),
|
|
179
173
|
valuePath: 'drivers_online_count',
|
|
180
174
|
hidden: true,
|
|
181
|
-
width: '120px',
|
|
182
175
|
resizable: true,
|
|
183
176
|
sortable: true,
|
|
184
177
|
filterable: false,
|
|
@@ -187,7 +180,6 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
187
180
|
label: this.intl.t('column.task'),
|
|
188
181
|
valuePath: 'task',
|
|
189
182
|
cellComponent: 'table/cell/base',
|
|
190
|
-
width: '120px',
|
|
191
183
|
resizable: true,
|
|
192
184
|
sortable: true,
|
|
193
185
|
filterable: true,
|
|
@@ -197,7 +189,6 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
197
189
|
label: this.intl.t('column.status'),
|
|
198
190
|
valuePath: 'status',
|
|
199
191
|
cellComponent: 'table/cell/status',
|
|
200
|
-
width: '100px',
|
|
201
192
|
resizable: true,
|
|
202
193
|
sortable: true,
|
|
203
194
|
filterable: true,
|
|
@@ -210,7 +201,6 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
210
201
|
label: this.intl.t('column.created-at'),
|
|
211
202
|
valuePath: 'createdAt',
|
|
212
203
|
sortParam: 'created_at',
|
|
213
|
-
width: '120px',
|
|
214
204
|
resizable: true,
|
|
215
205
|
sortable: true,
|
|
216
206
|
filterable: true,
|
|
@@ -220,7 +210,6 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
220
210
|
label: this.intl.t('column.updated-at'),
|
|
221
211
|
valuePath: 'updatedAt',
|
|
222
212
|
sortParam: 'updated_at',
|
|
223
|
-
width: '120px',
|
|
224
213
|
resizable: true,
|
|
225
214
|
sortable: true,
|
|
226
215
|
hidden: true,
|
|
@@ -236,7 +225,8 @@ export default class ManagementFleetsIndexController extends Controller {
|
|
|
236
225
|
ddMenuLabel: this.intl.t('common.resource-actions', { resource: this.intl.t('resource.fleet') }),
|
|
237
226
|
cellClassNames: 'overflow-visible',
|
|
238
227
|
wrapperClass: 'flex items-center justify-end mx-2',
|
|
239
|
-
|
|
228
|
+
sticky: 'right',
|
|
229
|
+
width: 60,
|
|
240
230
|
actions: [
|
|
241
231
|
{
|
|
242
232
|
label: this.intl.t('common.view-resource', { resource: this.intl.t('resource.fleet') }),
|