Skip to content

Commit

Permalink
add deposition id filter ui
Browse files Browse the repository at this point in the history
  • Loading branch information
kne42 committed Aug 23, 2024
1 parent 7548a2d commit 8f1eb47
Show file tree
Hide file tree
Showing 9 changed files with 80 additions and 17 deletions.
Original file line number Diff line number Diff line change
@@ -1,37 +1,52 @@
import { NameOrIdFilterSection } from 'app/components/DepositionFilter'
import {
AnnotatedObjectNameFilter,
AnnotatedObjectShapeTypeFilter,
AuthorFilter,
FilterPanel,
FilterSection,
} from 'app/components/Filters'
import { useI18n } from 'app/hooks/useI18n'
import { useRunById } from 'app/hooks/useRunById'
import { useFeatureFlag } from 'app/utils/featureFlags'

import { AnnotationSoftwareFilter } from './AnnotationSoftwareFilter'
import { GeneOntologyFilter } from './GeneOntologyFilter'
import { MethodTypeFilter } from './MethodTypeFilter'

export function AnnotationFilter() {
const { t } = useI18n()
const showDepositions = useFeatureFlag('depositions')
const { objectNames, objectShapeTypes, annotationSoftwares } = useRunById()

const annotationMetadataFilters = (
<>
<AuthorFilter label={t('annotationAuthor')} />
<AnnotatedObjectNameFilter
label={t('objectName')}
allObjectNames={objectNames}
/>
<GeneOntologyFilter />
<AnnotatedObjectShapeTypeFilter allObjectShapeTypes={objectShapeTypes} />
<MethodTypeFilter />
<AnnotationSoftwareFilter allAnnotationSoftwares={annotationSoftwares} />
</>
)

return (
<FilterPanel>
<div className="pl-sds-l py-sds-default flex-col gap-sds-xxs">
<AuthorFilter label={t('annotationAuthor')} />
<AnnotatedObjectNameFilter
label={t('objectName')}
allObjectNames={objectNames}
/>
<GeneOntologyFilter />
<AnnotatedObjectShapeTypeFilter
allObjectShapeTypes={objectShapeTypes}
/>
<MethodTypeFilter />
<AnnotationSoftwareFilter
allAnnotationSoftwares={annotationSoftwares}
/>
</div>
{showDepositions ? (
<>
<NameOrIdFilterSection />
<FilterSection title={t('annotationMetadata')}>
{annotationMetadataFilters}
</FilterSection>
</>
) : (
<div className="pl-sds-l py-sds-default flex-col gap-sds-xxs">
{annotationMetadataFilters}
</div>
)}
</FilterPanel>
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ export function DatasetFilter({
},
{
logId: 'name-or-id-filter',
filter: <NameOrIdFilterSection />,
filter: (
<NameOrIdFilterSection depositionPageVariant={depositionPageVariant} />
),
},
{
logId: 'sample-and-experiments-filter',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { useMemo } from 'react'

import { DepositionIdFilter } from 'app/components/DepositionFilter'
import {
AuthorFilter,
FilterSection,
Expand All @@ -10,7 +11,11 @@ import { QueryParams } from 'app/constants/query'
import { useI18n } from 'app/hooks/useI18n'
import { useFeatureFlag } from 'app/utils/featureFlags'

export function NameOrIdFilterSection() {
export function NameOrIdFilterSection({
depositionPageVariant,
}: {
depositionPageVariant?: boolean
}) {
const { t } = useI18n()
const showDepositions = useFeatureFlag('depositions')

Expand Down Expand Up @@ -39,6 +44,7 @@ export function NameOrIdFilterSection() {
<FilterSection title={t('nameOrId')}>
<MultiInputFilter label={t('datasetIds')} filters={datasetIdFilters} />
<AuthorFilter label={t(showDepositions ? 'datasetAuthor' : 'author')} />
{showDepositions && !depositionPageVariant && <DepositionIdFilter />}
</FilterSection>
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { IDFilter } from 'app/components/Filters'
import { QueryParams } from 'app/constants/query'
import { useI18n } from 'app/hooks/useI18n'

export function DepositionIdFilter() {
const { t } = useI18n()

return (
<IDFilter
id="deposition-id-input"
title={t('filterByDepositionId')}
label={t('depositionId')}
queryParam={QueryParams.DepositionId}
prefix="CZCDP-"
/>
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { FilterSection } from 'app/components/Filters'
import { useI18n } from 'app/hooks/useI18n'

import { DepositionIdFilter } from './DepositionIdFilter'

export function NameOrIdFilterSection() {
const { t } = useI18n()

return (
<FilterSection title={t('nameOrId')}>
<DepositionIdFilter />
</FilterSection>
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export * from './DepositionIdFilter'
export * from './NameOrIdFilterSection'
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { NameOrIdFilterSection } from 'app/components/DepositionFilter'
import {
AnnotatedObjectNameFilter,
AnnotatedObjectShapeTypeFilter,
Expand All @@ -8,11 +9,13 @@ import {
} from 'app/components/Filters'
import { useDatasetById } from 'app/hooks/useDatasetById'
import { useI18n } from 'app/hooks/useI18n'
import { useFeatureFlag } from 'app/utils/featureFlags'

import { QualityScoreFilter } from './QualityScoreFilter'

export function RunFilter() {
const { t } = useI18n()
const showDepositions = useFeatureFlag('depositions')
const { objectNames, objectShapeTypes } = useDatasetById()

return (
Expand All @@ -21,6 +24,8 @@ export function RunFilter() {
<GroundTruthAnnotationFilter />
</FilterSection>

{showDepositions && <NameOrIdFilterSection />}

<FilterSection title={t('tiltSeriesMetadata')}>
<QualityScoreFilter />
<TiltRangeFilter />
Expand Down
1 change: 1 addition & 0 deletions frontend/packages/data-portal/app/constants/query.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ export enum QueryParams {
AvailableFiles = 'files',
CameraManufacturer = 'camera_manufacturer',
DatasetId = 'dataset_id',
DepositionId = 'deposition-id',
DownloadConfig = 'download-config',
DownloadStep = 'download-step',
DownloadTab = 'download-tab',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@
"fileSummary": "File Summary",
"filterBy": "Filter by",
"filterByAnyOfTheFollowing": "Filter by any of the following",
"filterByDepositionId": "Filter by Deposition ID",
"filterByGeneOntologyId": "Filter by Gene Ontology ID",
"filterCountOfMaxType": "{{count}} of {{max}} {{type}}",
"filterNoResultsFound": "No results were found",
Expand Down

0 comments on commit 8f1eb47

Please sign in to comment.