xref: /webtrees/resources/views/search-phonetic-page.phtml (revision dc270d8cc5085ed29f3f419c99734ddd0960c624)
1<?php
2
3use Fisharebest\Webtrees\Http\RequestHandlers\SearchPhoneticAction;
4use Fisharebest\Webtrees\I18N;
5use Fisharebest\Webtrees\Individual;
6use Fisharebest\Webtrees\Tree;
7use Illuminate\Support\Collection;
8
9/**
10 * @var array<Tree>            $all_trees
11 * @var string                 $firstname
12 * @var Collection<Individual> $individuals
13 * @var string                 $lastname
14 * @var string                 $place
15 * @var array<Tree>            $search_trees
16 * @var string                 $soundex
17 * @var string                 $title
18 * @var Tree                   $tree
19 */
20
21?>
22
23<h2 class="wt-page-title">
24    <?= $title ?>
25</h2>
26
27<form method="post" action="<?= e(route(SearchPhoneticAction::class, ['tree' => $tree->name()])) ?>" class="wt-page-options wt-page-options-ancestors-chart hidden-print mb-4" name="searchform">
28    <?= csrf_field() ?>
29
30    <div class="row form-group">
31        <label class="col-sm-3 col-form-label wt-page-options-label" for="firstname">
32            <?= I18N::translate('Given name') ?>
33        </label>
34        <div class="col-sm-9 wt-page-options-value">
35            <div class="input-group">
36                <input class= "form-control" type="text" name="firstname" id="firstname" value="<?= e($firstname) ?>" autofocus>
37                <?= view('edit/input-addon-keyboard', ['id' => 'firstname']) ?>
38            </div>
39        </div>
40    </div>
41
42    <div class="row form-group">
43        <label class="col-sm-3 col-form-label wt-page-options-label"  for="lastname">
44            <?= I18N::translate('Surname') ?>
45        </label>
46        <div class="col-sm-9 wt-page-options-value">
47            <div class="input-group">
48                <input class="form-control" type="text" name="lastname" id="lastname" value="<?= e($lastname) ?>">
49                <?= view('edit/input-addon-keyboard', ['id' => 'lastname']) ?>
50            </div>
51        </div>
52    </div>
53
54    <div class="row form-group">
55        <label class="col-sm-3 col-form-label wt-page-options-label" for="place">
56            <?= I18N::translate('Place') ?>
57        </label>
58        <div class="col-sm-9 wt-page-options-value">
59            <input class="form-control" type="text" name="place" id="place" value="<?= e($place) ?>">
60        </div>
61    </div>
62
63    <fieldset class="form-group">
64        <div class="row">
65            <label class="col-sm-3 col-form-label wt-page-options-label">
66                <?= I18N::translate('Phonetic algorithm') ?>
67            </label>
68            <div class="col-sm-9 wt-page-options-value">
69                <div class="form-check form-check-inline">
70                    <label class="form-check-label">
71                        <input class="form-check-input" type="radio" name="soundex" value="Russell" <?= $soundex === 'Russell' ? 'checked' : '' ?>>
72                        <?= I18N::translate('Russell') ?>
73                    </label>
74                </div>
75                <div class="form-check form-check-inline">
76                    <label class="form-check-label">
77                        <input class="form-check-input" type="radio" name="soundex" value="DaitchM" <?= $soundex === 'DaitchM' ? 'checked' : '' ?>>
78                        <?= I18N::translate('Daitch-Mokotoff') ?>
79                    </label>
80                </div>
81            </div>
82        </div>
83    </fieldset>
84
85    <?php if (count($all_trees) > 1) : ?>
86        <fieldset class="form-group">
87            <div class="row">
88                <label class="col-sm-3 col-form-label wt-page-options-label">
89                    <?= I18N::translate('Family trees') ?>
90                </label>
91                <div class="col-sm-9 wt-page-options-value pt-2">
92                    <div class="d-flex justify-content-between">
93                        <div id="search-trees" class="form-check">
94                            <?php foreach ($all_trees as $tree) : ?>
95                                <div class="col px-0">
96                                    <label class="form-check-label">
97                                        <input class="form-check form-check-input" type="checkbox" <?= in_array($tree, $search_trees, true) ? 'checked' : '' ?> value="<?= $tree->name() ?>" name="search_trees[]">
98                                        <?= e($tree->title()) ?>
99                                    </label>
100                                </div>
101                            <?php endforeach ?>
102                        </div>
103                        <?php if (count($all_trees) > 3) : ?>
104                            <div class="d-row align-self-end mb-2">
105                                <input type="button" class="btn btn-sm btn-secondary mx-1" value="<?= /* I18N: select all (of the family trees) */ I18N::translate('select all') ?>" onclick="$('#search-trees :checkbox').each(function(){$(this).attr('checked', true);});return false;">
106                                <input type="button" class="btn btn-sm btn-secondary mx-1" value="<?= /* I18N: select none (of the family trees) */ I18N::translate('select none') ?>" onclick="$('#search-trees :checkbox').each(function(){$(this).attr('checked', false);});return false;">
107                                <?php if (count($all_trees) > 10) : ?>
108                                    <input type="button" value="<?= I18N::translate('invert selection') ?>" onclick="$('#search-trees :checkbox').each(function(){$(this).attr('checked', !$(this).attr('checked'));});return false;">
109                                <?php endif ?>
110                            </div>
111                        <?php endif ?>
112                    </div>
113                </div>
114            </div>
115        </fieldset>
116    <?php endif ?>
117
118    <div class="row form-group">
119        <label class="col-sm-3 col-form-label wt-page-options-label"></label>
120        <div class="col-sm-9 wt-page-options-value">
121            <input type="submit" class="btn btn-primary" value="<?=  /* I18N: A button label. */ I18N::translate('search') ?>">
122        </div>
123    </div>
124</form>
125
126<?php if ($firstname !== '' || $lastname !== '' || $place !== '') : ?>
127    <?php if ($individuals->isEmpty()) : ?>
128        <div class="alert alert-info row">
129            <?= I18N::translate('No results found.') ?>
130        </div>
131    <?php else : ?>
132        <?= view('search-results', ['individuals' => $individuals, 'search_families' => false, 'search_individuals' => true, 'search_notes' => false, 'search_sources' => false, 'search_repositories' => false, 'tree' => $tree]) ?>
133    <?php endif ?>
134<?php endif ?>
135
136<?= view('modals/on-screen-keyboard') ?>
137