xref: /webtrees/resources/views/search-trees.phtml (revision ca2d6785e88b0b2a61b6ad9e066776ff8ff6f9d1)
1*ca2d6785SGreg Roach<?php
2*ca2d6785SGreg Roach
3*ca2d6785SGreg Roachuse Fisharebest\Webtrees\I18N;
4*ca2d6785SGreg Roachuse Fisharebest\Webtrees\Tree;
5*ca2d6785SGreg Roachuse Illuminate\Support\Collection;
6*ca2d6785SGreg Roach
7*ca2d6785SGreg Roach/**
8*ca2d6785SGreg Roach * @var Collection<Tree> $all_trees
9*ca2d6785SGreg Roach * @var Collection<Tree> $search_trees
10*ca2d6785SGreg Roach */
11*ca2d6785SGreg Roach
12*ca2d6785SGreg Roach?>
13*ca2d6785SGreg Roach
14*ca2d6785SGreg Roach<?php if ($all_trees->count() > 1) : ?>
15*ca2d6785SGreg Roach    <fieldset class="form-group">
16*ca2d6785SGreg Roach        <div class="row">
17*ca2d6785SGreg Roach            <div class="col-sm-3 col-form-label wt-page-options-label">
18*ca2d6785SGreg Roach                <?= I18N::translate('Family trees') ?>
19*ca2d6785SGreg Roach            </div>
20*ca2d6785SGreg Roach            <div class="col-sm-9 wt-page-options-value pt-2">
21*ca2d6785SGreg Roach                <div id="search-trees">
22*ca2d6785SGreg Roach                    <?php if ($all_trees->count() > 3): ?>
23*ca2d6785SGreg Roach                        <div class="d-flex">
24*ca2d6785SGreg Roach                            <?php if ($all_trees->count() > $search_trees->count()): ?>
25*ca2d6785SGreg Roach                                <div class="mr-2">
26*ca2d6785SGreg Roach                                    <button type="button" data-toggle="collapse" class="btn btn-secondary btn-sm" href="#more-trees,#select-all" aria-expanded="false" aria-controls="more-trees">
27*ca2d6785SGreg Roach                                        <?= view('icons/expand') ?>
28*ca2d6785SGreg Roach                                        <?= view('icons/collapse') ?>
29*ca2d6785SGreg Roach                                    </button>
30*ca2d6785SGreg Roach                                </div>
31*ca2d6785SGreg Roach                            <?php endif ?>
32*ca2d6785SGreg Roach                            <div>
33*ca2d6785SGreg Roach                                <?php foreach ($search_trees as $n => $tree) : ?>
34*ca2d6785SGreg Roach                                    <?= view('components/checkbox', ['name' => 'search_trees[]', 'id' => 'chkbx-' . $n, 'checked' => $search_trees->containsStrict($tree), 'value' => $tree->name(), 'label' => $tree->title()]) ?>
35*ca2d6785SGreg Roach                                <?php endforeach ?>
36*ca2d6785SGreg Roach                                <div id="more-trees" class="<?= $all_trees->count() > $search_trees->count() ? 'collapse' : '' ?>">
37*ca2d6785SGreg Roach                                    <?php foreach ($all_trees as $n => $tree) : ?>
38*ca2d6785SGreg Roach                                        <?php if (!$search_trees->containsStrict($tree)): ?>
39*ca2d6785SGreg Roach                                            <?= view('components/checkbox', ['name' => 'search_trees[]', 'id' => 'chkbx-' . $n, 'checked' => $search_trees->containsStrict($tree), 'value' => $tree->name(), 'label' => $tree->title()]) ?>
40*ca2d6785SGreg Roach                                        <?php endif ?>
41*ca2d6785SGreg Roach                                    <?php endforeach ?>
42*ca2d6785SGreg Roach                                </div>
43*ca2d6785SGreg Roach                            </div>
44*ca2d6785SGreg Roach                            <div class="ml-auto <?= $all_trees->count() > $search_trees->count() ? 'collapse' : '' ?>" id="select-all">
45*ca2d6785SGreg Roach                                <button type="button" class="btn btn-sm btn-secondary mx-1" onclick="document.querySelectorAll('#search-trees [type=checkbox]').forEach((element) => {element.checked=true;});">
46*ca2d6785SGreg Roach                                    <?= /* I18N: select all (of a list of options) */ I18N::translate('select all') ?>
47*ca2d6785SGreg Roach                                </button>
48*ca2d6785SGreg Roach                                <button type="button" class="btn btn-sm btn-secondary mx-1" onclick="document.querySelectorAll('#search-trees [type=checkbox]').forEach((element) => {element.checked=false;});">
49*ca2d6785SGreg Roach                                    <?= /* I18N: select none (of a list of options) */  I18N::translate('select none') ?>
50*ca2d6785SGreg Roach                                </button>
51*ca2d6785SGreg Roach                                <?php if ($all_trees->count() > 10) : ?>
52*ca2d6785SGreg Roach                                    <button type="button"  class="btn btn-sm btn-secondary mx-1" onclick="document.querySelectorAll('#search-trees [type=checkbox]').forEach((element) => {element.checked=!element.checked;});">
53*ca2d6785SGreg Roach                                        <?= /* I18N: reverse the selection (of a list of options) */ I18N::translate('invert selection') ?>
54*ca2d6785SGreg Roach                                    </button>
55*ca2d6785SGreg Roach                                <?php endif ?>
56*ca2d6785SGreg Roach                            </div>
57*ca2d6785SGreg Roach                    </div>
58*ca2d6785SGreg Roach                    <?php else: ?>
59*ca2d6785SGreg Roach                        <?php foreach ($all_trees as $n => $tree) : ?>
60*ca2d6785SGreg Roach                            <?= view('components/checkbox-inline', ['name' => 'search_trees[]', 'id' => 'chkbx-' . $n, 'checked' => $search_trees->containsStrict($tree), 'value' => $tree->name(), 'label' => $tree->title()]) ?>
61*ca2d6785SGreg Roach                        <?php endforeach ?>
62*ca2d6785SGreg Roach                    <?php endif ?>
63*ca2d6785SGreg Roach                </div>
64*ca2d6785SGreg Roach            </div>
65*ca2d6785SGreg Roach        </div>
66*ca2d6785SGreg Roach    </fieldset>
67*ca2d6785SGreg Roach<?php endif ?>
68