xref: /webtrees/resources/views/modules/hourglass-chart/chart.phtml (revision 71378461661e7642e52abe7d41c9cfffb3e5369b)
1cb0eb4a9SGreg Roach<?php
2cb0eb4a9SGreg Roach
3cb0eb4a9SGreg Roachuse Fisharebest\Webtrees\Family;
4cb0eb4a9SGreg Roachuse Fisharebest\Webtrees\Individual;
5cb0eb4a9SGreg Roachuse Fisharebest\Webtrees\View;
6cb0eb4a9SGreg Roachuse Illuminate\Support\Collection;
7cb0eb4a9SGreg Roach
8cb0eb4a9SGreg Roach/**
9cb0eb4a9SGreg Roach * @var int        $generations
10cb0eb4a9SGreg Roach * @var Individual $individual
11*71378461SGreg Roach * @var bool       $spouses
12cb0eb4a9SGreg Roach */
13cb0eb4a9SGreg Roach
146c2179e2SGreg Roach$children = $individual->spouseFamilies()->map(static function (Family $family): Collection {
156c2179e2SGreg Roach    return $family->children();
166c2179e2SGreg Roach})->flatten();
17cb0eb4a9SGreg Roach
18cb0eb4a9SGreg Roach?>
19cb0eb4a9SGreg Roach
20cb0eb4a9SGreg Roach<div class="d-flex wt-chart-hourglass">
21*71378461SGreg Roach    <?= view('modules/hourglass-chart/children', ['children' => $children, 'generations' => $generations - 1, 'spouses' => $spouses]) ?>
22cb0eb4a9SGreg Roach    <div class="align-self-center">
23cb0eb4a9SGreg Roach        <?= view('chart-box', ['individual' => $individual]) ?>
24*71378461SGreg Roach        <?php if ($spouses): ?>
25cb0eb4a9SGreg Roach            <?php foreach ($individual->spouseFamilies() as $family): ?>
26cb0eb4a9SGreg Roach                <?= view('chart-box', ['individual' => $family->spouse($individual)]) ?>
27cb0eb4a9SGreg Roach            <?php endforeach ?>
28cb0eb4a9SGreg Roach        <?php endif ?>
29cb0eb4a9SGreg Roach    </div>
30cb0eb4a9SGreg Roach    <?php if ($individual->primaryChildFamily() !== null): ?>
31cb0eb4a9SGreg Roach        <div class="wt-chart-horizontal-spacer">
32cb0eb4a9SGreg Roach            <div class="wt-chart-horizontal-line"></div>
33cb0eb4a9SGreg Roach        </div>
34cb0eb4a9SGreg Roach        <?= view('modules/hourglass-chart/parents', ['generations' => $generations - 1, 'family' => $individual->primaryChildFamily()]) ?>
35cb0eb4a9SGreg Roach    <?php endif ?>
3626684e68SGreg Roach</div>
3726684e68SGreg Roach
38cb0eb4a9SGreg Roach<?php View::push('javascript') ?>
3926684e68SGreg Roach<script>
40fe69f605SGreg Roach    $(".wt-chart-hourglass").on("click", ".hourglass-arrow[data-xref]", function () {
41cb0eb4a9SGreg Roach        $(this.parentNode).load(this.dataset.xref);
4226684e68SGreg Roach
43cb0eb4a9SGreg Roach        return false;
4426684e68SGreg Roach    });
4526684e68SGreg Roach</script>
46cb0eb4a9SGreg Roach<?php View::endpush() ?>
47