mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Abstracted modal code somewhat
This commit is contained in:
parent
58cd933a5d
commit
fa04a9ae61
@ -45,6 +45,40 @@ function afterForm(response, options) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function modalSetTitle(modal, title='') {
|
||||||
|
$(modal + ' #modal-title').html(title);
|
||||||
|
}
|
||||||
|
|
||||||
|
function modalSetContent(modal, content='') {
|
||||||
|
$(modal + ' .modal-form-content').html(content);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function openModal(modal, title='', content='') {
|
||||||
|
|
||||||
|
$(modal).on('shown.bs.modal', function() {
|
||||||
|
$(modal + ' .modal-form-content').scrollTop(0);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Prevent 'enter' key from submitting the form using the normal method
|
||||||
|
$(modal).on('keydown', '.js-modal-form', function(event) {
|
||||||
|
if (event.keyCode == 13) {
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
// Simulate a click on the 'Submit' button
|
||||||
|
$(modal).find("#modal-form-submit").click();
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
modalSetTitle(modal, title);
|
||||||
|
modalSetContent(modal, content);
|
||||||
|
|
||||||
|
$(modal).modal('show');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function launchDeleteForm(modal, url, options = {}) {
|
function launchDeleteForm(modal, url, options = {}) {
|
||||||
|
|
||||||
$(modal).on('shown.bs.modal', function() {
|
$(modal).on('shown.bs.modal', function() {
|
||||||
@ -56,14 +90,14 @@ function launchDeleteForm(modal, url, options = {}) {
|
|||||||
type: 'get',
|
type: 'get',
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
beforeSend: function() {
|
beforeSend: function() {
|
||||||
$(modal).modal('show');
|
openModal(modal);
|
||||||
},
|
},
|
||||||
success: function (response) {
|
success: function (response) {
|
||||||
if (response.title) {
|
if (response.title) {
|
||||||
$(modal + ' #modal-title').html(response.title);
|
modalSetTitle(modal, response.title);
|
||||||
}
|
}
|
||||||
if (response.html_data) {
|
if (response.html_data) {
|
||||||
$(modal + ' .modal-form-content').html(response.html_data);
|
modalSetContent(modal, response.html_data);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
alert('JSON response missing HTML data');
|
alert('JSON response missing HTML data');
|
||||||
@ -170,34 +204,17 @@ function handleModalForm(modal, url, options) {
|
|||||||
*/
|
*/
|
||||||
function launchModalForm(modal, url, options = {}) {
|
function launchModalForm(modal, url, options = {}) {
|
||||||
|
|
||||||
// Ensure the modal view scrolls to the top of the loaded form
|
|
||||||
$(modal).on('shown.bs.modal', function () {
|
|
||||||
$(modal + ' .modal-form-content').scrollTop(0);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Prevent 'enter' key from submitting the form using the normal method
|
|
||||||
$(modal).on('keydown', '.js-modal-form', function(event) {
|
|
||||||
if (event.keyCode == 13) {
|
|
||||||
event.preventDefault();
|
|
||||||
|
|
||||||
// Simulate a click on the 'Submit' button
|
|
||||||
$(modal).find("#modal-form-submit").click();
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Form the ajax request to retrieve the django form data
|
// Form the ajax request to retrieve the django form data
|
||||||
ajax_data = {
|
ajax_data = {
|
||||||
url: url,
|
url: url,
|
||||||
type: 'get',
|
type: 'get',
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
beforeSend: function () {
|
beforeSend: function () {
|
||||||
$(modal).modal('show');
|
openModal(modal);
|
||||||
},
|
},
|
||||||
success: function(response) {
|
success: function(response) {
|
||||||
if (response.title) {
|
if (response.title) {
|
||||||
$(modal + ' #modal-title').html(response.title);
|
modalSetTitle(modal, response.title);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (response.submit_text) {
|
if (response.submit_text) {
|
||||||
|
Loading…
Reference in New Issue
Block a user