diff options
Diffstat (limited to 'resources/views/modals/create-repository.phtml')
| -rw-r--r-- | resources/views/modals/create-repository.phtml | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/resources/views/modals/create-repository.phtml b/resources/views/modals/create-repository.phtml new file mode 100644 index 0000000000..5f6f21abf2 --- /dev/null +++ b/resources/views/modals/create-repository.phtml @@ -0,0 +1,52 @@ +<?php use Fisharebest\Webtrees\I18N; ?> + +<form action="<?= e(route('create-repository')) ?>" id="wt-modal-form" method="POST"> + <?= csrf_field() ?> + <input type="hidden" name="ged" value="<?= e($tree->getName()) ?>"> + + <?= view('modals/header', ['title' => I18N::translate('Create a repository')]) ?> + + <div class="modal-body"> + <?= view('modals/repository-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. + $(select) + .select2() + .empty() + .append(new Option(data.text, data.id)).val(data.id) + .trigger('change'); + + $('#wt-ajax-modal').modal('hide'); + } else { + modal_content.innerHTML = data.html; + } + }, + failure: function (data) { + modal_content.innerHTML = data.html; + } + }); + }); +</script> |
