in source/console/src/views/Client.tsx [567:605]
async getAreas(selectedSite: ISelectedData) {
try {
const siteId = selectedSite.id;
let areas: 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 !== '')) {
areas = await this.graphQlCommon.listAreas(siteId as string);
if (this.userGroups.length === 0) {
const permittedAreas = this.state.permission.areas;
areas = areas.filter(area =>
permittedAreas.map(permittedArea => {
return permittedArea.id;
}).includes(area.id)
);
}
}
const initialArea = this.getInitialSelectItem('Area', areas);
if (initialArea) this.setLocalStorage('selectedArea', initialArea);
const selectedArea = this.getLocalStorage('selectedArea');
if (selectedArea && selectedArea.id && selectedArea.id !== '') {
this.setState({ selectedArea });
this.getProcessesStations(selectedArea);
}
areas.sort((a, b) => a.name.localeCompare(b.name));
this.setState({ areas });
} catch (error) {
LOGGER.error('Error while getting areas', error);
this.setState({ error: I18n.get('error.get.areas') });
}
}