14 Commits

Author SHA1 Message Date
cee285162a Improve bio card: profile button, touch support, root-click navigation
Replace the "View profile" link with icon action buttons in the bio card
top-right corner. On touch devices, single tap shows the bio card (with
focus + profile buttons), double tap speed-focuses in the diagram. On
desktop, click navigates the diagram and hover shows the bio card.

Clicking the root/focused person now navigates to their profile page.
Tapping the SVG background or the same card again dismisses the tooltip.
2026-03-16 22:54:43 +01:00
5a4d5d4c3c Add build/ to export-ignore and gitignore, mount family-nav-graph in Docker 2026-03-16 21:04:54 +01:00
8a9b0f2248 Add fullscreen button and remove initial pan animation
Add a fullscreen toggle to the zoom controls using inline Lucide SVG
icons (Maximize/X). Remove the 500ms transition on initial center so the
chart starts focused on the root person immediately.
2026-03-16 14:45:29 +01:00
58046d8dd7 remove build folder 2026-03-15 10:38:54 +01:00
267f974d15 Bump version to 1.0.0 v1.0.0 2026-03-15 09:58:10 +01:00
ad398d2964 Add README, fix license to AGPLv3, untrack sync.sh
Add project README with features, installation instructions, and ELK
layout explanation. Fix license identifier from GPL-3.0 to AGPL-3.0 in
composer.json and module.php to match the actual LICENSE file. Remove
sync.sh from version control and add it to .gitignore.
2026-03-15 09:56:11 +01:00
96d1425036 Improve indicators and fix hover card age calculation
Draw ancestor/descendant indicators behind card, make them clickable
(navigates to person), use sharper box corners (rx=1). Fix age
calculation to use full birth/death dates instead of just years,
correctly accounting for whether the birthday has passed.
2026-03-15 09:22:04 +01:00
c6727ed19c Add Full Diagram as a tab on individual pages
Implement ModuleTabInterface so the diagram can be shown as a tab
on person views. Uses 500px fixed height, AJAX-loadable, tab order 9.
2026-03-14 21:53:52 +01:00
62f1c335e7 Move overlapping childless spouses to nearest row edge
After Y-snapping, spouses without shared children can land on top of
each other. Detect these overlaps and move the spouse to the nearest
edge of the generation row without affecting other cards.
2026-03-14 21:37:42 +01:00
cc33792377 Simplify layout: use raw ELK X, Y-snap generations, multi-spouse offsets
Remove post-processing collision resolution that fought ELK's layout.
Keep only Y-snapping (same generation = same row) and grid-aligned
connector Y positions. Add offset drop lines for parents with multiple
spouses so each family unit is visually distinct.
2026-03-14 21:24:00 +01:00
7528d30de1 Add "more descendants" indicator and fix indicator draw order
Show small child-box indicators at bottom-right of person cards when
descendants exist beyond the current view. Fix both ancestor and
descendant indicators to draw connecting lines behind boxes.
2026-03-14 20:37:42 +01:00
272ee41df6 Fix spouse overlap, reset defaults to 3 gen, remove sliders
- Add collision resolution pass after Y-snapping: sweeps each
  generation row left-to-right pushing overlapping cards apart,
  then re-centers the row to prevent drift
- Reset default generations to 3 (up from 4) to avoid layout issues
- Remove generation sliders from chart page for simplicity
- Add sync.sh for deployment to server
2026-03-14 20:30:38 +01:00
04ff9f4711 Add homepage block, reactive controls, i18n, and full-width layout
- Implement ModuleBlockInterface for tree/user homepage embedding
  with configurable individual and generation settings
- Make generation sliders reactive (auto-navigate on change)
- Persist generation counts when clicking between persons
- Expand chart to full viewport width and remaining height
- Add German and Dutch translations for all custom strings
- Pass translated labels to JS bio card tooltip via window.fullDiagramI18n
- Use webtrees core translation keys where available
- Increase default generations to 4, remove show siblings checkbox
- Expose Chart class globally for block instantiation
2026-03-14 19:53:12 +01:00
273e398431 Initial commit: webtrees full diagram chart module
Interactive SVG family tree visualization using ELK (Sugiyama) for
layout and D3 for rendering. Shows ancestors, descendants, and siblings
in a single diagram with orthogonal bus-line connectors.

Features:
- Bidirectional tree traversal (ancestors + descendants + siblings)
- Generation-aligned layout with post-processing Y-snap
- Person cards with photos, names, dates, and hover bio cards
- "More ancestors" indicator for persons with hidden parents
- Pan/zoom navigation
- Docker dev environment
2026-03-14 18:52:17 +01:00