Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integration with Topola Genealogy Viewer #347

Open
Wdavery opened this issue Jan 10, 2024 · 6 comments
Open

Integration with Topola Genealogy Viewer #347

Wdavery opened this issue Jan 10, 2024 · 6 comments

Comments

@Wdavery
Copy link

Wdavery commented Jan 10, 2024

In desktop Gramps, the Interactive Family Tree addon (source) adds an integration with the interactive Topola Genealogy Viewer.

Including it as an option within the Family Tree page would be valuable, as it provides a great way to view large and complex trees.
I imagine it would be relatively straightforward to add since the integration with Gramps already exists.

@DavidMStraub DavidMStraub added the enhancement New feature or request label Jan 12, 2024
@DavidMStraub
Copy link
Member

DavidMStraub commented Jan 12, 2024

Indeed! I think @PeWu and I were in contact a long time ago - I think this was still the predecessor project of Gramps Web - but it was never implemented. @PeWu would you be willing to support development of such an integration? Contributing would be awesome, but even if you don't have time for it, just being available for answering stupid questions would be helpful. 😄

In general, our architecture is that we have custom elements, so we would have to wrap the Topola code into a custom element. Using typescript is fine because we are building with rollup.

The main open question for me would be in which format to fetch data. The API can create Gedcom or Gramps XML files, but it seems like an unnecessary complication to generate that in Python and parse it in JS again. The existing charts directly consume the Gramps objects in JSON form.

@PeWu
Copy link

PeWu commented Jan 15, 2024

Hi, can you give me a pointer where to look for the "Family Tree page" you are mentioning? I can definitely help with the integration.

The current way Topola Viewer is integrated with Gramps is that Gramps generates a GEDCOM file that is then parsed in Topola Viewer. This was the easiest way to integrate. Using an API that loads only needed data would be faster but requires some implementation on the Topola side.

My suggestion would be to start with integrating first using Gedcom just to see the result as quickly as possible. Then, we can consider using a more granular API to fetch only needed data.

@DavidMStraub
Copy link
Member

Sounds good! The component holding the views for the graphs is here:
https://github.com/gramps-project/Gramps.js/blob/main/src/views/GrampsjsViewTree.js

Basically, adding a new view means adding a tab and a new renderX method that renders a new component (for isntance <grampsjs-view-topola>).

@DavidMStraub
Copy link
Member

@geostag actually, Topola is quite similar to option 2 in #313 - I don't know if there can be some synergy. In principle, I wouldn't mind if we have several graphs with similar scope, it gives users more choice which is good...

@emyoulation
Copy link

emyoulation commented Feb 9, 2024

Could a starting point just be installing the Topola Viewer as a parallel (bundled?) installation with GrampsWeb? GitHub says it uses TypeScript instead of Javascript. If Gramps Web was certain that it exists with every installation, does that simplify piping data?

https://github.com/PeWu/topola-viewer

Since Gramps Web is a collaborative tool, the first expanded View should be a visualization of the Deep Connections between 2 collaborators. People will always want to understand where their research interests diverge.

@PeWu
Copy link

PeWu commented Mar 29, 2024

I created a first version of the Topola Viewer integration in PR #414.

Please take a look and tell me what you think.

@DavidMStraub DavidMStraub removed the enhancement New feature or request label Nov 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants