@@ -77,7 +77,7 @@ |
||
77 | 77 | <br> |
78 | 78 | <br> |
79 | 79 | |
80 | -<table class="table table-bordered table-sm" id="media-table-<?= e($table_id) ?>" data-ajax="<?= e(route('admin-media-data', ['files' => $files, 'media_folder' => $media_folder, 'media_path' => $media_path, 'subfolders' => $subfolders ])) ?>"> |
|
80 | +<table class="table table-bordered table-sm" id="media-table-<?= e($table_id) ?>" data-ajax="<?= e(route('admin-media-data', ['files' => $files, 'media_folder' => $media_folder, 'media_path' => $media_path, 'subfolders' => $subfolders])) ?>"> |
|
81 | 81 | <thead> |
82 | 82 | <tr> |
83 | 83 | <th><?= I18N::translate('Media file') ?></th> |
@@ -46,7 +46,7 @@ |
||
46 | 46 | <select name="tree_name" class="form-control" id="import-server-file"> |
47 | 47 | <option value=""></option> |
48 | 48 | <?php foreach ($gedcom_files as $gedcom_file): ?> |
49 | - <option value="<?= e($gedcom_file) ?>" <?= $gedcom_file === $default_gedcom_file? 'selected' : '' ?>> |
|
49 | + <option value="<?= e($gedcom_file) ?>" <?= $gedcom_file === $default_gedcom_file ? 'selected' : '' ?>> |
|
50 | 50 | <?= e($gedcom_file) ?> |
51 | 51 | </option> |
52 | 52 | <?php endforeach ?> |
@@ -14,7 +14,7 @@ |
||
14 | 14 | $count_media = Database::prepare( |
15 | 15 | "SELECT l_to, COUNT(*) FROM `##media` JOIN `##link` ON l_from = m_id AND l_file = m_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
16 | 16 | )->execute(['tree_id' => $tree->getTreeId()])->fetchAssoc(); |
17 | -$count_sources = Database::prepare( |
|
17 | +$count_sources = Database::prepare( |
|
18 | 18 | "SELECT l_to, COUNT(*) FROM `##sources` JOIN `##link` ON l_from = s_id AND l_file = s_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
19 | 19 | )->execute(['tree_id' => $tree->getTreeId()])->fetchAssoc(); |
20 | 20 | ?> |
@@ -6,29 +6,29 @@ |
||
6 | 6 | // It is not good to bypass privacy, but many servers do not have the resources |
7 | 7 | // to process privacy for every record in the tree |
8 | 8 | $count_individuals = Database::prepare( |
9 | - "SELECT l_to, COUNT(*) FROM `##individuals` JOIN `##link` ON l_from = i_id AND l_file = i_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
|
9 | + "SELECT l_to, COUNT(*) FROM `##individuals` JOIN `##link` ON l_from = i_id AND l_file = i_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
|
10 | 10 | )->execute(['tree_id' => $tree->getTreeId()])->fetchAssoc(); |
11 | 11 | $count_families = Database::prepare( |
12 | - "SELECT l_to, COUNT(*) FROM `##families` JOIN `##link` ON l_from = f_id AND l_file = f_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
|
12 | + "SELECT l_to, COUNT(*) FROM `##families` JOIN `##link` ON l_from = f_id AND l_file = f_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
|
13 | 13 | )->execute(['tree_id' => $tree->getTreeId()])->fetchAssoc(); |
14 | 14 | $count_media = Database::prepare( |
15 | - "SELECT l_to, COUNT(*) FROM `##media` JOIN `##link` ON l_from = m_id AND l_file = m_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
|
15 | + "SELECT l_to, COUNT(*) FROM `##media` JOIN `##link` ON l_from = m_id AND l_file = m_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
|
16 | 16 | )->execute(['tree_id' => $tree->getTreeId()])->fetchAssoc(); |
17 | 17 | $count_sources = Database::prepare( |
18 | - "SELECT l_to, COUNT(*) FROM `##sources` JOIN `##link` ON l_from = s_id AND l_file = s_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
|
18 | + "SELECT l_to, COUNT(*) FROM `##sources` JOIN `##link` ON l_from = s_id AND l_file = s_file AND l_type = 'NOTE' AND l_file = :tree_id GROUP BY l_to" |
|
19 | 19 | )->execute(['tree_id' => $tree->getTreeId()])->fetchAssoc(); |
20 | 20 | ?> |
21 | 21 | |
22 | 22 | <table |
23 | 23 | class="table table-bordered table-sm wt-table-note datatables" |
24 | 24 | data-columns="<?= e(json_encode([ |
25 | - null, |
|
26 | - ['visible' => array_sum($count_individuals) > 0], |
|
27 | - ['visible' => array_sum($count_families) > 0], |
|
28 | - ['visible' => array_sum($count_media) > 0], |
|
29 | - ['visible' => array_sum($count_sources) > 0], |
|
30 | - ['visible' => (bool) $tree->getPreference('SHOW_LAST_CHANGE'), 'searchable' => false], |
|
31 | - ])) ?>" |
|
25 | + null, |
|
26 | + ['visible' => array_sum($count_individuals) > 0], |
|
27 | + ['visible' => array_sum($count_families) > 0], |
|
28 | + ['visible' => array_sum($count_media) > 0], |
|
29 | + ['visible' => array_sum($count_sources) > 0], |
|
30 | + ['visible' => (bool) $tree->getPreference('SHOW_LAST_CHANGE'), 'searchable' => false], |
|
31 | + ])) ?>" |
|
32 | 32 | data-state-save="true" |
33 | 33 | > |
34 | 34 | <caption class="sr-only"> |
@@ -24,7 +24,7 @@ |
||
24 | 24 | } |
25 | 25 | $chart_url .= '|1:||' . rawurlencode(I18N::percentage($vmax / $count)); // y axis |
26 | 26 | $chart_url .= '|2:||'; |
27 | -$step = $vmax; |
|
27 | +$step = $vmax; |
|
28 | 28 | for ($d = $vmax; $d > 0; $d--) { |
29 | 29 | if ($vmax < ($d * 10 + 1) && ($vmax % $d) == 0) { |
30 | 30 | $step = $d; |
@@ -4,12 +4,12 @@ discard block |
||
4 | 4 | $count = 0; |
5 | 5 | $vmax = 0; |
6 | 6 | foreach ($data as $v) { |
7 | - $n = strlen($v); |
|
8 | - $vmax = max($vmax, $n); |
|
9 | - $count += $n; |
|
7 | + $n = strlen($v); |
|
8 | + $vmax = max($vmax, $n); |
|
9 | + $count += $n; |
|
10 | 10 | } |
11 | 11 | if ($count < 1) { |
12 | - return ''; |
|
12 | + return ''; |
|
13 | 13 | } |
14 | 14 | $chart_url = 'https://chart.googleapis.com/chart?cht=bvs'; // chart type |
15 | 15 | $chart_url .= '&chs=360x150'; // size |
@@ -20,36 +20,36 @@ discard block |
||
20 | 20 | $chart_url .= '&chxt=x,y,r'; // axis labels specification |
21 | 21 | $chart_url .= '&chxl=0:|<|||'; // <1570 |
22 | 22 | for ($y = 1600; $y < 2030; $y += 50) { |
23 | - $chart_url .= $y . '|||||'; // x axis |
|
23 | + $chart_url .= $y . '|||||'; // x axis |
|
24 | 24 | } |
25 | 25 | $chart_url .= '|1:||' . rawurlencode(I18N::percentage($vmax / $count)); // y axis |
26 | 26 | $chart_url .= '|2:||'; |
27 | 27 | $step = $vmax; |
28 | 28 | for ($d = $vmax; $d > 0; $d--) { |
29 | - if ($vmax < ($d * 10 + 1) && ($vmax % $d) == 0) { |
|
30 | - $step = $d; |
|
31 | - } |
|
29 | + if ($vmax < ($d * 10 + 1) && ($vmax % $d) == 0) { |
|
30 | + $step = $d; |
|
31 | + } |
|
32 | 32 | } |
33 | 33 | if ($step == $vmax) { |
34 | - for ($d = $vmax - 1; $d > 0; $d--) { |
|
35 | - if (($vmax - 1) < ($d * 10 + 1) && (($vmax - 1) % $d) == 0) { |
|
36 | - $step = $d; |
|
37 | - } |
|
38 | - } |
|
34 | + for ($d = $vmax - 1; $d > 0; $d--) { |
|
35 | + if (($vmax - 1) < ($d * 10 + 1) && (($vmax - 1) % $d) == 0) { |
|
36 | + $step = $d; |
|
37 | + } |
|
38 | + } |
|
39 | 39 | } |
40 | 40 | for ($n = $step; $n < $vmax; $n += $step) { |
41 | - $chart_url .= $n . '|'; |
|
41 | + $chart_url .= $n . '|'; |
|
42 | 42 | } |
43 | 43 | $chart_url .= rawurlencode($vmax . ' / ' . $count); // r axis |
44 | 44 | $chart_url .= '&chg=100,' . round(100 * $step / $vmax, 1) . ',1,5'; // grid |
45 | 45 | $chart_url .= '&chd=s:'; // data : simple encoding from A=0 to 9=61 |
46 | 46 | $CHART_ENCODING61 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; |
47 | 47 | for ($y = 1570; $y < 2030; $y += 10) { |
48 | - $chart_url .= $CHART_ENCODING61[(int) (substr_count($data[$y], 'M') * 61 / $vmax)]; |
|
48 | + $chart_url .= $CHART_ENCODING61[(int) (substr_count($data[$y], 'M') * 61 / $vmax)]; |
|
49 | 49 | } |
50 | 50 | $chart_url .= ','; |
51 | 51 | for ($y = 1570; $y < 2030; $y += 10) { |
52 | - $chart_url .= $CHART_ENCODING61[(int) (substr_count($data[$y], 'F') * 61 / $vmax)]; |
|
52 | + $chart_url .= $CHART_ENCODING61[(int) (substr_count($data[$y], 'F') * 61 / $vmax)]; |
|
53 | 53 | } |
54 | 54 | $html = '<img src="' . $chart_url . '" alt="' . $title . '" title="' . $title . '" class="gchart">'; |
55 | 55 |
@@ -39,7 +39,7 @@ |
||
39 | 39 | 'level' => 2, |
40 | 40 | 'full_citations' => $tree->getPreference('FULL_SOURCES'), |
41 | 41 | 'tree' => $tree, |
42 | - ]); } |
|
42 | + ]); } |
|
43 | 43 | if ($level1type !== 'OBJE') { |
44 | 44 | if ($tree->getPreference('MEDIA_UPLOAD') >= Auth::accessLevel($tree)) { |
45 | 45 | echo view('cards/add-media-object', [ |
@@ -14,76 +14,76 @@ discard block |
||
14 | 14 | <?php FunctionsEdit::createEditForm($edit_fact) ?> |
15 | 15 | |
16 | 16 | <?php |
17 | - $level1type = $edit_fact->getTag(); |
|
18 | - switch ($record::RECORD_TYPE) { |
|
19 | - case 'REPO': |
|
20 | - // REPO:NAME facts may take a NOTE (but the REPO record may not). |
|
21 | - if ($level1type === 'NAME') { |
|
22 | - echo view('cards/add-note', [ |
|
23 | - 'level' => 2, |
|
24 | - 'tree' => $tree, |
|
25 | - ]); |
|
26 | - echo view('addSimpleTag($tree, ', [ |
|
27 | - 'level' => 2, |
|
28 | - 'tree' => $tree, |
|
29 | - ]); |
|
30 | - } |
|
31 | - break; |
|
32 | - case 'FAM': |
|
33 | - case 'INDI': |
|
34 | - // FAM and INDI records have real facts. They can take NOTE/SOUR/OBJE/etc. |
|
35 | - if ($level1type !== 'SEX' && $level1type !== 'NOTE' && $level1type !== 'ALIA') { |
|
36 | - if ($level1type !== 'SOUR') { |
|
37 | - echo view('cards/add-source-citation', [ |
|
38 | - 'level' => 2, |
|
39 | - 'full_citations' => $tree->getPreference('FULL_SOURCES'), |
|
40 | - 'tree' => $tree, |
|
41 | - ]); } |
|
42 | - if ($level1type !== 'OBJE') { |
|
43 | - if ($tree->getPreference('MEDIA_UPLOAD') >= Auth::accessLevel($tree)) { |
|
44 | - echo view('cards/add-media-object', [ |
|
45 | - 'level' => 2, |
|
46 | - 'tree' => $tree, |
|
47 | - ]); |
|
48 | - } |
|
49 | - } |
|
50 | - echo view('cards/add-note', [ |
|
51 | - 'level' => 2, |
|
52 | - 'tree' => $tree, |
|
53 | - ]); |
|
54 | - echo view('cards/add-shared-note', [ |
|
55 | - 'level' => 2, |
|
56 | - 'tree' => $tree, |
|
57 | - ]); |
|
58 | - if ($level1type !== 'ASSO' && $level1type !== 'NOTE' && $level1type !== 'SOUR') { |
|
59 | - echo view('cards/add-associate', [ |
|
60 | - 'id' => Uuid::uuid4()->toString(), |
|
61 | - 'level' => 2, |
|
62 | - 'tree' => $tree, |
|
63 | - ]); |
|
64 | - } |
|
65 | - // allow to add godfather and godmother for CHR fact or best man and bridesmaid for MARR fact in one window |
|
66 | - if (in_array($level1type, Config::twoAssociates())) { |
|
67 | - echo view('cards/add-associate', [ |
|
68 | - 'id' => Uuid::uuid4()->toString(), |
|
69 | - 'level' => 2, |
|
70 | - 'tree' => $tree, |
|
71 | - ]); |
|
72 | - } |
|
73 | - if ($level1type !== 'SOUR') { |
|
74 | - echo view('cards/add-restriction', [ |
|
75 | - 'level' => 2, |
|
76 | - 'tree' => $tree, |
|
77 | - ]); |
|
78 | - } |
|
79 | - } |
|
80 | - break; |
|
81 | - default: |
|
82 | - // Other types of record do not have these lower-level records |
|
83 | - break; |
|
84 | - } |
|
17 | + $level1type = $edit_fact->getTag(); |
|
18 | + switch ($record::RECORD_TYPE) { |
|
19 | + case 'REPO': |
|
20 | + // REPO:NAME facts may take a NOTE (but the REPO record may not). |
|
21 | + if ($level1type === 'NAME') { |
|
22 | + echo view('cards/add-note', [ |
|
23 | + 'level' => 2, |
|
24 | + 'tree' => $tree, |
|
25 | + ]); |
|
26 | + echo view('addSimpleTag($tree, ', [ |
|
27 | + 'level' => 2, |
|
28 | + 'tree' => $tree, |
|
29 | + ]); |
|
30 | + } |
|
31 | + break; |
|
32 | + case 'FAM': |
|
33 | + case 'INDI': |
|
34 | + // FAM and INDI records have real facts. They can take NOTE/SOUR/OBJE/etc. |
|
35 | + if ($level1type !== 'SEX' && $level1type !== 'NOTE' && $level1type !== 'ALIA') { |
|
36 | + if ($level1type !== 'SOUR') { |
|
37 | + echo view('cards/add-source-citation', [ |
|
38 | + 'level' => 2, |
|
39 | + 'full_citations' => $tree->getPreference('FULL_SOURCES'), |
|
40 | + 'tree' => $tree, |
|
41 | + ]); } |
|
42 | + if ($level1type !== 'OBJE') { |
|
43 | + if ($tree->getPreference('MEDIA_UPLOAD') >= Auth::accessLevel($tree)) { |
|
44 | + echo view('cards/add-media-object', [ |
|
45 | + 'level' => 2, |
|
46 | + 'tree' => $tree, |
|
47 | + ]); |
|
48 | + } |
|
49 | + } |
|
50 | + echo view('cards/add-note', [ |
|
51 | + 'level' => 2, |
|
52 | + 'tree' => $tree, |
|
53 | + ]); |
|
54 | + echo view('cards/add-shared-note', [ |
|
55 | + 'level' => 2, |
|
56 | + 'tree' => $tree, |
|
57 | + ]); |
|
58 | + if ($level1type !== 'ASSO' && $level1type !== 'NOTE' && $level1type !== 'SOUR') { |
|
59 | + echo view('cards/add-associate', [ |
|
60 | + 'id' => Uuid::uuid4()->toString(), |
|
61 | + 'level' => 2, |
|
62 | + 'tree' => $tree, |
|
63 | + ]); |
|
64 | + } |
|
65 | + // allow to add godfather and godmother for CHR fact or best man and bridesmaid for MARR fact in one window |
|
66 | + if (in_array($level1type, Config::twoAssociates())) { |
|
67 | + echo view('cards/add-associate', [ |
|
68 | + 'id' => Uuid::uuid4()->toString(), |
|
69 | + 'level' => 2, |
|
70 | + 'tree' => $tree, |
|
71 | + ]); |
|
72 | + } |
|
73 | + if ($level1type !== 'SOUR') { |
|
74 | + echo view('cards/add-restriction', [ |
|
75 | + 'level' => 2, |
|
76 | + 'tree' => $tree, |
|
77 | + ]); |
|
78 | + } |
|
79 | + } |
|
80 | + break; |
|
81 | + default: |
|
82 | + // Other types of record do not have these lower-level records |
|
83 | + break; |
|
84 | + } |
|
85 | 85 | |
86 | - ?> |
|
86 | + ?> |
|
87 | 87 | |
88 | 88 | <div class="form-group row"> |
89 | 89 | <label class="col-sm-3 col-form-label" for="keep_chan"> |
@@ -103,12 +103,12 @@ discard block |
||
103 | 103 | <button class="btn btn-primary" type="submit"> |
104 | 104 | <?= FontAwesome::decorativeIcon('save') ?> |
105 | 105 | <?= /* I18N: A button label. */ |
106 | - I18N::translate('save') ?> |
|
106 | + I18N::translate('save') ?> |
|
107 | 107 | </button> |
108 | 108 | <a class="btn btn-secondary" href="<?= e($record->url()) ?>"> |
109 | 109 | <?= FontAwesome::decorativeIcon('cancel') ?> |
110 | 110 | <?= /* I18N: A button label. */ |
111 | - I18N::translate('cancel') ?> |
|
111 | + I18N::translate('cancel') ?> |
|
112 | 112 | </a> |
113 | 113 | <?php if ($can_edit_raw): ?> |
114 | 114 | <a class="btn btn-link" href="<?= e(route('edit-raw-fact', ['xref' => $record->getXref(), 'fact_id' => $edit_fact->getFactId(), 'ged' => $tree->getName()])) ?>"> |
@@ -64,7 +64,7 @@ |
||
64 | 64 | } |
65 | 65 | } |
66 | 66 | $count_logged_in = count($logged_in); |
67 | - $content .= '<div class="logged_in_count">'; |
|
67 | + $content .= '<div class="logged_in_count">'; |
|
68 | 68 | if ($anonymous) { |
69 | 69 | $content .= I18N::plural('%s anonymous signed-in user', '%s anonymous signed-in users', $anonymous, I18N::number($anonymous)); |
70 | 70 | if ($count_logged_in) { |
@@ -60,7 +60,7 @@ |
||
60 | 60 | */ |
61 | 61 | public function getOptions(Request $request) |
62 | 62 | { |
63 | - $this->chan = (bool)$request->get('chan'); |
|
63 | + $this->chan = (bool) $request->get('chan'); |
|
64 | 64 | } |
65 | 65 | |
66 | 66 | /** |
@@ -116,7 +116,7 @@ discard block |
||
116 | 116 | $default_events = implode(',', self::DEFAULT_EVENTS); |
117 | 117 | |
118 | 118 | $days = $this->getBlockSetting($block_id, 'days', self::DEFAULT_DAYS); |
119 | - $filter = (bool)$this->getBlockSetting($block_id, 'filter', self::DEFAULT_FILTER); |
|
119 | + $filter = (bool) $this->getBlockSetting($block_id, 'filter', self::DEFAULT_FILTER); |
|
120 | 120 | $infoStyle = $this->getBlockSetting($block_id, 'infoStyle', self::DEFAULT_STYLE); |
121 | 121 | $sortStyle = $this->getBlockSetting($block_id, 'sortStyle', self::DEFAULT_SORT); |
122 | 122 | $events = $this->getBlockSetting($block_id, 'events', $default_events); |
@@ -134,7 +134,7 @@ discard block |
||
134 | 134 | $events_filter = implode('|', $event_array); |
135 | 135 | |
136 | 136 | $startjd = WT_CLIENT_JD + 1; |
137 | - $endjd = WT_CLIENT_JD + (int)$days; |
|
137 | + $endjd = WT_CLIENT_JD + (int) $days; |
|
138 | 138 | |
139 | 139 | $facts = FunctionsDb::getEventsList($startjd, $endjd, $events_filter, $filter, $sortStyle, $tree); |
140 | 140 |
@@ -254,7 +254,7 @@ discard block |
||
254 | 254 | // Fixing the width for td to the box initial width when the person is the root person fix a rare bug that happen when a person without child and without known parents is the root person : an unwanted white rectangle appear at the right of the person’s boxes, otherwise. |
255 | 255 | $html .= '<td' . ($isRoot ? ' style="width:1px"' : '') . '><div class="tv_box' . ($isRoot ? ' rootPerson' : '') . '" dir="' . I18N::direction() . '" style="text-align: ' . (I18N::direction() === 'rtl' ? 'right' : 'left') . '; direction: ' . I18N::direction() . '" abbr="' . $person->getXref() . '" onclick="' . $this->name . 'Handler.expandBox(this, event);">'; |
256 | 256 | $html .= $this->drawPersonName($person); |
257 | - $fop = []; // $fop is fathers of partners |
|
257 | + $fop = []; // $fop is fathers of partners |
|
258 | 258 | if (!is_null($partner)) { |
259 | 259 | $dashed = ''; |
260 | 260 | foreach ($person->getSpouseFamilies() as $family) { |
@@ -272,7 +272,7 @@ discard block |
||
272 | 272 | $spouse_parents, |
273 | 273 | ]; |
274 | 274 | } |
275 | - $html .= $this->drawPersonName($spouse, $dashed); |
|
275 | + $html .= $this->drawPersonName($spouse, $dashed); |
|
276 | 276 | $dashed = 'dashed'; |
277 | 277 | } |
278 | 278 | } |
@@ -292,9 +292,9 @@ discard block |
||
292 | 292 | /* draw the parents */ |
293 | 293 | if ($state >= 0 && (!empty($parent) || count($fop))) { |
294 | 294 | $unique = (empty($parent) || count($fop) == 0); |
295 | - $html .= '<td align="left"><table class="tv_tree"><tbody>'; |
|
295 | + $html .= '<td align="left"><table class="tv_tree"><tbody>'; |
|
296 | 296 | if (!empty($parent)) { |
297 | - $u = $unique ? 'c' : 't'; |
|
297 | + $u = $unique ? 'c' : 't'; |
|
298 | 298 | $html .= '<tr><td ' . ($gen == 0 ? ' abbr="p' . $primaryChildFamily->getXref() . '@' . $u . '"' : '') . '>'; |
299 | 299 | $html .= $this->drawPerson($parent, $gen - 1, 1, $primaryChildFamily, $u); |
300 | 300 | $html .= '</td></tr>'; |
@@ -304,7 +304,7 @@ discard block |
||
304 | 304 | $nb = count($fop); |
305 | 305 | foreach ($fop as $p) { |
306 | 306 | $n++; |
307 | - $u = $unique ? 'c' : ($n == $nb || empty($p[1]) ? 'b' : 'h'); |
|
307 | + $u = $unique ? 'c' : ($n == $nb || empty($p[1]) ? 'b' : 'h'); |
|
308 | 308 | $html .= '<tr><td ' . ($gen == 0 ? ' abbr="p' . $p[1]->getXref() . '@' . $u . '"' : '') . '>' . $this->drawPerson($p[0], $gen - 1, 1, $p[1], $u) . '</td></tr>'; |
309 | 309 | } |
310 | 310 | } |