Skip to content

Commit 7e6d3ba

Browse files
committed
fixed order exports, added import template downloads, added bulk order search, patched filters
1 parent a84ab91 commit 7e6d3ba

29 files changed

Lines changed: 278 additions & 194 deletions

File tree

addon/components/modals/bulk-assign-driver.hbs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,8 @@
2525
</div>
2626
</ModelSelect>
2727
</InputGroup>
28+
<InputGroup>
29+
<Checkbox @value={{@options.notifyDriver}} @label="Notify driver" @onToggle={{@options.toggleNotifyDriver}} @alignItems="center" @labelClass="mb-0i" />
30+
</InputGroup>
2831
</div>
2932
</Modals::BulkActionModel>

addon/controllers/management/contacts/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,9 @@ export default class ManagementContactsIndexController extends BaseController {
337337
onImportCompleted: () => {
338338
this.hostRouter.refresh();
339339
},
340+
onImportTemplate: () => {
341+
window.open('https://flb-assets.s3.ap-southeast-1.amazonaws.com/import-templates/Fleetbase_Contact_Import_Template.xlsx');
342+
},
340343
});
341344
}
342345

addon/controllers/management/drivers/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -468,6 +468,9 @@ export default class ManagementDriversIndexController extends BaseController {
468468
onImportCompleted: () => {
469469
this.hostRouter.refresh();
470470
},
471+
onImportTemplate: () => {
472+
window.open('https://flb-assets.s3.ap-southeast-1.amazonaws.com/import-templates/Fleetbase_Driver_Import_Template.xlsx');
473+
},
471474
});
472475
}
473476

addon/controllers/management/fuel-reports/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,9 @@ export default class ManagementFuelReportsIndexController extends BaseController
315315
onImportCompleted: () => {
316316
this.hostRouter.refresh();
317317
},
318+
onImportTemplate: () => {
319+
window.open('https://flb-assets.s3.ap-southeast-1.amazonaws.com/import-templates/Fleetbase_Fuel_Report_Import_Template.xlsx');
320+
},
318321
});
319322
}
320323

addon/controllers/management/issues/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,9 @@ export default class ManagementIssuesIndexController extends BaseController {
372372
onImportCompleted: () => {
373373
this.hostRouter.refresh();
374374
},
375+
onImportTemplate: () => {
376+
window.open('https://flb-assets.s3.ap-southeast-1.amazonaws.com/import-templates/Fleetbase_Issue_Import_Template.xlsx');
377+
},
375378
});
376379
}
377380

addon/controllers/management/places/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,9 @@ export default class ManagementPlacesIndexController extends BaseController {
423423
onImportCompleted: () => {
424424
this.hostRouter.refresh();
425425
},
426+
onImportTemplate: () => {
427+
window.open('https://flb-assets.s3.ap-southeast-1.amazonaws.com/import-templates/Fleetbase_Place_Import_Template.xlsx');
428+
},
426429
});
427430
}
428431

addon/controllers/management/vehicles/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -490,6 +490,9 @@ export default class ManagementVehiclesIndexController extends BaseController {
490490
onImportCompleted: () => {
491491
this.hostRouter.refresh();
492492
},
493+
onImportTemplate: () => {
494+
window.open('https://flb-assets.s3.ap-southeast-1.amazonaws.com/import-templates/Fleetbase_Vehicle_Import_Template.xlsx');
495+
},
493496
});
494497
}
495498

addon/controllers/management/vendors/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,9 @@ export default class ManagementVendorsIndexController extends BaseController {
422422
onImportCompleted: () => {
423423
this.hostRouter.refresh();
424424
},
425+
onImportTemplate: () => {
426+
window.open('https://flb-assets.s3.ap-southeast-1.amazonaws.com/import-templates/Fleetbase_Vendor_Import_Template.xlsx');
427+
},
425428
});
426429
}
427430

addon/controllers/operations/orders/index.js

Lines changed: 60 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import { isArray } from '@ember/array';
88
import { isBlank } from '@ember/utils';
99
import { timeout } from 'ember-concurrency';
1010
import { task } from 'ember-concurrency-decorators';
11-
import fromStore from '@fleetbase/ember-core/decorators/from-store';
1211

