diff options
| author | Greg Roach <fisharebest@webtrees.net> | 2019-11-17 23:22:27 +0000 |
|---|---|---|
| committer | Greg Roach <fisharebest@webtrees.net> | 2019-11-17 23:32:16 +0000 |
| commit | 1afbbc50a65bb73de1d13dc18d669efe80119058 (patch) | |
| tree | 58d7cbf8f46f8281bb670b84467f48e0f178ae64 /resources/views/edit/reorder-families.phtml | |
| parent | 8435e0e5d1a3fd6d082e24650ea6f78371347784 (diff) | |
| download | webtrees-1afbbc50a65bb73de1d13dc18d669efe80119058.tar.gz webtrees-1afbbc50a65bb73de1d13dc18d669efe80119058.tar.bz2 webtrees-1afbbc50a65bb73de1d13dc18d669efe80119058.zip | |
Fix: #2653 add ability to re-order parent families; make the first one the primary family
Diffstat (limited to 'resources/views/edit/reorder-families.phtml')
| -rw-r--r-- | resources/views/edit/reorder-families.phtml | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/resources/views/edit/reorder-families.phtml b/resources/views/edit/reorder-families.phtml new file mode 100644 index 0000000000..64fb0a93f1 --- /dev/null +++ b/resources/views/edit/reorder-families.phtml @@ -0,0 +1,121 @@ +<?php + +use Fisharebest\Webtrees\Gedcom; +use Fisharebest\Webtrees\GedcomCode\GedcomCodePedi; +use Fisharebest\Webtrees\Http\RequestHandlers\ReorderFamiliesAction; +use Fisharebest\Webtrees\I18N; +use Fisharebest\Webtrees\View; + +?> + +<h2 class="wt-page-title"><?= $title ?></h2> + +<form method="post" action="<?= e(route(ReorderFamiliesAction::class, ['tree' => $tree->name(), 'xref' => $individual->xref()])) ?>" class="wt-page-content"> + <?= csrf_field() ?> + + <?php if ($fams_facts->count() < 2) : ?> + <?php foreach ($fams_facts as $fact) : ?> + <input type="hidden" name="order[]" value="<?= e($fact->id()) ?>"> + <?php endforeach ?> + <?php else : ?> + <h3><?= I18N::translate('Spouses') ?></h3> + + <p> + <?= I18N::translate('When an individual has more than one spouse, you should sort the families in date order.') ?> + </p> + + <p> + <button class="btn btn-secondary" id="btn-default-order" type="button"> + <?= view('icons/sort') ?> + <?= /* I18N: A button label. */ I18N::translate('sort by date of marriage') ?> + </button> + </p> + + <div class="wt-sortable-list-fams"> + <?php foreach ($fams_facts as $fact) : ?> + <div class="card mb-2 wt-sortable-item" data-sortbydate="<?= $fact->target()->getMarriageDate()->julianDay() ?>"> + <input type="hidden" name="order[]" value="<?= $fact->id() ?>"> + <div class="card-header"> + <span class="drag-handle"> + <?= view('icons/drag-handle') ?> + </span> + <?= $fact->target()->fullName() ?> + </div> + <div class="card-body"> + <?= $fact->target()->formatFirstMajorFact(Gedcom::MARRIAGE_EVENTS, 2) ?> + <?= $fact->target()->formatFirstMajorFact(Gedcom::DIVORCE_EVENTS, 2) ?> + </div> + </div> + <?php endforeach ?> + </div> + <?php endif ?> + + <?php if ($famc_facts->count() < 2) : ?> + <?php foreach ($famc_facts as $fact) : ?> + <input type="hidden" name="order[]" value="<?= e($fact->id()) ?>"> + <?php endforeach ?> + <?php else : ?> + <?php if ($fams_facts->count() >= 2) : ?> + <hr> + <?php endif ?> + + <h3><?= I18N::translate('Parents') ?></h3> + + <p> + <?= I18N::translate('An individual can have more than one set of parents. For example, birth and adopted.') ?> + <br> + <?= I18N::translate('The first family in the list will be used in charts, lists, reports, etc.') ?> + </p> + + <div class="wt-sortable-list-famc"> + <?php foreach ($famc_facts as $fact) : ?> + <div class="card mb-2 wt-sortable-item" data-sortbydate="<?= $fact->target()->getMarriageDate()->julianDay() ?>"> + <input type="hidden" name="order[]" value="<?= $fact->id() ?>"> + <div class="card-header"> + <span class="drag-handle"> + <?= view('icons/drag-handle') ?> + </span> + <?= $fact->target()->fullName() ?> + <?php if ($fact->attribute('PEDI') !== '') : ?> + — <?= GedcomCodePedi::getValue($fact->attribute('PEDI'), $individual) ?> + <?php endif ?> + </div> + <div class="card-body"> + <?= $fact->target()->formatFirstMajorFact(Gedcom::MARRIAGE_EVENTS, 2) ?> + <?= $fact->target()->formatFirstMajorFact(Gedcom::DIVORCE_EVENTS, 2) ?> + </div> + </div> + <?php endforeach ?> + </div> + <?php endif ?> + + <p> + <button class="btn btn-primary" type="submit"> + <?= view('icons/save') ?> + <?= /* I18N: A button label. */ I18N::translate('save') ?> + </button> + + <a class="btn btn-secondary" href="<?= e($individual->url()) ?>"> + <?= view('icons/cancel') ?> + <?= /* I18N: A button label. */ I18N::translate('cancel') ?> + </a> + </p> +</form> + +<?php View::push('javascript') ?> +<script> + new Sortable(document.querySelector(".wt-sortable-list-famc"), { + handle: ".drag-handle", + }); + + new Sortable(document.querySelector(".wt-sortable-list-fams"), { + handle: ".drag-handle", + }); + + $("#btn-default-order").on("click", function() { + $(".wt-sortable-list-fams .wt-sortable-item").sort(function(x, y) { + return Math.sign(x.dataset.sortbydate - y.dataset.sortbydate); + }).appendTo(".wt-sortable-list-fams"); + }); +</script> +<?php View::endpush() ?> |
