Skip to content

Commit

Permalink
Eda genomics map menu items (#1040)
Browse files Browse the repository at this point in the history
* Use is_public attribute, and only show map studies

* Add config for unreleased data

* Comment out "hasMap" option, untill it can be used

* Add "construction" icon

* Use different icon, and handle empty list of datasets
  • Loading branch information
dmfalke committed Apr 23, 2024
1 parent b3de69c commit c947ef6
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 13 deletions.
6 changes: 5 additions & 1 deletion packages/libs/eda/src/lib/core/utils/study-records.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ interface WdkStudyRecordsOptions {
attributes?: AnswerJsonFormatConfig['attributes'];
tables?: AnswerJsonFormatConfig['tables'];
searchName?: string;
hasMap?: boolean;
}

const DEFAULT_STUDY_ATTRIBUTES = ['dataset_id'];
Expand Down Expand Up @@ -64,7 +65,10 @@ export async function getWdkStudyRecords(
}
),
]);
const studyIds = new Set(edaStudies.map((s) => s.id));
const filteredStudies = options?.hasMap
? edaStudies.filter((study) => study.hasMap)
: edaStudies;
const studyIds = new Set(filteredStudies.map((s) => s.id));
return answer.records.filter((record) => {
const datasetId = getStudyId(record);
if (datasetId == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ import {
import {
useUserDatasetsWorkspace,
edaServiceUrl,
showUnreleasedData,
} from '@veupathdb/web-common/lib/config';
import { useAnnouncementsState } from '@veupathdb/web-common/lib/hooks/announcements';
import { useCommunitySiteRootUrl } from '@veupathdb/web-common/lib/hooks/staticData';
Expand All @@ -63,13 +64,14 @@ import { Props as PageProps } from '@veupathdb/wdk-client/lib/Components/Layout/
import { PageDescription } from './PageDescription';
import { makeVpdbClassNameHelper } from './Utils';

import './VEuPathDBHomePage.scss';
import { makeClassNameHelper } from '@veupathdb/wdk-client/lib/Utils/ComponentUtils';
import SubsettingClient from '@veupathdb/eda/lib/core/api/SubsettingClient';
import { WdkDependenciesContext } from '@veupathdb/wdk-client/lib/Hooks/WdkDependenciesEffect';
import { useNonNullableContext } from '@veupathdb/wdk-client/lib/Hooks/NonNullableContext';
import { Question } from '@veupathdb/wdk-client/lib/Utils/WdkModel';
import { Warning } from '@veupathdb/coreui';
import { Tooltip, Warning } from '@veupathdb/coreui';

import './VEuPathDBHomePage.scss';

const vpdbCx = makeVpdbClassNameHelper('');

Expand Down Expand Up @@ -1192,18 +1194,44 @@ function useMapMenuItems(question?: Question) {
if (question == null || studyAccessApi == null) return;
getWdkStudyRecords(
{ studyAccessApi, subsettingClient, wdkService },
{ searchName: question.urlSegment }
{
searchName: question.urlSegment,
attributes: ['is_public'],
// hasMap: true,
}
).then(
(records) => {
const menuItems = records.map(
(record): HeaderMenuItemEntry => ({
key: `map-${record.id[0].value}`,
display: record.displayName,
type: 'reactRoute',
url: `/workspace/maps/${record.id[0].value}/new`,
})
);
setMapMenuItems(menuItems);
const menuItems = records
.filter(
(record) =>
record.attributes.is_public === 'true' || showUnreleasedData
)
.map(
(record): HeaderMenuItemEntry => ({
key: `map-${record.id[0].value}`,
display:
record.attributes.is_public === 'true' ? (
record.displayName
) : (
<Tooltip title="This dataset is under development and will not appear on live sites.">
<div style={{ display: 'inline' }}>
&#128679; {record.displayName}
</div>
</Tooltip>
),
type: 'reactRoute',
url: `/workspace/maps/${record.id[0].value}/new`,
})
);
if (menuItems.length > 0) setMapMenuItems(menuItems);
else
setMapMenuItems([
{
key: 'map-empty',
type: 'custom',
display: 'No map datasets found',
},
]);
},
(error) => {
console.error(error);
Expand Down
1 change: 1 addition & 0 deletions packages/sites/genomics-site/webpack.config.local.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ export default configure({
edaServiceUrl: process.env.EDA_SERVICE_ENDPOINT,
edaSingleAppMode: process.env.EDA_SINGLE_APP_MODE,
vdiServiceUrl: process.env.VDI_SERVICE_ENDPOINT,
showUnreleasedData: process.env.SHOW_UNRELEASED_DATA === 'true',
})
}),
new HtmlWebpackPlugin({
Expand Down

0 comments on commit c947ef6

Please sign in to comment.