1852ede8cSGreg Roach<?php 2dd6b2bfcSGreg Roach 3*2d111ef4SGreg Roachuse Fisharebest\Webtrees\Contracts\ElementInterface; 4852ede8cSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\CreateRepositoryAction; 5852ede8cSGreg Roachuse Fisharebest\Webtrees\I18N; 6edbd59d9SGreg Roachuse Fisharebest\Webtrees\Tree; 7edbd59d9SGreg Roach 8edbd59d9SGreg Roach/** 9*2d111ef4SGreg Roach * @var array<string,ElementInterface> $elements 10edbd59d9SGreg Roach * @var Tree $tree 11edbd59d9SGreg Roach */ 12852ede8cSGreg Roach 13852ede8cSGreg Roach?> 14852ede8cSGreg Roach 15852ede8cSGreg Roach<form method="post" action="<?= e(route(CreateRepositoryAction::class, ['tree' => $tree->name()])) ?>" id="wt-modal-form"> 16dd6b2bfcSGreg Roach <?= csrf_field() ?> 17dd6b2bfcSGreg Roach 18dd6b2bfcSGreg Roach <?= view('modals/header', ['title' => I18N::translate('Create a repository')]) ?> 19dd6b2bfcSGreg Roach 20dd6b2bfcSGreg Roach <div class="modal-body"> 21*2d111ef4SGreg Roach <?= view('modals/repository-fields', ['elements' => $elements, 'tree' => $tree]) ?> 22dd6b2bfcSGreg Roach </div> 23dd6b2bfcSGreg Roach 24dd6b2bfcSGreg Roach <?= view('modals/footer-save-cancel') ?> 25dd6b2bfcSGreg Roach</form> 26dd6b2bfcSGreg Roach 27dd6b2bfcSGreg Roach<script> 28dd6b2bfcSGreg Roach // Submit the modal form using AJAX 292a12145eSGreg Roach document.getElementById("wt-modal-form").addEventListener("submit", function (event) { 30dd6b2bfcSGreg Roach event.preventDefault(); 31dd6b2bfcSGreg Roach let form = event.target; 322a12145eSGreg Roach let modal_content = document.querySelector("#wt-ajax-modal .modal-content"); 33dd6b2bfcSGreg Roach let select = document.getElementById(modal_content.dataset.selectId); 34dd6b2bfcSGreg Roach 35dd6b2bfcSGreg Roach $.ajax({ 36dd6b2bfcSGreg Roach url: form.action, 37dd6b2bfcSGreg Roach type: form.method, 38dd6b2bfcSGreg Roach data: new FormData(form), 39dd6b2bfcSGreg Roach async: false, 40dd6b2bfcSGreg Roach cache: false, 41dd6b2bfcSGreg Roach contentType: false, 42dd6b2bfcSGreg Roach processData: false, 43dd6b2bfcSGreg Roach success: function (data) { 44dd6b2bfcSGreg Roach if (select) { 45dd6b2bfcSGreg Roach // If this modal was activated by the "new" button in a select2 46dd6b2bfcSGreg Roach // edit control, then insert the result and select it. 472a12145eSGreg Roach let option = new Option(data.text, data.id, true, true); 482a12145eSGreg Roach option.innerHTML = option.innerText; 492a12145eSGreg Roach 50dd6b2bfcSGreg Roach $(select) 51edbd59d9SGreg Roach .select2({ escapeMarkup: (x) => x }) 52dd6b2bfcSGreg Roach .empty() 532a12145eSGreg Roach .append(option) 542a12145eSGreg Roach .trigger("change"); 55dd6b2bfcSGreg Roach 562a12145eSGreg Roach $("#wt-ajax-modal").modal("hide"); 57dd6b2bfcSGreg Roach } else { 58dd6b2bfcSGreg Roach modal_content.innerHTML = data.html; 59dd6b2bfcSGreg Roach } 60dd6b2bfcSGreg Roach }, 61dd6b2bfcSGreg Roach failure: function (data) { 62dd6b2bfcSGreg Roach modal_content.innerHTML = data.html; 632a12145eSGreg Roach }, 64dd6b2bfcSGreg Roach }); 65dd6b2bfcSGreg Roach }); 66dd6b2bfcSGreg Roach</script> 67