in source/console/src/views/Client.tsx [674:720]
async getDevices(selectedStation: ISelectedData) {
const { selectedProcess } = this.state;
try {
const stationId = selectedStation.id;
let devices: IGeneralQueryData[] = [];
/**
* Permission is for users in Associate Group only.
* If there's no permission for the associate user, the user gets nothing.
*/
if (this.userGroups.length > 0 ||
(this.userGroups.length === 0 && this.state.permission.id !== '')) {
devices = await this.graphQlCommon.listDevices(stationId as string);
if (this.userGroups.length === 0) {
const permittedDevices = this.state.permission.devices;
devices = devices.filter(device =>
permittedDevices.map(permittedDevice => {
return permittedDevice.id;
}).includes(device.id)
);
}
}
const initialDevice = this.getInitialSelectItem('Device', devices);
if (initialDevice) {
this.setLocalStorage('selectedDevice', initialDevice);
this.setState({ selectedDevice: initialDevice });
}
const selectedDevice = this.getLocalStorage('selectedDevice');
if (
selectedDevice && selectedDevice.id && selectedDevice.id !== '' &&
selectedProcess && selectedProcess.id && selectedProcess.id !== ''
) {
await this.getEvents(selectedProcess);
await this.getIssues(selectedDevice, selectedProcess);
}
devices.sort((a, b) => a.name.localeCompare(b.name));
this.setState({ devices });
} catch (error) {
LOGGER.error('Error while getting devices', error);
this.setState({ error: I18n.get('error.get.devices') });
}
}