diff options
| author | Greg Roach <greg@subaqua.co.uk> | 2021-02-01 16:50:30 +0000 |
|---|---|---|
| committer | Greg Roach <greg@subaqua.co.uk> | 2021-02-02 16:52:32 +0000 |
| commit | c2ed51d13a57743094c11c8fe84befd9d4f158cd (patch) | |
| tree | 4f2d541fed3550f5d64f9754e9d37f5e9b9ce447 /resources | |
| parent | 4d2b9c53c95ad846160295dd8f4136a5b53f9f7b (diff) | |
| download | webtrees-c2ed51d13a57743094c11c8fe84befd9d4f158cd.tar.gz webtrees-c2ed51d13a57743094c11c8fe84befd9d4f158cd.tar.bz2 webtrees-c2ed51d13a57743094c11c8fe84befd9d4f158cd.zip | |
Merge GEDCOM element code from 2.1 branch
Diffstat (limited to 'resources')
21 files changed, 385 insertions, 41 deletions
diff --git a/resources/views/admin/clean-data.phtml b/resources/views/admin/clean-data.phtml index fa95170891..d9866524ef 100644 --- a/resources/views/admin/clean-data.phtml +++ b/resources/views/admin/clean-data.phtml @@ -30,7 +30,12 @@ use Fisharebest\Webtrees\I18N; <?php if (in_array($entry, $protected, true)) : ?> <?= view('icons/ban') ?> <?php else : ?> - <a href="#" data-post-url="<?= e(route(DeletePath::class, ['path' => $entry])) ?>" class="btn btn-sm btn-link"> + <a + href="#" + data-confirm="<?= I18N::translate('Are you sure you want to delete “%s”?', e($entry)) ?>" + data-post-url="<?= e(route(DeletePath::class, ['path' => $entry])) ?>" + class="btn btn-sm btn-link" + > <?= view('icons/delete') ?> </a> <?php endif ?> diff --git a/resources/views/components/select-location.phtml b/resources/views/components/select-location.phtml new file mode 100644 index 0000000000..9d6e064e3e --- /dev/null +++ b/resources/views/components/select-location.phtml @@ -0,0 +1,42 @@ +<?php + +use Fisharebest\Webtrees\Http\RequestHandlers\Select2Location; +use Fisharebest\Webtrees\Location; +use Fisharebest\Webtrees\Tree; + +/** + * @var string $at "@" or "" (or unset). + * @var Location|null $location + * @var string|null $class + * @var string|null $id + * @var string $name + * @var Tree $tree + */ + +$at = $at ?? ''; + +?> + +<select + autocomplete="off" + class="form-control select2 <?= $class ?? '' ?>" + data-ajax--delay="<?= e(Select2Location::AJAX_DELAY) ?>" + data-minimum-input-length="<?= e(Select2Location::MINIMUM_INPUT_LENGTH) ?>" + data-ajax--type="POST" + data-ajax--url="<?= e(route(Select2Location::class, ['tree' => $tree->name(), 'at' => $at])) ?>" + data-allow-clear="true" + data-placeholder="" + id="<?= e($id ?? $name) ?>" + name="<?= e($name) ?>" + <?= ($disabled ?? false) ? 'disabled' : '' ?> + <?= ($required ?? false) ? 'required' : '' ?> + style="width:100%" +> + <?php if (($location ?? null) instanceof Location) : ?> + <option value="<?= e($at . $location->xref() . $at) ?>"> + <?= view('selects/location', ['location' => $location]) ?> + </option> + <?php else : ?> + <option value=""> </option> + <?php endif ?> +</select> diff --git a/resources/views/components/select-submission.phtml b/resources/views/components/select-submission.phtml new file mode 100644 index 0000000000..85f2555cb0 --- /dev/null +++ b/resources/views/components/select-submission.phtml @@ -0,0 +1,42 @@ +<?php + +use Fisharebest\Webtrees\Http\RequestHandlers\Select2Submission; +use Fisharebest\Webtrees\Submission; +use Fisharebest\Webtrees\Tree; + +/** + * @var string $at "@" or "" (or unset). + * @var Submission|null $submission + * @var string|null $class + * @var string|null $id + * @var string $name + * @var Tree $tree + */ + +$at = $at ?? ''; + +?> + +<select + autocomplete="off" + class="form-control select2 <?= $class ?? '' ?>" + data-ajax--delay="<?= e(Select2Submission::AJAX_DELAY) ?>" + data-minimum-input-length="<?= e(Select2Submission::MINIMUM_INPUT_LENGTH) ?>" + data-ajax--type="POST" + data-ajax--url="<?= e(route(Select2Submission::class, ['tree' => $tree->name(), 'at' => $at])) ?>" + data-allow-clear="true" + data-placeholder="" + id="<?= e($id ?? $name) ?>" + name="<?= e($name) ?>" + <?= ($disabled ?? false) ? 'disabled' : '' ?> + <?= ($required ?? false) ? 'required' : '' ?> + style="width:100%" +> + <?php if (($submission ?? null) instanceof Submission) : ?> + <option value="<?= e($at . $submission->xref() . $at) ?>"> + <?= view('selects/submission', ['submission' => $submission]) ?> + </option> + <?php else : ?> + <option value=""> </option> + <?php endif ?> +</select> diff --git a/resources/views/components/select-submitter.phtml b/resources/views/components/select-submitter.phtml index d9b5edd52c..fc5aea3005 100644 --- a/resources/views/components/select-submitter.phtml +++ b/resources/views/components/select-submitter.phtml @@ -1,12 +1,12 @@ <?php -use Fisharebest\Webtrees\GedcomRecord; +use Fisharebest\Webtrees\Submitter; use Fisharebest\Webtrees\Http\RequestHandlers\Select2Submitter; use Fisharebest\Webtrees\Tree; /** * @var string $at "@" or "" (or unset). - * @var GedcomRecord|null $submitter + * @var Submitter|null $submitter * @var string|null $class * @var string|null $id * @var string $name @@ -32,7 +32,7 @@ $at = $at ?? ''; <?= ($required ?? false) ? 'required' : '' ?> style="width:100%" > - <?php if (($submitter ?? null) instanceof GedcomRecord) : ?> + <?php if (($submitter ?? null) instanceof Submitter) : ?> <option value="<?= e($at . $submitter->xref() . $at) ?>"> <?= view('selects/submitter', ['submitter' => $submitter]) ?> </option> diff --git a/resources/views/edit/edit-gedcom-fields.phtml b/resources/views/edit/edit-gedcom-fields.phtml new file mode 100644 index 0000000000..4c6fafbb07 --- /dev/null +++ b/resources/views/edit/edit-gedcom-fields.phtml @@ -0,0 +1,38 @@ +<?php + +use Fisharebest\Webtrees\Registry; +use Fisharebest\Webtrees\Tree; +use Ramsey\Uuid\Uuid; + +/** + * @var string $gedcom + * @var array<string> $hierarchy + * @var string $prefix + * @var Tree $tree + */ + +$gedcom = preg_replace('/\n\d CONT ?/', "\r", $gedcom); +?> + +<?php foreach (explode("\n", $gedcom) as $line) : ?> + <?php + preg_match('/^(\d+) (\w+) ?(.*)/', $line, $match); + [, $level, $tag, $value] = $match; + $hierarchy[$level] = $tag; + $full_tag = implode(':', array_slice($hierarchy, 0, 1 + (int) $level)); + $element = Registry::elementFactory()->make($full_tag); + $id = Uuid::uuid4()->toString() . '-' . $full_tag; + ?> + + <div class="form-group row"> + <label class="col-sm-3 col-form-label" for="<?= e($id) ?>"> + <?= $element->label() ?> + </label> + + <div class="col-sm-9"> + <input type="hidden" name="<?= e($prefix) ?>levels[]" value="<?= e($level) ?>"> + <input type="hidden" name="<?= e($prefix) ?>tags[]" value="<?= e($tag) ?>"> + <?= $element->edit($id, $prefix . 'values[]', strtr($value, ["\r" => "\n"]), $tree) ?> + </div> + </div> +<?php endforeach ?> diff --git a/resources/views/edit/edit-record.phtml b/resources/views/edit/edit-record.phtml new file mode 100644 index 0000000000..bce7e89d26 --- /dev/null +++ b/resources/views/edit/edit-record.phtml @@ -0,0 +1,65 @@ +<?php + +use Fisharebest\Webtrees\GedcomRecord; +use Fisharebest\Webtrees\Http\RequestHandlers\EditRawRecordPage; +use Fisharebest\Webtrees\Http\RequestHandlers\EditRecordAction; +use Fisharebest\Webtrees\I18N; +use Fisharebest\Webtrees\Tree; + +/** + * @var bool $can_edit_raw + * @var GedcomRecord $record + * @var string $title + * @var Tree $tree + */ + +?> + +<h2 class="wt-page-title"><?= $title ?></h2> + +<form method="post" action="<?= e(route(EditRecordAction::class, ['tree' => $tree->name(), 'xref' => $record->xref()])) ?>" class="wt-page-content"> + <?= csrf_field() ?> + + <?= view('edit/edit-gedcom-fields', ['gedcom' => $record->insertMissingSubtags(), 'hierarchy' => [$record->tag()], 'tree' => $tree, 'prefix' => '']) ?> + + <div class="form-group row"> + <label class="col-sm-3 col-form-label" for="keep_chan"> + <?= I18N::translate('Last change') ?> + </label> + <div class="col-sm-9"> + <?= view('components/checkbox-inline', ['label' => I18N::translate('Keep the existing “last change” information'), 'name' => 'keep_chan', 'checked' => (bool) $tree->getPreference('NO_UPDATE_CHAN')]) ?> + <div> + <?= I18N::translate('%1$s: %2$s', I18N::translate('Timestamp'), view('components/datetime', ['timestamp' => $record->lastChangeTimestamp()])) ?> + </div> + <div> + <?= I18N::translate('%1$s: %2$s', I18N::translate('Author of last change'), e($record->lastChangeUser())) ?> + </div> + </div> + </div> + + <div class="form-group row"> + <div class="col-sm-3 wt-page-options-label"> + </div> + <div class="col-sm-9 wt-page-options-value"> + <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($record->url()) ?>"> + <?= view('icons/cancel') ?> + <?= /* I18N: A button label. */ + I18N::translate('cancel') ?> + </a> + <?php if ($can_edit_raw) : ?> + <a class="btn btn-link" href="<?= e(route(EditRawRecordPage::class, ['xref' => $record->xref(), 'tree' => $tree->name()])) ?>"> + <?= I18N::translate('Edit the raw GEDCOM') ?> + </a> + <?php endif; ?> + </div> + </div> +</form> + +<?= view('modals/on-screen-keyboard') ?> +<?= view('modals/ajax') ?> +<?= view('edit/initialize-calendar-popup') ?> diff --git a/resources/views/edit/reorder-families.phtml b/resources/views/edit/reorder-families.phtml index c8af622a32..10a3364598 100644 --- a/resources/views/edit/reorder-families.phtml +++ b/resources/views/edit/reorder-families.phtml @@ -1,10 +1,22 @@ <?php +use Fisharebest\Webtrees\Fact; use Fisharebest\Webtrees\Gedcom; -use Fisharebest\Webtrees\GedcomCode\GedcomCodePedi; use Fisharebest\Webtrees\Http\RequestHandlers\ReorderFamiliesAction; use Fisharebest\Webtrees\I18N; +use Fisharebest\Webtrees\Individual; +use Fisharebest\Webtrees\Registry; +use Fisharebest\Webtrees\Tree; use Fisharebest\Webtrees\View; +use Illuminate\Support\Collection; + +/** + * @var Collection<Fact> $famc_facts + * @var Collection<Fact> $fams_facts + * @var Individual $individual + * @var string $title + * @var Tree $tree + */ ?> @@ -70,7 +82,7 @@ use Fisharebest\Webtrees\View; <div class="card my-2 wt-sortable-item" data-sortbydate="<?= $fact->target()->getMarriageDate()->julianDay() ?>"> <input type="hidden" name="order[]" value="<?= $fact->id() ?>"> <div class="card-header"> - <?= view('edit/reorder-card-header', ['title' => $fact->target()->fullName() . ($fact->attribute('PEDI') === '' ? '' : ' — ' . GedcomCodePedi::getValue($fact->attribute('PEDI'), $individual))]) ?> + <?= view('edit/reorder-card-header', ['title' => $fact->target()->fullName() . ($fact->attribute('PEDI') === '' ? '' : ' — ' . Registry::elementFactory()->make('INDI:FAMC:PEDI')->value($fact->attribute('PEDI'), $tree))]) ?> </div> <div class="card-body"> <?= $fact->target()->formatFirstMajorFact(Gedcom::MARRIAGE_EVENTS, 2) ?> diff --git a/resources/views/edit/reorder-names.phtml b/resources/views/edit/reorder-names.phtml index 3dbc8f0e40..afcf5c622a 100644 --- a/resources/views/edit/reorder-names.phtml +++ b/resources/views/edit/reorder-names.phtml @@ -1,10 +1,9 @@ <?php -use Fisharebest\Webtrees\GedcomCode\GedcomCodeName; -use Fisharebest\Webtrees\GedcomTag; use Fisharebest\Webtrees\Http\RequestHandlers\ReorderNamesAction; use Fisharebest\Webtrees\I18N; use Fisharebest\Webtrees\Individual; +use Fisharebest\Webtrees\Registry; use Fisharebest\Webtrees\Tree; use Fisharebest\Webtrees\View; @@ -30,7 +29,7 @@ use Fisharebest\Webtrees\View; </div> <div class="card-body"> - <?= GedcomTag::getLabelValue('TYPE', GedcomCodeName::getValue($fact->attribute('TYPE'), $fact->record())) ?> + <?= Registry::elementFactory()->make('INDI:NAME:TYPE')->value($fact->attribute('TYPE'), $tree) ?> </div> </div> <?php endforeach ?> diff --git a/resources/views/gedcom-record-page-menu.phtml b/resources/views/gedcom-record-page-menu.phtml index 7393b8cabc..c0aaa70eb5 100644 --- a/resources/views/gedcom-record-page-menu.phtml +++ b/resources/views/gedcom-record-page-menu.phtml @@ -1,8 +1,7 @@ <?php -use Fisharebest\Webtrees\Auth; use Fisharebest\Webtrees\Http\RequestHandlers\DeleteRecord; -use Fisharebest\Webtrees\Http\RequestHandlers\EditRawRecordPage; +use Fisharebest\Webtrees\Http\RequestHandlers\EditRecordPage; use Fisharebest\Webtrees\I18N; ?> @@ -14,17 +13,15 @@ use Fisharebest\Webtrees\I18N; </button> <div class="dropdown-menu dropdown-menu-right wt-page-menu-items" aria-labelledby="page-menu"> + <a class="dropdown-item" href="<?= route(EditRecordPage::class, ['xref' => $record->xref(), 'tree' => $record->tree()->name()]) ?>"> + <?= view('icons/edit') ?> + <?= I18N::translate('Edit') ?> + </a> + <a class="dropdown-item" href="#" data-confirm="<?= I18N::translate('Are you sure you want to delete “%s”?', strip_tags($record->fullName())) ?>" data-post-url="<?= e(route(DeleteRecord::class, ['tree' => $record->tree()->name(), 'xref' => $record->xref()])) ?>"> <?= view('icons/delete') ?> <?= I18N::translate('Delete') ?> </a> - - <?php if (Auth::isAdmin() || $record->tree()->getPreference('SHOW_GEDCOM_RECORD')) : ?> - <a class="dropdown-item" href="<?= e(route(EditRawRecordPage::class, ['tree' => $record->tree()->name(), 'xref' => $record->xref()])) ?>"> - <?= view('icons/edit') ?> - <?= I18N::translate('Edit the raw GEDCOM') ?> - </a> - <?php endif ?> </div> </div> diff --git a/resources/views/gedcom-record-page.phtml b/resources/views/gedcom-record-page.phtml index 516d28d507..450cb2d11d 100644 --- a/resources/views/gedcom-record-page.phtml +++ b/resources/views/gedcom-record-page.phtml @@ -3,7 +3,6 @@ use Fisharebest\Webtrees\Auth; use Fisharebest\Webtrees\Fact; use Fisharebest\Webtrees\Family; -use Fisharebest\Webtrees\Functions\FunctionsPrint; use Fisharebest\Webtrees\Functions\FunctionsPrintFacts; use Fisharebest\Webtrees\GedcomRecord; use Fisharebest\Webtrees\Http\RequestHandlers\PendingChangesAcceptRecord; @@ -112,10 +111,6 @@ use Illuminate\Support\Collection; <?php foreach ($facts as $fact) : ?> <?php FunctionsPrintFacts::printFact($fact, $record) ?> <?php endforeach ?> - - <?php if ($record->canEdit()) : ?> - <?php FunctionsPrint::printAddNewFact($record, $facts, $record->tag()) ?> - <?php endif ?> </table> </div> diff --git a/resources/views/icons/tag.phtml b/resources/views/icons/tag.phtml new file mode 100644 index 0000000000..f68481f239 --- /dev/null +++ b/resources/views/icons/tag.phtml @@ -0,0 +1 @@ +<span class="wt-icon-tag"><i class="fas fa-tags fa-fw" aria-hidden="true"></i></span> diff --git a/resources/views/lists/families-table.phtml b/resources/views/lists/families-table.phtml index 7145edd2e2..3f667148ef 100644 --- a/resources/views/lists/families-table.phtml +++ b/resources/views/lists/families-table.phtml @@ -243,7 +243,7 @@ $marriageAgeData = [ <td colspan="2" data-sort="<?= e(str_replace([',', Individual::PRAENOMEN_NESCIO, Individual::NOMEN_NESCIO], 'AAAA', implode(',', array_reverse(explode(',', $husb->sortName()))))) ?>"> <?php foreach ($husb->getAllNames() as $num => $name) : ?> <?php if ($name['type'] !== '_MARNM' || $num == $husb->getPrimaryName()) : ?> - <a title="<?= $name['type'] === 'NAME' ? '' : strip_tags(GedcomTag::getLabel($name['type'])) ?>" href="<?= e($family->url()) ?>" class="<?= $num === $husb->getPrimaryName() ? 'name2' : '' ?>"> + <a title="<?= $name['type'] === 'NAME' ? '' : Registry::elementFactory()->make('INDI:NAME:' . $name['type'])->label() ?>" href="<?= e($family->url()) ?>" class="<?= $num === $husb->getPrimaryName() ? 'name2' : '' ?>"> <?= $name['full'] ?> </a> <?php if ($num === $husb->getPrimaryName()) : ?> @@ -278,7 +278,7 @@ $marriageAgeData = [ <td colspan="2" data-sort="<?= e(str_replace([',', Individual::PRAENOMEN_NESCIO, Individual::NOMEN_NESCIO], 'AAAA', implode(',', array_reverse(explode(',', $wife->sortName()))))) ?>"> <?php foreach ($wife->getAllNames() as $num => $name) : ?> <?php if ($name['type'] !== '_MARNM' || $num == $wife->getPrimaryName()) : ?> - <a title="<?= $name['type'] === 'NAME' ? '' : strip_tags(GedcomTag::getLabel($name['type'])) ?>" href="<?= e($family->url()) ?>" class="<?= $num === $wife->getPrimaryName() ? 'name2' : '' ?>"> + <a title="<?= $name['type'] === 'NAME' ? '' : Registry::elementFactory()->make('INDI:NAME:' . $name['type'])->label() ?>" href="<?= e($family->url()) ?>" class="<?= $num === $wife->getPrimaryName() ? 'name2' : '' ?>"> <?= $name['full'] ?> </a> <?php if ($num === $wife->getPrimaryName()) : ?> diff --git a/resources/views/lists/individuals-table.phtml b/resources/views/lists/individuals-table.phtml index 65c6833577..144f262c9a 100644 --- a/resources/views/lists/individuals-table.phtml +++ b/resources/views/lists/individuals-table.phtml @@ -12,6 +12,7 @@ use Fisharebest\Webtrees\Individual; use Fisharebest\Webtrees\Module\ModuleChartInterface; use Fisharebest\Webtrees\Module\ModuleInterface; use Fisharebest\Webtrees\Module\RelationshipsChartModule; +use Fisharebest\Webtrees\Registry; use Fisharebest\Webtrees\Services\ModuleService; use Fisharebest\Webtrees\Tree; use Fisharebest\Webtrees\View; @@ -265,7 +266,7 @@ $deathAgeData = [ <tr class="<?= $individual->isPendingDeletion() ? 'wt-old' : ($individual->isPendingAddition() ? 'wt-new' : '') ?>"> <td colspan="2" data-sort="<?= e(str_replace([',', Individual::PRAENOMEN_NESCIO, Individual::NOMEN_NESCIO], 'AAAA', implode(',', array_reverse(explode(',', $individual->sortName()))))) ?>"> <?php foreach ($individual->getAllNames() as $num => $name) : ?> - <a title="<?= $name['type'] === 'NAME' ? '' : strip_tags(GedcomTag::getLabel($name['type'])) ?>" href="<?= e($individual->url()) ?>" class="<?= $num === $individual->getPrimaryName() ? 'name2' : '' ?>"> + <a title="<?= $name['type'] === 'NAME' ? '' : Registry::elementFactory()->make('INDI:NAME:' . $name['type'])->label() ?>" href="<?= e($individual->url()) ?>" class="<?= $num === $individual->getPrimaryName() ? 'name2' : '' ?>"> <?= $name['full'] ?> </a> <?php if ($num === $individual->getPrimaryName()) : ?> diff --git a/resources/views/modals/create-location.phtml b/resources/views/modals/create-location.phtml new file mode 100644 index 0000000000..001d229803 --- /dev/null +++ b/resources/views/modals/create-location.phtml @@ -0,0 +1,64 @@ +<?php + +use Fisharebest\Webtrees\Http\RequestHandlers\CreateLocationAction; +use Fisharebest\Webtrees\I18N; +use Fisharebest\Webtrees\Tree; + +/** + * @var Tree $tree + */ + +?> + +<form method="post" action="<?= e(route(CreateLocationAction::class, ['tree' => $tree->name()])) ?>" id="wt-modal-form"> + <?= csrf_field() ?> + + <?= view('modals/header', ['title' => I18N::translate('Create a location')]) ?> + + <div class="modal-body"> + <?= view('modals/location-fields') ?> + </div> + + <?= view('modals/footer-save-cancel') ?> +</form> + +<script> + // Submit the modal form using AJAX + document.getElementById("wt-modal-form").addEventListener("submit", function (event) { + event.preventDefault(); + let form = event.target; + let modal_content = document.querySelector("#wt-ajax-modal .modal-content"); + let select = document.getElementById(modal_content.dataset.selectId); + + $.ajax({ + url: form.action, + type: form.method, + data: new FormData(form), + async: false, + cache: false, + contentType: false, + processData: false, + success: function (data) { + if (select) { + // If this modal was activated by the "new" button in a select2 + // edit control, then insert the result and select it. + let option = new Option(data.text, data.id, true, true); + option.innerHTML = option.innerText; + + $(select) + .select2({ escapeMarkup: (x) => x }) + .empty() + .append(option) + .trigger("change"); + + $("#wt-ajax-modal").modal("hide"); + } else { + modal_content.innerHTML = data.html; + } + }, + failure: function (data) { + modal_content.innerHTML = data.html; + }, + }); + }); +</script> diff --git a/resources/views/modals/create-submission.phtml b/resources/views/modals/create-submission.phtml new file mode 100644 index 0000000000..ee27c3984d --- /dev/null +++ b/resources/views/modals/create-submission.phtml @@ -0,0 +1,64 @@ +<?php + +use Fisharebest\Webtrees\Http\RequestHandlers\CreateSubmissionAction; +use Fisharebest\Webtrees\I18N; +use Fisharebest\Webtrees\Tree; + +/** + * @var Tree $tree + */ + +?> + +<form method="post" action="<?= e(route(CreateSubmissionAction::class, ['tree' => $tree->name()])) ?>" id="wt-modal-form"> + <?= csrf_field() ?> + + <?= view('modals/header', ['title' => I18N::translate('Create a submission')]) ?> + + <div class="modal-body"> + <?= view('modals/submission-fields', ['tree' => $tree]) ?> + </div> + + <?= view('modals/footer-save-cancel') ?> +</form> + +<script> + // Submit the modal form using AJAX + document.getElementById("wt-modal-form").addEventListener("submit", function (event) { + event.preventDefault(); + let form = event.target; + let modal_content = document.querySelector("#wt-ajax-modal .modal-content"); + let select = document.getElementById(modal_content.dataset.selectId); + + $.ajax({ + url: form.action, + type: form.method, + data: new FormData(form), + async: false, + cache: false, + contentType: false, + processData: false, + success: function (data) { + if (select) { + // If this modal was activated by the "new" button in a select2 + // edit control, then insert the result and select it. + let option = new Option(data.text, data.id, true, true); + option.innerHTML = option.innerText; + + $(select) + .select2({ escapeMarkup: (x) => x }) + .empty() + .append(option) + .trigger("change"); + + $("#wt-ajax-modal").modal("hide"); + } else { + modal_content.innerHTML = data.html; + } + }, + failure: function (data) { + modal_content.innerHTML = data.html; + }, + }); + }); +</script> diff --git a/resources/views/modals/location-fields.phtml b/resources/views/modals/location-fields.phtml new file mode 100644 index 0000000000..e92af35823 --- /dev/null +++ b/resources/views/modals/location-fields.phtml @@ -0,0 +1,12 @@ +<?php + +use Fisharebest\Webtrees\I18N; + +?> + +<div class="form-group"> + <label class="col-form-label" for="location-name"> + <?= I18N::translate('Name') ?> + </label> + <input class="form-control" type="text" id="location-name" name="location_name" required> +</div> diff --git a/resources/views/modals/submission-fields.phtml b/resources/views/modals/submission-fields.phtml new file mode 100644 index 0000000000..62112aa3c9 --- /dev/null +++ b/resources/views/modals/submission-fields.phtml @@ -0,0 +1,14 @@ +<?php + +use Fisharebest\Webtrees\I18N; + +?> + +<div class="form-group row"> + <label class="col-form-label col-sm-2" for="submitter"> + <?= I18N::translate('Submitter') ?> + </label> + <div class="col-sm-10"> + <?= view('components/select-submitter', ['name' => 'submitter', 'tree' => $tree, 'required' => true]) ?> + </div> +</div> diff --git a/resources/views/selects/location.phtml b/resources/views/selects/location.phtml new file mode 100644 index 0000000000..83fd755db9 --- /dev/null +++ b/resources/views/selects/location.phtml @@ -0,0 +1 @@ +<?= $location->fullName() ?> diff --git a/resources/views/selects/submission.phtml b/resources/views/selects/submission.phtml new file mode 100644 index 0000000000..ba5d929991 --- /dev/null +++ b/resources/views/selects/submission.phtml @@ -0,0 +1 @@ +<?= $submission->fullName() ?> diff --git a/resources/views/submitter-page-menu.phtml b/resources/views/submitter-page-menu.phtml index c1c50fec93..5407c687df 100644 --- a/resources/views/submitter-page-menu.phtml +++ b/resources/views/submitter-page-menu.phtml @@ -1,8 +1,7 @@ <?php -use Fisharebest\Webtrees\Auth; use Fisharebest\Webtrees\Http\RequestHandlers\DeleteRecord; -use Fisharebest\Webtrees\Http\RequestHandlers\EditRawRecordPage; +use Fisharebest\Webtrees\Http\RequestHandlers\EditRecordPage; use Fisharebest\Webtrees\I18N; use Fisharebest\Webtrees\Submitter; @@ -19,17 +18,15 @@ use Fisharebest\Webtrees\Submitter; </button> <div class="dropdown-menu dropdown-menu-right wt-page-menu-items" aria-labelledby="page-menu"> + <a class="dropdown-item" href="<?= route(EditRecordPage::class, ['xref' => $record->xref(), 'tree' => $record->tree()->name()]) ?>"> + <?= view('icons/edit') ?> + <?= I18N::translate('Edit') ?> + </a> + <a class="dropdown-item" href="#" data-confirm="<?= I18N::translate('Are you sure you want to delete “%s”?', strip_tags($record->fullName())) ?>" data-post-url="<?= e(route(DeleteRecord::class, ['tree' => $record->tree()->name(), 'xref' => $record->xref()])) ?>"> <?= view('icons/delete') ?> <?= I18N::translate('Delete') ?> </a> - - <?php if (Auth::isAdmin() || $record->tree()->getPreference('SHOW_GEDCOM_RECORD')) : ?> - <a class="dropdown-item" href="<?= e(route(EditRawRecordPage::class, ['tree' => $record->tree()->name(), 'xref' => $record->xref()])) ?>"> - <?= view('icons/edit') ?> - <?= I18N::translate('Edit the raw GEDCOM') ?> - </a> - <?php endif ?> </div> </div> diff --git a/resources/views/submitter-page.phtml b/resources/views/submitter-page.phtml index b1cc935fb4..666e4bffc4 100644 --- a/resources/views/submitter-page.phtml +++ b/resources/views/submitter-page.phtml @@ -1,12 +1,10 @@ <?php use Fisharebest\Webtrees\Auth; -use Fisharebest\Webtrees\Functions\FunctionsPrint; use Fisharebest\Webtrees\Functions\FunctionsPrintFacts; use Fisharebest\Webtrees\Http\RequestHandlers\PendingChangesAcceptRecord; use Fisharebest\Webtrees\Http\RequestHandlers\PendingChangesRejectRecord; use Fisharebest\Webtrees\I18N; -use Fisharebest\Webtrees\Submitter; ?> @@ -62,10 +60,6 @@ use Fisharebest\Webtrees\Submitter; <?php foreach ($facts as $fact) : ?> <?php FunctionsPrintFacts::printFact($fact, $submitter) ?> <?php endforeach ?> - - <?php if ($submitter->canEdit()) : ?> - <?php FunctionsPrint::printAddNewFact($submitter, $facts, Submitter::RECORD_TYPE) ?> - <?php endif ?> </table> </div> |
