in client/client/app/components/ngbGenesTablePanel/ngbGenesTable/ngbGenesTable.service.js [266:333]
getRequestFilter(isScrollTop) {
const filter = {
chromosomeIds: this.genesFilter[`${this.defaultPrefix}chromosome`] || [],
startIndex: this.genesFilter[`${this.defaultPrefix}startIndex`],
endIndex: this.genesFilter[`${this.defaultPrefix}endIndex`],
featureNames: this.genesFilter[`${this.defaultPrefix}featureName`] || [],
featureId: this.genesFilter[`${this.defaultPrefix}featureId`],
featureTypes: this.genesFilter[`${this.defaultPrefix}featureType`] || [],
featureFileId: this.genesFilter[`${this.defaultPrefix}featureFileId`],
additionalFilters: this.genesFilter.additionalFilters || {},
attributesFields: this.genesTableColumns.filter(c => !this.prefixedNonAttributeColumns.includes(c)),
pageSize: this.genesPageSize,
pointer: isScrollTop ? this.prevPagePointer : this.nextPagePointer,
orderBy: (this.orderByGenes || []).map(config => ({
field: config.field,
desc: !config.ascending
}))
};
if (this.genesFilter[`${this.defaultPrefix}frame`]) {
filter.frames = [this.genesFilter[`${this.defaultPrefix}frame`]];
}
if (this.genesFilter[`${this.defaultPrefix}source`]) {
filter.sources = [this.genesFilter[`${this.defaultPrefix}source`]];
}
if (this.genesFilter[`${this.defaultPrefix}strand`]) {
switch (this.genesFilter[`${this.defaultPrefix}strand`]) {
case '+': {
filter.strands = ['POSITIVE'];
break;
}
case '-': {
filter.strands = ['NEGATIVE'];
break;
}
}
}
if (this.genesFilter[`${this.defaultPrefix}score`]) {
filter.score = {
left: this.genesFilter[`${this.defaultPrefix}score`][0],
right: this.genesFilter[`${this.defaultPrefix}score`][1]
};
}
const tracks = (this.projectContext.tracks || []).filter(track => track.format === 'GENE');
if (tracks.length) {
filter.geneFileIdsByProject = {};
tracks.forEach(track => {
let datasetId = track.project ? track.project.id.toString() : undefined;
if (!datasetId && track.projectId) {
if (Number.isNaN(Number(track.projectId))) {
const [dataset] = (this.projectContext.datasets || [])
.filter(d => d.name === track.projectId);
if (dataset) {
datasetId = dataset.id;
}
} else {
datasetId = track.projectId;
}
}
if (datasetId) {
if (!filter.geneFileIdsByProject[datasetId]) {
filter.geneFileIdsByProject[datasetId] = [];
}
filter.geneFileIdsByProject[datasetId].push(track.id);
}
});
}
return filter;
}