1312
export default class OperationsOrdersIndexController extends BaseController {
1413
@service currentUser;
@@ -52,6 +51,8 @@ export default class OperationsOrdersIndexController extends BaseController {
5251
'scheduled_at',
5352
'status',
5453
'type',
54+
'without_driver',
55+
'bulk_query',
5556
'layout',
5657
'drawerOpen',
5758
'drawerTab',
@@ -289,6 +290,27 @@ export default class OperationsOrdersIndexController extends BaseController {
289290
*/
290291
@tracked statusOptions = [];
291292

293+
/**
294+
* Filterable sorder configs.
295+
*
296+
* @type {Array}
297+
*/
298+
@tracked orderConfigs = [];
299+
300+
/**
301+
* Free text input for a bulk query.
302+
*
303+
* @type {String}
304+
*/
305+
@tracked bulkSearchValue = '';
306+
307+
/**
308+
* Actual bulk query.
309+
*
310+
* @type {String}
311+
*/
312+
@tracked bulk_query = '';
313+
292314
/**
293315
* Flag to determine if the layout is 'map'
294316
*
@@ -317,13 +339,6 @@ export default class OperationsOrdersIndexController extends BaseController {
317339
*/
318340
@equal('layout', 'analytics') isAnalyticsLayout;
319341

320-
/**
321-
* All available order configs.
322-
*
323-
* @memberof OperationsOrdersIndexController
324-
*/
325-
@fromStore('order-config', { limit: -1 }) orderConfigs;
326-
327342
/**
328343
* All columns applicable for orders
329344
*
@@ -437,6 +452,7 @@ export default class OperationsOrdersIndexController extends BaseController {
437452
filterComponent: 'filter/model',
438453
filterComponentPlaceholder: 'Select vehicle for order',
439454
filterParam: 'vehicle',
455+
modelNamePath: 'display_name',
440456
model: 'vehicle',
441457
},
442458
{
@@ -567,7 +583,9 @@ export default class OperationsOrdersIndexController extends BaseController {
567583
label: '',
568584
cellComponent: 'table/cell/base',
569585
filterParam: 'without_driver',
570-
filterComponenr: 'checkbox',
586+
filterComponent: 'filter/checkbox',
587+
filterLabel: 'Without Driver Assigned',
588+
noFilterLabel: true,
571589
filterable: true,
572590
hidden: true,
573591
},
@@ -626,6 +644,7 @@ export default class OperationsOrdersIndexController extends BaseController {
626644
super(...arguments);
627645
this.listenForOrderEvents();
628646
this.getOrderStatusOptions.perform();
647+
this.getOrderConfigs.perform();
629648
}
630649

631650
@task *getOrderStatusOptions() {
@@ -636,6 +655,14 @@ export default class OperationsOrdersIndexController extends BaseController {
636655
}
637656
}
638657

658+
@task *getOrderConfigs() {
659+
try {
660+
this.orderConfigs = yield this.store.query('order-config', { limit: -1 });
661+
} catch (error) {
662+
this.notifications.serverError(error);
663+
}
664+
}
665+
639666
/**
640667
* Listen for incoming order events to refresh listing.
641668
*
@@ -683,9 +710,6 @@ export default class OperationsOrdersIndexController extends BaseController {
683710
// Listed on company channel
684711
const channel = socket.subscribe(channelId);
685712

686-
// Events which should trigger refresh
687-
const listening = ['order.ready', 'order.driver_assigned'];
688-
689713
// Listen for channel subscription
690714
(async () => {
691715
for await (let output of channel) {
@@ -702,11 +726,7 @@ export default class OperationsOrdersIndexController extends BaseController {
702726
}
703727

704728
if (event === 'order.ready') {
705-
const order = await findOrder(data.id);
706-
707-
if (order) {
708-
order.reload();
709-
}
729+
this.hostRouter.refresh();
710730
}
711731
}
712732
})();
@@ -1123,6 +1143,13 @@ export default class OperationsOrdersIndexController extends BaseController {
11231143
return;
11241144
}
11251145

1146+
const updateFetchParams = (key, value) => {
1147+
const current = this.modalsManager.getOption('fetchParams') ?? {};
1148+
const next = value === undefined ? Object.fromEntries(Object.entries(current).filter(([k]) => k !== key)) : { ...current, [key]: value };
1149+
1150+
this.modalsManager.setOption('fetchParams', next);
1151+
};
1152+
11261153
this.crud.bulkAction('assign driver', selected, {
11271154
template: 'modals/bulk-assign-driver',
11281155
acceptButtonText: 'Assign Driver to Orders',
@@ -1133,14 +1160,20 @@ export default class OperationsOrdersIndexController extends BaseController {
11331160
actionPath: 'orders/bulk-assign-driver',
11341161
actionMethod: 'PATCH',
11351162
driverAssigned: null,
1163+
notifyDriver: true,
11361164
fetchParams: {},
11371165
resolveModelName: (model) => `${model.get('tracking_number.tracking_number')} - ${model.get('public_id')}`,
11381166
selectDriver: (driver) => {
11391167
this.modalsManager.setOptions({
11401168
driverAssigned: driver,
11411169
acceptButtonDisabled: driver ? false : true,
1142-
fetchParams: driver ? { driver: driver.id } : {},
11431170
});
1171+
1172+
updateFetchParams('driver', driver?.id);
1173+
},
1174+
toggleNotifyDriver: (checked) => {
1175+
this.modalsManager.setOption('notifyDriver', checked);
1176+
updateFetchParams('silent', !checked);
11441177
},
11451178
withSelected: (orders) => {
11461179
const driverAssigned = this.modalsManager.getOption('driverAssigned');
@@ -1174,4 +1207,13 @@ export default class OperationsOrdersIndexController extends BaseController {
11741207
this.activeOrdersCount = response.orders_in_progress;
11751208
});
11761209
}
1210+
1211+
@action commitBulkQuery() {
1212+
this.bulk_query = this.bulkSearchValue;
1213+
}
1214+
1215+
@action removeBulkQuery() {
1216+
this.bulkSearchValue = '';
1217+
this.bulk_query = null;
1218+
}
11771219
}

addon/routes/management/contacts/index.js

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import Route from '@ember/routing/route';
22
import { inject as service } from '@ember/service';
3-
import { action, set } from '@ember/object';
4-
import isNestedRouteTransition from '@fleetbase/ember-core/utils/is-nested-route-transition';
3+
import { action } from '@ember/object';
54

65
export default class ManagementContactsIndexRoute extends Route {
76
@service store;
@@ -30,13 +29,6 @@ export default class ManagementContactsIndexRoute extends Route {
3029
});
3130
}
3231

33-
@action willTransition(transition) {
34-
if (isNestedRouteTransition(transition)) {
35-
set(this.queryParams, 'page.refreshModel', false);
36-
set(this.queryParams, 'sort.refreshModel', false);
37-
}
38-
}
39-
4032
model(params) {
4133
return this.store.query('contact', { ...params, type: 'contact' });
4234
}

0 commit comments

Comments
 (0)