diff options
| author | Greg Roach <fisharebest@webtrees.net> | 2019-01-23 12:27:45 +0000 |
|---|---|---|
| committer | Greg Roach <fisharebest@webtrees.net> | 2019-01-23 12:27:45 +0000 |
| commit | 3dcc812ba18d4e1a3ac63852312a130228dc9fd6 (patch) | |
| tree | 6a2932f334b4dd5efa8ea630b13e6294e1e7124d | |
| parent | 9b5537c37ce2b6d3b5c1a28c56f73d7ff9b9355c (diff) | |
| download | webtrees-3dcc812ba18d4e1a3ac63852312a130228dc9fd6.tar.gz webtrees-3dcc812ba18d4e1a3ac63852312a130228dc9fd6.tar.bz2 webtrees-3dcc812ba18d4e1a3ac63852312a130228dc9fd6.zip | |
Merge chart controllers into chart modules
| -rw-r--r-- | app/Module/PedigreeMapModule.php | 8 | ||||
| -rw-r--r-- | app/Module/RelationshipsChartModule.php | 87 | ||||
| -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.phtml | 14 |
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() ?> |
