From 2fc8c1e112f485cfe58a19450eca0245b23ff9b1 Mon Sep 17 00:00:00 2001 From: Clarke-11007 <114438918+Clarke-11007@users.noreply.github.com> Date: Thu, 18 Jun 2026 07:43:35 -0400 Subject: [PATCH 1/4] add doClimbTree condition to Ahnentafel --- views/fanChart/AhnenTafel.js | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/views/fanChart/AhnenTafel.js b/views/fanChart/AhnenTafel.js index 90ed6e8f..8aa4e5f5 100644 --- a/views/fanChart/AhnenTafel.js +++ b/views/fanChart/AhnenTafel.js @@ -58,7 +58,7 @@ AhnenTafel.Ahnentafel = class Ahnentafel { // Stores the next person's WikiTree ID in position corresponding to their Ahnentafel number // THEN ... if they are a person in thePeopleList collection, check for THEIR parents, and recurse up the tree adding them! - addToAhnenTafel(nextPersonID, ahnNum) { + addToAhnenTafel(nextPersonID, ahnNum, doClimbTree = true, familyType = "") { this.list[ahnNum] = nextPersonID; if (this.listByPerson[nextPersonID] && this.listByPerson[nextPersonID].length > 0) { if (this.listByPerson[nextPersonID].indexOf(ahnNum) > -1) { @@ -72,10 +72,26 @@ AhnenTafel.Ahnentafel = class Ahnentafel { } let nextPerson = thePeopleList[nextPersonID]; - if (nextPerson && nextPerson._data.Father && nextPerson._data.Father > 0) { + if ( + doClimbTree && + familyType == "Bio" && + nextPerson && + nextPerson._data.BioFather && + nextPerson._data.BioFather > 0 + ) { + this.addToAhnenTafel(nextPerson._data.BioFather, 2 * ahnNum); + } else if (doClimbTree && nextPerson && nextPerson._data.Father && nextPerson._data.Father > 0) { this.addToAhnenTafel(nextPerson._data.Father, 2 * ahnNum); } - if (nextPerson && nextPerson._data.Mother && nextPerson._data.Mother > 0) { + if ( + doClimbTree && + familyType == "Bio" && + nextPerson && + nextPerson._data.BioMother && + nextPerson._data.BioMother > 0 + ) { + this.addToAhnenTafel(nextPerson._data.Mother, 2 * ahnNum + 1); + } else if (doClimbTree && nextPerson && nextPerson._data.Mother && nextPerson._data.Mother > 0) { this.addToAhnenTafel(nextPerson._data.Mother, 2 * ahnNum + 1); } } From 5b36726123666c3abaf731315c97bf46494e5be4 Mon Sep 17 00:00:00 2001 From: Clarke-11007 <114438918+Clarke-11007@users.noreply.github.com> Date: Thu, 18 Jun 2026 07:44:55 -0400 Subject: [PATCH 2/4] Bio Parent changes added --- views/superBigFamTree/SuperBigFamView.js | 1908 ++++++++++++++++++---- 1 file changed, 1583 insertions(+), 325 deletions(-) diff --git a/views/superBigFamTree/SuperBigFamView.js b/views/superBigFamTree/SuperBigFamView.js index 7b8df01c..d774d7ed 100644 --- a/views/superBigFamTree/SuperBigFamView.js +++ b/views/superBigFamTree/SuperBigFamView.js @@ -14,6 +14,7 @@ * _Kn: for Kids * _Sn: for Siblings * _RM: / _RF: for (pa)Rents (male/female) + * _BM: / _BF: for Bio Parents (male/female) * * (NOTE that there may be multiple s for some unique individuals if they are related to the primary person in multiple ways>, each would have a unique ChunkID) * @@ -26,10 +27,11 @@ * * thePeopleList ==> is a collection of unique individuals, each person has ONE entry in thePeopleList, using the WikiTree ID number as their key * Additional Fields to be added to thePeopleList for this app: - * * Siblings -> howSibling ("Full", "Paternal", "Maternal","Adoptive") + * * Siblings -> howSibling ("Full" - Mom & Dad DNA parents, "Paternal 1/2"- Dad DNA, "Maternal 1/2" - Mom DNA,"Adoptive" - share nonDNA Mom & Dad, + * "Biological" - share BioFather and BioMother, "BioPaternal 1/2" - share BioFather, "BioMaternal 1/2" - share BioMother, "Unknown" - no info on parents) * * Children -> coParent (wikiTree ID number) * * Children -> orderNum (birth order number within nuclear family sharing same coParent) - * * AdoptiveMother / AdoptiveFather for Primary Person only (for now at least) + * * BioFather & BioMother - since update in API * * LeafCodes [ ] -> array of theLeafCollection Codes where this individual appears or could appear, based on ButtonBar settings * * theLeafCollection --> is a collection for every leaf on the Super Big Family Tree @@ -63,7 +65,7 @@ * * CURRENT IMPLEMENTATION: * loadInitial1000: getPeople, nuclear:3 - * loadSiblings : getPeople, anestors:3, siblings:1 + * loadSiblings : getPeople, ancestors:3, siblings:1 * * loadNiblings : I0 * loadAncestors : I1 @@ -172,7 +174,7 @@ import { PDFs } from "../shared/PDFs.js"; const FullAppName = "Super (Big Family) Tree app"; const AboutPreamble = "The Super Big Family Tree app was originally created to be a member of the WikiTree Tree Apps.
It is maintained by the original author plus other WikiTree developers."; - const AboutUpdateDate = "31 Oct 2025"; + const AboutUpdateDate = "27 Feb 2026"; const AboutAppIcon = ``; const AboutOriginalAuthor = "Greg Clarke"; const AboutAdditionalProgrammers = "Steve Adey"; @@ -305,6 +307,8 @@ import { PDFs } from "../shared/PDFs.js"; SuperBigFamView.maxNumDescGens = 7; SuperBigFamView.maxNumCuzGens = 4; + SuperBigFamView.familyType = "A1"; + SuperBigFamView.workingMaxNumAncGens = 3; SuperBigFamView.workingMaxNumDescGens = 2; SuperBigFamView.workingMaxNumCuzGens = 1; @@ -369,6 +373,8 @@ import { PDFs } from "../shared/PDFs.js"; "DeathLocation", "Mother", "Father", + "BioMother", + "BioFather", "Spouses", "Photo", "Name", @@ -381,7 +387,10 @@ import { PDFs } from "../shared/PDFs.js"; "Bio", ]; /** Object to hold the Ahnentafel table for the current primary individual */ - SuperBigFamView.myAhnentafel = new AhnenTafel.Ahnentafel(); + SuperBigFamView.myAhnentafel = new AhnenTafel.Ahnentafel(); // used for PRIMARY (adoptive) family + SuperBigFamView.bioAhnentafel = new AhnenTafel.Ahnentafel(); // used for BIOLOGICAL family + SuperBigFamView.bioAhnentafelsObject = {}; // used to hold the multiple Ahnentafels needed for cases of multiple biological lines (e.g. 2 sets of bio parents, or 1 set of bio parents and 1 set of bio grandparents, etc.) + // STRUCTURE: { bioParentAhnentafelNumber: { bioParentID: X, bioParentName: Y, tag: "0002" or "9995", bioAhnentafel: Ahnentafel Object } } /** Object to hold the Ancestors as they are returned from the getAncestors API call */ SuperBigFamView.theAncestors = []; @@ -2173,7 +2182,12 @@ import { PDFs } from "../shared/PDFs.js"; ' " + - // + // FamilyType selector + "     Family:" + "
" + ' DESCENDANTS: