diff --git a/src/breeding-insight/model/import/germplasm/Pedigree.ts b/src/breeding-insight/model/import/germplasm/Pedigree.ts index 33282a5ea..acb024653 100644 --- a/src/breeding-insight/model/import/germplasm/Pedigree.ts +++ b/src/breeding-insight/model/import/germplasm/Pedigree.ts @@ -44,4 +44,18 @@ export class Pedigree { } } + /** + * Wrapper of parsePedigreeString that handles female/male parent unknown cases. + * + * @param pedigreeString + * @param femaleParentUnknown + * @param maleParentUnknown + */ + public static parsePedigreeStringWithUnknowns(pedigreeString: string, femaleParentUnknown: string, maleParentUnknown: string, gid: string) : Pedigree { + let parsedPedigree = this.parsePedigreeString(pedigreeString); + if (femaleParentUnknown) parsedPedigree.femaleParent = "Unknown"; + if (maleParentUnknown) parsedPedigree.maleParent = "Unknown"; + return parsedPedigree; + } + } \ No newline at end of file diff --git a/src/components/germplasm/GermplasmPedigreesView.vue b/src/components/germplasm/GermplasmPedigreesView.vue index 76495d224..94dbabc17 100644 --- a/src/components/germplasm/GermplasmPedigreesView.vue +++ b/src/components/germplasm/GermplasmPedigreesView.vue @@ -126,6 +126,9 @@ export default class GermplasmPedigreesView extends GermplasmBase { let pedigree = PedigreeViewer(`${process.env.VUE_APP_BI_API_V1_PATH}/programs/${this.activeProgram!.id}/brapi/v2`, undefined, 'v2.0', function (dbId: any, germplasm: any) { const parsedName = parseGermplasmName(germplasm.value.name); + if (parsedName.gid === "0") { + return null; + } return `${germplasmDetailsUrl}/gid-${parsedName.gid}`; }, { diff --git a/src/views/germplasm/GermplasmDetails.vue b/src/views/germplasm/GermplasmDetails.vue index f73da357c..50210eaef 100644 --- a/src/views/germplasm/GermplasmDetails.vue +++ b/src/views/germplasm/GermplasmDetails.vue @@ -39,12 +39,12 @@
  • Synonyms: {{ GermplasmUtils.formatSynonyms(germplasm.synonyms) }}
  • diff --git a/src/views/germplasm/GermplasmTable.vue b/src/views/germplasm/GermplasmTable.vue index 4cbd7846d..46f05d022 100644 --- a/src/views/germplasm/GermplasmTable.vue +++ b/src/views/germplasm/GermplasmTable.vue @@ -36,13 +36,13 @@ diff --git a/src/views/import/ImportGermplasm.vue b/src/views/import/ImportGermplasm.vue index c7712c145..9ac209d2d 100644 --- a/src/views/import/ImportGermplasm.vue +++ b/src/views/import/ImportGermplasm.vue @@ -112,7 +112,7 @@ {{ props.row.data.brAPIObject.seedSource }} - {{ props.row.data.brAPIObject.pedigree }} + {{ getPedigree(props.row.data.brAPIObject) }} {{ props.row.data.brAPIObject.additionalInfo.femaleParentGid }} @@ -162,6 +162,7 @@ import ExpandableTable from "@/components/tables/expandableTable/ExpandableTable import {ImportObjectState} from "@/breeding-insight/model/import/ImportObjectState"; import {ExternalUID} from "@/breeding-insight/model/import/germplasm/ExternalUID"; import {GermplasmUtils} from "@/breeding-insight/utils/GermplasmUtils"; +import {Germplasm} from "@/breeding-insight/brapi/model/germplasm"; @Component({ components: { @@ -217,5 +218,26 @@ export default class ImportGermplasm extends ProgramsBase { importFinished() { this.germplasmList = new GermplasmList(); } + + getPedigree(germplasm: Germplasm) { + //return germplasm.pedigree; + let originalPedigree = germplasm.pedigree ? germplasm.pedigree.split('/') : [""]; + let displayPedigree = ""; + if (germplasm.additionalInfo && germplasm.additionalInfo.femaleParentUnknown){ + displayPedigree = "Unknown"; + } else { + displayPedigree = originalPedigree[0]; + } + if (germplasm.additionalInfo && germplasm.additionalInfo.maleParentUnknown){ + displayPedigree += "/Unknown"; + } else if (originalPedigree.length == 2) { + displayPedigree +=`/${originalPedigree[1]}`; + } + //todo future card, handle case of unknown female/known male, which currently has null pedigree posted + + return displayPedigree; + + } + } \ No newline at end of file