1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
<?php
declare(strict_types=1);
use Fisharebest\Webtrees\Auth;
use Fisharebest\Webtrees\Family;
use Fisharebest\Webtrees\GedcomRecord;
use Fisharebest\Webtrees\I18N;
use Fisharebest\Webtrees\Individual;
use Fisharebest\Webtrees\Registry;
use Fisharebest\Webtrees\Services\GedcomEditService;
/**
* @var GedcomRecord $record
*/
?>
<?php
$add_facts = (new GedcomEditService())->factsToAdd($record, false);
// Add from pick list
switch ($record->tag()) {
case Individual::RECORD_TYPE:
$quick_facts = array_filter(explode(',', $record->tree()->getPreference('INDI_FACTS_QUICK')));
$unique_facts = [
'ADOP',
'AFN',
'BAPL',
'BAPM',
'BARM',
'BASM',
'BIRT',
'BURI',
'CAST',
'CHAN',
'CHR',
'CHRA',
'CONF',
'CONL',
'CREM',
'DEAT',
'ENDL',
'FCOM',
'GRAD',
'NCHI',
'NMR',
'ORDN',
'PROB',
'REFN',
'RELI',
'RESN',
'RETI',
'RFN',
'RIN',
'SEX',
'SLGC',
'SSN',
'WILL',
];
break;
case Family::RECORD_TYPE:
$quick_facts = array_filter(explode(',', $record->tree()->getPreference('FAM_FACTS_QUICK')));
$unique_facts = [
'DIV',
'DIVF',
'ENGA',
'MARR',
];
break;
default:
$quick_facts = [];
$unique_facts = [];
break;
}
// Filter existing tags
$filter_fn = static fn (string $tag): bool => !in_array($tag, $unique_facts, true) || $record->facts([$tag])->isEmpty();
$quick_facts = array_filter($quick_facts, $filter_fn);
// Create a label for a subtag
$label_fn = static fn (string $subtag): string => Registry::elementFactory()->make($record->tag() . ':' . $subtag)->label();
$quick_facts = array_combine($quick_facts, array_map($label_fn, $quick_facts));
$add_facts = array_combine($add_facts, array_map($label_fn, $add_facts));
uasort($add_facts, I18N::comparator());
if (!Auth::canUploadMedia($record->tree(), Auth::user())) {
unset($add_facts['OBJE'], $quick_facts['OBJE']);
}
echo view('edit/add-fact-row', [
'add_facts' => $add_facts,
'quick_facts' => $quick_facts,
'record' => $record,
]);
|