{% load i18n %} /* globals inventreeGet, showAlertOrCache, */ /* exported attachSecondaryModal, clearField, clearFieldOptions, closeModal, enableField, getFieldValue, reloadFieldOptions, showModalImage, removeRowFromModalForm, showQuestionDialog, */ /* * Create and display a new modal dialog * * options: * - title: Form title to render * - submitText: Text to render on 'submit' button (default = "Submit") * - closeText: Text to render on 'close' button (default = "Cancel") * - focus: Name of field to focus on after launching */ function createNewModal(options={}) { var id = 1; // Check out what modal forms are already being displayed $('.inventree-modal').each(function() { var split = this.id.split('-'); var modal_id = parseInt(split[2]); if (modal_id >= id) { id = modal_id + 1; } }); var html = `
`; $('body').append(html); var modal_name = `#modal-form-${id}`; $(modal_name).on('shown.bs.modal', function() { $(modal_name + ' .modal-form-content').scrollTop(0); if (options.focus) { getFieldByName(modal_name, options.focus).focus(); } }); // Automatically remove the modal when it is deleted! $(modal_name).on('hidden.bs.modal', function() { $(modal_name).remove(); }); // Capture "enter" key input $(modal_name).on('keydown', 'input', function(event) { if (event.keyCode == 13) { event.preventDefault(); // Simulate a click on the 'Submit' button $(modal_name).find('#modal-form-submit').click(); return false; } }); $(modal_name).modal({ backdrop: 'static', keyboard: user_settings.FORMS_CLOSE_USING_ESCAPE, }); // Set labels based on supplied options modalSetTitle(modal_name, options.title || '{% trans "Form Title" %}'); modalSetSubmitText(modal_name, options.submitText || '{% trans "Submit" %}'); modalSetCloseText(modal_name, options.cancelText || '{% trans "Cancel" %}'); if (options.hideSubmitButton) { $(modal_name).find('#modal-form-submit').hide(); } if (options.hideCloseButton) { $(modal_name).find('#modal-form-cancel').hide(); } // Steal keyboard focus $(modal_name).focus(); // Return the "name" of the modal return modal_name; } function makeOption(text, value, title) { /* Format an option for a select element */ var html = ``; return html; } function makeOptionsList(elements, textFunc, valueFunc, titleFunc) { /* * Programatically generate a list of