diff --git a/src/core/js/form_elements.js b/src/core/js/form_elements.js index 6815acd791213c6b239a693c3c64667965c369ed..48e97848fdff186553b93eac0eefbfe73d29b108 100644 --- a/src/core/js/form_elements.js +++ b/src/core/js/form_elements.js @@ -1563,6 +1563,37 @@ var form_elements = new function () { } } + /** + * Return a modal HTML element containing the given form. + * + * @param {HTMLElement} form - the form to be shown in the modal + * @param {string} title - the title of the form modal + * @param {string} explanation_text - An optional paragraph shown between + * modal title and form. + */ + this.make_for_modal = function (form, title, explanation_text) { + const modal = $(` + <div class="modal fade" tabindex="-1" role="dialog"> + <div class="modal-dialog" role="document"> + <div class="modal-content"> + <div class="modal-header"> + <h4 class="modal-title">${title}</h4> + <p>{explanation_text}</p> + <button type="button" + class="btn-close" + data-bs-dismiss="modal" + aria-label="Close"> + </button> + </div> + <div class="modal-body"> + </div> + </div> + </div>`); + + modal.find(".modal-body").append(form); + return modal[0]; + } + /** * Return an input and a label, wrapped in a div with class