@fleetbase/fleetops-engine
Version:
Fleet & Transport Management Extension for Fleetbase
103 lines (95 loc) • 4.01 kB
JavaScript
import ResourceActionService from '@fleetbase/ember-core/services/resource-action';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
export default class FuelReportActionsService extends ResourceActionService {
driverActions;
vehicleActions;
constructor() {
super(...arguments);
this.initialize('fuel-report', {
defaultAttributes: {},
});
}
transition = {
view: (fuelReport) => this.transitionTo('management.fuel-reports.index.details', fuelReport),
edit: (fuelReport) => this.transitionTo('management.fuel-reports.index.edit', fuelReport),
create: () => this.transitionTo('management.fuel-reports.index.new'),
};
panel = {
create: (attributes = {}) => {
const fuelReport = this.createNewInstance(attributes);
return this.resourceContextPanel.open({
content: 'fuel-report/form',
title: this.intl.t('common.create-a-new-resource', { resource: this.intl.t('resource.fuel-report')?.toLowerCase() }),
saveOptions: {
callback: this.refresh,
},
useDefaultSaveTask: true,
fuelReport,
});
},
edit: (fuelReport) => {
return this.resourceContextPanel.open({
content: 'fuel-report/form',
title: this.intl.t('common.edit-resource-name', { resourceName: fuelReport.name }),
useDefaultSaveTask: true,
fuelReport,
});
},
view: (fuelReport) => {
return this.resourceContextPanel.open({
fuelReport,
tabs: [
{
label: this.intl.t('common.overview'),
component: 'fuel-report/details',
},
],
});
},
};
modal = {
create: (attributes = {}, options = {}, saveOptions = {}) => {
const fuelReport = this.createNewInstance(attributes);
return this.modalsManager.show('modals/resource', {
resource: fuelReport,
title: this.intl.t('common.create-a-new-resource', { resource: this.intl.t('resource.fuel-report')?.toLowerCase() }),
acceptButtonText: this.intl.t('common.create-resource', { resource: this.intl.t('resource.fuel-report') }),
component: 'fuel-report/form',
confirm: (modal) => this.modalTask.perform(modal, 'saveTask', fuelReport, { refresh: true, ...saveOptions }),
...options,
});
},
edit: (fuelReport, options = {}, saveOptions = {}) => {
return this.modalsManager.show('modals/resource', {
resource: fuelReport,
title: this.intl.t('common.edit-resource-name', { resourceName: fuelReport.name }),
acceptButtonText: this.intl.t('common.save-changes'),
saveButtonIcon: 'save',
component: 'fuel-report/form',
confirm: (modal) => this.modalTask.perform(modal, 'saveTask', fuelReport, { refresh: true, ...saveOptions }),
...options,
});
},
view: (fuelReport, options = {}) => {
return this.modalsManager.show('modals/resource', {
resource: fuelReport,
title: fuelReport.name,
component: 'fuel-report/details',
...options,
});
},
};
async viewDriver(fuelReport) {
const driver = await fuelReport.loadDriver();
if (driver) {
this.driverActions.panel.view(driver);
}
}
async viewVehicle(fuelReport) {
const vehicle = await fuelReport.loadVehicle();
if (vehicle) {
this.vehicleActions.panel.view(vehicle);
}
}
}