UNPKG

@ducna01120/fleetops-engine

Version:

Fleet & Transport Management Extension for Fleetbase

99 lines (86 loc) 2.87 kB
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 '@fleetbase/ember-core/utils/context-component-callback'; import applyContextComponentArguments from '@fleetbase/ember-core/utils/apply-context-component-arguments'; export default class FuelReportFormPanelComponent extends Component { @service store; @service notifications; @service intl; @service hostRouter; @service contextPanel; /** * Overlay context. * @type {any} */ @tracked context; /** * Fuel Report status * @type {Array} */ @tracked statusOptions = ['draft', 'pending-approval', 'approved', 'rejected', 'revised', 'submitted', 'in-review', 'confirmed', 'processed', 'archived', 'cancelled']; /** * Permission needed to update or create record. * * @memberof DriverFormPanelComponent */ @tracked savePermission; /** * Constructs the component and applies initial state. */ constructor(owner, { fuelReport = null }) { super(...arguments); this.fuelReport = fuelReport; this.savePermission = fuelReport && fuelReport.isNew ? 'fleet-ops create fuel-report' : 'fleet-ops update fuel-report'; applyContextComponentArguments(this); } /** * Sets the overlay context. * * @action * @param {OverlayContextObject} overlayContext */ @action setOverlayContext(overlayContext) { this.context = overlayContext; contextComponentCallback(this, 'onLoad', ...arguments); } /** * Task to save fuel report. * * @return {void} * @memberof FuelReportFormPanelComponent */ @task *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 */ @action onViewDetails() { const isActionOverrided = contextComponentCallback(this, 'onViewDetails', this.fuelReport); if (!isActionOverrided) { this.contextPanel.focus(this.fuelReport, 'viewing'); } } /** * Handles cancel button press. * * @action * @returns {any} */ @action onPressCancel() { return contextComponentCallback(this, 'onPressCancel', this.fuelReport); } }