Skip to content

Commit

Permalink
Merge branch 'main' into label-meta-with-displaynamesj
Browse files Browse the repository at this point in the history
  • Loading branch information
fhennig authored Nov 12, 2024
2 parents 90d8c41 + e83bce3 commit 2718a66
Show file tree
Hide file tree
Showing 6 changed files with 198 additions and 229 deletions.
288 changes: 121 additions & 167 deletions docs/package-lock.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
},
"dependencies": {
"@astrojs/check": "^0.9.4",
"@astrojs/starlight": "^0.28.6",
"@astrojs/starlight": "^0.29.0",
"@astrojs/starlight-tailwind": "^2.0.3",
"@astrojs/tailwind": "^5.1.2",
"astro": "^4.16.9",
"astro": "^4.16.10",
"prettier": "^3.3.3",
"prettier-plugin-astro": "^0.14.1",
"prettier-plugin-tailwindcss": "^0.6.8",
Expand Down
88 changes: 44 additions & 44 deletions kubernetes/loculus/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1106,27 +1106,27 @@ defaultOrganismConfig: &defaultOrganismConfig
referenceGenomes:
nucleotideSequences:
- name: "main"
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/ebola-zaire/reference.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/ebola-zaire/reference.fasta]]"
insdcAccessionFull: NC_002549.1
genes:
- name: NP
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/ebola-zaire/NP.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/ebola-zaire/NP.fasta]]"
- name: VP35
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/ebola-zaire/VP35.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/ebola-zaire/VP35.fasta]]"
- name: VP40
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/ebola-zaire/VP40.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/ebola-zaire/VP40.fasta]]"
- name: GP
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/ebola-zaire/GP.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/ebola-zaire/GP.fasta]]"
- name: ssGP
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/ebola-zaire/ssGP.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/ebola-zaire/ssGP.fasta]]"
- name: sGP
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/ebola-zaire/sGP.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/ebola-zaire/sGP.fasta]]"
- name: VP30
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/ebola-zaire/VP30.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/ebola-zaire/VP30.fasta]]"
- name: VP24
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/ebola-zaire/VP24.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/ebola-zaire/VP24.fasta]]"
- name: L
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/ebola-zaire/L.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/ebola-zaire/L.fasta]]"
defaultOrganisms:
ebola-zaire:
<<: *defaultOrganismConfig
Expand Down Expand Up @@ -1194,31 +1194,31 @@ defaultOrganisms:
referenceGenomes:
nucleotideSequences:
- name: main
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/west-nile/reference.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/west-nile/reference.fasta]]"
insdcAccessionFull: NC_009942.1
genes:
- name: 2K
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/west-nile/2K.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/west-nile/2K.fasta]]"
- name: NS1
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/west-nile/NS1.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/west-nile/NS1.fasta]]"
- name: NS2A
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/west-nile/NS2A.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/west-nile/NS2A.fasta]]"
- name: NS2B
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/west-nile/NS2B.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/west-nile/NS2B.fasta]]"
- name: NS3
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/west-nile/NS3.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/west-nile/NS3.fasta]]"
- name: NS4A
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/west-nile/NS4A.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/west-nile/NS4A.fasta]]"
- name: NS4B
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/west-nile/NS4B.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/west-nile/NS4B.fasta]]"
- name: NS5
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/west-nile/NS5.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/west-nile/NS5.fasta]]"
- name: capsid
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/west-nile/capsid.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/west-nile/capsid.fasta]]"
- name: env
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/west-nile/env.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/west-nile/env.fasta]]"
- name: prM
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/west-nile/prM.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/west-nile/prM.fasta]]"
dummy-organism:
schema:
image: "https://www.un.org/sites/un2.un.org/files/field/image/1583952355.1997.jpg"
Expand Down Expand Up @@ -1277,32 +1277,32 @@ defaultOrganisms:
referenceGenomes:
nucleotideSequences:
- name: "main"
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/sars-cov-2/reference.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/sars-cov-2/reference.fasta]]"
genes:
- name: "E"
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/sars-cov-2/E.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/sars-cov-2/E.fasta]]"
- name: "M"
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/sars-cov-2/M.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/sars-cov-2/M.fasta]]"
- name: "N"
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/sars-cov-2/N.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/sars-cov-2/N.fasta]]"
- name: "ORF1a"
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/sars-cov-2/ORF1a.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/sars-cov-2/ORF1a.fasta]]"
- name: "ORF1b"
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/sars-cov-2/ORF1b.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/sars-cov-2/ORF1b.fasta]]"
- name: "ORF3a"
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/sars-cov-2/ORF3a.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/sars-cov-2/ORF3a.fasta]]"
- name: "ORF6"
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/sars-cov-2/ORF6.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/sars-cov-2/ORF6.fasta]]"
- name: "ORF7a"
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/sars-cov-2/ORF7a.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/sars-cov-2/ORF7a.fasta]]"
- name: "ORF7b"
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/sars-cov-2/ORF7b.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/sars-cov-2/ORF7b.fasta]]"
- name: "ORF8"
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/sars-cov-2/ORF8.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/sars-cov-2/ORF8.fasta]]"
- name: "ORF9b"
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/sars-cov-2/ORF9b.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/sars-cov-2/ORF9b.fasta]]"
- name: "S"
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/sars-cov-2/S.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/sars-cov-2/S.fasta]]"
not-aligned-organism:
schema:
image: "https://cdn.who.int/media/images/default-source/mca/mca-covid-19/coronavirus-2.tmb-1920v.jpg?sfvrsn=4dba955c_19"
Expand Down Expand Up @@ -1361,7 +1361,7 @@ defaultOrganisms:
referenceGenomes:
nucleotideSequences:
- name: "main"
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/sars-cov-2/reference.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/sars-cov-2/reference.fasta]]"
genes: []
cchf:
<<: *defaultOrganismConfig
Expand Down Expand Up @@ -1426,21 +1426,21 @@ defaultOrganisms:
referenceGenomes:
nucleotideSequences:
- name: L
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/cchf/reference_L.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/cchf/reference_L.fasta]]"
insdcAccessionFull: NC_005301.3
- name: M
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/cchf/reference_M.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/cchf/reference_M.fasta]]"
insdcAccessionFull: NC_005300.2
- name: S
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/cchf/reference_S.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/cchf/reference_S.fasta]]"
insdcAccessionFull: NC_005302.1
genes:
- name: RdRp
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/cchf/RdRp.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/cchf/RdRp.fasta]]"
- name: GPC
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/cchf/GPC.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/cchf/GPC.fasta]]"
- name: NP
sequence: "[[URL:https://raw.githubusercontent.com/corneliusroemer/seqs/main/artefacts/cchf/NP.fasta]]"
sequence: "[[URL:https://corneliusroemer.github.io/seqs/artefacts/cchf/NP.fasta]]"
auth:
smtp:
host: "in-v3.mailjet.com"
Expand All @@ -1459,8 +1459,8 @@ insecureCookies: false
bannerMessage: "This is a demonstration environment. It may contain non-accurate test data and should not be used for real-world applications. Data will be deleted regularly."
additionalHeadHTML: ""
images:
lapisSilo: "ghcr.io/genspectrum/lapis-silo:0.3.1"
lapis: "ghcr.io/genspectrum/lapis:0.3.7"
lapisSilo: "ghcr.io/genspectrum/lapis-silo:0.3.2"
lapis: "ghcr.io/genspectrum/lapis:0.3.8"
secrets:
smtp-password:
type: raw
Expand Down
32 changes: 18 additions & 14 deletions website/src/components/ReviewPage/ReviewCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ const ButtonBar: FC<ButtonBarProps> = ({
>
<WpfPaperPlane />
</button>
<Tooltip
<CustomTooltip
id={'approve-tooltip' + sequenceEntryStatus.accession}
content={
approvable
Expand All @@ -152,7 +152,7 @@ const ButtonBar: FC<ButtonBarProps> = ({
<ClarityNoteEditLine />
</button>
)}
<Tooltip
<CustomTooltip
id={'edit-tooltip' + sequenceEntryStatus.accession}
content={notProcessed ? 'Processing...' : 'Edit this sequence entry'}
/>
Expand All @@ -166,7 +166,7 @@ const ButtonBar: FC<ButtonBarProps> = ({
>
<BiTrash />
</button>
<Tooltip
<CustomTooltip
id={'delete-tooltip' + sequenceEntryStatus.accession}
content={notProcessed ? 'Cannot discard. Wait for preprocessing.' : 'Discard this sequence entry'}
/>
Expand Down Expand Up @@ -217,7 +217,7 @@ const Errors: FC<ErrorsProps> = ({ errors, accession }) => {
>
{error.message}
</p>
<Tooltip
<CustomTooltip
id={'error-tooltip-' + accession + '-' + uniqueKey}
content='You must fix this error before releasing this sequence entry'
/>
Expand Down Expand Up @@ -266,7 +266,7 @@ const DataUseTermsIcon: FC<DataUseTermsIconProps> = ({ dataUseTerms, accession }
<div data-tooltip-id={'dataUseTerm-tooltip-' + accession}>
{dataUseTerms.type === restrictedDataUseTermsType ? <Locked /> : <Unlocked />}
</div>
<Tooltip id={'dataUseTerm-tooltip-' + accession} content={hintText} />
<CustomTooltip id={'dataUseTerm-tooltip-' + accession} content={hintText} />
</>
);
};
Expand All @@ -289,7 +289,7 @@ const StatusIcon: FC<StatusIconProps> = ({ status, dataUseTerms, accession, hasW
>
<EmptyCircle className='text-gray-500' />
</div>
<Tooltip id={'awaitingProcessing-tooltip-' + accession} content='Awaiting processing' />
<CustomTooltip id={'awaitingProcessing-tooltip-' + accession} content='Awaiting processing' />
<DataUseTermsIcon dataUseTerms={dataUseTerms} accession={accession} />
</div>
);
Expand All @@ -300,7 +300,7 @@ const StatusIcon: FC<StatusIconProps> = ({ status, dataUseTerms, accession, hasW
<div data-tooltip-id={`error-tooltip-` + accession} key={'error-tooltip-' + accession}>
<QuestionMark className='text-red-600' />
</div>
<Tooltip id={`error-tooltip-` + accession} content='Error detected' />
<CustomTooltip id={`error-tooltip-` + accession} content='Error detected' />
<DataUseTermsIcon dataUseTerms={dataUseTerms} accession={accession} />
</div>
);
Expand All @@ -311,21 +311,20 @@ const StatusIcon: FC<StatusIconProps> = ({ status, dataUseTerms, accession, hasW
<div data-tooltip-id={'inProcessing-tooltip-' + accession} key={'inProcessing-tooltip-' + accession}>
<span className='loading loading-spinner loading-sm' />
</div>
<Tooltip id={'inProcessing-tooltip-' + accession} content='In processing' />
<CustomTooltip id={'inProcessing-tooltip-' + accession} content='In processing' />
<DataUseTermsIcon dataUseTerms={dataUseTerms} accession={accession} />
</div>
);
}
if (status === processedStatus && !hasErrors) {
return (
// TODO(#702): When queries are implemented, this should be a yellow tick with a warning note if there are warnings
<div className='p-2 flex flex-col justify-between'>
<div data-tooltip-id={'awaitingApproval-tooltip-' + accession}>
<TickOutline className={hasWarnings === true ? 'text-yellow-400' : `text-green-500`} />
<TickOutline className={hasWarnings ? 'text-yellow-400' : `text-green-500`} />
</div>
<Tooltip
<CustomTooltip
id={'awaitingApproval-tooltip-' + accession}
content='Passed QC [TODO: sometimes (with warnings)]'
content={hasWarnings ? 'Passed QC with warnings' : 'Passed QC'}
/>
<DataUseTermsIcon dataUseTerms={dataUseTerms} accession={accession} />
</div>
Expand Down Expand Up @@ -365,15 +364,15 @@ const KeyValueComponent: FC<KeyValueComponentProps> = ({
{value}
</span>
{primaryMessages !== undefined && (
<Tooltip
<CustomTooltip
id={textTooltipId}
content={primaryMessages.map((annotation) => annotation.message).join(', ')}
/>
)}
{secondaryMessages !== undefined && (
<>
<Note className='text-yellow-500 inline-block' data-tooltip-id={noteTooltipId} />
<Tooltip
<CustomTooltip
id={noteTooltipId}
content={secondaryMessages.map((annotation) => annotation.message).join(', ')}
/>
Expand All @@ -384,6 +383,11 @@ const KeyValueComponent: FC<KeyValueComponentProps> = ({
);
};

const CustomTooltip: React.FC<React.ComponentProps<typeof Tooltip>> = ({ ...props }) => (
// Set positionStrategy and z-index to make the Tooltip float above the ReviewPage toolbar
<Tooltip positionStrategy='fixed' className='z-20' place='right' {...props} />
);

function getTextColorAndMessages(
errors: ProcessingAnnotation[] | undefined,
warnings: ProcessingAnnotation[] | undefined,
Expand Down
13 changes: 12 additions & 1 deletion website/src/components/ReviewPage/ReviewPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,17 @@ const InnerReviewPage: FC<ReviewPageProps> = ({ clientConfig, organism, group, a
const noIssuesCount = sequencesData.processingResultCounts[noIssuesProcessingResult];
const validCount = warningCount + noIssuesCount;

const selectedCount: number =
(showUnprocessed ? unprocessedCount : 0) +
(showNoIssues ? noIssuesCount : 0) +
(showWarnings ? warningCount : 0) +
(showErrors ? errorCount : 0);

// If we narrowed the selection and the selected page doesn't exist anymore, go to the last existing page instead
if ((pageQuery.page - 1) * pageQuery.size > selectedCount) {
setPageQuery({ ...pageQuery, page: Math.ceil(selectedCount / pageQuery.size) });
}

if (total === 0) {
return (
<div className='pt-1 text-gray-600'>
Expand Down Expand Up @@ -214,7 +225,7 @@ const InnerReviewPage: FC<ReviewPageProps> = ({ clientConfig, organism, group, a
const pagination = (
<div className='flex justify-end align-center gap-3 py-3'>
<Pagination
count={Math.ceil(total / pageQuery.size)}
count={Math.ceil(selectedCount / pageQuery.size)}
page={pageQuery.page}
onChange={(_, newPage) => {
setPageQuery({ ...pageQuery, page: newPage });
Expand Down
Loading

0 comments on commit 2718a66

Please sign in to comment.