@fleetbase/fleetops-engine
Version:
Fleet & Transport Management Extension for Fleetbase
67 lines (63 loc) • 2.53 kB
JavaScript
import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
import { isArray } from '@ember/array';
export default class ConnectivityDevicesIndexDetailsController extends Controller {
menuService;
deviceActions;
hostRouter;
intl;
get tabs() {
const registeredTabs = this.menuService.getMenuItems('fleet-ops:component:device:details');
return [
{
route: 'connectivity.devices.index.details.index',
label: this.intl.t('common.overview'),
},
{
route: 'connectivity.devices.index.details.vehicle',
label: this.intl.t('resource.vehicle'),
},
{
route: 'connectivity.devices.index.details.sensors',
label: this.intl.t('resource.sensors'),
},
{
route: 'connectivity.devices.index.details.events',
label: this.intl.t('resource.device-events'),
},
...(isArray(registeredTabs) ? registeredTabs : []),
];
}
get actionButtons() {
return [
{
icon: 'pencil',
fn: () => this.hostRouter.transitionTo('console.fleet-ops.connectivity.devices.index.edit', this.model),
permission: 'fleet-ops update device',
},
{
icon: 'ellipsis-h',
iconPrefix: 'fas',
renderInPlace: true,
items: [
{
text: this.intl.t('device.actions.attach-to-vehicle'),
icon: 'link',
fn: () => this.deviceActions.attachToVehicle(this.model),
permission: 'fleet-ops update device',
},
...(this.model.attachable_uuid || this.model.attached_to_name || this.model.attachable
? [
{
text: this.intl.t('device.actions.detach-from-vehicle'),
icon: 'unlink',
fn: () => this.deviceActions.detachFromVehicle(this.model),
permission: 'fleet-ops update device',
},
]
: []),
],
},
];
}
}