@fleetbase/fleetops-engine
Version:
Fleet & Transport Management Extension for Fleetbase
46 lines (40 loc) • 1.62 kB
JavaScript
import Controller from '@ember/controller';
import { tracked } from '@glimmer/tracking';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
import { task } from 'ember-concurrency';
export default class MaintenanceWorkOrdersIndexNewController extends Controller {
workOrderActions;
hostRouter;
intl;
notifications;
events;
overlay;
workOrder = this.workOrderActions.createNewInstance();
/**
* Holds the latest completion field values emitted by the form component
* via its @onCompletionChange arg. No component reference is ever stored.
*/
completionData = {};
onCompletionChange(data) {
this.completionData = data;
}
*save(workOrder) {
try {
this.workOrderActions.prepareForSave(workOrder, this.completionData);
yield workOrder.save();
this.events.trackResourceCreated(workOrder);
this.overlay?.close();
yield this.hostRouter.refresh();
yield this.hostRouter.transitionTo('console.fleet-ops.maintenance.work-orders.index.details', workOrder);
this.notifications.success(this.intl.t('common.resource-created-success', { resource: this.intl.t('resource.work-order') }));
this.resetForm();
} catch (err) {
this.notifications.serverError(err);
}
}
resetForm() {
this.workOrder = this.workOrderActions.createNewInstance();
this.completionData = {};
}
}