summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@webtrees.net>2019-01-23 12:27:45 +0000
committerGreg Roach <fisharebest@webtrees.net>2019-01-23 12:27:45 +0000
commit3dcc812ba18d4e1a3ac63852312a130228dc9fd6 (patch)
tree6a2932f334b4dd5efa8ea630b13e6294e1e7124d
parent9b5537c37ce2b6d3b5c1a28c56f73d7ff9b9355c (diff)
downloadwebtrees-3dcc812ba18d4e1a3ac63852312a130228dc9fd6.tar.gz
webtrees-3dcc812ba18d4e1a3ac63852312a130228dc9fd6.tar.bz2
webtrees-3dcc812ba18d4e1a3ac63852312a130228dc9fd6.zip
Merge chart controllers into chart modules
-rw-r--r--app/Module/PedigreeMapModule.php8
-rw-r--r--app/Module/RelationshipsChartModule.php87
-rw-r--r--resources/views/modules/pedigree-map/chart.phtml (renamed from resources/views/modules/pedigree-map/pedigree-map.phtml)0
-rw-r--r--resources/views/modules/pedigree-map/events.phtml (renamed from resources/views/modules/pedigree-map/event-sidebar.phtml)0
-rw-r--r--resources/views/modules/pedigree-map/page.phtml (renamed from resources/views/modules/pedigree-map/pedigree-map-page.phtml)0
-rw-r--r--resources/views/modules/relationships-chart/page.phtml14
6 files changed, 44 insertions, 65 deletions
diff --git a/app/Module/PedigreeMapModule.php b/app/Module/PedigreeMapModule.php
index f6a8e3ddd5..9f2d69dce6 100644
--- a/app/Module/PedigreeMapModule.php
+++ b/app/Module/PedigreeMapModule.php
@@ -193,7 +193,7 @@ class PedigreeMapModule extends AbstractModule implements ModuleInterface, Modul
'polyline' => $polyline,
'icon' => $icon,
'tooltip' => $event->toolTip(),
- 'summary' => view('modules/pedigree-map/event-sidebar', $event->shortSummary('pedigree', $id)),
+ 'summary' => view('modules/pedigree-map/events', $event->shortSummary('pedigree', $id)),
'zoom' => (int) $event->getZoom(),
],
];
@@ -347,8 +347,8 @@ class PedigreeMapModule extends AbstractModule implements ModuleInterface, Modul
throw new IndividualAccessDeniedException();
}
- return $this->viewResponse('modules/pedigree-map/pedigree-map-page', [
- 'module' => $this->name(),
+ return $this->viewResponse('modules/pedigree-map/page', [
+ 'module_name' => $this->name(),
/* I18N: %s is an individual’s name */
'title' => I18N::translate('Pedigree map of %s', $individual->getFullName()),
'tree' => $tree,
@@ -356,7 +356,7 @@ class PedigreeMapModule extends AbstractModule implements ModuleInterface, Modul
'generations' => $generations,
'maxgenerations' => $maxgenerations,
'map' => view(
- 'modules/pedigree-map/pedigree-map',
+ 'modules/pedigree-map/chart',
[
'module' => $this->name(),
'ref' => $individual->xref(),
diff --git a/app/Module/RelationshipsChartModule.php b/app/Module/RelationshipsChartModule.php
index 2aeb631b03..04eac94566 100644
--- a/app/Module/RelationshipsChartModule.php
+++ b/app/Module/RelationshipsChartModule.php
@@ -85,7 +85,7 @@ class RelationshipsChartModule extends AbstractModule implements ModuleInterface
{
$gedcomid = $individual->tree()->getUserPreference(Auth::user(), 'gedcomid');
- if ($gedcomid !== '') {
+ if ($gedcomid !== '' && $gedcomid !== $individual->xref()) {
return new Menu(
I18N::translate('Relationship to me'),
$this->chartUrl($individual, ['xref2' => $gedcomid]),
@@ -125,24 +125,6 @@ class RelationshipsChartModule extends AbstractModule implements ModuleInterface
}
/**
- * The URL for this chart.
- *
- * @param Individual $individual
- * @param string[] $parameters
- *
- * @return string
- */
- public function chartUrl(Individual $individual, array $parameters = []): string
- {
- return route('module', [
- 'module' => $this->name(),
- 'action' => 'Chart',
- 'xref1' => $individual->xref(),
- 'ged' => $individual->tree()->name(),
- ] + $parameters);
- }
-
- /**
* @return Response
*/
public function getAdminAction(): Response
@@ -220,44 +202,46 @@ class RelationshipsChartModule extends AbstractModule implements ModuleInterface
{
$ajax = (bool) $request->get('ajax');
- $xref1 = $request->get('xref1', '');
+ $xref = $request->get('xref', '');
$xref2 = $request->get('xref2', '');
- $individual1 = Individual::getInstance($xref1, $tree);
+ $individual1 = Individual::getInstance($xref, $tree);
$individual2 = Individual::getInstance($xref2, $tree);
$recursion = (int) $request->get('recursion', '0');
$ancestors = (int) $request->get('ancestors', '0');
- if ($individual1 instanceof Individual && $individual2 instanceof Individual) {
+ $ancestors_only = (int) $tree->getPreference('RELATIONSHIP_ANCESTORS', static::DEFAULT_ANCESTORS);
+ $max_recursion = (int) $tree->getPreference('RELATIONSHIP_RECURSION', static::DEFAULT_RECURSION);
+
+ $recursion = min($recursion, $max_recursion);
+
+ if ($individual1 instanceof Individual) {
Auth::checkIndividualAccess($individual1);
- Auth::checkIndividualAccess($individual2);
}
- $ancestors_only = (int) $tree->getPreference('RELATIONSHIP_ANCESTORS', RelationshipsChartModule::DEFAULT_ANCESTORS);
- $max_recursion = (int) $tree->getPreference('RELATIONSHIP_RECURSION', RelationshipsChartModule::DEFAULT_RECURSION);
-
- $recursion = min($recursion, $max_recursion);
+ if ($individual2 instanceof Individual) {
+ Auth::checkIndividualAccess($individual2);
+ }
if ($individual1 instanceof Individual && $individual2 instanceof Individual) {
/* I18N: %s are individual’s names */
$title = I18N::translate('Relationships between %1$s and %2$s', $individual1->getFullName(), $individual2->getFullName());
+ $ajax_url = $this->chartUrl($individual1, [
+ 'ajax' => true,
+ 'xref2' => $individual2 instanceof Individual ? $individual2->xref() : '',
+ 'recursion' => $recursion,
+ 'ancestors' => $ancestors,
+ ]);
} else {
$title = I18N::translate('Relationships');
+ $ajax_url = '';
}
if ($ajax) {
- return $this->chart($request, $tree);
+ return $this->chart($individual1, $individual2, $recursion, $ancestors);
}
- $ajax_url = $this->chartUrl($individual1, [
- 'ajax' => true,
- 'xref2' => $individual2->xref(),
- 'ged' => $individual2->tree()->name(),
- 'recursion' => $recursion,
- 'ancestors' => $ancestors,
- ]);
-
return $this->viewResponse('modules/relationships-chart/page', [
'ajax_url' => $ajax_url,
'ancestors' => $ancestors,
@@ -274,25 +258,18 @@ class RelationshipsChartModule extends AbstractModule implements ModuleInterface
}
/**
- * @param Request $request
- * @param Tree $tree
+ * @param Individual $individual1
+ * @param Individual $individual2
+ * @param int $recursion
+ * @param int $ancestors
*
* @return Response
*/
- public function chart(Request $request, Tree $tree): Response
+ public function chart(Individual $individual1, Individual $individual2, int $recursion, int $ancestors): Response
{
- $xref1 = $request->get('xref1', '');
- $individual1 = Individual::getInstance($xref1, $tree);
- $xref2 = $request->get('xref2', '');
- $individual2 = Individual::getInstance($xref2, $tree);
+ $tree = $individual1->tree();
- Auth::checkIndividualAccess($individual1);
- Auth::checkIndividualAccess($individual2);
-
- $recursion = (int) $request->get('recursion', '0');
- $ancestors = (bool) $request->get('ancestors', '0');
-
- $max_recursion = (int) $tree->getPreference('RELATIONSHIP_RECURSION', RelationshipsChartModule::DEFAULT_RECURSION);
+ $max_recursion = (int) $tree->getPreference('RELATIONSHIP_RECURSION', static::DEFAULT_RECURSION);
$recursion = min($recursion, $max_recursion);
@@ -412,16 +389,18 @@ class RelationshipsChartModule extends AbstractModule implements ModuleInterface
*/
private function calculateRelationships(Individual $individual1, Individual $individual2, $recursion, $ancestor = false): array
{
+ $tree = $individual1->tree();
+
$rows = DB::table('link')
- ->where('l_file', '=', $individual1->tree()->id())
+ ->where('l_file', '=', $tree->id())
->whereIn('l_type', ['FAMS', 'FAMC'])
->select(['l_from', 'l_to'])
->get();
// Optionally restrict the graph to the ancestors of the individuals.
if ($ancestor) {
- $ancestors = $this->allAncestors($individual1->xref(), $individual2->xref(), $individual1->tree()->id());
- $exclude = $this->excludeFamilies($individual1->xref(), $individual2->xref(), $individual1->tree()->id());
+ $ancestors = $this->allAncestors($individual1->xref(), $individual2->xref(), $tree->id());
+ $exclude = $this->excludeFamilies($individual1->xref(), $individual2->xref(), $tree->id());
} else {
$ancestors = [];
$exclude = [];
@@ -627,7 +606,7 @@ class RelationshipsChartModule extends AbstractModule implements ModuleInterface
*/
private function recursionOptions(int $max_recursion): array
{
- if ($max_recursion === RelationshipsChartModule::UNLIMITED_RECURSION) {
+ if ($max_recursion === static::UNLIMITED_RECURSION) {
$text = I18N::translate('Find all possible relationships');
} else {
$text = I18N::translate('Find other relationships');
diff --git a/resources/views/modules/pedigree-map/pedigree-map.phtml b/resources/views/modules/pedigree-map/chart.phtml
index f31215824d..f31215824d 100644
--- a/resources/views/modules/pedigree-map/pedigree-map.phtml
+++ b/resources/views/modules/pedigree-map/chart.phtml
diff --git a/resources/views/modules/pedigree-map/event-sidebar.phtml b/resources/views/modules/pedigree-map/events.phtml
index df2f431386..df2f431386 100644
--- a/resources/views/modules/pedigree-map/event-sidebar.phtml
+++ b/resources/views/modules/pedigree-map/events.phtml
diff --git a/resources/views/modules/pedigree-map/pedigree-map-page.phtml b/resources/views/modules/pedigree-map/page.phtml
index d058f17d03..d058f17d03 100644
--- a/resources/views/modules/pedigree-map/pedigree-map-page.phtml
+++ b/resources/views/modules/pedigree-map/page.phtml
diff --git a/resources/views/modules/relationships-chart/page.phtml b/resources/views/modules/relationships-chart/page.phtml
index 211d995321..1cfcdcabbf 100644
--- a/resources/views/modules/relationships-chart/page.phtml
+++ b/resources/views/modules/relationships-chart/page.phtml
@@ -14,13 +14,13 @@
<input type="hidden" name="ged" value="<?= e($tree->name()) ?>">
<div class="row form-group">
- <label class="col-sm-3 col-form-label wt-page-options-label" for="xref1">
+ <label class="col-sm-3 col-form-label wt-page-options-label" for="xref">
<?= I18N::translate('Individual 1') ?>
</label>
<div class="col-sm-9 wt-page-options-value">
<?= FunctionsEdit::formControlIndividual($tree, $individual1, [
- 'id' => 'xref1',
- 'name' => 'xref1',
+ 'id' => 'xref',
+ 'name' => 'xref',
]) ?>
<button class="btn btn-link small" id="btn-swap-individuals" type="button">
<?= /* I18N: Reverse the order of two individuals */
@@ -88,18 +88,18 @@
<script>
$('#btn-swap-individuals').click(function () {
// Swap the (hidden) options of the select
- var select1 = document.querySelector('#xref1');
+ var select1 = document.querySelector('#xref');
var select2 = document.querySelector('#xref2');
var tmp_html = select1.innerHTML;
select1.innerHTML = select2.innerHTML;
select2.innerHTML = tmp_html;
// Also swap the select2 element
- var span1 = document.querySelector('#xref1 + span');
+ var span1 = document.querySelector('#xref + span');
var span2 = document.querySelector('#xref2 + span');
var tmp_html = span1.innerHTML;
- span1.innerHTML = span2.innerHTML.replace('xref2', 'xref1');
- span2.innerHTML = tmp_html.replace('xref1', 'xref2');
+ span1.innerHTML = span2.innerHTML.replace('xref2', 'xref');
+ span2.innerHTML = tmp_html.replace('xref', 'xref2');
});
</script>
<?php View::endpush() ?>