@lipagas/fleetops-engine
Version:
Fleet & Transport Management Extension for Fleetbase
110 lines (94 loc) • 2.78 kB
JavaScript
import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
import { task } from 'ember-concurrency';
import contextComponentCallback from '@lipagas/ember-core/utils/context-component-callback';
import applyContextComponentArguments from '@lipagas/ember-core/utils/apply-context-component-arguments';
export default class FuelReportFormPanelComponent extends Component {
/**
* @service store
*/
store;
/**
* @service notifications
*/
notifications;
/**
* @service intl
*/
intl;
/**
* @service hostRouter
*/
hostRouter;
/**
* @service contextPanel
*/
contextPanel;
/**
* Overlay context.
* @type {any}
*/
context;
/**
* Fuel Report status
* @type {Array}
*/
statusOptions = ['draft', 'pending-approval', 'approved', 'rejected', 'revised', 'submitted', 'in-review', 'confirmed', 'processed', 'archived', 'cancelled'];
/**
* Constructs the component and applies initial state.
*/
constructor() {
super(...arguments);
this.fuelReport = this.args.fuelReport;
applyContextComponentArguments(this);
}
/**
* Sets the overlay context.
*
* @action
* @param {OverlayContextObject} overlayContext
*/
setOverlayContext(overlayContext) {
this.context = overlayContext;
contextComponentCallback(this, 'onLoad', ...arguments);
}
/**
* Task to save fuel report.
*
* @return {void}
* @memberof FuelReportFormPanelComponent
*/
*save() {
contextComponentCallback(this, 'onBeforeSave', this.fuelReport);
try {
this.fuelReport = yield this.fuelReport.save();
} catch (error) {
this.notifications.serverError(error);
return;
}
this.notifications.success(this.intl.t('fleet-ops.component.fuel-report-form-panel.success-message'));
contextComponentCallback(this, 'onAfterSave', this.fuelReport);
}
/**
* View the details of the fuel-report.
*
* @action
*/
onViewDetails() {
const isActionOverrided = contextComponentCallback(this, 'onViewDetails', this.fuelReport);
if (!isActionOverrided) {
this.contextPanel.focus(this.fuelReport, 'viewing');
}
}
/**
* Handles cancel button press.
*
* @action
* @returns {any}
*/
onPressCancel() {
return contextComponentCallback(this, 'onPressCancel', this.fuelReport);
}
}